aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristopher Allan Webber <cwebber@dustycloud.org>2013-02-21 15:55:26 -0600
committerChristopher Allan Webber <cwebber@dustycloud.org>2013-02-21 15:55:26 -0600
commit60a7eb9ca5f614a31f17158b791e1a6b7d7bf352 (patch)
treedaf7ecc6f74f4d6921d4f2bb4cf9ae8bf1fa6162
parent9b2cd962af78ce8fbe2bce88d7b9d3a9d01e4aa9 (diff)
parentf2c0bf3e34f1b56908444fc11504bb0114d0e0a3 (diff)
downloadmediagoblin-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.html5
-rw-r--r--mediagoblin/user_pages/routing.py5
-rw-r--r--mediagoblin/user_pages/views.py13
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})