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 })
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 media_preview_comment(request): """Runs a comment through markdown so it can be previewed.""" # If this isn't an ajax request, render_404 if not request.is_xhr: return render_404(request) comment = str(request.form['comment_content']) cleancomment = {"content": cleaned_markdown_conversion(comment)} return Response(json.dumps(cleancomment))
def media_preview_comment(request): """Runs a comment through markdown so it can be previewed.""" # If this isn't an ajax request, render_404 if not request.is_xhr: return render_404(request) comment = unicode(request.form["comment_content"]) cleancomment = {"content": cleaned_markdown_conversion(comment)} return Response(json.dumps(cleancomment))
def user_add_bio_html(database): """ Users now have richtext bios via Markdown, reflect appropriately. """ collection = database["users"] target = collection.find({"bio_html": {"$exists": False}}) for document in target: document["bio_html"] = cleaned_markdown_conversion(document["bio"]) collection.save(document)
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_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 description_html(self): """ Rendered version of the description, run through Markdown and cleaned with our cleaning tool. """ return cleaned_markdown_conversion(self.description)
def bio_html(self): return cleaned_markdown_conversion(self.bio)
def note_html(self): """ the actual html-rendered version of the note displayed. Run through Markdown and the HTML cleaner. """ return cleaned_markdown_conversion(self.note)
def content_html(self): """ the actual html-rendered version of the comment displayed. Run through Markdown and the HTML cleaner. """ return cleaned_markdown_conversion(self.content)
def blog_edit(request): """ 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) blog_slug = request.matchdict.get('blog_slug', None) config = pluginapi.get_config('mediagoblin.media_types.blog') max_blog_count = config['max_blog_count'] form = blog_forms.BlogEditForm(request.form) # creating a blog if not blog_slug: if Blog.query.filter_by(author=request.user.id).count()<max_blog_count: if request.method=='GET': return render_to_response( request, 'mediagoblin/blog/blog_edit_create.html', {'form': form, 'user' : request.user, 'app_config': mg_globals.app_config}) if request.method=='POST' and form.validate(): _log.info("Here") blog = request.db.Blog() 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.save() return redirect(request, "mediagoblin.media_types.blog.blog_admin_dashboard", user=request.user.username ) else: add_message(request, ERROR, "Welcome! You already have created \ maximum number of blogs.") return redirect(request, "mediagoblin.media_types.blog.blog_admin_dashboard", user=request.user.username) #Blog already exists. else: blog = get_blog_by_slug(request, blog_slug) if not blog: return render_404(request) if request.method == 'GET': defaults = dict( title = blog.title, description = cleaned_markdown_conversion(blog.description), author = request.user.id) form = blog_forms.BlogEditForm(**defaults) return render_to_response( request, 'mediagoblin/blog/blog_edit_create.html', {'form': form, 'user': request.user, 'app_config': mg_globals.app_config}) else: if request.method == 'POST' and form.validate(): 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.save() add_message(request, SUCCESS, "Your blog is updated.") return redirect(request, "mediagoblin.media_types.blog.blog-dashboard", user=request.user.username, blog_slug=blog.slug)
def blog_edit(request): """ View for editing the existing blog or automatically creating a new blog if user does not have any yet. """ url_user = request.matchdict.get('user', None) blog_slug = request.matchdict.get('blog_slug', None) max_blog_count = 1 form = blog_forms.BlogEditForm(request.form) # the blog doesn't exists yet if not blog_slug: if Blog.query.filter_by( author=request.user.id).count() < max_blog_count: if request.method == 'GET': return render_to_response( request, 'mediagoblin/blog/blog_edit_create.html', { 'form': form, 'user': request.user, 'app_config': mg_globals.app_config }) 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.author = request.user.id blog.generate_slug() blog.save() return redirect(request, "mediagoblin.media_types.blog.blog-dashboard", user=request.user.username, blog_slug=blog.slug) else: #the case when max blog count is one. blog = request.db.Blog.query.filter_by( author=request.user.id).first() add_message(request, ERROR, "Welcome! You already have created a blog.") return redirect(request, "mediagoblin.media_types.blog.blog-dashboard", user=request.user.username, blog_slug=blog.slug) #Blog already exists. else: blog = request.db.Blog.query.filter_by(slug=blog_slug).first() if request.method == 'GET': defaults = dict(title=blog.title, description=cleaned_markdown_conversion( blog.description), author=request.user.id) form = blog_forms.BlogEditForm(**defaults) return render_to_response( request, 'mediagoblin/blog/blog_edit_create.html', { 'form': form, 'user': request.user, '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.author = request.user.id blog.generate_slug() blog.save() add_message(request, SUCCESS, "Your blog is updated.") return redirect(request, "mediagoblin.media_types.blog.blog-dashboard", user=request.user.username, blog_slug=blog.slug)
def blog_edit(request): """ View for editing the existing blog or automatically creating a new blog if user does not have any yet. """ url_user = request.matchdict.get('user', None) blog_slug = request.matchdict.get('blog_slug', None) max_blog_count = 1 form = blog_forms.BlogEditForm(request.form) # the blog doesn't exists yet if not blog_slug: if Blog.query.filter_by(author=request.user.id).count()<max_blog_count: if request.method=='GET': return render_to_response( request, 'mediagoblin/blog/blog_edit_create.html', {'form': form, 'user' : request.user, 'app_config': mg_globals.app_config}) 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.author = request.user.id blog.generate_slug() blog.save() return redirect(request, "mediagoblin.media_types.blog.blog-dashboard", user=request.user.username, blog_slug=blog.slug) else: #the case when max blog count is one. blog = request.db.Blog.query.filter_by(author=request.user.id).first() add_message(request, ERROR, "Welcome! You already have created a blog.") return redirect(request, "mediagoblin.media_types.blog.blog-dashboard", user=request.user.username, blog_slug=blog.slug) #Blog already exists. else: blog = request.db.Blog.query.filter_by(slug=blog_slug).first() if request.method == 'GET': defaults = dict( title = blog.title, description = cleaned_markdown_conversion(blog.description), author = request.user.id) form = blog_forms.BlogEditForm(**defaults) return render_to_response( request, 'mediagoblin/blog/blog_edit_create.html', {'form': form, 'user': request.user, '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.author = request.user.id blog.generate_slug() blog.save() add_message(request, SUCCESS, "Your blog is updated.") return redirect(request, "mediagoblin.media_types.blog.blog-dashboard", user=request.user.username, blog_slug=blog.slug)
def blog_edit(request): """ 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) blog_slug = request.matchdict.get('blog_slug', None) config = pluginapi.get_config('mediagoblin.media_types.blog') max_blog_count = config['max_blog_count'] form = blog_forms.BlogEditForm(request.form) # creating a blog if not blog_slug: if Blog.query.filter_by( author=request.user.id).count() < max_blog_count: if request.method == 'GET': return render_to_response( request, 'mediagoblin/blog/blog_edit_create.html', { 'form': form, 'user': request.user, 'app_config': mg_globals.app_config }) if request.method == 'POST' and form.validate(): _log.info("Here") blog = request.db.Blog() 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.save() return redirect( request, "mediagoblin.media_types.blog.blog_admin_dashboard", user=request.user.username) else: add_message( request, ERROR, "Welcome! You already have created \ maximum number of blogs." ) return redirect( request, "mediagoblin.media_types.blog.blog_admin_dashboard", user=request.user.username) #Blog already exists. else: blog = get_blog_by_slug(request, blog_slug) if not blog: return render_404(request) if request.method == 'GET': defaults = dict(title=blog.title, description=cleaned_markdown_conversion( blog.description), author=request.user.id) form = blog_forms.BlogEditForm(**defaults) return render_to_response( request, 'mediagoblin/blog/blog_edit_create.html', { 'form': form, 'user': request.user, 'app_config': mg_globals.app_config }) else: if request.method == 'POST' and form.validate(): 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.save() add_message(request, SUCCESS, "Your blog is updated.") return redirect(request, "mediagoblin.media_types.blog.blog-dashboard", user=request.user.username, blog_slug=blog.slug)