From b619619b85594c2a25c272e93fbcdb5f356a2b2d Mon Sep 17 00:00:00 2001 From: Skia Date: Sat, 19 Nov 2016 15:28:21 +0100 Subject: [PATCH] Improve moderation tool in SAS --- core/templates/core/user_tools.jinja | 7 +++++-- core/urls.py | 2 +- sas/templates/sas/moderation.jinja | 13 +++++++++++-- sas/views.py | 18 +++++++++++++++++- 4 files changed, 34 insertions(+), 6 deletions(-) diff --git a/core/templates/core/user_tools.jinja b/core/templates/core/user_tools.jinja index 17517072..bd79f4c3 100644 --- a/core/templates/core/user_tools.jinja +++ b/core/templates/core/user_tools.jinja @@ -58,13 +58,16 @@ {%- endfor %} -{% if user.is_in_group(settings.SITH_GROUPS['communication-admin']['id']) %}

{% trans %}Communication{% endtrans %}

-{% endif %}
diff --git a/core/urls.py b/core/urls.py index 2fb01d69..1224c766 100644 --- a/core/urls.py +++ b/core/urls.py @@ -51,7 +51,7 @@ urlpatterns = [ url(r'^file/(?P[0-9]+)/prop/(?Ppopup)?$', FileEditPropView.as_view(), name='file_prop'), url(r'^file/(?P[0-9]+)/delete/(?Ppopup)?$', FileDeleteView.as_view(), name='file_delete'), url(r'^file/moderation$', FileModerationView.as_view(), name='file_moderation'), - url(r'^file/(?P[0-9]+)/moderate?$', FileModerateView.as_view(), name='file_moderate'), + url(r'^file/(?P[0-9]+)/moderate$', FileModerateView.as_view(), name='file_moderate'), url(r'^file/(?P[0-9]+)/download$', send_file, name='download'), # Page views diff --git a/sas/templates/sas/moderation.jinja b/sas/templates/sas/moderation.jinja index 04e36170..b73204ef 100644 --- a/sas/templates/sas/moderation.jinja +++ b/sas/templates/sas/moderation.jinja @@ -7,6 +7,7 @@ {% block content %}

{% trans %}SAS moderation{% endtrans %}

+
{% for p in pictures %}
{% if p.is_folder %} @@ -22,9 +23,17 @@ {% trans %}Owner: {% endtrans %}{{ p.owner.get_display_name() }}
{% trans %}Date: {% endtrans %}{{ p.date|date(DATE_FORMAT) }} {{ p.date|time(TIME_FORMAT) }}

-

{% trans %}Moderate{% endtrans %} - - {% trans %}Delete{% endtrans %}

+

+ + {% trans %}Moderate{% endtrans %} +

+

+ + {% trans %}Delete{% endtrans %} +

{% endfor %} +

+
{% endblock %} diff --git a/sas/views.py b/sas/views.py index 2695d4b5..8a9d7912 100644 --- a/sas/views.py +++ b/sas/views.py @@ -6,6 +6,7 @@ from django.utils.translation import ugettext as _ from django.utils import timezone from django.conf import settings from django import forms +from django.core.exceptions import PermissionDenied from ajax_select.fields import AutoCompleteSelectField, AutoCompleteSelectMultipleField @@ -109,9 +110,24 @@ class AlbumView(CanViewMixin, DetailView, FormMixin): class ModerationView(TemplateView): template_name = "sas/moderation.jinja" + def get(self, request, *args, **kwargs): + if request.user.is_in_group(settings.SITH_SAS_ADMIN_GROUP_ID): + for k,v in request.GET.items(): + if k[:7] == "action_": + try: + pict = Picture.objects.filter(id=int(k[7:])).first() + if v == "delete": + pict.delete() + elif v == "moderate": + pict.is_moderated = True + pict.save() + except: pass + return super(ModerationView, self).get(request, *args, **kwargs) + raise PermissionDenied + def get_context_data(self, **kwargs): kwargs = super(ModerationView, self).get_context_data(**kwargs) - kwargs['pictures'] = [p for p in Picture.objects.filter(is_moderated=False).all() if p.is_in_sas] + kwargs['pictures'] = [p for p in Picture.objects.filter(is_moderated=False).order_by('id') if p.is_in_sas] return kwargs