Exemplo n.º 1
0
def create_topic(request, forum, topic=None):
    from forms import TopicForm, PostForm, AddPostForm, EditPostForm
    from django import forms

    forum = get_object_or_404(Forum, active=True, slug=forum)
    if request.method == "GET":
        if topic:
            topic = get_object_or_404(Topic, id=topic)
            apf = EditPostForm(topic=topic, instance=topic.get_body)
        else:
            apf = AddPostForm()

        return render(request, "forum/create_topic.html", {
            "forum": forum,
            "apf": apf,
        })
    if request.method == "POST":
        ip = request.META.get('HTTP_X_FORWARDED_FOR', None)
        post_form_kwargs = {
            "forum": forum,
            "user": request.user,
            "ip": ip,
        }

        apf = AddPostForm(request.POST, **post_form_kwargs)
        if apf.is_valid():
            url = reverse('forum:forum', args=[
                str(forum.slug),
            ])
            apf.save()
            return redirect(url)
        else:
            return HttpResponse("Invalid")
Exemplo n.º 2
0
def edit(post_id):
    try:
        oid = ObjectId(post_id)
    except:
        return redirect(url_for("newpost"))
    post = db.posts.find_one({"_id": oid})
    if request.method == 'GET':
        form = EditPostForm()
        form.post_id.data = post_id
        form.title.data = post['title']
        form.content.data = post['body']
        return render_template("write.html", form=form, post_id=post_id)
    else:
        form = NewPostForm(request.form)
        if form.validate():
            title = form.title.data
            body = form.content.data
            md = Markdown()
            html = md.convert(gfm(body))
            db.posts.update(
                {"_id": oid},
                {"$set": {
                    "title": title,
                    "body": body,
                    "html": html
                }})
            return redirect(url_for("home"))
        else:
            return render_template("write.html", form=form, post_id=post_id)
Exemplo n.º 3
0
def edit_post(key):
    post = ndb.Key(urlsafe=key).get()
    form = EditPostForm(obj=post)
    if form.validate_on_submit():
        form.save()
        flash(u'文章修改成功')
        return go_delay_redirect(url_for("admin.post.edit", key=key))
    return render_template('admin/new_or_edit_post.html',
                           form=form,
                           post=post,
                           new=False)
Exemplo n.º 4
0
def edit_post(postid, content, return_where):
    if not permission_to_edit_post(session['userid'], postid):
        flash("You don't have permission to edit this content.")
        return redirect(url_for('error'))

    edit_form = EditPostForm(request.form)
    if edit_form.validate() and request.method == 'POST':
        edit_post_controller(postid, edit_form.content.data)
        if return_where == 'userpage':
            # get userid of page where post belongs to
            userpage = get_page(postid).ownerid
            return redirect(url_for('user_page', userid=userpage))
        elif return_where == 'grouppage':
            grouppage = get_page(postid).groupid
            return redirect(url_for('group_page', groupid=grouppage))
        else:
            return redirect(url_for('post_page', postid=postid))
    else:
        edit_form = EditPostForm()
        edit_form.content.data = content
        return render_template('pages/editpost.html',
                               form=edit_form,
                               content=content)
Exemplo n.º 5
0
def edit_post(post_id):
    args = dict(request.args)
    session = db_session.create_session()
    post = session.query(Post).filter(Post.id == post_id).first()
    if post.author.id == current_user.id:
        form = EditPostForm(obj=post)
        if form.validate_on_submit():
            post.title = form.title.data
            post.text = form.text.data
            now_datetime = datetime.datetime.now()
            post.editing_date = now_datetime
            post.editing_date_norm_view = date_to_normal_view(now_datetime)
            session.commit()
            return redirect(args['back_url'])
        return render_template('add_edit_post_page.html', form=form, add=False)
    return redirect('/')
Exemplo n.º 6
0
def edit_post(id):
    form = EditPostForm()
    task_to_edit = Post.query.get_or_404(id)

    if request.method == 'POST':
        task_to_edit.sub_title = form.sub_title.data
        task_to_edit.content = form.content.data
        db.session.commit()
        flash('updated successfully', 'success')
        return redirect(
            url_for('account',
                    sub_title=task_to_edit.sub_title,
                    content=task_to_edit.content))
    elif request.method == 'GET':
        form.sub_title.data = task_to_edit.sub_title
        form.content.data = task_to_edit.content
    return render_template('edit_post.html', form=form)
Exemplo n.º 7
0
def update_post(post_id):
    """Edit form for user's posts."""

    post = Post.query.get(post_id)

    if "user_id" not in session:
        flash("🚫 You must be logged in to edit posts.")
        return redirect("/")

    form = EditPostForm(obj=post)

    if form.validate_on_submit():
        post.title = form.title.data
        post.photo_url = form.photo_url.data
        post.purchase_url = form.purchase_url.data
        post.caption = form.caption.data

        db.session.commit()
        flash(f"New post: {post.title} updated. 👍🏻")
        return redirect("/myposts")

    return render_template("posts/post_edit.html", form=form, post=post)
Exemplo n.º 8
0
def edit_blog_post(post_id):
    user = current_user
    post = Post.query.filter_by(id=post_id).first_or_404()

    # Check that the user logged in is the post's author, if not redirect to index
    if (post.author.id != user.id):
        flash("Only the author of this post can edit it.")
        return redirect('/index')

    title = 'Edit Blog Post'
    header = 'Edit a Blog Post'

    form = EditPostForm(obj=post)

    if form.validate_on_submit():
        post.title = form.title.data
        post.content = form.content.data
        if form.update_ts.data:
            post.timestamp = datetime.datetime.now()

        try:
            db.session.commit()
            flash('Post "' + form.title.data + '" updated!')
            return redirect('/index')
        except e:
            flash(e.message)
            return redirect('/edit_blog_post/' + str(post_id))

    form.populate_obj(post)

    return render_template('edit_blog_post.html',
                           user=user,
                           title=title,
                           header=header,
                           form=form,
                           post=post)
Exemplo n.º 9
0
def edit_post(board_id, post_id):
    """ Edit or add post due date """
    board = Board.query.get_or_404(board_id)

    if not g.user or board.user_id != g.user.id:
        flash("Access unauthorized.", "danger")
        return redirect("/")

    post = Post.query.get_or_404(post_id)
    form = EditPostForm(obj=post)

    if form.validate_on_submit():
        post.complete_by = form.complete_by.data
        db.session.add(post)
        db.session.commit()

        return redirect(f"/boards/{board_id}")

    else:
        notifications = get_notifications(g.user.id)
        return render_template('edit_post.html',
                               form=form,
                               post=post,
                               notifications=notifications)