Conversation
This is my first pass at making a bulk importer for Fava. Known issues that I hope to address: * Checkboxes don't honor shift-clicks to select a range * Doesn't use Svelte v5 runes. Nice to haves that I also hope to work on in the future: * A drag and drop interface for moving transactions (either individually, or all selected transactions).
for more information, see https://pre-commit.ci
|
Hi, thanks for creating a PR. The import modal gradually evolved from a time when there wasn't a whole lot of frontend-rendered code and we IMHO do not stick to that "a single dialog with a single entry at once". So I'd be fine with switching to an UI that renders them in bulk. Do you still plan to get this PR into a reviewable state?
When migrating the other entry components to runes mode, I had to rework them quite a bit but now this should be feasible without that sort of breakage. |
I've been using my branch for the past couple of months and my personal experience has been that bulk import as a concept makes importing entries much smoother but I don't love the fact that I made this is a modal (mostly because vertical scrolling has been a little janky inside a modal) and maybe it deserves a whole page. With my limited experience with Svelte, I'll probably have to learn more about how state is maintained between pages to get that working.
I meant to follow up on this a long time back and life caught up with me. So thanks for the nudge, I had totally forgotten! I think I should be able to take another shot at this in a week or two.
Great. I had not used Svelte before hacking at this, so it was especially confusing to be working with two paradigms while getting up to speed on the basics. Given that it's been a few months since I touched this, I'll probably have to do that again but I'll try to get everything working with runes mode. Thanks, @yagebu! |
Making it full-page (or just a full-screen modal?) doesn't need to have any impact on the state, it can still be rendered from the same
Yeah, that was a confusing mix of paradigms - let me know if you run into any problems with getting it working with runes, I also still run into weird things there, e.g. d16a84e |
|
I haven't had the time to devote to getting this to work: life has been busy. If anyone is interesting in taking a stab at this, please ahead! Otherwise, I will try to get around to this eventually. |
|
My two cents. I haven’t gone very deep into the details of imports in Fava, but I’m using beancount-import and it feels like the way to go that could be integrated with Fava, perhaps replacing the current approach: https://github.com/jbms/beancount-import?tab=readme-ov-file I’m currently running it alongside Fava as a separate service and it works really well. I was able to write importers for my local banks and then import thousands of transactions, including a manual review of each one, and it didn’t take weeks. I’m mentioning this because it may not be worth maintaining two parallel efforts for essentially the same problem. |
This is my first pass at making a bulk importer for Fava.
I find that one of the slowest parts of importing multiple transactions is that there's a lot of visual jumping. You have to look at the payee/narration, then jump to the postings, see if those make sense, sometimes you may need other hints (like the date or the amounts) before you're sure. Once you click next, you start over.
By grouping transactions by their "target account" (i.e., the "interesting" posting, where the "uninteresting" posting is the one that involves the account you are importing into), it's much easier to visually scan through the importer, catch problems, and make changes.
Known issues that I will address before converting from "draft" to "ready":
Known issues that I hope to address (either in this PR or in a follow up):
entriesarray and the runes magic broke those references. This might be fixable with$state.raw()but I haven't experimented.Nice to haves that I also hope to work on in the future: