43 lines
1.5 KiB
Python
43 lines
1.5 KiB
Python
from app import app, db
|
|
from app.models.attachment import Attachment
|
|
from app.models.comment import Comment
|
|
from app.models.forum import Forum
|
|
from app.models.post import Post
|
|
from app.models.program import Program
|
|
from app.models.thread import Thread
|
|
from app.models.topic import Topic
|
|
from app.models.user import Member
|
|
from app.utils.render import render
|
|
from app.utils.check_csrf import check_csrf
|
|
from app.utils.priv_required import priv_required
|
|
from app.forms.forum import CommentEditForm, AnonymousCommentEditForm, TopicEditForm
|
|
from app.forms.post import MovePost, SearchThread
|
|
from wtforms import BooleanField
|
|
from urllib.parse import urlparse
|
|
from flask import redirect, url_for, abort, request, flash
|
|
from flask_login import login_required, current_user
|
|
from sqlalchemy import text
|
|
|
|
|
|
@app.route('/post/<int:postid>', methods=['GET', 'POST'])
|
|
def redirect_post(postid):
|
|
c = Comment.query.get_or_404(postid)
|
|
|
|
owner = c.thread.owner_post
|
|
|
|
if owner.type == 'topic':
|
|
# Is a topic
|
|
print('topic')
|
|
comments = Comment.query.where(
|
|
Comment.thread_id == c.thread.id,
|
|
Comment.date_created <= c.date_created
|
|
).order_by(
|
|
Comment.date_created.asc()
|
|
).paginate(per_page=Thread.COMMENTS_PER_PAGE, error_out=False)
|
|
url = url_for('forum_topic', f=owner.forum, page=(owner, comments.pages), _anchor=str(c.id))
|
|
else:
|
|
# Is a program
|
|
url = url_for('program_view', page=owner.name)
|
|
|
|
return redirect(url, 301)
|