Refactor blog category post selection

This commit is contained in:
str4d
2013-02-03 02:24:05 +00:00
parent 535e2f41b0
commit f32b6e3c14
2 changed files with 7 additions and 7 deletions

View File

@ -37,7 +37,7 @@ def get_blog_feed_items(num=0):
items.append(a)
return items
def get_blog_posts(num=0, return_parts=False):
def get_blog_posts(num=0, return_parts=False, category=None):
"""
Returns the latest #num valid posts sorted by date, or all slugs if num=0.
"""
@ -49,10 +49,11 @@ def get_blog_posts(num=0, return_parts=False):
meta = get_metadata_from_meta(parts['meta'])
meta['date'] = meta['date'] if meta['date'] else get_date_from_slug(slug)
meta['title'] = parts['title']
if return_parts:
posts.append((slug, meta, parts))
else:
posts.append((slug, meta))
if not category or (meta['category'] and category in meta['category']):
if return_parts:
posts.append((slug, meta, parts))
else:
posts.append((slug, meta))
return posts
def get_blog_slugs(num=0):

View File

@ -20,8 +20,7 @@ def blog_index(page):
@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']]
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)