예제 #1
0
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
        })
예제 #2
0
파일: views.py 프로젝트: ausbin/mediagoblin
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
        })
예제 #3
0
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))
예제 #4
0
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))
예제 #5
0
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)
예제 #6
0
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
        })
예제 #7
0
파일: views.py 프로젝트: ausbin/mediagoblin
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})
예제 #8
0
파일: mixin.py 프로젝트: imclab/mediagoblin
 def description_html(self):
     """
     Rendered version of the description, run through
     Markdown and cleaned with our cleaning tool.
     """
     return cleaned_markdown_conversion(self.description)
예제 #9
0
파일: mixin.py 프로젝트: imclab/mediagoblin
 def bio_html(self):
     return cleaned_markdown_conversion(self.bio)
예제 #10
0
파일: mixin.py 프로젝트: imclab/mediagoblin
 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)
예제 #11
0
 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)
예제 #12
0
파일: views.py 프로젝트: tofay/mediagoblin
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)
예제 #13
0
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)
예제 #14
0
 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)
예제 #15
0
 def description_html(self):
     """
     Rendered version of the description, run through
     Markdown and cleaned with our cleaning tool.
     """
     return cleaned_markdown_conversion(self.description)
예제 #16
0
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)            
예제 #17
0
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)
예제 #18
0
파일: mixin.py 프로젝트: imclab/mediagoblin
 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)
예제 #19
0
 def bio_html(self):
     return cleaned_markdown_conversion(self.bio)