from datetime import datetime
+import six
+
from werkzeug.exceptions import Forbidden
from mediagoblin.tools import pluginapi
from mediagoblin.media_types.blog import forms as blog_forms
from mediagoblin.media_types.blog.models import Blog, BlogPostData
-from mediagoblin.media_types.blog.lib import may_edit_blogpost, set_blogpost_state, get_all_blogposts_of_blog
+from mediagoblin.media_types.blog.lib import (
+ may_edit_blogpost, set_blogpost_state, get_all_blogposts_of_blog,
+ get_blog_by_slug)
from mediagoblin.messages import add_message, SUCCESS, ERROR
from mediagoblin.decorators import (require_active_login, active_user_from_url,
cleaned_markdown_conversion)
from mediagoblin.db.util import check_media_slug_used, check_collection_slug_used
-from mediagoblin.db.models import User, Collection, MediaEntry
+from mediagoblin.db.models import User, Collection, MediaEntry, LocalUser
from mediagoblin.notifications import add_comment_subscription
@require_active_login
def blog_edit(request):
"""
- View for editing an existing blog or creating a new blog
+ View for editing an existing blog or creating a new blog
if user have not exceeded maximum allowed acount of blogs.
"""
url_user = request.matchdict.get('user', None)
if request.method=='POST' and form.validate():
_log.info("Here")
blog = request.db.Blog()
- blog.title = unicode(form.title.data)
- blog.description = unicode(cleaned_markdown_conversion((form.description.data)))
+ blog.title = six.text_type(form.title.data)
+ blog.description = six.text_type(cleaned_markdown_conversion((form.description.data)))
blog.author = request.user.id
blog.generate_slug()
#Blog already exists.
else:
- blog = request.db.Blog.query.filter_by(slug=blog_slug).first()
+ blog = get_blog_by_slug(request, blog_slug)
if not blog:
return render_404(request)
if request.method == 'GET':
'app_config': mg_globals.app_config})
else:
if request.method == 'POST' and form.validate():
- blog.title = unicode(form.title.data)
- blog.description = unicode(cleaned_markdown_conversion((form.description.data)))
+ blog.title = six.text_type(form.title.data)
+ blog.description = six.text_type(cleaned_markdown_conversion((form.description.data)))
blog.author = request.user.id
blog.generate_slug()
if request.method == 'POST' and form.validate():
blog_slug = request.matchdict.get('blog_slug')
- blog = request.db.Blog.query.filter_by(slug=blog_slug,
- author=request.user.id).first()
+ blog = get_blog_by_slug(request, blog_slug, author=request.user.id)
if not blog:
return render_404(request)
blogpost = request.db.MediaEntry()
blogpost.media_type = 'mediagoblin.media_types.blogpost'
- blogpost.title = unicode(form.title.data)
- blogpost.description = unicode(cleaned_markdown_conversion((form.description.data)))
+ blogpost.title = six.text_type(form.title.data)
+ blogpost.description = six.text_type(cleaned_markdown_conversion((form.description.data)))
blogpost.tags = convert_to_tag_list_of_dicts(form.tags.data)
- blogpost.license = unicode(form.license.data) or None
- blogpost.uploader = request.user.id
+ blogpost.license = six.text_type(form.license.data) or None
+ blogpost.actor = request.user.id
blogpost.generate_slug()
set_blogpost_state(request, blogpost)
@require_active_login
def blogpost_edit(request):
-
+
blog_slug = request.matchdict.get('blog_slug', None)
blog_post_slug = request.matchdict.get('blog_post_slug', None)
- blogpost = request.db.MediaEntry.query.filter_by(slug=blog_post_slug, uploader=request.user.id).first()
- blog = request.db.Blog.query.filter_by(slug=blog_slug, author=request.user.id).first()
+ blogpost = request.db.MediaEntry.query.filter_by(slug=blog_post_slug, actor=request.user.id).first()
+ blog = get_blog_by_slug(request, blog_slug, author=request.user.id)
if not blogpost or not blog:
return render_404(request)
form = blog_forms.BlogPostEditForm(request.form, **defaults)
if request.method == 'POST' and form.validate():
- blogpost.title = unicode(form.title.data)
- blogpost.description = unicode(cleaned_markdown_conversion((form.description.data)))
+ blogpost.title = six.text_type(form.title.data)
+ blogpost.description = six.text_type(cleaned_markdown_conversion((form.description.data)))
blogpost.tags = convert_to_tag_list_of_dicts(form.tags.data)
- blogpost.license = unicode(form.license.data)
+ blogpost.license = six.text_type(form.license.data)
set_blogpost_state(request, blogpost)
blogpost.generate_slug()
blogpost.save()
max_blog_count = config['max_blog_count']
if request.user and (request.user.id == url_user.id or request.user.has_privilege(u'admin')):
if blog_slug:
- blog = blogs.filter(Blog.slug==blog_slug).first()
+ blog = get_blog_by_slug(request, blog_slug)
if not blog:
return render_404(request)
else:
"""
Page, listing all the blog posts of a particular blog.
"""
- blog_slug = request.matchdict.get('blog_slug', None)
- blog = request.db.Blog.query.filter_by(slug=blog_slug).first()
+ blog_slug = request.matchdict['blog_slug']
+ blog = get_blog_by_slug(request, blog_slug, author=url_user.id)
if not blog:
return render_404(request)
'blog_owner': url_user,
'blog':blog
})
-
+
@require_active_login
def draft_view(request):
-
blog_slug = request.matchdict.get('blog_slug', None)
blog_post_slug = request.matchdict.get('blog_post_slug', None)
user = request.matchdict.get('user')
-
- blog = request.db.Blog.query.filter_by(author=request.user.id, slug=blog_slug).first()
- blogpost = request.db.MediaEntry.query.filter_by(state = u'failed', uploader=request.user.id, slug=blog_post_slug).first()
+ blog = get_blog_by_slug(request, blog_slug, author=request.user.id)
+ blogpost = request.db.MediaEntry.query.filter_by(state = u'failed', actor=request.user.id, slug=blog_post_slug).first()
if not blog or not blogpost:
return render_404(request)
{'blogpost':blogpost,
'blog': blog
})
-
-
+
+
@require_active_login
def blog_delete(request, **kwargs):
"""
- Deletes a blog and media entries, tags associated with it.
+ Deletes a blog and media entries, tags associated with it.
"""
url_user = request.matchdict.get('user')
- owner_user = request.db.User.query.filter_by(username=url_user).first()
+ owner_user = request.db.LocalUser.query.filter(
+ LocalUser.username==url_user
+ ).first()
blog_slug = request.matchdict.get('blog_slug', None)
- blog = request.db.Blog.query.filter_by(slug=blog_slug, author=owner_user.id).first()
+ blog = get_blog_by_slug(request, blog_slug, author=owner_user.id)
if not blog:
- return render_404(reequest)
+ return render_404(request)
form = blog_forms.ConfirmDeleteForm(request.form)
if request.user.id == blog.author or request.user.has_privilege(u'admin'):
_("The blog was not deleted because you have no rights."))
return redirect(request, "mediagoblin.media_types.blog.blog_admin_dashboard",
user=request.user.username)
-
-
+
+
def blog_about_view(request):
"""
Page containing blog description and statistics
"""
blog_slug = request.matchdict.get('blog_slug', None)
url_user = request.matchdict.get('user', None)
-
- user = request.db.User.query.filter_by(username=url_user).first()
- blog = request.db.Blog.query.filter_by(author=user.id, slug=blog_slug).first()
-
+
+ user = request.db.LocalUser.query.filter(
+ LocalUser.username==url_user
+ ).first()
+ blog = get_blog_by_slug(request, blog_slug, author=user.id)
+
if not user or not blog:
return render_404(request)
-
+
else:
blog_posts_processed = blog.get_all_blog_posts(u'processed').count()
return render_to_response(
'blog': blog,
'blogpost_count': blog_posts_processed
})
-
-
-
-
-
-
-
-