Switch over the user gallery to the active_user_from_url decorator

This switches the user gallery page over to use the new decorator, and
cleans up the queries to be in proper sqlalchemy format rather than the
old mongo format.

Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
This commit is contained in:
Sebastian Spaeth 2012-12-05 13:38:50 +01:00
parent ad7420281c
commit 64c2a4002c

View File

@ -20,6 +20,7 @@ import datetime
from mediagoblin import messages, mg_globals
from mediagoblin.db.util import DESCENDING, ObjectId
from mediagoblin.db.sql.models import MediaEntry, Collection, CollectionItem
from mediagoblin.tools.response import render_to_response, render_404, redirect
from mediagoblin.tools.translate import pass_to_ugettext as _
from mediagoblin.tools.pagination import Pagination
@ -29,7 +30,7 @@ from mediagoblin.user_pages.lib import send_comment_email
from mediagoblin.decorators import (uses_pagination, get_user_media_entry,
require_active_login, user_may_delete_media, user_may_alter_collection,
get_user_collection, get_user_collection_item)
get_user_collection, get_user_collection_item, active_user_from_url)
from werkzeug.contrib.atom import AtomFeed
@ -75,30 +76,26 @@ def user_home(request, page):
'pagination': pagination})
@active_user_from_url
@uses_pagination
def user_gallery(request, page):
def user_gallery(request, page, url_user=None):
"""'Gallery' of a User()"""
user = request.db.User.find_one({
'username': request.matchdict['user'],
'status': u'active'})
if not user:
return render_404(request)
cursor = request.db.MediaEntry.find(
{'uploader': user._id,
'state': u'processed'}).sort('created', DESCENDING)
cursor = MediaEntry.query.filter_by(
uploader=url_user.id,
state=u'processed').order_by(MediaEntry.created.desc())
# Paginate gallery
pagination = Pagination(page, cursor)
media_entries = pagination()
#if no data is available, return NotFound
# TODO: Should we really also return 404 for empty galleries?
if media_entries == None:
return render_404(request)
return render_to_response(
request,
'mediagoblin/user_pages/gallery.html',
{'user': user,
{'user': url_user,
'media_entries': media_entries,
'pagination': pagination})