Skip to content

Instantly share code, notes, and snippets.

@nabinhait
Last active May 23, 2026 20:08
Show Gist options
  • Select an option

  • Save nabinhait/1b562bee02881b30040ebcd073e7e9f3 to your computer and use it in GitHub Desktop.

Select an option

Save nabinhait/1b562bee02881b30040ebcd073e7e9f3 to your computer and use it in GitHub Desktop.
Party Import Feature Prompts
> I want to create a party import tool. Currently users need to use Data Import Tool for that, but it has a lot of dependencied like importing territory, customer groups beforehand. Also, address and contact need to be imported separately. Write a specification and give me design. Use espresso design style.

> create a mvp

> let's call Party Import doctype as Party Import Log?

> in party import import wizard page, should not be multiple primary buttons, also there are multiple coulours, the prgress stages also doesn't match with frappe styles (espresso and frappe-ui)

> 2 line separators [with image]

> In Map page, if the records already exists, I think we can skip showing those rows, why "Use Existing" mapping?

> In Map page, remove dash before and after the "Skip this column". Maybe instead highlight the input field with subtle border?

> All 1 resolved does not sound/look good. Also these colappsible section should be clickable and show values on click

> Will Create, will update and will skip does not sound good [with image]

> Uses exising not looking good [with image]

> Resume a draft section - each record inside a card looks off [with image]

> browse files doesn't work

> as we are only uploading 1 file, should we remove uploading area after upload and show the actual file instead with delete option?

> do we hide template section as well after uploading?

> Created and updated does not look good [with image]

> Don't have a file yet? why all caps?

> Sample > Template with sample? will it be better?

> can you rethink the design of template section?

> this is cleaner. "empty template" looks off

> is vertical spacing as per espresso/frappe ui?

> Party import log - fields should not be editable

> cen't resume draft records

> add sample address and contact data in csv

> After resuming a draft, if I go back to first page and click on customer, it should start from scratch asking to upload a new file?

> url should also change [with image]

> 2 separators [with image]

> ok, now review the entire implementation once again and suggest any observation

> save it in a review file

> let's fix permission mismatch

> Remove dead match_fields and current_step fields OR implement them

> Fix realtime listener leak

> Append "- Billing" / "- Shipping" to address titles

> validate file size

> create a prompts md file and maintain history of all prompts I gave so far and for the future

> let's fix csv encoding issue

> Warn for multi-sheet excel workbooks

> fix CSRF token assumption, implement fallback

> Handle duplicate contacts

> fix `frappe.local.flags` cache issue

> remove unused imports

> fix DocType field-name inconsistency

> show customer and supplier option based on permissions. If no permission, the specific party type should be in disables state. also show only relevant draft import records

> continuing party import, remove margin from sample template link

> Add following guidelines to .Claude.md

> Now, let's refactor the code for party import feature as per guidelines in ~/.claude/CLAUDE.md

> now write test cases

> remove obvious tests like test_name_field_for_customer and test_customer_samples_length

> still there are multiple trivial tests

> now refactor js and css

> on clicking the draft records, breadcrumbs vanishes

> implement permissions based on master manager role

> don't hardcode roles, instead page access should be implemented based on 'Import' permissions given on customer/supplier. And while creating records, check for 'Create' permissions

> When a Customer has both billing + shipping with the same address_line1, create a single record

> update specs based on our activities so far, refer prompts.md for activities

> Why we need hard-coded fields in schema.py? Can't we fetch from meta? What about custom fields?

> also what about someone changes the field label?

> also need to take care of translations

> yes, implement

> current column matching is based on synonyms. can we implement fuzzy matching? take inspiration from new banking module

> do we need to implement same for DependencyAnalyzer matching?

> do it

> fixed, let's make _mark_failed resilient

> on click of breadcrumb, it sets wrong url http://test-site-ai:8001/desk/party-import-wizard/party-import-wizard

> let's implement pre-mapped source-system template for Tally

> add a Tally CSV template download

> how to implement inline row editor for fixing errors without leaving the wizard - specs first

> let's implement but allow inline editing only if error appears in less than 50 rows

> a separate step for fixing error will be better. Also after inline editing, it should go back to Resolve step and dry run again.

> Conflict Handling label is confusing and not clear

> let's put entire conflict section in a card. Also remove description and card for each option

> "Fix errors" button looks like an input box, try different style as per espresso
doesn't look good, undo

> let's build pre-mapped source-system templates for Quickbooks and Zoho

> now implement pre-mapped source-system templates for Hubspot and salesforce

> Delete draft party import log after 90 days

> Save/load user-defined column mapping templates

> commit and open a draft PR
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment