diff options
6 files changed, 67 insertions, 39 deletions
diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html b/mediagoblin/templates/mediagoblin/user_pages/media.html index 4dec0641..85ba985c 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media.html @@ -18,6 +18,7 @@ {% extends "mediagoblin/base.html" %} {% import "/mediagoblin/utils/wtforms.html" as wtforms_util %} +{% from "mediagoblin/utils/pagination.html" import render_pagination %} {% block mediagoblin_content %} {% if media %} @@ -87,7 +88,7 @@ </div> {% endfor %} - {% include "mediagoblin/utils/pagination.html" %} + {{ render_pagination(request, pagination) }} </div> {% endif %} <div class="grid_4 omega media_sidebar"> diff --git a/mediagoblin/templates/mediagoblin/user_pages/user.html b/mediagoblin/templates/mediagoblin/user_pages/user.html index 22defcbd..da8db261 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/user.html +++ b/mediagoblin/templates/mediagoblin/user_pages/user.html @@ -34,15 +34,14 @@ {% include "mediagoblin/utils/profile.html" %} + {% set pagination_base_url = user_gallery_url %} {% include "mediagoblin/utils/object_gallery.html" %} - <p><a href="{{ request.urlgen('mediagoblin.user_pages.user_gallery', - user= request.user['username']) }}">View all of {{ user.username }}'s media</a></p> - + <p><a href="user_gallery_url">View all of {{ user.username }}'s media</a></p> <a href={{ request.urlgen( 'mediagoblin.user_pages.atom_feed', - user=user.username) }}> atom feed</a> + user=user.username) }}>atom feed</a> {% else %} {# This *should* not occur as the view makes sure we pass in a user. #} <p>Sorry, no such user found.<p/> diff --git a/mediagoblin/templates/mediagoblin/utils/object_gallery.html b/mediagoblin/templates/mediagoblin/utils/object_gallery.html index 8c88c174..4e2886f8 100644 --- a/mediagoblin/templates/mediagoblin/utils/object_gallery.html +++ b/mediagoblin/templates/mediagoblin/utils/object_gallery.html @@ -16,6 +16,8 @@ # along with this program. If not, see <http://www.gnu.org/licenses/>. #} +{% from "mediagoblin/utils/pagination.html" import render_pagination %} + {% block object_gallery_content -%} <div> {% if media_entries %} @@ -28,8 +30,12 @@ </li> {% endfor %} </ul> - {% include "mediagoblin/utils/pagination.html" %} - {% endif %} - + {% if pagination_base_url %} + {# different url, so set that and don't keep the get params #} + {{ render_pagination(request, pagination, pagination_base_url, False) }} + {% else %} + {{ render_pagination(request, pagination) }} + {% endif %} + {% endif %} </div> {% endblock %} diff --git a/mediagoblin/templates/mediagoblin/utils/pagination.html b/mediagoblin/templates/mediagoblin/utils/pagination.html index 7b55b81d..aae50d22 100644 --- a/mediagoblin/templates/mediagoblin/utils/pagination.html +++ b/mediagoblin/templates/mediagoblin/utils/pagination.html @@ -15,31 +15,48 @@ # along with this program. If not, see <http://www.gnu.org/licenses/>. #} -{# only display if {{pagination}} is defined #} +{% macro render_pagination(request, pagination, + base_url=None, preserve_get_params=True) %} + {# only display if {{pagination}} is defined #} + {% if pagination and pagination.pages > 1 %} + {% if not base_url %} + {% set base_url = request.path_info %} + {% endif %} -{% if pagination and pagination.pages > 1 %} - <div class="pagination"> - <p> - {% if pagination.has_prev %} - <a href="{{ pagination.get_page_url(request, pagination.page-1) }}">« Prev</a> - {% endif %} + {% if preserve_get_params %} + {% set get_params = request.GET %} + {% else %} + {% set get_params = {} %} + {% endif %} - {%- for page in pagination.iter_pages() %} - {% if page %} - {% if page != pagination.page %} - <a href="{{ pagination.get_page_url(request, page) }}">{{ page }}</a> + <div class="pagination"> + <p> + {% if pagination.has_prev %} + <a href="{{ pagination.get_page_url_explicit( + base_url, get_params, + pagination.page - 1) }}">« Prev</a> + {% endif %} + + {%- for page in pagination.iter_pages() %} + {% if page %} + {% if page != pagination.page %} + <a href="{{ pagination.get_page_url_explicit( + base_url, get_params, + page) }}">{{ page }}</a> + {% else %} + {{ page }} + {% endif %} {% else %} - {{ page }} + <span class="ellipsis">…</span> {% endif %} - {% else %} - <span class="ellipsis">…</span> + {%- endfor %} + + {% if pagination.has_next %} + <a href="{{ pagination.get_page_url_explicit( + base_url, get_params, + pagination.page + 1) }}">Next »</a> {% endif %} - {%- endfor %} - - {% if pagination.has_next %} - <a href="{{ pagination.get_page_url(request, pagination.page + 1) }}">Next »</a> - {% endif %} - </p> - </div> -{% endif %} - + </p> + </div> + {% endif %} +{% endmacro %} diff --git a/mediagoblin/templates/mediagoblin/utils/profile.html b/mediagoblin/templates/mediagoblin/utils/profile.html index b3f5f0f8..21468033 100644 --- a/mediagoblin/templates/mediagoblin/utils/profile.html +++ b/mediagoblin/templates/mediagoblin/utils/profile.html @@ -20,16 +20,16 @@ <div> <ul> {% if user.url %} - <li> - <a href="{{ user.url }}">homepage</a> - </li> - {% endif %} + <li> + <a href="{{ user.url }}">homepage</a> + </li> + {% endif %} {% if user.bio %} - <li> - {{ user.bio }} - </li> - {% endif %} + <li> + {{ user.bio }} + </li> + {% endif %} </ul> </div> {% endblock %} diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py index 012d27a3..3a8684d3 100644 --- a/mediagoblin/user_pages/views.py +++ b/mediagoblin/user_pages/views.py @@ -48,10 +48,15 @@ def user_home(request, page): if media_entries == None: return exc.HTTPNotFound() + user_gallery_url = request.urlgen( + 'mediagoblin.user_pages.user_gallery', + user=user['username']) + return render_to_response( request, 'mediagoblin/user_pages/user.html', {'user': user, + 'user_gallery_url': user_gallery_url, 'media_entries': media_entries, 'pagination': pagination}) |