def blogpost_create(request): form = blog_forms.BlogPostEditForm(request.form, license=request.user.license_preference) 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() 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.tags = convert_to_tag_list_of_dicts(form.tags.data) blogpost.license = unicode(form.license.data) or None blogpost.uploader = request.user.id blogpost.generate_slug() set_blogpost_state(request, blogpost) blogpost.save() # connect this blogpost to its blog blog_post_data = request.db.BlogPostData() blog_post_data.blog = blog.id blog_post_data.media_entry = blogpost.id blog_post_data.save() add_message(request, SUCCESS, _('Woohoo! Submitted!')) add_comment_subscription(request.user, blogpost) return redirect(request, "mediagoblin.media_types.blog.blog-dashboard", user=request.user.username, blog_slug=blog.slug) return render_to_response( request, 'mediagoblin/blog/blog_post_edit_create.html', { 'form': form, 'app_config': mg_globals.app_config, 'user': request.user.username })
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, 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) defaults = dict( title = blogpost.title, description = cleaned_markdown_conversion(blogpost.description), tags=media_tags_as_string(blogpost.tags), license=blogpost.license) form = blog_forms.BlogPostEditForm(request.form, **defaults) if request.method == 'POST' and form.validate(): 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 = six.text_type(form.license.data) set_blogpost_state(request, blogpost) blogpost.generate_slug() blogpost.save() messages.add_message( request, messages.SUCCESS, _('Woohoo! edited blogpost is submitted')) return redirect(request, "mediagoblin.media_types.blog.blog-dashboard", user=request.user.username, blog_slug=blog.slug) return render_to_response( request, 'mediagoblin/blog/blog_post_edit_create.html', {'form': form, 'app_config': mg_globals.app_config, 'user': request.user.username, 'blog_post_slug': blog_post_slug })
def blogpost_create(request): form = blog_forms.BlogPostEditForm(request.form, license=request.user.license_preference) if request.method == 'POST' and form.validate(): blog_slug = request.matchdict.get('blog_slug') 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 = 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 = six.text_type(form.license.data) or None blogpost.actor = request.user.id blogpost.generate_slug() set_blogpost_state(request, blogpost) blogpost.save() # connect this blogpost to its blog blog_post_data = request.db.BlogPostData() blog_post_data.blog = blog.id blog_post_data.media_entry = blogpost.id blog_post_data.save() messages.add_message( request, messages.SUCCESS, _('Woohoo! Submitted!')) add_comment_subscription(request.user, blogpost) return redirect(request, "mediagoblin.media_types.blog.blog-dashboard", user=request.user.username, blog_slug=blog.slug) return render_to_response( request, 'mediagoblin/blog/blog_post_edit_create.html', {'form': form, 'app_config': mg_globals.app_config, 'user': request.user.username})
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 = get_blog_by_slug(request, blog_slug, author=request.user.id) if not blogpost or not blog: return render_404(request) defaults = dict(title=blogpost.title, description=cleaned_markdown_conversion( blogpost.description), tags=media_tags_as_string(blogpost.tags), license=blogpost.license) form = blog_forms.BlogPostEditForm(request.form, **defaults) if request.method == 'POST' and form.validate(): 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 = six.text_type(form.license.data) set_blogpost_state(request, blogpost) blogpost.generate_slug() blogpost.save() add_message(request, SUCCESS, _('Woohoo! edited blogpost is submitted')) return redirect(request, "mediagoblin.media_types.blog.blog-dashboard", user=request.user.username, blog_slug=blog.slug) return render_to_response( request, 'mediagoblin/blog/blog_post_edit_create.html', { 'form': form, 'app_config': mg_globals.app_config, 'user': request.user.username, 'blog_post_slug': blog_post_slug })