Improve sqlalchemy filter rules
Thanks to Elrond's review. 1) Use filter_by more consistently rather than mixing filter and filter_by. 2) Add multiple AND conditions in the same filter rule rather than using separate ones. 3) The atom feeds used filter_by(Modelname.attr == ...) which was the wrong pattern, of course. Thanks for repairing my junk Elrond! Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
This commit is contained in:
parent
cfa922295e
commit
2fb36dac31
@ -54,8 +54,9 @@ def user_home(request, page):
|
|||||||
'mediagoblin/user_pages/user.html',
|
'mediagoblin/user_pages/user.html',
|
||||||
{'user': user})
|
{'user': user})
|
||||||
|
|
||||||
cursor = MediaEntry.query.filter_by(uploader = user.id).\
|
cursor = MediaEntry.query.\
|
||||||
filter_by(state = u'processed').sort('created', DESCENDING)
|
filter_by(uploader = user.id,
|
||||||
|
state = u'processed').sort('created', DESCENDING)
|
||||||
|
|
||||||
pagination = Pagination(page, cursor)
|
pagination = Pagination(page, cursor)
|
||||||
media_entries = pagination()
|
media_entries = pagination()
|
||||||
@ -179,9 +180,8 @@ def media_collect(request, media):
|
|||||||
|
|
||||||
form = user_forms.MediaCollectForm(request.form)
|
form = user_forms.MediaCollectForm(request.form)
|
||||||
# A user's own collections:
|
# A user's own collections:
|
||||||
form.collection.query = Collection.query.filter(
|
form.collection.query = Collection.query.filter_by(
|
||||||
request.db.Collection.creator == request.user.id)\
|
creator = request.user.id).order_by(Collection.title)
|
||||||
.order_by(Collection.title)
|
|
||||||
|
|
||||||
if request.method != 'POST' or not form.validate():
|
if request.method != 'POST' or not form.validate():
|
||||||
# No POST submission, or invalid form
|
# No POST submission, or invalid form
|
||||||
@ -440,15 +440,17 @@ def atom_feed(request):
|
|||||||
"""
|
"""
|
||||||
generates the atom feed with the newest images
|
generates the atom feed with the newest images
|
||||||
"""
|
"""
|
||||||
user = User.query.filter(User.username==request.matchdict['user']).\
|
user = User.query.filter_by(
|
||||||
filter(User.status == u'active').first()
|
username = request.matchdict['user'],
|
||||||
|
status = u'active').first()
|
||||||
if not user:
|
if not user:
|
||||||
return render_404(request)
|
return render_404(request)
|
||||||
|
|
||||||
cursor = MediaEntry.query.filter_by(MediaEntry.uploader == user.id).\
|
cursor = MediaEntry.query.filter_by(
|
||||||
filter_by(MediaEntry.state == u'processed').\
|
uploader = user.id,
|
||||||
sort('created', DESCENDING).\
|
state = u'processed').\
|
||||||
limit(ATOM_DEFAULT_NR_OF_UPDATED_ITEMS)
|
sort('created', DESCENDING).\
|
||||||
|
limit(ATOM_DEFAULT_NR_OF_UPDATED_ITEMS)
|
||||||
|
|
||||||
"""
|
"""
|
||||||
ATOM feed id is a tag URI (see http://en.wikipedia.org/wiki/Tag_URI)
|
ATOM feed id is a tag URI (see http://en.wikipedia.org/wiki/Tag_URI)
|
||||||
@ -501,8 +503,9 @@ def collection_atom_feed(request):
|
|||||||
"""
|
"""
|
||||||
generates the atom feed with the newest images from a collection
|
generates the atom feed with the newest images from a collection
|
||||||
"""
|
"""
|
||||||
user = User.query.filter(User.username == request.matchdict['user']).\
|
user = User.query.filter_by(
|
||||||
filter_by(User.status == u'active').first()
|
username = request.matchdict['user'],
|
||||||
|
status = u'active').first()
|
||||||
if not user:
|
if not user:
|
||||||
return render_404(request)
|
return render_404(request)
|
||||||
|
|
||||||
@ -586,19 +589,19 @@ def processing_panel(request):
|
|||||||
|
|
||||||
# Get media entries which are in-processing
|
# Get media entries which are in-processing
|
||||||
processing_entries = MediaEntry.query.\
|
processing_entries = MediaEntry.query.\
|
||||||
filter(MediaEntry.uploader == user.id).\
|
filter_by(uploader = user.id,
|
||||||
filter(MediaEntry.state == u'processing').\
|
state = u'processing').\
|
||||||
order_by(MediaEntry.created.desc())
|
order_by(MediaEntry.created.desc())
|
||||||
|
|
||||||
# Get media entries which have failed to process
|
# Get media entries which have failed to process
|
||||||
failed_entries = MediaEntry.query.\
|
failed_entries = MediaEntry.query.\
|
||||||
filter(MediaEntry.uploader == user.id).\
|
filter_by(uploader = user.id,
|
||||||
filter(MediaEntry.state == u'failed').\
|
state = u'failed').\
|
||||||
order_by(MediaEntry.created.desc())
|
order_by(MediaEntry.created.desc())
|
||||||
|
|
||||||
processed_entries = MediaEntry.query.\
|
processed_entries = MediaEntry.query.\
|
||||||
filter(MediaEntry.uploader == user.id).\
|
filter_by(uploader = user.id,
|
||||||
filter(MediaEntry.state == u'processed').\
|
state = u'processed').\
|
||||||
order_by(MediaEntry.created.desc()).\
|
order_by(MediaEntry.created.desc()).\
|
||||||
limit(10)
|
limit(10)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user