PCv5/app/routes/posts/redirect.py

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)