40 lines
1.4 KiB
Python
40 lines
1.4 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):
|
|
print(postid)
|
|
c = Comment.query.filter_by(id=postid).first_or_404()
|
|
|
|
owner = c.thread.owner_post
|
|
|
|
if hasattr(owner, 'forum'):
|
|
# Is a topic
|
|
comments = owner.thread.comments.order_by(Comment.date_created.asc()).where(
|
|
Comment.date_created >= c.date_created
|
|
).paginate(0, Thread.COMMENTS_PER_PAGE, True)
|
|
url = url_for('forum_topic', f=owner.forum, page=(owner, comments.pages))
|
|
else:
|
|
# Is a program
|
|
url = url_for('program_view', page=owner.name)
|
|
|
|
return redirect(url, 301)
|