diff options
author | Aditi Mittal <aditi.iitr@gmail.com> | 2013-09-02 21:58:17 +0530 |
---|---|---|
committer | Aditi Mittal <aditi.iitr@gmail.com> | 2013-09-02 21:58:17 +0530 |
commit | 8762609f2aea2eab0acb808f3a3a3b4ca579190d (patch) | |
tree | c4099fe1ffac695c6dd975f2fe061b3635a226e6 | |
parent | 060d15d3840f0b726832ad334ba17144baaa9bf9 (diff) | |
download | mediagoblin-8762609f2aea2eab0acb808f3a3a3b4ca579190d.tar.lz mediagoblin-8762609f2aea2eab0acb808f3a3a3b4ca579190d.tar.xz mediagoblin-8762609f2aea2eab0acb808f3a3a3b4ca579190d.zip |
Implement pagination feature for blog_post_listing and blog_dashboard pages.
3 files changed, 22 insertions, 11 deletions
diff --git a/mediagoblin/media_types/blog/templates/mediagoblin/blog/blog_admin_dashboard.html b/mediagoblin/media_types/blog/templates/mediagoblin/blog/blog_admin_dashboard.html index 5ce838bf..c553988c 100644 --- a/mediagoblin/media_types/blog/templates/mediagoblin/blog/blog_admin_dashboard.html +++ b/mediagoblin/media_types/blog/templates/mediagoblin/blog/blog_admin_dashboard.html @@ -17,6 +17,7 @@ #} {% extends "mediagoblin/base.html" %} +{% from "mediagoblin/utils/pagination.html" import render_pagination %} {% block title -%} {{blog.title}} Dashboard — {{ super() }} @@ -50,7 +51,7 @@ </a> </p> <h2> Blog Post Entries </h2> - {% if blog_post_count!=0 %} + {% if blog_posts_list.count() %} <table class="media_panel processing"> <tr> <th>Title</th> @@ -90,6 +91,7 @@ {% else %} {% trans %} No blog post yet. {% endtrans %} {% endif %} + {{ render_pagination(request, pagination) }} {% endblock %} diff --git a/mediagoblin/media_types/blog/templates/mediagoblin/blog/blog_post_listing.html b/mediagoblin/media_types/blog/templates/mediagoblin/blog/blog_post_listing.html index ea712bb0..184693d9 100644 --- a/mediagoblin/media_types/blog/templates/mediagoblin/blog/blog_post_listing.html +++ b/mediagoblin/media_types/blog/templates/mediagoblin/blog/blog_post_listing.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 title -%} {% trans %}{{ blog_owner }} 's Blog{% endtrans %} — {{ super() }} @@ -45,4 +46,5 @@ </br> {% endfor %} </div> + {{ render_pagination(request, pagination) }} {% endblock %} diff --git a/mediagoblin/media_types/blog/views.py b/mediagoblin/media_types/blog/views.py index a0ceb064..d5522f3e 100644 --- a/mediagoblin/media_types/blog/views.py +++ b/mediagoblin/media_types/blog/views.py @@ -206,33 +206,36 @@ def blogpost_edit(request): }) @require_active_login -def blog_dashboard(request): +@uses_pagination +def blog_dashboard(request, page): url_user = request.matchdict.get('user') blog_slug = request.matchdict.get('blog_slug', None) - _log.info(blog_slug) - + blog = request.db.Blog.query.filter_by(slug=blog_slug).first() if not blog: return render_404(request) - blog_posts_list = blog.get_all_posts_of_a_blog(None) - blog_post_count = blog_posts_list.count() + blog_posts_list = blog.get_all_posts_of_a_blog().order_by(MediaEntry.created.desc()) + pagination = Pagination(page, blog_posts_list) + pagination.per_page = 15 + blog_posts_on_a_page = pagination() if may_edit_blogpost(request, blog): return render_to_response( request, 'mediagoblin/blog/blog_admin_dashboard.html', - {'blog_posts_list': blog_posts_list, + {'blog_posts_list': blog_posts_on_a_page, 'blog_slug':blog_slug, 'blog':blog, - 'blog_post_count':blog_post_count + 'pagination':pagination }) #supposed to list all the blog posts belonging to a particular blog of particular user. -def blog_post_listing(request): +@uses_pagination +def blog_post_listing(request, page): blog_owner = request.matchdict.get('user') blog_slug = request.matchdict.get('blog_slug', None) @@ -242,12 +245,16 @@ def blog_post_listing(request): if not owner_user or not blog: return render_404(request) - all_blog_posts = blog.get_all_posts_of_a_blog(u'processed') + all_blog_posts = blog.get_all_posts_of_a_blog(u'processed').order_by(MediaEntry.created.desc()) + pagination = Pagination(page, all_blog_posts) + pagination.per_page = 8 + blog_posts_on_a_page = pagination() return render_to_response( request, 'mediagoblin/blog/blog_post_listing.html', - {'blog_posts': all_blog_posts, + {'blog_posts': blog_posts_on_a_page, + 'pagination': pagination, 'blog_owner': blog_owner }) |