Beispiel #1
0
def add_new_post():
    form = CreatePostForm()
    if form.validate_on_submit():
        data = BlogPost(
            author=current_user,
            title=form.title.data,
            subtitle=form.subtitle.data,
            date=date.today().strftime("%B %d, %Y"),
            body=form.body.data,
            img_url=form.img_url.data,
        )
        db.session.add(data)
        db.session.commit()
        return redirect(url_for('home'))
    return render_template('make-post.html', form=form)
Beispiel #2
0
def add_new_post():
    form = CreatePostForm()
    if form.validate_on_submit():
        new_post = BlogPost(title=form.title.data,
                            subtitle=form.subtitle.data,
                            body=form.body.data,
                            img_url=form.img_url.data,
                            author=current_user,
                            date=date.today().strftime("%B %d, %Y"))
        db.session.add(new_post)
        db.session.commit()
        return redirect(url_for("get_all_posts"))
    return render_template("make-post.html",
                           form=form,
                           current_user=current_user)
Beispiel #3
0
def edit_post(post_id):
    post = BlogPost.query.get(post_id)
    edit_form = CreatePostForm(title=post.title,
                               subtitle=post.subtitle,
                               img_url=post.img_url,
                               author=post.author,
                               body=post.body)
    if edit_form.validate_on_submit():
        post.title = edit_form.title.data
        post.subtitle = edit_form.subtitle.data
        post.img_url = edit_form.img_url.data
        post.author = edit_form.author.data
        post.body = edit_form.body.data
        db.session.commit()
        return redirect(url_for("show_post", post_id=post.id))
Beispiel #4
0
def edit_post(post_id):
    post = BlogPost.query.get(post_id)
    edit_form = CreatePostForm(title=post.title,
                               author=post.author,
                               body=post.body)
    if edit_form.validate_on_submit() and request.method == "POST":
        post.title = edit_form.title.data
        # post.author = edit_form.author.data
        post.body = edit_form.body.data
        db.session.commit()
        return redirect(url_for("show_post", post_id=post.id))

    return render_template("make-post.html",
                           form=edit_form,
                           is_login=current_user.is_authenticated)
Beispiel #5
0
def add_new_post():
    form = CreatePostForm()
    if request.method == 'POST':
        new_post = BlogPost(title=form.title.data,
                            subtitle=form.subtitle.data,
                            body=form.body.data,
                            img_url=form.img_url.data,
                            author=current_user.name,
                            date=date.today().strftime("%B %d, %Y"),
                            the_user=current_user)
        db.session.add(new_post)
        db.session.commit()
        return redirect(url_for("get_all_posts"))
    else:
        return render_template("make-post.html", form=form)
def edit_post(post_id):
    post = BlogPost.query.get(post_id)
    edit_form = CreatePostForm(title=post.title,
                               subtitle=post.subtitle,
                               img_url=post.img_url,
                               body=post.body)
    if edit_form.validate_on_submit():
        post.title = edit_form.title.data
        post.subtitle = edit_form.subtitle.data
        post.img_url = edit_form.img_url.data
        post.body = edit_form.body.data
        db.session.commit()
        return redirect(url_for("show_post", post_id=post.id))

    return render_template("make-post.html", form=edit_form)
Beispiel #7
0
def new_post():
    form = CreatePostForm()
    if form.validate_on_submit():
        post = BlogPost(
            author_id=current_user.id,
            title=form.title.data,
            subtitle=form.subtitle.data,
            body=form.body.data,
            img_url=form.img_url.data,
            date=date.today().strftime("%B %d, %Y")
        )
        db.session.add(post)
        db.session.commit()
        return redirect(url_for("get_all_posts"))
    return render_template("make-post.html", form=form, logged_in=current_user.is_authenticated, is_edit=False)
def add_new_post():
    form = CreatePostForm()
    if form.validate_on_submit():
        if BlogPost.query.filter_by(title=form.title.data).first():
            flash('A post with this title already exists.')
        else:
            new_post = BlogPost(title=form.title.data,
                                subtitle=form.subtitle.data,
                                body=form.body.data,
                                img_url=form.img_url.data,
                                author=current_user,
                                date=date.today().strftime("%B %d, %Y"))
            db.session.add(new_post)
            db.session.commit()
            return redirect(url_for("get_all_posts"))
    return render_template("make-post.html", form=form)
Beispiel #9
0
def edit_post(post_id):
    post = BlogPost.query.get(post_id)
    form = CreatePostForm(
        title=post.title,
        subtitle=post.subtitle,
        img_url=post.img_url,
        body=post.body
    )
    if form.validate_on_submit():
        post.title = form.title.data
        post.subtitle = form.subtitle.data
        post.img_url = form.img_url.data
        post.body = form.body.data
        db.session.commit()
        return redirect(url_for("show_post", post_id=post.id))

    return render_template("make-post.html", form=form, logged_in=current_user.is_authenticated, is_edit=True)
Beispiel #10
0
def edit_post(post_id):
    data = BlogPost.query.get(post_id)
    form = CreatePostForm(
        title=data.title,
        subtitle=data.subtitle,
        img_url=data.img_url,
        body=data.body,
    )

    if form.validate_on_submit():
        data.title = form.title.data
        data.subtitle = form.subtitle.data
        data.body = form.body.data
        data.img_url = form.img_url.data
        db.session.commit()
        return redirect(url_for('show_post', post_id=data.id))

    return render_template('make-post.html', form=form, is_edit=True)
Beispiel #11
0
def edit_post(post_id):
    post = BlogPost.query.get(post_id)
    edit_form = CreatePostForm(title=post.title,
                               subtitle=post.subtitle,
                               body=post.body,
                               author=str(post.author.name),
                               img_url=post.img_url)
    if edit_form.validate_on_submit():
        post.title = edit_form.title.data
        post.subtitle = edit_form.subtitle.data
        post.date = post.date
        post.body = edit_form.body.data
        post.author_id = current_user.id
        post.img_url = edit_form.img_url.data
        db.session.commit()
        return redirect(url_for("show_post", index=post.id))

    return render_template("make-post.html", form=edit_form, name='Edit')
Beispiel #12
0
def add_new_post():
    if not current_user.is_authenticated:
        flash("Please register or log in to post a blog.")
        return redirect(url_for("login"))
    form = CreatePostForm()
    if form.validate_on_submit():
        new_post = BlogPost(title=form.title.data,
                            subtitle=form.subtitle.data,
                            body=form.body.data,
                            img_url=form.img_url.data,
                            blog_author=current_user,
                            date=date.today().strftime("%B %d, %Y"))
        db.session.add(new_post)
        db.session.commit()
        return redirect(url_for("get_all_posts"))
    return render_template("make-post.html",
                           form=form,
                           logged_in=current_user.is_authenticated)
Beispiel #13
0
def add_new_post():
    form = CreatePostForm()
    if form.validate_on_submit():
        new_post = BlogPost(title=form.title.data,
                            subtitle=form.subtitle.data,
                            body=form.body.data,
                            img_url=form.img_url.data,
                            author=current_user,
                            date=date.today().strftime("%B %d, %Y"))
        try:
            db.session.add(new_post)
            db.session.commit()
            return redirect(url_for("get_all_posts"))
        except IntegrityError:
            flash(
                "The post title is duplicate with the existing post title. Please try again."
            )
            return redirect(url_for("add_new_post"))
    return render_template("make-post.html", form=form)
Beispiel #14
0
def edit_post(post_id):
    post = BlogPost.query.get(post_id)
    edit_form = CreatePostForm(title=post.title,
                               subtitle=post.subtitle,
                               img_url=post.img_url,
                               author=post.author,
                               body=post.body)
    if edit_form.validate_on_submit():
        post.title = edit_form.title.data
        post.subtitle = edit_form.subtitle.data
        post.img_url = edit_form.img_url.data
        post.body = edit_form.body.data
        db.session.commit()
        return redirect(url_for("get_all_posts"))

    return render_template("make-post.html",
                           form=edit_form,
                           current_user=current_user,
                           is_edit=True)
Beispiel #15
0
def edit_post(post_id):
    post = BlogPost.query.get(post_id)
    edit_form = CreatePostForm(
        title=post.title,
        subtitle=post.subtitle,
        img_url=post.img_url,
        body=post.body
    )
    if request.method == "POST" and edit_form.validate_on_submit():
        post_to_update = BlogPost.query.filter_by(id=post_id).first()
        post_to_update.title = request.form.get("title")
        post_to_update.subtitle = request.form.get("subtitle")
        post_to_update.img_url = request.form.get("img_url")
        post_to_update.body = request.form.get("body")
        db.session.commit()

        return redirect(url_for("show_post", post_id=post.id))

    return render_template("make-post.html", form=edit_form, is_edit=True)
Beispiel #16
0
def edit_post(post_id):
    post = BlogPost.query.get(post_id)
    if post is not None:
        edit_form = CreatePostForm(title=post.title,
                                   subtitle=post.subtitle,
                                   img_url=post.img_url,
                                   body=post.body)
        if edit_form.validate_on_submit():
            post.title = edit_form.title.data
            post.subtitle = edit_form.subtitle.data
            post.img_url = edit_form.img_url.data
            post.body = edit_form.body.data
            db.session.commit()
            return redirect(url_for("show_post", post_id=post.id))

        return render_template("make-post.html", form=edit_form)
    else:
        flash("Post with this id not found!")
        return redirect(url_for("get_all_posts"))
Beispiel #17
0
def new_post():
    form = CreatePostForm()
    if form.validate_on_submit():
        post_date = dt.today().strftime("%B %d, %Y")
        new_post = BlogPost(title=form.title.data,
                            subtitle=form.subtitle.data,
                            date=post_date,
                            author=current_user.name,
                            user_id=current_user.id,
                            img_url=form.img_url.data,
                            body=form.body.data)
        db.session.add(new_post)
        db.session.commit()
        return redirect(url_for('get_all_posts'))

    return render_template("make-post.html",
                           form=form,
                           title="New Post",
                           submit="Submit Post",
                           logged_in=current_user.is_authenticated)
Beispiel #18
0
def add_new_post():
    if not current_user.is_authenticated:
        flash("You need to login or register to publish your story.")
        return redirect(url_for("login"))
    else:
        form = CreatePostForm()
        if form.validate_on_submit():
            new_post = BlogPost(title=form.title.data,
                                subtitle=form.subtitle.data,
                                body=form.body.data,
                                img_url=form.img_url.data,
                                author=current_user,
                                date=date.today().strftime("%B %d, %Y"))
            db.session.add(new_post)
            db.session.commit()
            return redirect(url_for("get_all_posts"))

    return render_template("make-post.html",
                           form=form,
                           current_user=current_user)
Beispiel #19
0
def edit_post(post_id):
    edit_post = BlogPost.query.get(post_id)
    #this populates the form with the post to be edited data
    form = CreatePostForm(title=edit_post.title,
                          subtitle=edit_post.subtitle,
                          img_url=edit_post.img_url,
                          body=edit_post.body)
    if form.validate_on_submit():
        edit_post.title = form.title.data
        edit_post.subtitle = form.subtitle.data
        edit_post.img_url = form.img_url.data
        edit_post.body = form.body.data
        db.session.commit()
        return redirect(url_for("show_post", index=edit_post.id))
    return render_template("make-post.html",
                           submit="Edit Post",
                           form=form,
                           title="Edit Post",
                           is_edit=True,
                           index=edit_post.id,
                           logged_in=current_user.is_authenticated)
Beispiel #20
0
def edit_post(post_id):
    '''
    Edit a Post by Id.

    Update all Post data on submit.
    '''
    post = mongo.db.blog_posts.find_one({"_id": ObjectId(post_id)})

    edit_form = CreatePostForm(title=post["title"],
                               subtitle=post["subtitle"],
                               img_url=post["img_url"],
                               author=session["user"],
                               body=post["body"])
    if edit_form.validate_on_submit():
        post["title"] = edit_form.title.data
        post["subtitle"] = edit_form.subtitle.data
        post["img_url"] = edit_form.img_url.data
        post["body"] = edit_form.body.data
        mongo.db.blog_posts.update({"_id": ObjectId(post_id)}, post)
        return redirect(url_for("show_post", post_id=post_id))
    return render_template("create_post.html", form=edit_form, is_edit=True)
