id summary reporter owner description type status priority milestone component resolution keywords cc parents 655 Mediagoblin gives an error when trying to add an item to an existing collection sazius Elrond "Go to an existing item, select ""Add to a collection"", pick an existing collection from the drop down menu, press ""Add"" => sad goblin appears. Running with lazyserver to get more informative error message I get (two CRITICA rows added according to pythonsnake's suggestion for added debugging info): {{{ Starting server in PID 32700. serving on 0.0.0.0:6543 view at http://127.0.0.1:6543 2013-03-10 14:13:40,638 CRITICA [mediagoblin.user_pages.views] 2013-03-10 14:13:40,638 CRITICA [mediagoblin.user_pages.views] Error - : (InterfaceError) Error binding parameter 0 - probably unsupported type. u'SELECT core__collections.id AS core__collections_id, core__collections.title AS core__collections_title, core__collections.slug AS core__collections_slug, core__collections.created AS core__collections_created, core__collections.description AS core__collections_description, core__collections.creator AS core__collections_creator, core__collections.items AS core__collections_items \nFROM core__collections \nWHERE core__collections.id = ? AND core__collections.creator = ?\n LIMIT ? OFFSET ?' (, 1, 1, 0) URL: http://saz.im:6543/u/sazius/m/58/collect/ File '/var/www/mediagoblin/lib/python2.6/site-packages/Paste-1.7.5.1-py2.6.egg/paste/exceptions/errormiddleware.py', line 144 in __call__ app_iter = self.application(environ, sr_checker) File '/var/www/mediagoblin/lib/python2.6/site-packages/Paste-1.7.5.1-py2.6.egg/paste/urlmap.py', line 203 in __call__ return app(environ, start_response) File '/var/www/mediagoblin/lib/python2.6/site-packages/Beaker-1.6.4-py2.6.egg/beaker/middleware.py', line 155 in __call__ return self.wrap_app(environ, session_start_response) File '/var/www/mediagoblin/mediagoblin/app.py', line 236 in __call__ return self.call_backend(environ, start_response) File '/var/www/mediagoblin/mediagoblin/app.py', line 216 in call_backend response = controller(request) File '/var/www/mediagoblin/mediagoblin/decorators.py', line 224 in wrapper return controller(request, media=media, *args, **kwargs) File '/var/www/mediagoblin/mediagoblin/decorators.py', line 48 in new_controller_func return controller(request, *args, **kwargs) File '/var/www/mediagoblin/mediagoblin/user_pages/views.py', line 232 in media_collect creator=request.user.id).first() File '/var/www/mediagoblin/lib/python2.6/site-packages/SQLAlchemy-0.8.0-py2.6-linux-x86_64.egg/sqlalchemy/orm/query.py', line 2181 in first ret = list(self[0:1]) File '/var/www/mediagoblin/lib/python2.6/site-packages/SQLAlchemy-0.8.0-py2.6-linux-x86_64.egg/sqlalchemy/orm/query.py', line 2048 in __getitem__ return list(res) File '/var/www/mediagoblin/lib/python2.6/site-packages/SQLAlchemy-0.8.0-py2.6-linux-x86_64.egg/sqlalchemy/orm/query.py', line 2252 in __iter__ return self._execute_and_instances(context) File '/var/www/mediagoblin/lib/python2.6/site-packages/SQLAlchemy-0.8.0-py2.6-linux-x86_64.egg/sqlalchemy/orm/query.py', line 2267 in _execute_and_instances result = conn.execute(querycontext.statement, self._params) File '/var/www/mediagoblin/lib/python2.6/site-packages/SQLAlchemy-0.8.0-py2.6-linux-x86_64.egg/sqlalchemy/engine/base.py', line 664 in execute params) File '/var/www/mediagoblin/lib/python2.6/site-packages/SQLAlchemy-0.8.0-py2.6-linux-x86_64.egg/sqlalchemy/engine/base.py', line 764 in _execute_clauseelement compiled_sql, distilled_params File '/var/www/mediagoblin/lib/python2.6/site-packages/SQLAlchemy-0.8.0-py2.6-linux-x86_64.egg/sqlalchemy/engine/base.py', line 878 in _execute_context context) File '/var/www/mediagoblin/lib/python2.6/site-packages/SQLAlchemy-0.8.0-py2.6-linux-x86_64.egg/sqlalchemy/engine/base.py', line 871 in _execute_context context) File '/var/www/mediagoblin/lib/python2.6/site-packages/SQLAlchemy-0.8.0-py2.6-linux-x86_64.egg/sqlalchemy/engine/default.py', line 320 in do_execute cursor.execute(statement, parameters) InterfaceError: (InterfaceError) Error binding parameter 0 - probably unsupported type. u'SELECT core__collections.id AS core__collections_id, core__collections.title AS core__collections_title, core__collections.slug AS core__collections_slug, core__collections.created AS core__collections_created, core__collections.description AS core__collections_description, core__collections.creator AS core__collections_creator, core__collections.items AS core__collections_items \nFROM core__collections \nWHERE core__collections.id = ? AND core__collections.creator = ?\n LIMIT ? OFFSET ?' (, 1, 1, 0) CGI Variables ------------- CONTENT_LENGTH: '676' CONTENT_TYPE: 'multipart/form-data; boundary=---------------------------145476651317241088371037342262' CSRF_TOKEN: u'14123432470749457721' HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' HTTP_ACCEPT_ENCODING: 'gzip, deflate' HTTP_ACCEPT_LANGUAGE: 'en,en-gb;q=0.8,sv-fi;q=0.6,sv;q=0.4,fi;q=0.2' HTTP_CONNECTION: 'keep-alive' HTTP_COOKIE: 'mediagoblin_csrftoken=14123432470749457721; mediagoblin_csrftoken=14123432470749457721; mediagoblin=c096c3693b3d407a8586a3c412afb3b9' HTTP_DNT: '1' HTTP_HOST: 'saz.im:6543' HTTP_REFERER: 'http://saz.im:6543/u/sazius/m/58/collect/' HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64; rv:10.0.12) Gecko/20100101 Firefox/10.0.12 Iceweasel/10.0.12' PATH_INFO: '/u/sazius/m/58/collect/' REMOTE_ADDR: '82.181.107.174' REQUEST_METHOD: 'POST' SERVER_NAME: '0.0.0.0' SERVER_PORT: '6543' SERVER_PROTOCOL: 'HTTP/1.1' WSGI Variables -------------- application: {(None, ''): , (None, '/mgoblin_static'): , (None, '/mgoblin_media'): , (None, '/theme_static'): } beaker.get_session: > beaker.session: {'_accessed_time': 1362921220.6312571, 'user_id': u'1', '_creation_time': 1362921214.262624} paste.httpserver.thread_pool: paste.throw_errors: True werkzeug.request: wsgi process: 'Multithreaded' ------------------------------------------------------------ }}} After discussions in irc with pythonsnake this fix was tried and seemed to fix at least this problem: {{{ diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py index dc56208..0036ded 100644 --- a/mediagoblin/user_pages/views.py +++ b/mediagoblin/user_pages/views.py @@ -227,7 +227,7 @@ def media_collect(request, media): # Otherwise, use the collection selected from the drop-down else: collection = Collection.query.filter_by( - id=form.collection.data, + id=form.collection.data.id, creator=request.user.id).first() # Make sure the user actually selected a collection }}} " defect closed critical 0.3.3 programming fixed Christopher Allan Webber