|
@@ -272,7 +272,7 @@ class AdminSite(object):
|
|
|
def urls(self):
|
|
|
return self.get_urls(), 'admin', self.name
|
|
|
|
|
|
- def each_context(self):
|
|
|
+ def each_context(self, request):
|
|
|
"""
|
|
|
Returns a dictionary of variables to put in the template context for
|
|
|
*every* page in the admin site.
|
|
@@ -281,6 +281,7 @@ class AdminSite(object):
|
|
|
'site_title': self.site_title,
|
|
|
'site_header': self.site_header,
|
|
|
'site_url': self.site_url,
|
|
|
+ 'has_permission': self.has_permission(request),
|
|
|
}
|
|
|
|
|
|
def password_change(self, request, extra_context=None):
|
|
@@ -294,7 +295,7 @@ class AdminSite(object):
|
|
|
'current_app': self.name,
|
|
|
'password_change_form': AdminPasswordChangeForm,
|
|
|
'post_change_redirect': url,
|
|
|
- 'extra_context': dict(self.each_context(), **(extra_context or {})),
|
|
|
+ 'extra_context': dict(self.each_context(request), **(extra_context or {})),
|
|
|
}
|
|
|
if self.password_change_template is not None:
|
|
|
defaults['template_name'] = self.password_change_template
|
|
@@ -307,7 +308,7 @@ class AdminSite(object):
|
|
|
from django.contrib.auth.views import password_change_done
|
|
|
defaults = {
|
|
|
'current_app': self.name,
|
|
|
- 'extra_context': dict(self.each_context(), **(extra_context or {})),
|
|
|
+ 'extra_context': dict(self.each_context(request), **(extra_context or {})),
|
|
|
}
|
|
|
if self.password_change_done_template is not None:
|
|
|
defaults['template_name'] = self.password_change_done_template
|
|
@@ -336,7 +337,7 @@ class AdminSite(object):
|
|
|
from django.contrib.auth.views import logout
|
|
|
defaults = {
|
|
|
'current_app': self.name,
|
|
|
- 'extra_context': dict(self.each_context(), **(extra_context or {})),
|
|
|
+ 'extra_context': dict(self.each_context(request), **(extra_context or {})),
|
|
|
}
|
|
|
if self.logout_template is not None:
|
|
|
defaults['template_name'] = self.logout_template
|
|
@@ -357,7 +358,7 @@ class AdminSite(object):
|
|
|
# it cannot import models from other applications at the module level,
|
|
|
# and django.contrib.admin.forms eventually imports User.
|
|
|
from django.contrib.admin.forms import AdminAuthenticationForm
|
|
|
- context = dict(self.each_context(),
|
|
|
+ context = dict(self.each_context(request),
|
|
|
title=_('Log in'),
|
|
|
app_path=request.get_full_path(),
|
|
|
)
|
|
@@ -431,7 +432,7 @@ class AdminSite(object):
|
|
|
app['models'].sort(key=lambda x: x['name'])
|
|
|
|
|
|
context = dict(
|
|
|
- self.each_context(),
|
|
|
+ self.each_context(request),
|
|
|
title=self.index_title,
|
|
|
app_list=app_list,
|
|
|
)
|
|
@@ -489,7 +490,7 @@ class AdminSite(object):
|
|
|
raise Http404('The requested admin page does not exist.')
|
|
|
# Sort the models alphabetically within each app.
|
|
|
app_dict['models'].sort(key=lambda x: x['name'])
|
|
|
- context = dict(self.each_context(),
|
|
|
+ context = dict(self.each_context(request),
|
|
|
title=_('%(app)s administration') % {'app': app_name},
|
|
|
app_list=[app_dict],
|
|
|
app_label=app_label,
|