Improved CSV Import

Registered by Michael Rooney on 2009-03-26

This spec outlines the features that CSV import should have in the next version.

Usability "Papercuts":
 - CSV profile "Load" button shouldn't exist, selecting a profile should auto-load it
 - CSV import dialog should close on successful "Import"
 - After selecting a csv file, a preview should be automatically triggered
 - Perhaps Preview button should disappear, and all changes trigger a preview?

Automatic CSV parsing:
  - move file selection to top so it is the first thing you do, and hopefully the rest can be mostly figured out automatically
  - auto-detection of encoding: probably straightforward, iterate until one works?
  - auto-detection of column separator: do a split of the first line around the common separators and see which gives the most results
  - auto-detection of positions: if the separator was detected, split the first line and see if it contains obvious headers like "date"/"amount" (in english and the locale). If so use these by default and auto-skip first line
    - if we can detect the positions, automatically detect the date format (year is the one with four digits or values > 31, day is the one w/ values > 12) and amount (split on '.' and ',' and one hopefully always gives 2 values)
 - auto-preview on load if there is no error

Improvements:
 - add option for specifying when Amount is negative, as some CSVs have the amount always positive and then have another credit/debit column. So something else like a check box "Amount is negative when column [number] contains [textbox]"
 - perhaps a two-line scrollable textbox that shows the actual contents, so if someone has exported from somewhere else and doesn't know what it looks like, they don't have to open it separately in an editor to figure it out (if we can't automatically for them).
 - allow creation of new account to put the transactions into, instead of only existing account
 - specify account by column mapping

Blueprint information

Status:
Not started
Approver:
None
Priority:
Medium
Drafter:
None
Direction:
Needs approval
Assignee:
None
Definition:
Approved
Series goal:
None
Implementation:
Unknown
Milestone target:
None

Whiteboard

Status Whiteboard doesn't seem like the right place to add this, but I don't know where else..

I have an additional request. Instead of importing a CSV file to one account allow the user to configure a list of matches on fields (as it is for search) to determine to which account (or category) a CSV line goes. This way he doesn't have to categorize his imported CSV file by hand every time he gets an update from the bank.

2009.10.19 mrooney: Thanks for the idea Wim, and this whiteboard is a fine place :) How would you envision the UI for this looking? I guess I imagine a third option for importing at the bottom of the Import frame, you would have "Import into existing account", "Create new account with these transactions", "Import into multiple accounts". Selecting the third would ask you for the column with the account names, and provide a UI for matching them to wxBanker account names. I'm not quite sure what that would look like, though.

2009.10.20 Wim: You're welcome. I think it is clearest if you present a table:
| column | search match | account name |
That the user can fill in. You probably also want to specify a default in case non of the entries match, or perhaps you want to present these to the user for manual selection in some way. You also will want to see the effect of your matches when you create them, so the preview field should get an additional column specifying the account the entry will be imported to.

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.