[ckan-dev] Action functions raising exceptions
Sean Hammond
sean.hammond at okfn.org
Tue Aug 13 15:31:31 UTC 2013
Dominik noticed this problem:
- All action functions are available to templates via
ckan.lib.helpers.get_action()
- Action functions can raise exceptions, e.g. NotFound if you call
user_show() for a user that doesn't exist (generally lots of action
functions raise lots of exceptions for lots of reasons)
- Jinja templates cannot catch exceptions (as far as I know)
- Template crashes, CKAN crashes
It seems to me that either:
1. Action functions all have to be changed to not raise exceptions, or
2. Action functions should not be available to templates (but we can
have template helper functions for individual action functions that
catch any exceptions raised and handle them appropriately), or
3. lib.helpers.get_action() catches all exceptions and returns some sort
of error dict or something that then allows us to put error-handling
logic into the templates
Maybe there are other possible solutions but those are the 3 I can think
of.
More information about the ckan-dev
mailing list