Refactor the sidebar to use Django templates
With this change the html for the sidebar is no longer generated by
Melange, instead it's delegated to Django (which is what it does
best anyway). The downside is that it is no longer possible to have
arbitrary deeply nested menu's.
"Global Django exceptions"
class ObjectDoesNotExist(Exception):
"The requested object does not exist"
silent_variable_failure = True
class MultipleObjectsReturned(Exception):
"The query returned multiple objects when only one was expected."
pass
class SuspiciousOperation(Exception):
"The user did something suspicious"
pass
class PermissionDenied(Exception):
"The user did not have permission to do that"
pass
class ViewDoesNotExist(Exception):
"The requested view does not exist"
pass
class MiddlewareNotUsed(Exception):
"This middleware is not used in this server configuration"
pass
class ImproperlyConfigured(Exception):
"Django is somehow improperly configured"
pass
class FieldError(Exception):
"""Some kind of problem with a model field."""
pass
class ValidationError(Exception):
"""An error while validating data."""
pass