Exemple #1
0
    def get(self, text_id):
        try:
            board = Board.get_board_by_text_id(text_id)
        except NoResultFound:
            return abort(404)

        #last_post = Post.query.order_by(Post.id.desc()).limit(1).subquery()
        #last_post_alias = aliased(Post, last_post)
        # threads = db.session.query(Thread, last_post_alias).filter_by(board_id=board.id).join(last_post_alias, Thread.id == last_post_alias.thread_id).order_by(Thread.id.desc()).all()
        threads = db.session.query(Thread).filter_by(board_id=board.id).order_by(Thread.id.desc()).all()

        #threads = db.session.query(Thread, Post)\
        #    .filter_by(board_id=board.id)\
        #    .order_by(Thread.id.desc())\
        #    .join(Post, Thread.id == Post.thread_id)\
        #    .all()

        #print(db.session.query(Thread, Post)
        #      .filter_by(board_id=board.id)
        #      .order_by(Thread.id.desc())
        #      .join(Post, Thread.id == Post.thread_id).statement)

        #for thread in threads:
        #    print(thread.__dict__)

        return render_template("forum_threads_view.jinja2", board=board, title=board.name, can_post=True,
                               threads=threads)
Exemple #2
0
    def get(self, board_text_id):
        try:
            board = Board.get_board_by_text_id(board_text_id)
        except NoResultFound:
            return abort(404)

        form = ThreadPostForm()

        return render_template("forum_thread_post.jinja2", board=board, form=form)
Exemple #3
0
    def post(self, board_text_id):
        try:
            board = Board.get_board_by_text_id(board_text_id)
        except NoResultFound:
            return abort(404)

        form = ThreadPostForm()
        if form.validate():
            thread = Thread(form.title.data, board.id, current_user.id)
            db.session.add(thread)
            db.session.commit()

            post = Post(form.content.data, thread, current_user.id)
            post.op = True
            db.session.add(post)
            db.session.commit()

        return render_template("forum_thread_post.jinja2", board=board, form=form)