コード例 #1
0
def post_edit(id=1):
    form = PostForm()
    form.category.choices = [(str(c.id), c.title)
                             for c in Category.query.all()]
    post = Post.query.get(id)

    if not post:
        abort(404)

    if form.validate_on_submit():
        post.title = form.title.data
        post.tags = conformTags(form)
        post.cat_id = form.category.data
        post.content = form.content.data.replace("$$id", str(post.id))
        db.session.commit()

        uploadFiles(form,
                    os.getcwd() + "/blog/static/posts/" + str(post.id) + "/")

        flash(f'Пост було опубліковано', 'success')
        return redirect(url_for('posts.post_edit', id=id))
    elif form.is_submitted():
        flash("Будь ласка, заповніть всі поля відповідно до вимог.", "error")
    form.title.data = post.title
    form.tags.data = ", ".join([tag.title for tag in post.tags])
    form.content.data = post.content
    return render_template(
        "add_post.html",
        title="Редагувати пост",
        form=form,
        files=listFiles(os.getcwd() + "/blog/static/posts/" + str(post.id) +
                        "/"))
コード例 #2
0
ファイル: routes.py プロジェクト: unyime1/my-blog
def update_post(slug):
    #This function handles post updates
    posts = Post.query.filter_by(slug=slug).first_or_404()
    post = Post.query.all()
    form = PostForm()

    if form.validate_on_submit():
        posts.title = form.title.data
        posts.subtitle = form.subtitle.data
        posts.link = form.link.data
        posts.author = form.author.data
        posts.article = form.article.data
        db.session.commit()
        flash('Your post has been updated', 'success')
        return redirect(url_for('main.home'))
    elif request.method == 'GET':
        form.title.data = posts.title
        form.subtitle.data = posts.subtitle
        form.link.data = posts.link
        form.author.data = posts.author
        form.article.data = posts.article

    return render_template('addpost.html',
                           form=form,
                           title='Update Post',
                           legend="Update Post",
                           post=post)
コード例 #3
0
def post_add():
    form = PostForm()
    form.category.choices = [(str(c.id), c.title)
                             for c in Category.query.all()]

    if form.validate_on_submit():
        tags = conformTags(form)

        post = Post(title=form.title.data,
                    content=form.content.data,
                    tags=tags,
                    cat_id=form.category.data)
        post.content = post.content.replace("$$id", str(post.id))
        db.session.add(post)
        db.session.commit()

        uploadFiles(form,
                    os.getcwd() + "/blog/static/posts/" + str(post.id) + "/")

        flash(f'Пост було опубліковано', 'success')
        return redirect(url_for('posts.post_add'))
    elif form.is_submitted():
        flash("Користувач з таким логіном вже існує!", "error")

    return render_template("add_post.html",
                           categories=Category.query.all(),
                           title="Додати пост",
                           form=form,
                           files=[])
コード例 #4
0
def update_post(post_id):
    post = Post.query.get_or_404(post_id)
    if post.author != current_user:
        abort(403)
    form = PostForm()
    form.trip.choices = [
        (g.id, g.destination)
        for g in Travel.query.order_by(Travel.date_posted.desc())
    ]
    if form.validate_on_submit():
        if form.picture.data:
            picture_file = save_picture(form.picture.data)
            post.image_file = picture_file
        trip = Travel.query.get(form.trip.data)
        post.trip = trip
        post.title = form.title.data
        post.content = form.content.data
        db.session.commit()
        flash('Your post has been updated!', 'success')
        return redirect(url_for('posts.post', post_id=post.id))
    elif request.method == 'GET':
        form.title.data = post.title
        form.content.data = post.content
    return render_template('create_post.html',
                           title='Update Post',
                           form=form,
                           legend='Update Post')
コード例 #5
0
def update_post(post_id):
    post = Post.query.get_or_404(post_id)
    if post.author != current_user:
        abort(403)
    form = PostForm()
    if form.validate_on_submit():
        dt = datetime.utcnow().replace(tzinfo=timezone.utc)
        dt = dt.astimezone(timezone(timedelta(hours=8)))
        dt = dt.replace(tzinfo=None)

        post.title = form.title.data
        post.subtitle = form.subtitle.data
        post.content = form.content.data
        post.update_posted = dt
        db.session.commit()
        flash('貼文更新完成', 'success')
        return redirect(url_for('posts.post', post_id=post.id))
    elif request.method == 'GET':
        form.title.data = post.title
        form.subtitle.data = post.subtitle
        form.content.data = post.content
    return render_template('create_post.html',
                           form=form,
                           legend='Update',
                           title='Update Post')
