X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=mediagoblin%2Fmedia_types%2Fblog%2Flib.py;h=b6e3dc06bd1d59ec47dc23b2b700857a95513314;hb=90779509bbe65ab56dd137ffb9d5019f498e79e1;hp=f95ecca54678dc1dda64d4fa4cd5be0793b26527;hpb=ab7b83dbc8c60cb74fd518dba42f3d4aea30a7db;p=mediagoblin.git diff --git a/mediagoblin/media_types/blog/lib.py b/mediagoblin/media_types/blog/lib.py index f95ecca5..b6e3dc06 100644 --- a/mediagoblin/media_types/blog/lib.py +++ b/mediagoblin/media_types/blog/lib.py @@ -24,7 +24,33 @@ def check_blog_slug_used(author_id, slug, ignore_b_id=None): return does_exist def may_edit_blogpost(request, blog): - if request.user.is_admin or request.user.id == blog.author: + if request.user.has_privilege(u'admin') or request.user.id == blog.author: return True return False - + +def set_blogpost_state(request, blogpost): + if request.form['status'] == 'Publish': + blogpost.state = u'processed' + else: + blogpost.state = u'failed' + +def get_all_blogposts_of_blog(request, blog, state=None): + blog_posts_list = [] + blog_post_data = request.db.BlogPostData.query.filter_by(blog=blog.id).all() + for each_blog_post_data in blog_post_data: + blog_post = each_blog_post_data.get_media_entry + if state == None: + blog_posts_list.append(blog_post) + if blog_post.state == state: + blog_posts_list.append(blog_post) + blog_posts_list.reverse() + return blog_posts_list + +def get_blog_by_slug(request, slug, **kwargs): + if slug.startswith('blog_'): + blog_id = int(slug[5:]) + blog = request.db.Blog.query.filter_by(id=blog_id, **kwargs).first() + else: + blog = request.db.Blog.query.filter_by(slug=slug, **kwargs).first() + return blog +