27 lines
925 B
Python
27 lines
925 B
Python
from app import app, db
|
|
from app.forms.login import LoginForm
|
|
from app.forms.search import SearchForm
|
|
from app.models.forum import Forum
|
|
from app.models.topic import Topic
|
|
|
|
|
|
@app.context_processor
|
|
def menu_processor():
|
|
""" All items used to render main menu. Includes search form """
|
|
|
|
login_form = LoginForm(prefix="menu_")
|
|
search_form = SearchForm()
|
|
main_forum = Forum.query.filter_by(parent=None).first()
|
|
|
|
# Constructing last active topics
|
|
raw = db.session.execute( """SELECT topic.id FROM topic
|
|
INNER JOIN comment ON topic.thread_id = comment.thread_id
|
|
INNER JOIN post ON post.id = comment.id
|
|
GROUP BY topic.id
|
|
ORDER BY MAX(post.date_created) DESC
|
|
LIMIT 10;""")
|
|
last_active_topics = [Topic.query.get(id) for id in raw]
|
|
|
|
return dict(login_form=login_form, search_form=search_form,
|
|
main_forum=main_forum, last_active_topics=last_active_topics)
|