Eventually, we need to clear that on the backend, but for now we
deal with it in the frontend.
Bonus: this also optimises the display of the circle by removing
O(n) backend requests.
Otherwise, this gives a nasty 500. A proper fix would be to flash
a message and return to the invite list, but that’s more complex
and will be tracked in #40.
- Manage members
- Update name
(Normally, I’d fix this up into the initial implementation
commit, but things happened in between and the rebase would be
painful.)
Previously, some kinds of errors would throw nice and fun cascades
of exceptions.
We now have a nice, clean error page for 500 and 503 (backend
connectivity) errors which includes minimal debugging information
for productive setups and a traceback for development setups.
In any case, the full exception is logged to the log with an error
ID which is printed on the error page.
- Avoid fighting import cycles using a factory function
- Collapse useless subpackages into simple modules
- Move flask plugins / infrastructure in own module
- Refactor how blueprints are used to localize information about
URL routing to app factory