TODO: Additions from recent user feedback and development.
This commit is contained in:
		
							parent
							
								
									ceba336665
								
							
						
					
					
						commit
						73b50097a2
					
				
					 1 changed files with 53 additions and 3 deletions
				
			
		
							
								
								
									
										56
									
								
								TODO.rst
									
										
									
									
									
								
							
							
						
						
									
										56
									
								
								TODO.rst
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -1,11 +1,61 @@
 | 
			
		|||
TODO
 | 
			
		||||
====
 | 
			
		||||
 | 
			
		||||
In roughly priority order:
 | 
			
		||||
Paying down debt
 | 
			
		||||
----------------
 | 
			
		||||
 | 
			
		||||
* Add documentation for the changes since ba81dc9.
 | 
			
		||||
* Add tests for the changes since ba81dc9.
 | 
			
		||||
 | 
			
		||||
Template multiplexing with action hooks
 | 
			
		||||
---------------------------------------
 | 
			
		||||
 | 
			
		||||
The big idea: make it easier for hooks to customize *what* template(s) are rendered by moving more of the process into hooks—including template rendering itself.
 | 
			
		||||
 | 
			
		||||
Required:
 | 
			
		||||
 | 
			
		||||
* Add some sort of ordering for hooks
 | 
			
		||||
  Thinking an enum of named stages: data adders, data mungers, filters, actions.
 | 
			
		||||
  The return value of ``hooks.load_all()`` must respect this ordering.
 | 
			
		||||
 | 
			
		||||
* Make the main loop seed the entry data with information about the importer used.
 | 
			
		||||
 | 
			
		||||
* Move template rendering into a hook, where the template to load is determined by a value in the entry data.
 | 
			
		||||
 | 
			
		||||
Extra customizations after that's done:
 | 
			
		||||
 | 
			
		||||
* 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.)
 | 
			
		||||
 | 
			
		||||
New importers
 | 
			
		||||
-------------
 | 
			
		||||
 | 
			
		||||
* Stripe import via API
 | 
			
		||||
* YourCause
 | 
			
		||||
* Network for Good
 | 
			
		||||
 | 
			
		||||
Other feature requests
 | 
			
		||||
----------------------
 | 
			
		||||
 | 
			
		||||
* Some way of preventing re-imports
 | 
			
		||||
 | 
			
		||||
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).
 | 
			
		||||
* Try all importers even after one fails
 | 
			
		||||
* Clean up error reporting on bad configuration file syntax.
 | 
			
		||||
 | 
			
		||||
Code infrastructure
 | 
			
		||||
-------------------
 | 
			
		||||
 | 
			
		||||
* Open files for import in binary mode; add a text-wrapping importer base
 | 
			
		||||
* Add some sort of ordering for hooks
 | 
			
		||||
* Take template rendering out of the main loop, and make it just another hook
 | 
			
		||||
* 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.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue