]> git.openstreetmap.org Git - osqa.git/blobdiff - forum/views/admin.py
be able to pass additional context to the _edit_question view
[osqa.git] / forum / views / admin.py
index 724315f3410e38fff2fec870b1c163ac51303cb5..da9dc67cdc326bd4b7124b84d76657f60fdbdd27 100644 (file)
@@ -1,20 +1,21 @@
 from datetime import datetime, timedelta
 from datetime import datetime, timedelta
-import os, time, csv, random
+import time
 
 
+from django.views.decorators.csrf import csrf_exempt
 from django.shortcuts import render_to_response, get_object_or_404
 from django.core.urlresolvers import reverse
 from django.http import HttpResponseRedirect, HttpResponse, Http404
 from django.shortcuts import render_to_response, get_object_or_404
 from django.core.urlresolvers import reverse
 from django.http import HttpResponseRedirect, HttpResponse, Http404
-from forum.http_responses import HttpResponseUnauthorized
 from django.template import RequestContext
 from django.utils.translation import ugettext as _
 from django.utils import simplejson
 from django.db import models
 from django.template import RequestContext
 from django.utils.translation import ugettext as _
 from django.utils import simplejson
 from django.db import models
+
+from forum.http_responses import HttpResponseUnauthorized
 from forum.settings.base import Setting
 from forum.forms import MaintenanceModeForm, PageForm, CreateUserForm
 from forum.settings.forms import SettingsSetForm
 from forum.utils import pagination, html
 from forum.utils.mail import send_template_email
 from forum.settings.base import Setting
 from forum.forms import MaintenanceModeForm, PageForm, CreateUserForm
 from forum.settings.forms import SettingsSetForm
 from forum.utils import pagination, html
 from forum.utils.mail import send_template_email
-
 from forum.models import Question, Answer, User, Node, Action, Page, NodeState, Tag
 from forum.models.node import NodeMetaClass
 from forum.actions import NewPageAction, EditPageAction, PublishAction, DeleteAction, UserJoinsAction, CloseAction
 from forum.models import Question, Answer, User, Node, Action, Page, NodeState, Tag
 from forum.models.node import NodeMetaClass
 from forum.actions import NewPageAction, EditPageAction, PublishAction, DeleteAction, UserJoinsAction, CloseAction
@@ -56,6 +57,10 @@ def admin_page_wrapper(fn, request, *args, **kwargs):
 
     context['tools'] = [(name, fn.label) for name, fn in TOOLS.items()]
 
 
     context['tools'] = [(name, fn.label) for name, fn in TOOLS.items()]
 
+    # Show the navigation only to moderators and super users
+    if not context.has_key("hide_navigation"):
+        context['hide_navigation'] = not request.user.is_superuser
+
     unsaved = request.session.get('previewing_settings', {})
     context['unsaved'] = set([getattr(settings, s).set.name for s in unsaved.keys() if hasattr(settings, s)])
 
     unsaved = request.session.get('previewing_settings', {})
     context['unsaved'] = set([getattr(settings, s).set.name for s in unsaved.keys() if hasattr(settings, s)])
 
@@ -401,6 +406,12 @@ def edit_page(request, id=None):
     'published': published
     })
 
     'published': published
     })
 
+@admin_page
+def delete_page(request, id=None):
+    page = get_object_or_404(Page, id=id)
+    page.delete()
+    return HttpResponseRedirect(reverse('admin_static_pages'))
+
 @admin_tools_page(_('createuser'), _("Create new user"))
 def create_user(request):
     if request.POST:
 @admin_tools_page(_('createuser'), _("Create new user"))
 def create_user(request):
     if request.POST:
@@ -458,7 +469,7 @@ def node_management(request):
             selected_nodes = request.POST.getlist('_selected_node')
 
             if selected_nodes and request.POST.get('action', None):
             selected_nodes = request.POST.getlist('_selected_node')
 
             if selected_nodes and request.POST.get('action', None):
-                action = request.POST['action']
+                action = str(request.POST['action'])
                 selected_nodes = Node.objects.filter(id__in=selected_nodes)
 
                 message = _("No action performed")
                 selected_nodes = Node.objects.filter(id__in=selected_nodes)
 
                 message = _("No action performed")
@@ -565,9 +576,10 @@ def node_management(request):
     'state_types': state_types,
     'authors': authors,
     'tags': tags,
     'state_types': state_types,
     'authors': authors,
     'tags': tags,
-    'hide_menu': True
+    'hide_navigation': True
     }))
 
     }))
 
+@csrf_exempt
 @super_user_required
 def test_email_settings(request):
     user = request.user
 @super_user_required
 def test_email_settings(request):
     user = request.user