Note issues uploading H264 video under Guix.
[mediagoblin.git] / mediagoblin / user_pages / lib.py
index e5c8defcabe33b2729d12b20c2a0f85faa478d02..b6741001bd9847f57b2ad5356d4b6dfc4b82369c 100644 (file)
 # You should have received a copy of the GNU Affero General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
+from mediagoblin import mg_globals
+from mediagoblin.db.base import Session
+from mediagoblin.db.models import CollectionItem, Report, TextComment, \
+                                  MediaEntry
 from mediagoblin.tools.mail import send_email
+from mediagoblin.tools.pluginapi import hook_runall
 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, MediaReport, CommentReport,
-                                  MediaComment, MediaEntry)
-from mediagoblin.user_pages import forms as user_forms
 
 
 def send_comment_email(user, comment, media, request):
@@ -38,11 +38,11 @@ def send_comment_email(user, comment, media, request):
     comment_url = request.urlgen(
                     'mediagoblin.user_pages.media_home.view_comment',
                     comment=comment.id,
-                    user=media.get_uploader.username,
+                    user=media.get_actor.username,
                     media=media.slug_or_id,
                     qualified=True) + '#comment'
 
-    comment_author = comment.get_author.username
+    comment_author = comment.get_actor.username
 
     rendered_email = render_template(
         request, 'mediagoblin/user_pages/comment_email.txt',
@@ -64,55 +64,50 @@ def send_comment_email(user, comment, media, request):
 def add_media_to_collection(collection, media, note=None, commit=True):
     collection_item = CollectionItem()
     collection_item.collection = collection.id
-    collection_item.media_entry = media.id
+    collection_item.get_object = media
     if note:
         collection_item.note = note
     Session.add(collection_item)
 
-    collection.items = collection.items + 1
+    collection.num_items = collection.num_items + 1
     Session.add(collection)
     Session.add(media)
 
+    hook_runall('collection_add_media', collection_item=collection_item)
+
     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.
+        report) into a Report.
 
     :param report_form          A MediaReportForm or a CommentReportForm object
                                   with valid information from a POST request.
     :param media_entry          A MediaEntry object. The MediaEntry being repo-
-                                  -rted by a MediaReport. In a CommentReport,
-                                  this will be None.
-    :param comment              A MediaComment object. The MediaComment being 
-                                  reported by a CommentReport. In a MediaReport
-                                  this will be None.
-
-    :returns                A MediaReport object if a valid MediaReportForm is
-                              passed as kwarg media_entry. This MediaReport has
+                                  -rted by a Report.
+    :param comment              A Comment object. The Comment being
+                                  reported by a Report.
+
+    :returns                A Report object if a valid MediaReportForm is
+                              passed as kwarg media_entry. This Report has
                               not been saved.
-    :returns                A CommentReport object if a valid CommentReportForm
-                              is passed as kwarg comment. This CommentReport
-                              has not been saved.
     :returns                None if the form_dict is invalid.
     """
-
+    report_object = Report()
     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
+        report_object.obj = comment.comment()
+        report_object.reported_user_id = TextComment.query.get(
+            comment.id).get_actor.id
     elif report_form.validate() and media_entry is not None:
-        report_object = MediaReport()
-        report_object.media_entry_id = media_entry.id
+        report_object.obj = media_entry
         report_object.reported_user_id = MediaEntry.query.get(
-            media_entry.id).get_uploader.id
+            media_entry.id).get_actor.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
-