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
def staff_user_required(fn):
def wrapper(request, *args, **kwargs):
- if request.user.is_authenticated() and request.user.is_staff:
+ if request.user.is_authenticated() and (request.user.is_staff or request.user.is_superuser):
return fn(request, *args, **kwargs)
else:
return HttpResponseUnauthorized(request)
'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)])
'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:
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")
'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