Merge remote-tracking branch 'refs/remotes/spaetz/WIP/user_tag_gallery'

This commit is contained in:
Christopher Allan Webber 2013-02-21 15:55:26 -06:00
commit 60a7eb9ca5
3 changed files with 18 additions and 5 deletions

View File

@ -39,11 +39,12 @@
'mediagoblin.user_pages.user_home',
user=user.username) -%}
<a href="{{ user_url }}">{{ username }}</a>'s media
{%- endtrans %}
{%- endtrans %}{% if tag %}{% trans %} with tag '{{tag}}'{% endtrans %}
{%- endif %}
</h1>
{{ object_gallery(request, media_entries, pagination) }}
{% set feed_url = request.urlgen('mediagoblin.user_pages.atom_feed',
user=user.username) %}
{% include "mediagoblin/utils/feed_link.html" %}

View File

@ -40,6 +40,11 @@ add_route('mediagoblin.user_pages.media_home.view_comment',
'/u/<string:user>/m/<string:media>/c/<int:comment>/',
'mediagoblin.user_pages.views:media_home')
# User's tags gallery
add_route('mediagoblin.user_pages.user_gallery',
'/u/<string:user>/tag/<string:tag>/',
'mediagoblin.user_pages.views:user_gallery')
add_route('mediagoblin.user_pages.atom_feed',
'/u/<string:user>/atom/',
'mediagoblin.user_pages.views:atom_feed')

View File

@ -18,8 +18,8 @@ import logging
import datetime
from mediagoblin import messages, mg_globals
from mediagoblin.db.models import (MediaEntry, Collection, CollectionItem,
User)
from mediagoblin.db.models import (MediaEntry, MediaTag, Collection,
CollectionItem, User)
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
@ -81,10 +81,17 @@ def user_home(request, page):
@uses_pagination
def user_gallery(request, page, url_user=None):
"""'Gallery' of a User()"""
tag = request.matchdict.get('tag', None)
cursor = MediaEntry.query.filter_by(
uploader=url_user.id,
state=u'processed').order_by(MediaEntry.created.desc())
# Filter potentially by tag too:
if tag:
cursor = cursor.filter(
MediaEntry.tags_helper.any(
MediaTag.name == request.matchdict['tag']))
# Paginate gallery
pagination = Pagination(page, cursor)
media_entries = pagination()
@ -97,7 +104,7 @@ def user_gallery(request, page, url_user=None):
return render_to_response(
request,
'mediagoblin/user_pages/gallery.html',
{'user': url_user,
{'user': url_user, 'tag': tag,
'media_entries': media_entries,
'pagination': pagination})