Exemplo n.º 1
0
def edit_post(url):
    post = Post.query.filter_by(url=url).first_or_404()
    form = PostForm()

    if form.validate_on_submit():
        post.title = form.title.data
        post.url = form.url.data
        post.markdown_url = form.markdown_url.data
        post.summary = form.summary.data
        post.img_url = form.img_url.data

        # split the tags by comas
        post_tags = form.tags.data.replace(" ", "").split(",")

        # check for deleted tags
        Tag.check_deleted_tags(post, post_tags)

        # check for existing tags
        Tag.update_tags(post_tags, post)

        db.session.commit()
        flash('Changes on "{}" have been saved.'.format(form.title.data))

        return redirect(url_for("dashboard.overview"))

    elif request.method == "GET":
        form.title.data = post.title
        form.url.data = post.url
        form.markdown_url.data = post.markdown_url
        form.summary.data = post.summary
        form.img_url.data = post.img_url
        # use regex to format the tags
        tag_regex = re.compile(r"\[(.*)\]")
        mo = tag_regex.search(str(post.tag.all()))
        form.tags.data = mo.group(1)

    return render_template(
        "dashboard/new_post.html",
        post=post,
        form=form,
        title="Edit Post",
        overview_active="is-active",
    )