Commit | Line | Data |
---|---|---|
4261c85f A |
1 | # GNU MediaGoblin -- federated, autonomous media hosting |
2 | # Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. | |
3 | # | |
4 | # This program is free software: you can redistribute it and/or modify | |
5 | # it under the terms of the GNU Affero General Public License as published by | |
6 | # the Free Software Foundation, either version 3 of the License, or | |
7 | # (at your option) any later version. | |
8 | # | |
9 | # This program is distributed in the hope that it will be useful, | |
10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | |
11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
12 | # GNU Affero General Public License for more details. | |
13 | # | |
14 | # You should have received a copy of the GNU Affero General Public License | |
15 | # along with this program. If not, see <http://www.gnu.org/licenses/>. | |
16 | ||
4261c85f A |
17 | |
18 | def check_blog_slug_used(author_id, slug, ignore_b_id=None): | |
19 | from mediagoblin.media_types.blog.models import Blog | |
20 | query = Blog.query.filter_by(author=author_id, slug=slug) | |
21 | if ignore_b_id: | |
22 | query = query.filter(Blog.id != ignore_b_id) | |
23 | does_exist = query.first() is not None | |
24 | return does_exist | |
391f4456 A |
25 | |
26 | def may_edit_blogpost(request, blog): | |
39fbb834 | 27 | if request.user.has_privilege(u'admin') or request.user.id == blog.author: |
391f4456 A |
28 | return True |
29 | return False | |
8c040f77 A |
30 | |
31 | def set_blogpost_state(request, blogpost): | |
32 | if request.form['status'] == 'Publish': | |
33 | blogpost.state = u'processed' | |
34 | else: | |
35 | blogpost.state = u'failed' | |
dc56835a A |
36 | |
37 | def get_all_blogposts_of_blog(request, blog, state=None): | |
38 | blog_posts_list = [] | |
39 | blog_post_data = request.db.BlogPostData.query.filter_by(blog=blog.id).all() | |
40 | for each_blog_post_data in blog_post_data: | |
41 | blog_post = each_blog_post_data.get_media_entry | |
42 | if state == None: | |
43 | blog_posts_list.append(blog_post) | |
44 | if blog_post.state == state: | |
45 | blog_posts_list.append(blog_post) | |
46 | blog_posts_list.reverse() | |
47 | return blog_posts_list | |
36990574 BB |
48 | |
49 | def get_blog_by_slug(request, slug, **kwargs): | |
50 | if slug.startswith('blog_'): | |
51 | blog_id = int(slug[5:]) | |
52 | blog = request.db.Blog.query.filter_by(id=blog_id, **kwargs).first() | |
53 | else: | |
54 | blog = request.db.Blog.query.filter_by(slug=slug, **kwargs).first() | |
55 | return blog | |
dc56835a | 56 |