from flask import Blueprint, redirect, url_for, render_template, request, session from ..models import Topics, Threads import math bp = Blueprint('topics', __name__, url_prefix = '/topics/') @bp.get('/') def all_topics(): topic_list = Topics.get_list() return render_template('topics/topics.html', topics=topic_list) @bp.get('/') def topic(slug): t = Topics.find({'slug': slug}) if not t: return 'stub' sort_by = request.args.get('sort_by', default=session.get('sort_by', default='activity')) PER_PAGE = 10 threads_count = Threads.count({'topic_id': t.id}) page_count = max(1, math.ceil(threads_count / PER_PAGE)) page = max(1, min(int(request.args.get('page', default=1)), page_count)) return render_template('topics/topic.html', topic=t, threads=t.get_threads(PER_PAGE, page, sort_by), sort_by=sort_by, page=page, page_count=page_count) @bp.get('//feed.atom') def feed(slug): return 'stub'