From d49cf0e29c0165fcc2eddc5a324cf40b45fd1959 Mon Sep 17 00:00:00 2001 From: Caleb Forbes Davis V Date: Fri, 3 Jun 2011 20:36:51 -0500 Subject: [PATCH 1/5] issue #330 - creates a user gallery template --- .../mediagoblin/user_pages/gallery.html | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 mediagoblin/templates/mediagoblin/user_pages/gallery.html diff --git a/mediagoblin/templates/mediagoblin/user_pages/gallery.html b/mediagoblin/templates/mediagoblin/user_pages/gallery.html new file mode 100644 index 00000000..9e0c7d4a --- /dev/null +++ b/mediagoblin/templates/mediagoblin/user_pages/gallery.html @@ -0,0 +1,40 @@ +{# +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +#} +{% extends "mediagoblin/base.html" %} + +{% block mediagoblin_head %} + +{% endblock mediagoblin_head %} + +{% block mediagoblin_content -%} + {% if user %} +

'{{ user.username }}' gallery

+ + {% include "mediagoblin/utils/object_gallery.html" %} + + atom feed + {% else %} + {# This *should* not occur as the view makes sure we pass in a user. #} +

Sorry, no such user found.

+ {% endif %} +{% endblock %} From 184f2240cb9384bac9e3319f2d184e405e364611 Mon Sep 17 00:00:00 2001 From: cfdv Date: Tue, 7 Jun 2011 00:25:08 -0500 Subject: [PATCH 2/5] adds routing.py and view.py changes --- mediagoblin/user_pages/routing.py | 2 ++ mediagoblin/user_pages/views.py | 30 ++++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/mediagoblin/user_pages/routing.py b/mediagoblin/user_pages/routing.py index c5e9a984..92998726 100644 --- a/mediagoblin/user_pages/routing.py +++ b/mediagoblin/user_pages/routing.py @@ -19,6 +19,8 @@ from routes.route import Route user_routes = [ Route('mediagoblin.user_pages.user_home', "/{user}/", controller="mediagoblin.user_pages.views:user_home"), + Route('mediagoblin.user_pages.user_gallery', "/{user}/gallery/", + controller="mediagoblin.user_pages.views:user_gallery"), Route('mediagoblin.user_pages.media_home', '/{user}/m/{media}/', requirements=dict(m_id="[0-9a-fA-F]{24}"), controller="mediagoblin.user_pages.views:media_home"), diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py index 323c3e54..ceea5158 100644 --- a/mediagoblin/user_pages/views.py +++ b/mediagoblin/user_pages/views.py @@ -49,6 +49,36 @@ def user_home(request, page): 'media_entries': media_entries, 'pagination': pagination}) +@uses_pagination +def user_gallery(request, page): + """'Gallery' of a User()""" + user = request.db.User.find_one({ + 'username': request.matchdict['user'], + 'status': 'active'}) + if not user: + return exc.HTTPNotFound() + + cursor = request.db.MediaEntry.find( + {'uploader': user['_id'], + 'state': 'processed'}).sort('created', DESCENDING) + + pagination = Pagination(page, cursor) + media_entries = pagination() + + #if no data is available, return NotFound + if media_entries == None: + return exc.HTTPNotFound() + + template = request.template_env.get_template( + 'mediagoblin/user_pages/gallery.html') + + return Response( + template.render( + {'request': request, + 'user': user, + 'media_entries': media_entries, + 'pagination': pagination})) + @get_user_media_entry def media_home(request, media): From 4b5f5a08d3210f849a4acc3e0958aeaecbcacb5b Mon Sep 17 00:00:00 2001 From: cfdv Date: Thu, 9 Jun 2011 00:30:42 -0500 Subject: [PATCH 3/5] user_gallery controller calls render_to_reponse --- mediagoblin/user_pages/views.py | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py index ceea5158..88b5dfe5 100644 --- a/mediagoblin/user_pages/views.py +++ b/mediagoblin/user_pages/views.py @@ -69,15 +69,12 @@ def user_gallery(request, page): if media_entries == None: return exc.HTTPNotFound() - template = request.template_env.get_template( - 'mediagoblin/user_pages/gallery.html') - - return Response( - template.render( - {'request': request, - 'user': user, - 'media_entries': media_entries, - 'pagination': pagination})) + return render_to_response( + request, + 'mediagoblin/user_pages/gallery.html', + {'user': user, + 'media_entries': media_entries, + 'pagination': pagination}) @get_user_media_entry From 850746677f6be266520c4b10112bcbef3739e204 Mon Sep 17 00:00:00 2001 From: cfdv Date: Sat, 11 Jun 2011 12:52:07 -0500 Subject: [PATCH 4/5] adds link to user gallery in mediagoblin_header_right of user page --- mediagoblin/templates/mediagoblin/base.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mediagoblin/templates/mediagoblin/base.html b/mediagoblin/templates/mediagoblin/base.html index 704e5aa7..c7313173 100644 --- a/mediagoblin/templates/mediagoblin/base.html +++ b/mediagoblin/templates/mediagoblin/base.html @@ -35,6 +35,8 @@