diff options
author | Christopher Allan Webber <cwebber@dustycloud.org> | 2013-02-21 15:55:26 -0600 |
---|---|---|
committer | Christopher Allan Webber <cwebber@dustycloud.org> | 2013-02-21 15:55:26 -0600 |
commit | 60a7eb9ca5f614a31f17158b791e1a6b7d7bf352 (patch) | |
tree | daf7ecc6f74f4d6921d4f2bb4cf9ae8bf1fa6162 | |
parent | 9b2cd962af78ce8fbe2bce88d7b9d3a9d01e4aa9 (diff) | |
parent | f2c0bf3e34f1b56908444fc11504bb0114d0e0a3 (diff) | |
download | mediagoblin-60a7eb9ca5f614a31f17158b791e1a6b7d7bf352.tar.lz mediagoblin-60a7eb9ca5f614a31f17158b791e1a6b7d7bf352.tar.xz mediagoblin-60a7eb9ca5f614a31f17158b791e1a6b7d7bf352.zip |
Merge remote-tracking branch 'refs/remotes/spaetz/WIP/user_tag_gallery'
-rw-r--r-- | mediagoblin/templates/mediagoblin/user_pages/gallery.html | 5 | ||||
-rw-r--r-- | mediagoblin/user_pages/routing.py | 5 | ||||
-rw-r--r-- | mediagoblin/user_pages/views.py | 13 |
3 files changed, 18 insertions, 5 deletions
diff --git a/mediagoblin/templates/mediagoblin/user_pages/gallery.html b/mediagoblin/templates/mediagoblin/user_pages/gallery.html index e234914f..097cec54 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/gallery.html +++ b/mediagoblin/templates/mediagoblin/user_pages/gallery.html @@ -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" %} diff --git a/mediagoblin/user_pages/routing.py b/mediagoblin/user_pages/routing.py index 2b228355..a8a2eba7 100644 --- a/mediagoblin/user_pages/routing.py +++ b/mediagoblin/user_pages/routing.py @@ -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') diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py index 0225b6d7..4056ba97 100644 --- a/mediagoblin/user_pages/views.py +++ b/mediagoblin/user_pages/views.py @@ -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}) |