コード例 #6
0
ファイル: routes.py プロジェクト: bilalmerokhel/flask-blog
def new_post():
	form = PostForm()
	if form.validate_on_submit():
		post = Post(title=form.title.data, content=form.content.data, author=current_user)
		db.session.add(post)
		db.session.commit()
		flash('Post created','success')
		return redirect(url_for('main.home'))
	return render_template('create_post.html', title='New Post', legend='Create Post' ,form=form)
コード例 #7
0
ファイル: routes.py プロジェクト: EmmaSemutenga/flask_blog
def new_post():
    form = PostForm()
    if form.validate_on_submit():
        post = Post(title = form.title.data, content = form.content.data, user_id = current_user.id)#using the backref gives you the same thing i.e author=current_user
        db.session.add(post)
        db.session.commit()
        flash('Post created', 'success')
        return redirect(url_for('main.home'))
    return render_template('create_post.html', title='New Post', form=form)
コード例 #8
0
ファイル: views.py プロジェクト: AnnBengardt/website
def create():
    form = PostForm()

    if form.validate_on_submit():
        post = Post(title=form.title.data,
                    text=form.text.data,
                    user_id=current_user.id)
        db.session.add(post)
        db.session.commit()
        return redirect(url_for('core.index'))
    return render_template('create_post.html', form=form)
コード例 #9
0
def create_post():
    form = PostForm()
    if form.validate_on_submit():
        post = Post(title=form.title.data,
                    content=form.content.data,
                    brief=form.content.data[:int(len(form.content.data) / 6)],
                    author=current_user)
        db.session.add(post)
        db.session.commit()
        flash("Your post has been created", "success")
        return redirect(url_for("main.home"))
    return render_template("create_post.html", form=form, legend="Create Post")
コード例 #10
0
def new_post():
    form = PostForm()
    if form.validate_on_submit():
        post = Post(form.title.data, form.content.data, current_user.id)
        db.session.add(post)
        db.session.commit()
        flash('Your post is submitted', 'success')
        return redirect(url_for('main_bp.home'))
    return render_template('create_post.html',
                           title='New Post',
                           form=form,
                           legend='Update Post')
コード例 #11
0
ファイル: routes.py プロジェクト: Thedand/flask_blog
def new_post():
    form = PostForm()
    if form.validate_on_submit():
        post = Post(title=form.title.data,
                    body=form.body.data,
                    author=current_user)
        db.session.add(post)
        db.session.commit()
        flash('Ваша статья была создана!', 'success')
        return redirect(url_for('main.home'))
    return render_template('posts/create_post.html',
                           title='Создать новую статью',
                           form=form,
                           legend='Создать новую статью')
コード例 #12
0
ファイル: routes.py プロジェクト: JoshuaWidjaja/FlaskLearn
def newPost():
    form = PostForm()
    if form.validate_on_submit():
        post = Post(title=form.title.data,
                    content=form.content.data,
                    author=current_user)
        db.session.add(post)
        db.session.commit()
        flash("Post had been created!", "success")
        return redirect(url_for("main.home"))
    return render_template("createPost.html",
                           title="New Post",
                           form=form,
                           legend="New Post")
コード例 #13
0
def new_post():
    form = PostForm()
    categories = [(c.category_name) for c in Categories.objects]
    form.category.choices = categories
    if form.validate_on_submit():
        post = Post(title=form.title.data,
                    content=form.content.data,
                    author=current_user.id)
        post.save()
        flash("Post has been created!", "success")
        return redirect(url_for("main.home"))
    return render_template("posts/create_post.html",
                           title="New Post",
                           form=form,
                           legend="New Post")
コード例 #14
0
ファイル: routes.py プロジェクト: bilalmerokhel/flask-blog
def update_post(post_id):
	post = Post.query.get_or_404(post_id)
	if post.author != current_user:
		abort(403)
	form = PostForm()
	if form.validate_on_submit():
		post.title = form.title.data
		post.content = form.content.data
		db.session.commit()
		flash('Your Post has been updated','success')
		return redirect(url_for('posts.post', post_id=post.id))
	elif request.method == 'GET':
		form.title.data = post.title
		form.content.data = post.content
	return render_template('create_post.html', title='Update Post', legend='Update Post' ,form=form)
コード例 #15
0
def update_post(id):
    post = Post.query.get_or_404(id)
    if post.author != current_user:
        abort(403)
    form = PostForm()
    if form.validate_on_submit():
        post.title = form.title.data
        post.content = form.content.data
        db.session.commit()
        flash("Your post has been updated!", "success")
        return redirect(url_for('posts.post', id=post.id))
    elif request.method == "GET":
        form.title.data = post.title
        form.content.data = post.content
    return render_template("create_post.html", form=form, legend="Update Post")
コード例 #16
0
def new_post():
    form = PostForm()
    if form.validate_on_submit():
        post = Post(title=form.title.data,
                    content=form.content.data,
                    author=current_user.id)
        if form.picture.data:
            picture_file = save_post_picture(form.picture.data)
            post.image_file = picture_file
        flash(f'Your post have been created', 'success')
        post.save()
        return redirect(url_for('main.home'))
    return render_template('new_post.html',
                           title='New Post',
                           form=form,
                           legend='New Post')
コード例 #17
0
ファイル: routes.py プロジェクト: oooo551/Programming-Diary
def new_post():
    form = PostForm()
    if form.validate_on_submit():
        # added author attribute to store in db
        post = Post(title=form.title.data,
                    content=form.content.data,
                    author=current_user)
        db.session.add(post)
        db.session.commit()
        flash('Your post has been created!', 'success')
        # redirecting to the MAIN package
        return redirect(url_for('main.home'))
    return render_template('create_post.html',
                           title='New Post',
                           form=form,
                           legend='New Post')
コード例 #18
0
ファイル: views.py プロジェクト: AnnBengardt/website
def update(post_id):
    post = Post.query.get_or_404(post_id)
    if post.author != current_user:
        abort(403)

    form = PostForm()
    if form.validate_on_submit():
        post.title = form.title.data
        post.text = form.text.data
        db.session.commit()
        return redirect(url_for('posts.read_post', post_id=post_id))

    elif request.method == 'GET':
        form.title.data = post.title
        form.text.data = post.text

    return render_template('create_post.html', title='Updating', form=form)
コード例 #19
0
ファイル: routes.py プロジェクト: Thedand/flask_blog
def edit_post(slug):
    post = db.session.query(Post).filter(Post.slug == slug).first()
    if post.author != current_user:
        abort(403)
    form = PostForm()
    if form.validate_on_submit():
        post.title = form.title.data
        post.body = form.body.data
        db.session.commit()
        flash('Ваша статья была отредактирована!', 'success')
        return redirect(url_for('posts.post', slug=post.slug))
    elif request.method == 'GET':
        form.title.data = post.title
        form.body.data = post.body
    return render_template('posts/create_post.html',
                           title='Редактировать статью',
                           form=form,
                           legend='Редактировать статью')
コード例 #20
0
def update_post(post_id):
    post = Post.objects().get_or_404(id=post_id)
    if post.author.id != current_user.id:
        abort(403)
    form = PostForm()
    if form.validate_on_submit():
        post.title = form.title.data
        post.content = form.content.data
        post.save()
        flash("Your post has been updated", "success")
        return redirect(url_for("posts.post", post_id=post.id))
    elif request.method == "GET":
        form.title.data = post.title
        form.content.data = post.content
    return render_template("posts/create_post.html",
                           title="Update Post",
                           form=form,
                           legend="Update Post")
コード例 #21
0
def update_post(post_id):
    post = Post.query.get_or_404(post_id)
    if post.author != current_user:
        abort(403)
    form = PostForm()
    if form.validate_on_submit():
        post.title = form.title.data
        post.content = form.content.data
        db.session.commit()  # commit new data from form without add()
        # as data already in the db
        flash('You tweaked the post!', 'primary')
        return redirect(url_for('posts.post', post_id=post.id))
    elif request.method == 'GET':  # if we just find ourselves on the page
        form.title.data = post.title
        form.content.data = post.content
    return render_template('create_post.html',
                           title='Update post',
                           legend='Update Post',
                           form=form)
コード例 #22
0
ファイル: view.py プロジェクト: YuriiKhomych/ITEA_AC
def create_post():
    if request.method == 'POST':
        title = request.form['title']
        body = request.form['body']

        post = Post(title=title, body=body)
        db.session.add(post)
        db.session.commit()

        return redirect(url_for('posts.index'))
    form = PostForm()
    return render_template('posts/create_post.html', form=form)
コード例 #23
0
def new_post():
    form = PostForm()
    form.trip.choices = [
        (g.id, g.destination)
        for g in Travel.query.order_by(Travel.date_posted.desc())
    ]
    form.trip.choices.insert(0, (0, ''))
    if form.validate_on_submit():
        if form.trip.data == '':
            post = Post(title=form.title.data,
                        content=form.content.data,
                        author=current_user)
        elif form.trip.data == '' and form.picture.data:
            picture_file = save_picture(form.picture.data)
            post = Post(title=form.title.data,
                        content=form.content.data,
                        author=current_user,
                        image_file=picture_file)
        elif form.picture.data:
            trip = Travel.query.get(form.trip.data)
            picture_file = save_picture(form.picture.data)
            post = Post(title=form.title.data,
                        content=form.content.data,
                        author=current_user,
                        trip=trip,
                        image_file=picture_file)
        else:
            trip = Travel.query.get(form.trip.data)
            post = Post(title=form.title.data,
                        content=form.content.data,
                        author=current_user,
                        trip=trip)
        db.session.add(post)
        db.session.commit()
        flash('Your post has been created!', 'success')
        return redirect(url_for('main.home'))
    return render_template('create_post.html',
                           title='New Post',
                           form=form,
                           legend='New Post')
コード例 #24
0
def update_post(post_id):
    post = Post.query.get_or_404(post_id)

    # Only the user who created the post can edit it
    if post.author != current_user:
        abort(403)

    form = PostForm()

    if form.validate_on_submit():
        post.title = form.title.data
        post.contents = form.content.data
        db.session.commit()
        flash('Your post has been updated!', 'success')
        return redirect(url_for('posts_bp.post', post_id=post.id))

    form.title.data = post.title
    form.content.data = post.contents
    return render_template('create_post.html',
                           title='Update Post',
                           form=form,
                           legend='Update Post')
コード例 #25
0
ファイル: routes.py プロジェクト: unyime1/my-blog
def post():
    #this function adds posts to the database
    post = Post.query.all()
    form = PostForm()
    if form.validate_on_submit():
        l = form.title.data
        s = l.lower()
        posts = Post(title=form.title.data,
                     subtitle=form.subtitle.data,
                     link=form.link.data,
                     author=form.author.data,
                     article=form.article.data,
                     slug=slugify(s))
        db.session.add(posts)
        db.session.commit()
        return redirect(url_for('main.home'))
    return render_template('addpost.html',
                           form=form,
                           title='Add Post',
                           legend="Add Post",
                           post=post,
                           directive='noindex')
コード例 #26
0
def update_post(post_id):
    post = Post.objects.get_or_404(id=post_id)
    if post.author.email != current_user.email:
        abort(403)
    form = PostForm()
    if form.validate_on_submit():
        if form.picture.data:
            picture_file = save_post_picture(form.picture.data)
            post.image_file = picture_file
        post.title = form.title.data
        post.content = form.content.data
        post.save()
        flash(f'You have been updated a post', 'success')
        return redirect(url_for('posts.post', post_id=post_id))
    elif request.method == 'GET':
        form.title.data = post.title
        form.content.data = post.content
    image_file = url_for('static', filename='post_pics/' + post.image_file)
    return render_template('new_post.html',
                           title='Update Post',
                           image_file=image_file,
                           form=form,
                           legend='Update Post')
コード例 #27
0
def posts_new(request):
    base_context = {"new_post": PostForm()}
    if request.method == "GET":
        return render(request,
                      'posts_new.html',
                      context=dict(**base_context, **{}))
    elif request.method == "POST":
        form = PostForm(request.POST)
        post = form.save()
        if request.user.is_authenticated:
            post.create_uid = request.user
            post.save()
        return render(
            request,
            'posts_new.html',
            context=dict(
                **base_context, **{
                    "message":
                    f"New post {post.title} by {post.author} created",
                    "message_type": "success",
                }))
    else:
        return HttpResponseNotAllowed()
コード例 #28
0
def create_post():
    if request.method == 'POST':
        title = request.form['title']
        body = request.form['body']

        try:
            post = Post(title=title, body=body)
            db.session.add(post)
            db.session.commit()
        except:
            current_app.logger.exception('Something wrong')

        return redirect(url_for('posts.index'))
    form = PostForm()
    return render_template('posts/create_post.html', form=form)
コード例 #29
0
ファイル: view.py プロジェクト: YuriiKhomych/ITEA_AC
def edit_post(slug):
    post = Post.query.filter(Post.slug == slug).first_or_404()

    if request.method == 'POST':
        form = PostForm(formdata=request.form, obj=post)
        form.populate_obj(post)
        db.session.commit()

        return redirect(url_for('posts.post_detail', slug=post.slug))

    form = PostForm(obj=post)
    return render_template('posts/edit_post.html', post=post, form=form)
コード例 #30
0
def post_edit(request, id):
    post = Post.objects.get(pk=id)
    form = EditPostForm(instance=post)
    if request.method == "GET":
        return render(request, 'post_edit.html', context={"form": form})
    elif request.method == "POST":
        create_uid = post.create_uid
        created_at = post.created_at
        form = PostForm(request.POST)
        post = form.save()
        post.updated_at = datetime.now()
        if request.user.is_authenticated:
            post.update_uid = request.user
        post.create_uid = create_uid
        post.created_at = created_at
        post.save()
        return redirect("post-view", id=post.id)
    else:
        return HttpResponseNotAllowed()