Added category view for blog posts
This commit is contained in:
@ -18,6 +18,16 @@ def blog_index(page):
|
||||
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):
|
||||
posts = get_blog_posts()
|
||||
category_posts = [(slug, post) for (slug, post) in posts if post['category'] and category in post['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)
|
||||
|
||||
@cache.memoize(600)
|
||||
def blog_post(slug):
|
||||
# try to render that blog post.. throws 404 if it does not exist
|
||||
|
4
i2p2www/pages/blog/category.html
Normal file
4
i2p2www/pages/blog/category.html
Normal file
@ -0,0 +1,4 @@
|
||||
{% extends "blog/index.html" %}
|
||||
{% block title %}{{ _('Blog Category') }}: {{ category }}{% endblock %}
|
||||
{% block headextra %}
|
||||
{%- endblock %}
|
@ -1,5 +1,6 @@
|
||||
{%- 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_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) }}
|
||||
@ -34,7 +35,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 %}<a href="{{ get_url('blog_category', category=category) }}">{{ category }}</a>{% if not loop.last %}, {% endif %}{% endfor %}
|
||||
{%- else %}{{ _('None') }}
|
||||
{%- endif %}
|
||||
{%- endmacro %}
|
||||
|
@ -40,6 +40,8 @@ url('/<lang:lang>/<path:page>', 'views.site_show')
|
||||
|
||||
url('/<lang:lang>/blog/', 'blog.views.blog_index', defaults={'page': 1})
|
||||
url('/<lang:lang>/blog/page/<int:page>', 'blog.views.blog_index')
|
||||
url('/<lang:lang>/blog/category/<string:category>', 'blog.views.blog_category', defaults={'page': 1})
|
||||
url('/<lang:lang>/blog/category/<string:category>/page/<int:page>', 'blog.views.blog_category')
|
||||
url('/<lang:lang>/blog/post/<path:slug>', 'blog.views.blog_post')
|
||||
url('/<lang:lang>/feed/blog/rss', 'blog.views.blog_rss')
|
||||
url('/<lang:lang>/feed/blog/atom', 'blog.views.blog_atom')
|
||||
|
Reference in New Issue
Block a user