X-Git-Url: https://git.openstreetmap.org./osqa.git/blobdiff_plain/c5240df75267cc1201c0e4673c34cc25149698e4..1d0ead96808480b5c8fed05dd5b66a5c51d436fd:/forum/views/admin.py?ds=sidebyside diff --git a/forum/views/admin.py b/forum/views/admin.py index d277954..543623d 100644 --- a/forum/views/admin.py +++ b/forum/views/admin.py @@ -8,9 +8,8 @@ from django.template import RequestContext from django.utils.translation import ugettext as _ from django.utils import simplejson from django.db.models import Sum - from forum.settings.base import Setting -from forum.settings.forms import SettingsSetForm +from forum.settings.forms import SettingsSetForm, MaintenanceModeForm from forum.models import Question, Answer, User, Node, Action from forum import settings @@ -49,6 +48,7 @@ def dashboard(request): 'settings_pack': unicode(settings.SETTINGS_PACK), 'statistics': get_statistics(), 'recent_activity': get_recent_activity(), + 'flagged_posts': get_flagged_posts(), }) @super_user_required @@ -142,6 +142,9 @@ def get_default(request, set_name, var_name): def get_recent_activity(): return Action.objects.order_by('-action_date')[0:30] +def get_flagged_posts(): + return Action.objects.filter(action_type="flag").order_by('-action_date')[0:30] + def get_statistics(): return { 'total_users': User.objects.all().count(), @@ -200,15 +203,10 @@ def go_bootstrap(request): settings.INITIAL_REP.set_value(1) settings.MAX_REP_BY_UPVOTE_DAY.set_value(300) settings.REP_GAIN_BY_UPVOTED.set_value(15) - settings.REP_LOST_BY_UPVOTE_CANCELED.set_value(15) settings.REP_LOST_BY_DOWNVOTED.set_value(1) settings.REP_LOST_BY_DOWNVOTING.set_value(0) - settings.REP_GAIN_BY_DOWNVOTE_CANCELED.set_value(1) - settings.REP_GAIN_BY_CANCELING_DOWNVOTE.set_value(0) settings.REP_GAIN_BY_ACCEPTED.set_value(25) - settings.REP_LOST_BY_ACCEPTED_CANCELED.set_value(25) settings.REP_GAIN_BY_ACCEPTING.set_value(5) - settings.REP_LOST_BY_CANCELING_ACCEPTED.set_value(5) settings.REP_LOST_BY_FLAGGED.set_value(2) settings.REP_LOST_BY_FLAGGED_3_TIMES.set_value(30) settings.REP_LOST_BY_FLAGGED_5_TIMES.set_value(100) @@ -248,3 +246,40 @@ def recalculate_denormalized(request): request.user.message_set.create(message=_('All values recalculated')) return HttpResponseRedirect(reverse('admin_index')) +@admin_page +def maintenance(request): + if request.POST: + if 'close' in request.POST or 'adjust' in request.POST: + form = MaintenanceModeForm(request.POST) + + if form.is_valid(): + settings.MAINTAINANCE_MODE.set_value({ + 'allow_ips': form.cleaned_data['ips'], + 'message': form.cleaned_data['message']}) + + if 'close' in request.POST: + message = _('Maintenance mode enabled') + else: + message = _('Settings adjusted') + + request.user.message_set.create(message=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")) + return HttpResponseRedirect(reverse('admin_maintenance')) + else: + form = MaintenanceModeForm(initial={'ips': request.META['REMOTE_ADDR'], + 'message': _('Currently down for maintenance. We\'ll be back soon')}) + + return ('osqaadmin/maintenance.html', {'form': form, 'in_maintenance': settings.MAINTAINANCE_MODE.value is not None}) + + +@admin_page +def flagged_posts(request): + return ('osqaadmin/flagged_posts.html', { + 'flagged_posts': get_flagged_posts(), + }) + +