aboutsummaryrefslogtreecommitdiffstats
path: root/mediagoblin/user_pages
diff options
context:
space:
mode:
Diffstat (limited to 'mediagoblin/user_pages')
-rw-r--r--mediagoblin/user_pages/forms.py6
-rw-r--r--mediagoblin/user_pages/lib.py15
-rw-r--r--mediagoblin/user_pages/views.py22
3 files changed, 23 insertions, 20 deletions
diff --git a/mediagoblin/user_pages/forms.py b/mediagoblin/user_pages/forms.py
index effe49e1..284dd7b8 100644
--- a/mediagoblin/user_pages/forms.py
+++ b/mediagoblin/user_pages/forms.py
@@ -59,9 +59,3 @@ class MediaReportForm(wtforms.Form):
report_reason = wtforms.TextAreaField('Reason for Reporting')
media_entry_id = wtforms.IntegerField()
reporter_id = wtforms.IntegerField()
-
-class ReportForm(wtforms.Form):
- report_reason = wtforms.TextAreaField('Reason for Reporting')
- media_entry_id = wtforms.IntegerField()
- reporter_id = wtforms.IntegerField()
- comment_id = wtforms.IntegerField()
diff --git a/mediagoblin/user_pages/lib.py b/mediagoblin/user_pages/lib.py
index 9c8ddee6..557c4853 100644
--- a/mediagoblin/user_pages/lib.py
+++ b/mediagoblin/user_pages/lib.py
@@ -79,12 +79,15 @@ def add_media_to_collection(collection, media, note=None, commit=True):
def build_report_form(form_dict):
"""
- :param form_dict should be an ImmutableMultiDict object which is what is
- returned from 'request.form.' The Object should have valid keys
- matching the fields in either MediaReportForm or CommentReportForm
+ This function is used to convert a form dictionary (from a User filing a
+ report) into either a MediaReport or CommentReport object.
- :returns either of MediaReport or a CommentReport object that has not been saved.
- In case of an improper form_dict, returns None
+ :param form_dict should be an ImmutableMultiDict object as is returned from
+ 'request.form.' The Object should have valid keys matching the fields
+ in either MediaReportForm or CommentReportForm
+
+ :returns either of MediaReport or a CommentReport object that has not been
+ saved. In case of an improper form_dict, returns None
"""
if 'comment_id' in form_dict.keys():
report_form = user_forms.CommentReportForm(form_dict)
@@ -92,6 +95,7 @@ def build_report_form(form_dict):
report_form = user_forms.MediaReportForm(form_dict)
else:
return None
+
if report_form.validate() and 'comment_id' in form_dict.keys():
report_model = CommentReport()
report_model.comment_id = report_form.comment_id.data
@@ -100,6 +104,7 @@ def build_report_form(form_dict):
report_model.media_entry_id = report_form.media_entry_id.data
else:
return None
+
report_model.report_content = report_form.report_reason.data or u''
report_model.reporter_id = report_form.reporter_id.data
return report_model
diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py
index 94cccc66..a0eb67db 100644
--- a/mediagoblin/user_pages/views.py
+++ b/mediagoblin/user_pages/views.py
@@ -20,7 +20,7 @@ import datetime
from mediagoblin import messages, mg_globals
from mediagoblin.db.models import (MediaEntry, MediaTag, Collection,
CollectionItem, User, MediaComment,
- CommentReport, MediaReport)
+ CommentReport, MediaReport, Group)
from mediagoblin.tools.response import render_to_response, render_404, \
redirect, redirect_obj
from mediagoblin.tools.translate import pass_to_ugettext as _
@@ -30,7 +30,7 @@ from mediagoblin.user_pages.lib import (send_comment_email, build_report_form,
add_media_to_collection)
from mediagoblin.decorators import (uses_pagination, get_user_media_entry,
- get_media_entry_by_id,
+ get_media_entry_by_id, user_in_group,
require_active_login, user_may_delete_media, user_may_alter_collection,
get_user_collection, get_user_collection_item, active_user_from_url,
get_media_comment_by_id)
@@ -621,22 +621,26 @@ def processing_panel(request):
@require_active_login
@get_user_media_entry
-def file_a_report(request, media, comment=None):
+@user_in_group(u'reporter')
+def file_a_report(request, media, comment=None, required_group=1):
if request.method == "POST":
report_form = build_report_form(request.form)
report_form.save()
+
return redirect(
- request,
- 'index')
+ request,
+ 'index')
+
if comment is not None:
context = {'media': media,
- 'comment':comment}
+ 'comment':comment}
else:
context = {'media': media}
+
return render_to_response(
- request,
- 'mediagoblin/user_pages/report.html',
- context)
+ request,
+ 'mediagoblin/user_pages/report.html',
+ context)
@require_active_login
@get_user_media_entry