コード例 #1
0
ファイル: main.py プロジェクト: MustafinMP/web_flask
def one_blog_page(id):
    form = CommentsForm()
    db_sess = db_session.create_session()
    if form.validate_on_submit():
        comment = Comments()
        comment.text = form.content.data
        comment.news_id = int(id)
        comment.name_id = current_user.id
        db_sess.add(comment)
        db_sess.commit()
        return redirect(f'/blogs/{id}')
    news = db_sess.query(News).filter(News.id == id)
    comms = db_sess.query(Comments).filter(Comments.news_id == id)
    comments = []
    for c in comms:
        user = db_sess.query(User).filter(User.id == c.name_id).first()
        comments.append((user.name, c.text))
    cmnts = False if comms is None else True
    return render_template('one_blog_page.html',
                           news=news[0],
                           current_user=current_user,
                           comms=comms,
                           cmnts=cmnts,
                           form=form,
                           comments=comments)
コード例 #2
0
def add_comment(id):
    form = CommentsForm()
    db_sess = db_session.create_session()
    post = db_sess.query(Posts).filter(Posts.id == id).first()
    # Если комментарий пэтаются оставить под чужим приватным постом или его пытается оставить пользователь
    # с ролью "Наблюдатель" - ошибка 404
    if post and (not post.is_private or (
            post.is_private and post.user == current_user)) and current_user.role != "Spectator":
        if form.validate_on_submit():
            comment = Comments()
            # Содержание комментария - не более 200 символов
            if len(form.text.data) > 200:
                return render_template('Comment.html', title='Adding a comment',
                                       form=form, post=post,
                                       message="This comment is too big, please, enter up to 200 characters")
            comment.text = form.text.data
            comment.post_id = id
            # Добавляем комментарий к пользователю и к посту
            current_user.comments.append(comment)
            db_sess.merge(current_user)
            db_sess.merge(db_sess.query(Posts).filter(Posts.id == id).first())
            db_sess.commit()
            # Пересылаем пользователя на страницу поста, под которым он оставил комментарий
            return redirect(f'/post/{id}')
        return render_template('Comment.html', title='Adding a comment',
                               form=form, post=post)
    else:
        abort(404)
コード例 #3
0
def news_item(id):
    db_sess = db_session.create_session()
    if current_user.is_authenticated:
        form = CommentForm()
        if form.validate_on_submit():
            comm = Comments()
            comm.connected_to_id = id
            comm.table_name = News.__tablename__
            comm.author_id = current_user.id
            comm.text = form.text.data
            db_sess.add(comm)
            db_sess.commit()
    else:
        form = None

    data = db_sess.query(News).get(id)
    comments = db_sess.query(Comments).filter(
        Comments.connected_to_id == id,
        Comments.table_name == News.__tablename__)

    return render_template("news_item.html",
                           news=data,
                           title=data.title,
                           comments=comments,
                           form=form)
コード例 #4
0
ファイル: main.py プロジェクト: is13zg/is13mozg-gmail.com
 def add_comment(id):
     form = CommentForm()
     if form.validate_on_submit():
         session = db_session.create_session()
         comment = Comments()
         comment.text = form.text.data
         comment.news_id = id
         current_user.comments.append(comment)
         session.merge(current_user)
         session.commit()
         return redirect('/')
     return render_template('comments.html',
                            title='Добавление комментария',
                            form=form)
