aboutsummaryrefslogtreecommitdiffstats
path: root/mediagoblin/user_pages/lib.py
diff options
context:
space:
mode:
Diffstat (limited to 'mediagoblin/user_pages/lib.py')
-rw-r--r--mediagoblin/user_pages/lib.py35
1 files changed, 34 insertions, 1 deletions
diff --git a/mediagoblin/user_pages/lib.py b/mediagoblin/user_pages/lib.py
index 2f47e4b1..7f03fcd3 100644
--- a/mediagoblin/user_pages/lib.py
+++ b/mediagoblin/user_pages/lib.py
@@ -19,7 +19,9 @@ from mediagoblin.tools.template import render_template
from mediagoblin.tools.translate import pass_to_ugettext as _
from mediagoblin import mg_globals
from mediagoblin.db.base import Session
-from mediagoblin.db.models import CollectionItem
+from mediagoblin.db.models import (CollectionItem, MediaReport, CommentReport,
+ MediaComment, MediaEntry)
+from mediagoblin.user_pages import forms as user_forms
def send_comment_email(user, comment, media, request):
@@ -75,3 +77,34 @@ def add_media_to_collection(collection, media, note=None, commit=True):
if commit:
Session.commit()
+
+def build_report_object(report_form, media_entry=None, comment=None):
+ """
+ This function is used to convert a form object (from a User filing a
+ report) into either a MediaReport or CommentReport object.
+
+ :param report_form should be a MediaReportForm or a CommentReportForm
+ object
+ :param
+
+ :returns either of MediaReport or a CommentReport object that has not been
+ saved. In case of an improper form_dict, returns None
+ """
+
+ if report_form.validate() and comment is not None:
+ report_object = CommentReport()
+ report_object.comment_id = comment.id
+ report_object.reported_user_id = MediaComment.query.get(
+ comment.id).get_author.id
+ elif report_form.validate() and media_entry is not None:
+ report_object = MediaReport()
+ report_object.media_entry_id = media_entry.id
+ report_object.reported_user_id = MediaEntry.query.get(
+ media_entry.id).get_uploader.id
+ else:
+ return None
+
+ report_object.report_content = report_form.report_reason.data
+ report_object.reporter_id = report_form.reporter_id.data
+ return report_object
+