diff options
Diffstat (limited to 'mediagoblin/user_pages')
-rw-r--r-- | mediagoblin/user_pages/forms.py | 6 | ||||
-rw-r--r-- | mediagoblin/user_pages/lib.py | 15 | ||||
-rw-r--r-- | mediagoblin/user_pages/views.py | 22 |
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 |