From: Jessica Tallon Date: Wed, 29 Oct 2014 08:47:09 +0000 (+0000) Subject: Fix #1017 - Exception caused by activity being set on incorrect foreign key X-Git-Url: https://vcs.fsf.org/?a=commitdiff_plain;h=bc2c06a10d9c15ec161f51e8d942cb2e5028ce47;p=mediagoblin.git Fix #1017 - Exception caused by activity being set on incorrect foreign key The .activity ForeignKey on several models such as MediaEntry expects a ActivityIntmediatory ID not an Activity ID however in submit code the activity attribute was being set the Activity, simply removing this assignment should fix the issue as everything is set correctly at this point. I have also moved the creation of the activity above the processing of media to avoid race conditions. --- diff --git a/mediagoblin/submit/lib.py b/mediagoblin/submit/lib.py index ea24ec5c..ea05e00f 100644 --- a/mediagoblin/submit/lib.py +++ b/mediagoblin/submit/lib.py @@ -195,18 +195,18 @@ def submit_media(mg_app, user, submitted_file, filename, else: feed_url = None + add_comment_subscription(user, entry) + + # Create activity + create_activity("post", entry, entry.uploader) + entry.save() + # Pass off to processing # # (... don't change entry after this point to avoid race # conditions with changes to the document via processing code) run_process_media(entry, feed_url) - add_comment_subscription(user, entry) - - # Create activity - entry.activity = create_activity("post", entry, entry.uploader).id - entry.save() - return entry @@ -291,11 +291,11 @@ def api_add_to_feed(request, entry): qualified=True, user=request.user.username ) - run_process_media(entry, feed_url) add_comment_subscription(request.user, entry) # Create activity - entry.activity = create_activity("post", entry, entry.uploader).id + create_activity("post", entry, entry.uploader) entry.save() + run_process_media(entry, feed_url) return json_response(entry.serialize(request)) diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py index b6cbcabd..822f359a 100644 --- a/mediagoblin/user_pages/views.py +++ b/mediagoblin/user_pages/views.py @@ -195,15 +195,14 @@ def media_post_comment(request, media): messages.ERROR, _("Oops, your comment was empty.")) else: + create_activity("post", comment, comment.author, target=media) + add_comment_subscription(request.user, media) comment.save() messages.add_message( request, messages.SUCCESS, _('Your comment has been posted!')) - trigger_notification(comment, media, request) - create_activity("post", comment, comment.author, target=media) - add_comment_subscription(request.user, media) return redirect_obj(request, media) @@ -263,8 +262,8 @@ def media_collect(request, media): collection.description = form.collection_description.data collection.creator = request.user.id collection.generate_slug() - collection.save() create_activity("create", collection, collection.creator) + collection.save() # Otherwise, use the collection selected from the drop-down else: