aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mediagoblin/templates/mediagoblin/user_pages/media.html3
-rw-r--r--mediagoblin/templates/mediagoblin/user_pages/user.html7
-rw-r--r--mediagoblin/templates/mediagoblin/utils/object_gallery.html12
-rw-r--r--mediagoblin/templates/mediagoblin/utils/pagination.html63
-rw-r--r--mediagoblin/templates/mediagoblin/utils/profile.html16
-rw-r--r--mediagoblin/user_pages/views.py5
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) }}">&laquo; 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) }}">&laquo; 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 &raquo;</a>
{% endif %}
- {%- endfor %}
-
- {% if pagination.has_next %}
- <a href="{{ pagination.get_page_url(request, pagination.page + 1) }}">Next &raquo;</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})