From: Elrond Date: Sun, 10 Mar 2013 19:56:48 +0000 (+0100) Subject: 655: Fix collection fetching for media_collect() X-Git-Url: https://vcs.fsf.org/?a=commitdiff_plain;h=e9330b9552858d46783971e8624ccc5ac80cfe46;p=mediagoblin.git 655: Fix collection fetching for media_collect() The problem is: Collection.query.filter_by(id=X, ...) 1. X = form.collection.data This works nicely for the completely empty form (X = None). It does not work for a selected collection, because X will be the collection, not its id. 2. X = request.form.get('collection') (old code). This one works mostly, except for the completely empty form on postgres, because in this case X = u"__None" and postgres does not like comparing an integer column with a string. Fix: collection = form.collection.data if collection and collection.creator != request.user.id: collection = None --- diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py index dc562084..c611daa1 100644 --- a/mediagoblin/user_pages/views.py +++ b/mediagoblin/user_pages/views.py @@ -226,9 +226,9 @@ def media_collect(request, media): # Otherwise, use the collection selected from the drop-down else: - collection = Collection.query.filter_by( - id=form.collection.data, - creator=request.user.id).first() + collection = form.collection.data + if collection and collection.creator != request.user.id: + collection = None # Make sure the user actually selected a collection if not collection: