Example #1
0
def create_post():
    form = BlogPostForm()

    if form.validate_on_submit():

        if form.blog_image.data:

            pic = add_blog_pic(form.blog_image.data)
            pic_thumbnail = create_thumbnail(form.blog_image.data)
            BlogPost.blog_image = pic

            blog_post = BlogPost(title=form.title.data,
                                 text=form.text.data,
                                 category=form.category.data,
                                 user_id=current_user.id,
                                 blog_image=pic,
                                 blog_thumbnail=pic_thumbnail)
        else:
            blog_post = BlogPost(title=form.title.data,
                                 text=form.text.data,
                                 category=form.category.data,
                                 user_id=current_user.id,
                                 blog_image='c1.jpg',
                                 blog_thumbnail='stories1.jpg')

        db.session.add(blog_post)
        db.session.commit()
        flash("Blog Post Created")
        return redirect(url_for('core.index'))

    return render_template('create_post.html', form=form)
Example #2
0
def update(blog_post_id):

    blog_post = BlogPost.query.get_or_404(blog_post_id)

    # checking if the same person is updating the post who created it.
    if blog_post.author != current_user:
        abort(403)

    form = BlogPostForm()

    if form.validate_on_submit():
        blog_post.title = form.title.data
        blog_post.text = form.text.data
        # since we already know currently who is the user
        # and id of the user, so we don't need t grab it

        db.session.commit()
        flash('Blog Post Updated!')
        return redirect(url_for('blog_posts.blog_post', blog_post_id=blog_post.id))

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

    return render_template('create_post.html',title='Updating', form=form)
Example #3
0
def update(blog_post_id):
    # ない場合は404を返す
    blog_post = BlogPost.query.get_or_404(blog_post_id)

    # 更新する人が作成者かどうか
    # current_userはlogin_managerの属性、現在ログインしているユーザー名が入っている
    # blog_post.authorは投稿したpostの作成者
    if blog_post.author != current_user:
        abort(403)

    form = BlogPostForm()

    if form.validate_on_submit():

        blog_post.title = form.title.data
        blog_post.text = form.text.data
        db.session.commit()
        flash('Blog Post Updated')
        return redirect(
            url_for('blog_posts.blog_post', blog_post_id=blog_post.id))

    # updateしなかった場合
    # form.title.data = blog_post.titleフォームに現在の状態を表示する
    elif request.method == 'GET':
        form.title.data = blog_post.title
        form.text.data = blog_post.text

    return render_template('create_post.html', title='Updating', form=form)
def update(blog_post_id):

    blog_post = BlogPost.query.get_or_404(blog_post_id)

    if blog_post.author != current_user:
        abort(403)


    form = BlogPostForm()

    if form.validate_on_submit():
        blog_post.title = form.title.data
        blog_post.text = form.text.data
                            
        db.session.commit()
        flash('Blog Post Updated')

        return redirect(url_for('blog_posts.blog_post',blog_post_id=blog_post.id))

    #Pass in the old blog post information so user can edit the old information
    elif request.method == 'GET':
        form.title.data = blog_post.title
        form.text.data = blog_post.text 

    return render_template('create_post.html',title='Update',form=form)
Example #5
0
def create_post():
    form = BlogPostForm()
    if form.validate_on_submit():
        blog_post = BlogPost(form.title.data, form.text.data, current_user.id)
        db.session.add(blog_post)
        db.session.commit()
        flash('Blog Post Created')
        return redirect(url_for('core.index'))

    return render_template('create_post.html', form=form)
Example #6
0
def create_post():
    form = BlogPostForm()
    if form.validate_on_submit():
        blog_post = BlogPost(title=form.title.data,
                             text=form.text.data,
                             user_id=current_user.id)
        db.session.add(blog_post)
        db.session.commit()
        flash("Blog Post Created")
        return redirect(url_for("core.index"))
    return render_template("create_post.html", form=form)
Example #7
0
def create_post():
    form = BlogPostForm()
    if form.validate_on_submit():
        blog_post = BlogPost(title=form.title.data,
                            text=form.text.data,
                            user_id=current_user.id)

        db.session.add(blog_post)
        db.session.commit()
        return redirect(url_for('blog_posts.blog_post',blog_post_id=blog_post.id))

    return render_template('create_post.html',form=form)
Example #8
0
def create_post():
    form = BlogPostForm()

    if form.validate_on_submit():
        blog_post = BlogPost(title=form.title.data,  # Create a sample Blog of BlogPost model
                             text=form.text.data,
                             user_id=current_user.id)

        db.session.add(blog_post)
        db.session.commit()
        flash('Blog Created')
        return redirect(url_for('core.index'))  # Redirect to Home page
    return render_template('create_post.html', form=form)
Example #9
0
def create_post():
    form = BlogPostForm()
    print("create the form")
    if form.validate_on_submit():
        print("submit it")
        blog_post = BlogPost(title=form.title.data,
                             text=form.text.data,
                             user_id=current_user.id)
        db.session.add(blog_post)
        db.session.commit()
        flash('Blog Post Created')
        return redirect(url_for('core.index'))

    return render_template('create_post.html', form=form)
Example #10
0
def create_post():
    form = BlogPostForm()

    if form.validate_on_submit():

        blog_post = BlogPost(title=form.title.data,
                             text=form.text.data,
                             user_id=current_user.id)
        #we need to grab the user id from our BlogPost model from the current user because
        #form does not ask for id
        db.session.add(blog_post)
        db.session.commit()
        flash("Blog Post Created")
        return redirect(url_for('core.index'))

    return render_template('create_post.html', form=form)
Example #11
0
def create_post():
    form = BlogPostForm()

    if form.validate_on_submit():
        # Создаем ОБЪЕКТИ МОДЕЛИ BlogPost() - Берутся поля заполнения БД title и text (id и date заполняются автоматически)
        # + УСТАНАВЛИВАЕТСЯ СВЯЗЬ С User() через user_id = db.Column(db.Integer,db.ForeignKey('users.id'), nullable=False). т.к. user_id ЕСТЬ в __init__
        # Тоесть создавая запись в блоге сразу связывает её с Авторизированным в данную СЕССИЮ пользователем
        blog_posts = BlogPost(title=form.title.data,
                              text=form.text.data,
                              user_id=current_user.id)
        #Добвляем созданный объект в БД
        db.session.add(blog_posts)
        db.session.commit()
        flash('Post Created')
        return redirect(url_for('core.index'))

    return render_template('create_post.html', form=form)
Example #12
0
def update(blog_post_id):
    blog_post = BlogPost.query.get_or_404(blog_post_id)
    if blog_post.author != current_user:
        # Forbidden, No Access
        abort(403)
    form = BlogPostForm()
    if form.validate_on_submit():
        blog_post.title = form.title.data
        blog_post.text = form.text.data
        db.session.commit()
        flash("Post updated")
        return redirect(
            url_for("blog_posts.blog_post", blog_post_id=blog_post.id))
    # Pass back the old blog post information so they can start again with the old text and title
    elif request.method == "GET":
        form.title.data = blog_post.title
        form.text.data = blog_post.text
    return render_template("create_post.html", title="Update", form=form)
Example #13
0
def update(blog_post_id):
    blog_post = BlogPost.query.get_or_404(blog_post_id)
    if blog_post.author != current_user:
        abort(
            403
        )  # 403 means Forbidden, aborting the update if the current user isnt the author of the post
    form = BlogPostForm()
    if form.validate_on_submit():
        blog_post.title = form.title.data
        blog_post.text = form.text.data
        db.session.commit()
        flash('Blog post updated')
        return redirect(
            url_for('blog_posts.blog_post', blog_post_id=blog_post.id))
    elif request.method == 'GET':
        form.title.data = blog_post.title
        form.text.data = blog_post.text
    return render_template('create_post.html', form=form, title='Updating')
Example #14
0
def update_post(blog_post_id):
    blog_post = BlogPost.query.get_or_404(blog_post_id)
    if blog_post.author != current_user:
        abort(403)

    form = BlogPostForm()
    if form.validate_on_submit():
        blog_post.title=form.title.data
        blog_post.text=form.text.data

        db.session.commit()
        return redirect(url_for('blog_posts.blog_post',blog_post_id=blog_post.id))

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

    return render_template('create_post.html',form=form)
Example #15
0
def update(blog_post_id):
    #we need to make sure the current author is equal to the current user, so not everyone can update
    blog_post = BlogPost.query.get_or_404(blog_post_id)
    if blog_post.author != current_user:
        abort(403)

    form = BlogPostForm()
    if form.validate_on_submit():
        blog_post.title = form.title.data
        blog_post.text = form.text.data
        db.session.commit()
        flash('Post Updated')
        return redirect(
            url_for('blog_posts.blog_post', blog_post_id=blog_post.id))
    elif request.method == 'GET':
        #we need to make sure the title/text is already populated when they first view page
        form.title.data = blog_post.title
        form.text.data = blog_post.text
    return render_template('create_post.html', title='Update', form=form)
Example #16
0
def update(blog_post_id):
    blog_post = BlogPost.query.get_or_404(blog_post_id)

    # verificamos que el autor del blog sea quien este
    # modificando el post
    if blog_post.author != current_user:
        abort(403)

    form = BlogPostForm()
    if form.validate_on_submit():
        blog_post.title = form.title.data,
        blog_post.title = form.text.data,
        db.session.commit()
        return redirect(
            url_for('blog_post.blog_post', blog_post_id=blog_post_id))
    elif request.method == 'GET':
        form.title.data = blog_post.title
        form.text.data = blog_post.text

    return render_template('create_post.html', title='updating', form=form)
Example #17
0
def create_post():
    form = BlogPostForm()
    if form.validate_on_submit():
        blog_post = BlogPost(title=form.title.data,
                             text=form.text.data,
                             user_id=current_user.id)
        db.session.add(blog_post)
        db.session.commit()
        return redirect(url_for('core.index'))

    return render_template('create_post.html', form=form)

    # Views

    @blog_posts.route('/<int:blog_post_id>')
    def blog_post(blog_post_id):
        blog_post = BlogPost.query.get_or_404(blog_post_id)
        return render_template('blog_post.html',
                               title=blog_post.title,
                               date=blog_post.date,
                               post=blog_post)
Example #18
0
def create_post():

    # BlogPostFormを配置
    form = BlogPostForm()

    # submitボタンが押された場合
    if form.validate_on_submit():
        #form.title.dataのようにフォームに入力された値を取り出す
        # models.pyのBlogPostデータベースモデルのインスタンスを作成する
        blog_post = BlogPost(title=form.title.data,
                             text=form.text.data,
                             user_id=current_user.id)

        db.session.add(blog_post)
        db.session.commit()
        flash('Blog Post Created')
        # redirectは別のurlへ飛ばす
        # ここではcoreブループリントのindex関数へ飛ばす
        return redirect(url_for('core.index'))
    # create_post.htmlを表示する。BlogPostForm()のformインスタンスを渡して入力してもらう
    return render_template('create_post.html', form=form)
Example #19
0
def update(blog_post_id):

    blog_post = BlogPost.query.get_or_404(blog_post_id)

    if blog_post.author != current_user:
        abort(403)

    form = BlogPostForm()

    if form.validate_on_submit():
        blog_post.title = form.title.data
        blog_post.text = form.text.data
        db.session.add(blog_post)
        db.session.commit()
        flash("Blog Post Updated")
        return redirect(url_for("blog_posts.blog_post", blog_post_id=blog_post.id))

    elif request.method == "GET":
        form.title.data = blog_post.title
        form.text.data = blog_post.text

    return render_template("create_post.html", title="Updating", form=form)
Example #20
0
def update(blog_post_id):
    blog_post = BlogPost.query.get_or_404(blog_post_id)
    # check if this person is actually the author - only this person should be able to make edits
    if blog_post.author != current_user:
        abort(403)

    form = BlogPostForm()

    if form.validate_on_submit():
        blog_post.title = form.title.data
        blog_post.text = form.text.data

        db.session.commit()
        flash('Blog post updated')
        return redirect(
            url_for('blog_posts.blog_post', blog_post_id=blog_post.id))

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

    return render_template('create_post.html', title='Updating', form=form)
Example #21
0
def update(blog_post_id):
    blog_post = BlogPost.query.get_or_404(blog_post_id)

    if blog_post.author != current_user:
        abort(403)#permission error codes
    
    form = BlogPostForm()

    if form.validate_on_submit():

        blog_post.title = form.title.data #form
        blog_post.text = form.text.data #form
       
        db.session.commit()
        flash('Blog Post Updated')  
        return redirect(url_for('blog_posts.blog_post', blog_post_id=blog_post_id))#redirects to blog_post view which takes blog post id

#to make sure original text and title is maintained the first time when they need to update
    elif request.method == 'GET':
        form.title.data = blog_post.title
        form.text.data = blog_post.text
        
    return render_template('create_post.html', title='Updating', form=form)               
Example #22
0
def update(blog_post_id):
    blog_post = BlogPost.query.get_or_404(blog_post_id)

    # se a pessoa tentando acessar o update post não for o autor, retorna
    # erro de acesso não autorizado
    if blog_post.author != current_user:
        abort(403)

    form = BlogPostForm()
    if form.validate_on_submit():
        blog_post.title = form.title.data
        blog_post.text = form.text.data
        db.session.commit()
        flash('Blog Post Updated')
        return redirect(
            url_for('blog_posts.blog_post', blog_post_id=blog_post.id))

    # para que mostre o versão atual da postagem antes de modificá-la
    elif request.method == 'GET':
        form.title.data = blog_post.title
        form.text.data = blog_post.text

    return render_template('create_post.html', title='Updating', form=form)
Example #23
0
def update(blog_post_id):

    # Забор ЦИФРЫ ID из переданой в функцию переменной ( передаем  ОБЪЕКТЫ МОДЕЛИ из БД BlogPost())
    blog_post = BlogPost.query.get_or_404(blog_post_id)

    # !!! ВАЖНО !!! ПРОВЕРКА что ПОЛЬЗОВАТЕЛЬ и есть Автор поста (что бы кто угодно залогинивийся не мог ИЗМЕНИТЬ чужой пост)!
    # if current_user.id == blog_post.user_id или второй вариант:
    if blog_post.author!= current_user:
        # Можно просто pass, + прописать все в HTML шаблорне что ыб кнопка Update просто ен показывалась при  {%if blog_post.author!= current_user %}
        abort(403)

    # Если же автор и юзер сопадают то просто даем форму создания поста которая перезапишет в БД новые данные
    form = BlogPostForm()
    if form.validate_on_submit():
        # ОБЪЕКТИ МОДЕЛИ BlogPost() НЕ: СОЗДАЕТСЯ, так как мы уже взяли его выше, нашли в БД через динамический ДЕКОРАТОР ID -
        # + УСТАНАВЛИВАЕТСЯ СВЯЗЬ С User() через user_id = db.Column(db.Integer,db.ForeignKey('users.id'), nullable=False). т.к. user_id ЕСТЬ в __init__
        # ЗАМЕНЯЕМ ПОЛЯ в найденом ранее в БД ОБЪЕКТЕ на новые данные из ФОРМЫ
        blog_post.title = form.title.data
        blog_post.text = form.text.data
        # user_id менять смысла нет, так как он уже доказано что тот же что и Автор

        # Возвращаем(поддтверждаем ИЗМЕНЕНИЯ) объект в БД (а не создаем новый)
        db.session.commit()
        flash('Post Updated')

        # Переадресация идет иммено на тот пост которы йбьлы изменены , для этого передаем в ШАБЛОН ID измененного поста
        # (можно и переменную динамического декоратора)
        return redirect(url_for('blog_posts.blog_post',blog_post_id=blog_post.id))

    # При первичной загрузке страницы ФОРМА будет не отдавать а ПОЛУЧАТЬ(GET) данные из БД заполняя свои ПОЛЯ данными из поста который будет РЕДАКТИРУЕТСЯ
    # Если ничего небыло отослано через форму то полей автозаполняются данными самой ССЕСИИ ПОЛЬЗОВАТЕЛЯ (и ничего меняется в БД)
    elif request.method == 'GET':
        form.title.data = blog_post.title
        form.text.data = blog_post.text

    # title в ШАБЛОНЕ будет заменен на нашу переменную!
    return render_template('create_post.html', title = 'Updating', form=form)
Example #24
0
def update(blog_post_id):
    # WE DON'T WANT USER TO EDIT SOMEONE ELSE'S POST! MAKE SURE CURRENT AUTHOR IS CURRENT USER!
    blog_post = BlogPost.query.get_or_404(blog_post_id)
# GRAB A POST,CHECK FOR CORRECT USER, MAKE UPDATIONS, WRITE EXISTING BLOG AND RENDER ON TEMPLATE
    if blog_post.author != current_user:
        abort(403)  # Built-in flask method, takes error codes, ie Restricted Access

    form = BlogPostForm()
    if form.validate_on_submit():
        # Updations
        blog_post.title = form.title.data
        blog_post.text = form.text.data

        db.session.commit()
        flash('Blog Post Updated!')
        # View.View, blog_post view takes id, so we pass it here
        return redirect(url_for('blog_posts.blog_post', blog_post_id=blog_post.id))

    elif request.method == 'GET':
        # USER MUST ALREADY SEE EXISTING BLOG TEXT, SO NOW HE CAN UPDATE IT, RATHER RE-WRITING ENTIRE BLOG!
        form.title.data = blog_post.title
        form.text.data = blog_post.text

    return render_template('create_post.html', title='Updating', form=form)