コード例 #5
0
def publication(id):
    status = 0
    if current_user.is_authenticated:
        status = current_user.status + 1
    session = db_session.create_session()
    publication = session.query(Publications).get(id)
    session.close()
    if publication:
        form = CommentsForm()
        if form.submit.data:
            if current_user.is_authenticated:
                session = db_session.create_session()
                user = session.query(User).get(current_user.id)
                publication = session.query(Publications).get(id)
                comment = Comments()
                comment.text = form.text.data
                comment.created_date = datetime.datetime.now()
                form.text.data = ""
                user.comments.append(comment)
                session.merge(user)
                publication.comments.append(comment)
                session.merge(publication)
                session.commit()
                session = db_session.create_session()
                comments = session.query(Comments).filter(Comments.publication_id == id).order_by(
                    Comments.created_date.desc()).all()
                templ = render_template("/Publication.html", publication=publication, status=status, user=current_user,
                                        style=url_for('static', filename='css/style.css'), form=form, comments=comments,
                                        count_commentaries=len(comments), base_href=f"Publication/{id}/",
                                        bgimg=get_image_profile(current_user))
                session.close()
                return templ
        else:
            comments = session.query(Comments).filter(Comments.publication_id == id).order_by(
                Comments.created_date.desc()).all()
            templ = render_template("/Publication.html", publication=publication, status=status, user=current_user,
                                    style=url_for('static', filename='css/style.css'), form=form, comments=comments,
                                    count_commentaries=len(comments), base_href=f"Publication/{id}/",
                                    bgimg=get_image_profile(current_user))
            session.close()
            return templ
    session.close()
    return redirect('/Publications')
コード例 #6
0
def developers_diary(id):
    status = 0
    if current_user.is_authenticated:
        status = current_user.status + 1
    session = db_session.create_session()
    ds_diary = session.query(DevelopersDiary).filter(DevelopersDiary.id == id).first()
    session.close()
    ds_diary.created_date = ":".join(str(ds_diary.created_date).split(":")[:-1])
    if status >= ds_diary.availability_status:
        form = CommentsForm()
        if form.submit.data:
            if current_user.is_authenticated:
                session = db_session.create_session()
                user = session.query(User).get(current_user.id)
                diary = session.query(DevelopersDiary).get(id)
                comment = Comments()
                comment.text = form.text.data
                comment.created_date = datetime.datetime.now()
                form.text.data = ""
                user.comments.append(comment)
                session.merge(user)
                diary.comments.append(comment)
                session.merge(diary)
                session.commit()
                session = db_session.create_session()
                comments = session.query(Comments).filter(Comments.developers_diary_publication_id == id).order_by(
                    Comments.created_date.desc()).all()
                templ = render_template("/DevelopersDiary.html", publication=ds_diary, status=status, user=current_user,
                                        style=url_for('static', filename='css/style.css'), form=form, comments=comments,
                                        count_commentaries=len(comments), base_href=f"DevelopersDiaryPublication/{id}/",
                                        bgimg=get_image_profile(current_user))
                session.close()
                return templ
        else:
            comments = session.query(Comments).filter(Comments.developers_diary_publication_id == id).order_by(
                Comments.created_date.desc()).all()
            templ = render_template("/DevelopersDiary.html", publication=ds_diary, status=status, user=current_user,
                                    style=url_for('static', filename='css/style.css'), form=form, comments=comments,
                                    count_commentaries=len(comments), base_href=f"DevelopersDiaryPublication/{id}/",
                                    bgimg=get_image_profile(current_user))
            session.close()
            return templ
    return redirect('/DevelopersDiary')
コード例 #7
0
ファイル: main.py プロジェクト: eplepakke/Forum
def index():
    session = db_session.create_session()
    # Отображение новостей
    if current_user.is_authenticated:
        news = session.query(News).filter((News.user == current_user)
                                          | (News.is_private != True))
    else:
        news = session.query(News).filter(News.is_private != True)
    # Отображение комментариев
    comments = session.query(Comments).filter()
    # Форма для добавления комментария
    form = CommentForm()
    if form.validate_on_submit():
        comment = Comments()
        comment.text = form.text.data
        comment.news_id = int(''.join(form.news_id.raw_data))
        current_user.comment.append(comment)
        session.merge(current_user)
        session.commit()
        return redirect('/')
    # Форма для удаления комментария
    delete_form = CommentDelete()
    if delete_form.validate_on_submit() and current_user.is_authenticated:
        comm = session.query(Comments).filter(Comments.id == int(''.join(
            delete_form.comment_id.raw_data))).first()
        if comm:
            session.delete(comm)
            session.commit()
        else:
            abort(404)
        return redirect('/')
    return render_template("index.html",
                           news=news,
                           comments=comments,
                           form=form,
                           form_del=delete_form,
                           title="Форум Питонистов")