from datetime import datetime, timedelta
-import os, time, csv, random
+import json
+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 django.contrib import messages
+
+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
'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)])
'added_at', flat=True)
last_month_n_questions = Question.objects.filter_state(deleted=False).filter(added_at__lt=last_month).count()
- qgraph_data = simplejson.dumps([
+ qgraph_data = json.dumps([
(time.mktime(d.timetuple()) * 1000, i + last_month_n_questions)
for i, d in enumerate(last_month_questions)
])
last_month_n_users = User.objects.filter(date_joined__lt=last_month).count()
- ugraph_data = simplejson.dumps([
+ ugraph_data = json.dumps([
(time.mktime(d.timetuple()) * 1000, i + last_month_n_users)
for i, d in enumerate(last_month_users)
])
if not 'reset' in request.POST:
form.save()
- request.user.message_set.create(message=_("'%s' settings saved succesfully") % set_name)
+ messages.info(request, _("'%s' settings saved succesfully") % set_name)
if set_name in ('minrep', 'badges', 'repgain'):
settings.SETTINGS_PACK.set_value("custom")
settings.SETTINGS_PACK.set_value("bootstrap")
- request.user.message_set.create(message=_('Bootstrap mode enabled'))
+ messages.info(request, _('Bootstrap mode enabled'))
return HttpResponseRedirect(reverse('admin_index'))
@super_user_required
settings.SETTINGS_PACK.set_value("default")
- request.user.message_set.create(message=_('All values reverted to defaults'))
+ messages.info(request, ('All values reverted to defaults'))
return HttpResponseRedirect(reverse('admin_index'))
u.reputation = u.reputes.aggregate(reputation=models.Sum('value'))['reputation']
u.save()
- request.user.message_set.create(message=_('All values recalculated'))
+ messages.info(request, _('All values recalculated'))
return HttpResponseRedirect(reverse('admin_index'))
@admin_page
else:
message = _('Settings adjusted')
- request.user.message_set.create(message=message)
+ messages.info(request, message)
return HttpResponseRedirect(reverse('admin_maintenance'))
elif 'open' in request.POST:
settings.MAINTAINANCE_MODE.set_value(None)
- request.user.message_set.create(message=_("Your site is now running normally"))
+ messages.info(request, _("Your site is now running normally"))
return HttpResponseRedirect(reverse('admin_maintenance'))
else:
form = MaintenanceModeForm(initial={'ips': request.META['REMOTE_ADDR'],
'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:
user_.save()
UserJoinsAction(user=user_).save()
- request.user.message_set.create(message=_("New user created sucessfully. %s.") % html.hyperlink(
+ messages.info(request, _("New user created sucessfully. %s.") % html.hyperlink(
user_.get_profile_url(), _("See %s profile") % user_.username, target="_blank"))
return HttpResponseRedirect(reverse("admin_tools", kwargs={'name': 'createuser'}))
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")
message = _("All selected nodes deleted")
- request.user.message_set.create(message=message)
+ messages.info(request, message)
params = pagination.generate_uri(request.GET, ('page',))
'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
'osqaadmin/test_email_settings.html',
{ 'user': user, },
RequestContext(request)
- )
\ No newline at end of file
+ )