diff --git a/i2p2www/blog/views.py b/i2p2www/blog/views.py index cdef7765..c7a890d8 100644 --- a/i2p2www/blog/views.py +++ b/i2p2www/blog/views.py @@ -10,22 +10,16 @@ from i2p2www.helpers import Pagination, get_for_page # Blog views @cache.memoize(600) -def blog_index(page): - all_posts = get_blog_posts() +def blog_index(page, category=None): + all_posts = get_blog_posts(category=category) posts = get_for_page(all_posts, page, BLOG_POSTS_PER_PAGE) if not posts and page != 1: abort(404) pagination = Pagination(page, BLOG_POSTS_PER_PAGE, len(all_posts)) - return render_template('blog/index.html', pagination=pagination, posts=posts) - -@cache.memoize(600) -def blog_category(category, page): - category_posts = get_blog_posts(category=category) - posts = get_for_page(category_posts, page, BLOG_POSTS_PER_PAGE) - if not posts and page != 1: - abort(404) - pagination = Pagination(page, BLOG_POSTS_PER_PAGE, len(category_posts)) - return render_template('blog/category.html', pagination=pagination, posts=posts, category=category) + if category: + return render_template('blog/category.html', pagination=pagination, posts=posts, category=category) + else: + return render_template('blog/index.html', pagination=pagination, posts=posts) @cache.memoize(600) def blog_post(slug): diff --git a/i2p2www/pages/global/macros b/i2p2www/pages/global/macros index aea4273b..49642f19 100644 --- a/i2p2www/pages/global/macros +++ b/i2p2www/pages/global/macros @@ -1,6 +1,9 @@ {%- macro change_lang(lang) -%} {%- if request.endpoint == 'site_show' -%}{{ url_for('site_show', lang=lang, page=page) }} -{%- elif request.endpoint == 'blog_category' -%}{{ url_for('blog_category', lang=lang, category=category) }} +{%- elif request.endpoint == 'blog_index' -%} + {%- if category -%}{{ url_for('blog_index', lang=lang, category=category) }} + {%- else -%}{{ url_for('blog_index', lang=lang) }} + {%- endif -%} {%- elif request.endpoint == 'blog_post' -%}{{ url_for('blog_post', lang=lang, slug=slug) }} {%- elif request.endpoint == 'meetings_show' -%}{{ url_for('meetings_show', lang=lang, id=id) }} {%- elif request.endpoint == 'downloads_select' -%}{{ url_for('downloads_select', lang=lang, file=file) }} @@ -35,7 +38,7 @@ {%- macro render_categories(categories) -%} {%- if categories and categories|length %} -{%- for category in categories %}{{ category }}{% if not loop.last %}, {% endif %}{% endfor %} +{%- for category in categories %}{{ category }}{% if not loop.last %}, {% endif %}{% endfor %} {%- else %}{{ _('None') }} {%- endif %} {%- endmacro %} diff --git a/i2p2www/urls.py b/i2p2www/urls.py index 9008d09b..e9127f33 100644 --- a/i2p2www/urls.py +++ b/i2p2www/urls.py @@ -40,8 +40,8 @@ url('//', 'views.site_show') url('//blog/', 'blog.views.blog_index', defaults={'page': 1}) url('//blog/page/', 'blog.views.blog_index') -url('//blog/category/', 'blog.views.blog_category', defaults={'page': 1}) -url('//blog/category//page/', 'blog.views.blog_category') +url('//blog/category/', 'blog.views.blog_index', defaults={'page': 1}) +url('//blog/category//page/', 'blog.views.blog_index') url('//blog/post/', 'blog.views.blog_post') url('//feed/blog/rss', 'blog.views.blog_rss') url('//feed/blog/atom', 'blog.views.blog_atom')