Beispiel #21
0
def add_new_post():
    """displays the page and form to allow the admin to create new blog posts.
        this route is restricted to the admin

    GET: displays the form to allow the admin to create new blog posts
    POST: submits a request to add a new blog post to the database, redirects to the landing page if successful
    """

    form = CreatePostForm()
    if form.validate_on_submit():
        new_post = BlogPost(
            title=form.title.data,
            subtitle=form.subtitle.data,
            body=form.body.data,
            img_url=form.img_url.data,
            author_id=current_user.id, # author_id is now an integer that is a foreign key reference to users table
            date=date.today().strftime("%B %d, %Y")
        )
        db.session.add(new_post)
        db.session.commit()
        return redirect(url_for("get_all_posts"))
    return render_template("make-post.html", form=form)
Beispiel #22
0
def add_new_post():
    print("in add new post")
    form = CreatePostForm()
    if form.validate_on_submit():
        print("inside if")
        new_post = BlogPost(

            title=form.title.data,
            subtitle=form.subtitle.data,
            body=form.body.data,
            img_url=form.img_url.data,
            # author=current_user
            author_id=current_user.id,
            date=date.today().strftime("%B %d, %Y")
        )
        print("outside new_post = Blogpost")
        db.session.add(new_post)
        print("db.session.add(new_post")
        db.session.commit()
        print("db.session.commit()")

        return redirect(url_for("get_all_posts"))
    return render_template("make-post.html", form=form, current_user=current_user)
Beispiel #23
0
def new_post():
    '''Render a page that allows a user to create a new post.'''
    form = CreatePostForm()

    if form.validate_on_submit():
        # grab the data from the post and add it into the database
        posted_date = datetime.datetime.now()
        created_post = BlogPost(
            title=request.form['title'],
            subtitle=request.form['subtitle'],
            author_id=current_user.id,
            date=posted_date.strftime("%B %d, %Y"),
            img_url=request.form['img_url'],
            body=request.form.get('body'),
        )

        # commit the created post into the database.
        db.session.add(created_post)
        db.session.commit()

        # redirect the user to come back to the home page.
        return redirect(url_for("get_all_posts"))
    return render_template("make-post.html", form=form, logged_in=current_user)
Beispiel #24
0
def edit_post(post_id):
    requested_post = BlogPost.query.get(post_id)
    if requested_post:
        if current_user.is_authenticated:
            if requested_post.author.email == current_user.email:
                form = CreatePostForm(title=requested_post.title,
                                      subtitle=requested_post.subtitle,
                                      img_url=requested_post.img_url,
                                      body=requested_post.body)
                if form.validate_on_submit():
                    return post_edition(requested_post=requested_post,
                                        form=form,
                                        request='POST')
                else:
                    return post_edition(requested_post=requested_post,
                                        form=form,
                                        request='GET')
            else:
                return abort(403)
        else:
            return abort(401)
    else:
        return abort(404)
Beispiel #25
0
def add_new_post():
    form = CreatePostForm()
    if form.validate_on_submit():
        if BlogPost.query.filter_by(title=form.title.data).first():
            form.title.errors.append("This title is already exist.")
        else:
            new_post = BlogPost(title=form.title.data,
                                subtitle=form.subtitle.data,
                                body=form.body.data,
                                img_url=form.img_url.data,
                                author=current_user,
                                date=get_jkt_timezone(
                                    datetime.now()).strftime("%B %d, %Y"),
                                views=0)
            db.session.add(new_post)
            db.session.commit()
            return redirect(url_for("get_all_posts"))
        return render_template("make-post.html",
                               form=form,
                               logged_in=current_user.is_authenticated)
    return render_template("make-post.html",
                           form=form,
                           logged_in=current_user.is_authenticated)
Beispiel #26
0
def create_post():
    '''
    Create a new Post.

    Inject all form data to a new blog post document on submit.
    '''
    if "user" in session:
        # create a Form for data entry
        form = CreatePostForm()
        if form.validate_on_submit():
            new_post = {
                "title": form.title.data,
                "subtitle": form.subtitle.data,
                "body": form.body.data,
                "img_url": form.img_url.data,
                "author": session["user"],
                "date": date.today().strftime("%B %d, %Y")
            }
            mongo.db.blog_posts.insert_one(new_post)
            flash("Post Successfully Added")
            return redirect(url_for("get_all_posts"))
        return render_template("create_post.html", form=form)
    else:
        return redirect(url_for("login"))
Beispiel #27
0
def add_post():
    form = CreatePostForm()
    if form.validate_on_submit():
        return post_addition(form)
    return render_template('make-post.html', form=form)