From: qw3rty Date: Tue, 18 May 2010 15:58:10 +0000 (+0000) Subject: add the "Flagged Posts" link to the admin page. X-Git-Tag: live~833 X-Git-Url: https://git.openstreetmap.org/osqa.git/commitdiff_plain/7063a30530149a5b94fd341e1e3b6039f062bb56 add the "Flagged Posts" link to the admin page. git-svn-id: http://svn.osqa.net/svnroot/osqa/trunk@298 0cfe37f9-358a-4d5e-be75-b63607b5c754 --- diff --git a/forum/skins/default/templates/node/flagged_item.html b/forum/skins/default/templates/node/flagged_item.html new file mode 100644 index 0000000..b22c48b --- /dev/null +++ b/forum/skins/default/templates/node/flagged_item.html @@ -0,0 +1,6 @@ +{% load extra_tags %} +
+ {{ action.describe|safe }} + at + {{ action.action_date }} +
\ No newline at end of file diff --git a/forum/skins/default/templates/osqaadmin/djstyle_base.html b/forum/skins/default/templates/osqaadmin/djstyle_base.html index f9e941f..05f4bd1 100644 --- a/forum/skins/default/templates/osqaadmin/djstyle_base.html +++ b/forum/skins/default/templates/osqaadmin/djstyle_base.html @@ -98,6 +98,9 @@ + diff --git a/forum/skins/default/templates/osqaadmin/flagged_posts.html b/forum/skins/default/templates/osqaadmin/flagged_posts.html new file mode 100644 index 0000000..a58d13e --- /dev/null +++ b/forum/skins/default/templates/osqaadmin/flagged_posts.html @@ -0,0 +1,25 @@ +{% extends basetemplate %} + +{% load i18n %} +{% load user_tags %} + +{% block subtitle %}{% trans "Flagged Posts" %}{% endblock %} +{% block pagename %}{% trans "Flagged Posts" %}{% endblock %} +{% block description %}{% trans "This are the posts that have been flagged by users." %}{% endblock %} + +{% block admincontent %} +
+ + + + + +
{% trans "Flagged Posts" %}
+ + {% for post in flagged_posts %} + + {% endfor %} +
{% flagged_item post request.user %}
+
+
+{% endblock %} \ No newline at end of file diff --git a/forum/templatetags/user_tags.py b/forum/templatetags/user_tags.py index cd22f26..d41cf47 100644 --- a/forum/templatetags/user_tags.py +++ b/forum/templatetags/user_tags.py @@ -54,6 +54,16 @@ def activity_item(parser, token): return ActivityNode(activity, viewer) +@register.tag +def flagged_item(parser, token): + try: + tag_name, post, viewer = token.split_contents() + except ValueError: + raise template.TemplateSyntaxError, "%r tag requires exactly two arguments" % token.contents.split()[0] + + return ActivityNode(post, viewer) + + @register.inclusion_tag('users/menu.html') def user_menu(request, user): return dict(viewer=request.user, user=user) diff --git a/forum/urls.py b/forum/urls.py index a262fd5..58ccc2c 100644 --- a/forum/urls.py +++ b/forum/urls.py @@ -137,6 +137,7 @@ urlpatterns += patterns('', url(r'^%s%s$' % (_('admin/'), _('go_defaults/')), app.admin.go_defaults, name="admin_go_defaults"), url(r'^%s%s(?P\w+)/(?P\w+)/$' % (_('admin/'), _('settings/')), app.admin.get_default, name="admin_default"), url(r'^%s%s$' % (_('admin/'), _('maintenance/')), app.admin.maintenance, name="admin_maintenance"), + url(r'^%s%s$' % (_('admin/'), _('flagged_posts/')), app.admin.flagged_posts, name="admin_flagged_posts"), url(r'^%s%s(?P\w+)/$' % (_('admin/'), _('settings/')), app.admin.settings_set, name="admin_set"), diff --git a/forum/views/admin.py b/forum/views/admin.py index f154ea1..5ce639c 100644 --- a/forum/views/admin.py +++ b/forum/views/admin.py @@ -7,12 +7,11 @@ from django.http import HttpResponseRedirect, HttpResponse, HttpResponseForbidde from django.template import RequestContext from django.utils.translation import ugettext as _ from django.utils import simplejson -from django.db.models import Sum - +from django.db.models import Sum, Q, Count from forum.settings.base import Setting from forum.settings.forms import SettingsSetForm, MaintenanceModeForm -from forum.models import Question, Answer, User, Node, Action +from forum.models import Question, Answer, User, Node, Action, base from forum import settings def super_user_required(fn): @@ -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(), @@ -273,3 +276,10 @@ def maintenance(request): 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(), + }) + +