X-Git-Url: https://git.openstreetmap.org./osqa.git/blobdiff_plain/c75aa9f5fc8cfb7dfbdc62adc445d7dbf60fb8ab..f3fa23854f0192e9bcf5bf6ee2bd731f2f003900:/forum/views/admin.py diff --git a/forum/views/admin.py b/forum/views/admin.py index e9e9d47..da9dc67 100644 --- a/forum/views/admin.py +++ b/forum/views/admin.py @@ -1,20 +1,21 @@ 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 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 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.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 @@ -54,7 +55,11 @@ def admin_page_wrapper(fn, request, *args, **kwargs): 'form', 'moderation', 'css', 'headandfoot', 'head', 'view', 'urls')] , lambda s1, s2: s1.weight - s2.weight) - context['tools'] = TOOLS + 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)]) @@ -401,6 +406,12 @@ def edit_page(request, id=None): '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: @@ -458,7 +469,7 @@ def node_management(request): 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") @@ -565,9 +576,10 @@ def node_management(request): '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