diff options
Diffstat (limited to 'django/core/extensions.py')
| -rw-r--r-- | django/core/extensions.py | 82 |
1 files changed, 0 insertions, 82 deletions
diff --git a/django/core/extensions.py b/django/core/extensions.py deleted file mode 100644 index c03f63addc..0000000000 --- a/django/core/extensions.py +++ /dev/null @@ -1,82 +0,0 @@ -# This module collects helper functions and classes that "span" multiple levels -# of MVC. In other words, these functions/classes introduce controlled coupling -# for convenience's sake. - -from django.core.exceptions import Http404, ImproperlyConfigured, ObjectDoesNotExist -from django.core.template import Context, loader -from django.conf.settings import TEMPLATE_CONTEXT_PROCESSORS -from django.utils.httpwrappers import HttpResponse - -_standard_context_processors = None - -# This is a function rather than module-level procedural code because we only -# want it to execute if somebody uses DjangoContext. -def get_standard_processors(): - global _standard_context_processors - if _standard_context_processors is None: - processors = [] - for path in TEMPLATE_CONTEXT_PROCESSORS: - i = path.rfind('.') - module, attr = path[:i], path[i+1:] - try: - mod = __import__(module, '', '', [attr]) - except ImportError, e: - raise ImproperlyConfigured, 'Error importing request processor module %s: "%s"' % (module, e) - try: - func = getattr(mod, attr) - except AttributeError: - raise ImproperlyConfigured, 'Module "%s" does not define a "%s" callable request processor' % (module, attr) - processors.append(func) - _standard_context_processors = tuple(processors) - return _standard_context_processors - -def render_to_response(*args, **kwargs): - return HttpResponse(loader.render_to_string(*args, **kwargs)) -load_and_render = render_to_response # For backwards compatibility. - -def get_object_or_404(mod, **kwargs): - try: - return mod.get_object(**kwargs) - except ObjectDoesNotExist: - raise Http404 - -def get_list_or_404(mod, **kwargs): - obj_list = mod.get_list(**kwargs) - if not obj_list: - raise Http404 - return obj_list - -class DjangoContext(Context): - """ - This subclass of template.Context automatically populates itself using - the processors defined in TEMPLATE_CONTEXT_PROCESSORS. - Additional processors can be specified as a list of callables - using the "processors" keyword argument. - """ - def __init__(self, request, dict=None, processors=None): - Context.__init__(self, dict) - if processors is None: - processors = () - else: - processors = tuple(processors) - for processor in get_standard_processors() + processors: - self.update(processor(request)) - -# PermWrapper and PermLookupDict proxy the permissions system into objects that -# the template system can understand. - -class PermLookupDict: - def __init__(self, user, module_name): - self.user, self.module_name = user, module_name - def __repr__(self): - return str(self.user.get_permission_list()) - def __getitem__(self, perm_name): - return self.user.has_perm("%s.%s" % (self.module_name, perm_name)) - def __nonzero__(self): - return self.user.has_module_perms(self.module_name) - -class PermWrapper: - def __init__(self, user): - self.user = user - def __getitem__(self, module_name): - return PermLookupDict(self.user, module_name) |
