2017-12-28 15:34:19 +00:00
TODO
====
2017-12-28 16:35:19 +00:00
Template multiplexing with action hooks
---------------------------------------
* Add a hook that simply reads information from a configuration file section `` [template variables] `` and adds it to the entry data.
* Add a hook that changes what template to use based on other entry data. (This needs more specification.)
2017-12-31 23:52:30 +00:00
OR, should this be a hook that just adds more entry data, and trusts the Ledger entry template to use it?
2017-12-28 16:35:19 +00:00
2018-01-12 16:05:44 +00:00
Bug fixes
---------
* Parsing open date ranges raises an exception
2017-12-28 16:35:19 +00:00
New importers
-------------
2017-12-18 18:26:32 +00:00
* Stripe import via API
2018-01-12 16:05:44 +00:00
* This is going to require giving importer objects the configuration so they can read things like API keys.
2017-12-28 16:35:19 +00:00
* YourCause
* Network for Good
Other feature requests
----------------------
2017-12-18 18:26:32 +00:00
* Some way of preventing re-imports
2017-12-28 16:35:19 +00:00
User niceties
-------------
These haven't been requested yet but it's easy to imagine how they make the program more user-friendly.
* `` load_hooks `` and `` skip_hooks `` configuration options to limit what hooks are used.
Setting `` load_hooks `` means "skip everything not in this list."
Not setting `` load_hooks `` means "only skip what's listed in `` skip_hooks `` ."
If neither setting is set, `` skip_hooks `` should default to a list of hooks that have business-specific logic (currently just `` add_entity `` ).
If a hook is listed in both, it's either skipped or a configuration error (TBD).
2017-12-18 18:26:32 +00:00
* Try all importers even after one fails
2017-12-28 16:35:19 +00:00
* Clean up error reporting on bad configuration file syntax.
Code infrastructure
-------------------
2017-12-18 18:26:32 +00:00
* Open files for import in binary mode; add a text-wrapping importer base
2017-12-28 16:35:19 +00:00
* Write a utility dict transformer. Given a source dictionary, it returns something like `` {new_key: transform(source[old_key]) for old_key, transform, new_key in configuration} `` .
A lot of the CSV importers are doing this ad hoc now, so refactoring out a common way to do it could help speed up development of future importers.