Browse Source

Fixed navs on error pages

Rafał Pitoń 11 years ago
parent
commit
c562c7e39a
2 changed files with 20 additions and 10 deletions
  1. 13 6
      misago/admin/views/__init__.py
  2. 7 4
      misago/admin/views/errorpages.py

+ 13 - 6
misago/admin/views/__init__.py

@@ -21,7 +21,7 @@ def get_protected_namespace(request):
         return None
         return None
 
 
 
 
-def render(request, template, context=None):
+def render(request, template, context=None, error_page=False):
     context = context or {}
     context = context or {}
 
 
     navigation = site.visible_branches(request)
     navigation = site.visible_branches(request)
@@ -39,11 +39,18 @@ def render(request, template, context=None):
 
 
     context.update({'sections': sections, 'actions': actions, 'pages': pages})
     context.update({'sections': sections, 'actions': actions, 'pages': pages})
 
 
-    context['active_link'] = None
-    for item in navigation[-1]:
-        if item['is_active']:
-            context['active_link'] = item
-            break
+    if error_page:
+        # admittedly haxy solution for displaying navs on error pages
+        context['actions'] = []
+        context['pages'] = []
+        for item in navigation[0]:
+            item['is_active'] = False
+    else:
+        context['active_link'] = None
+        for item in navigation[-1]:
+            if item['is_active']:
+                context['active_link'] = item
+                break
 
 
     return dj_render(request, template, context)
     return dj_render(request, template, context)
 
 

+ 7 - 4
misago/admin/views/errorpages.py

@@ -1,6 +1,7 @@
-from django.shortcuts import redirect, render
+from django.shortcuts import redirect
 from misago.admin.auth import is_admin_session, update_admin_session
 from misago.admin.auth import is_admin_session, update_admin_session
-from misago.admin.views import get_protected_namespace, protected_admin_view
+from misago.admin.views import (render, get_protected_namespace,
+                                protected_admin_view)
 
 
 
 
 # Magic error page used by admin
 # Magic error page used by admin
@@ -11,7 +12,8 @@ def _error_page(request, code, message=None):
 
 
         response = render(request,
         response = render(request,
                           template_pattern,
                           template_pattern,
-                          {'message': message})
+                          {'message': message},
+                          error_page=True)
         response.status_code = code
         response.status_code = code
         return response
         return response
     else:
     else:
@@ -33,7 +35,8 @@ def _csrf_failure(request, reason=""):
     if is_admin_session(request):
     if is_admin_session(request):
         update_admin_session(request)
         update_admin_session(request)
         response = render(
         response = render(
-            request, 'misago/admin/errorpages/csrf_failure_authenticated.html')
+            request, 'misago/admin/errorpages/csrf_failure_authenticated.html',
+            error_page=True)
     else:
     else:
         response = render(request, 'misago/admin/errorpages/csrf_failure.html')
         response = render(request, 'misago/admin/errorpages/csrf_failure.html')