Source code for src.web.genres

from flask import Blueprint, render_template, request
from src.data_interface import model
from config import MAX_MOVIES_PER_LISTING

bp = Blueprint("genres", __name__)


[docs]@bp.route("/genres", methods=("GET",)) def index(): genres = model.Genre.query.all() return render_template("genres/genres.html", genres=genres)
[docs]@bp.route("/genres/<int:genre>", methods=("GET",)) def genre(genre): page = request.args.get("page") or 1 items = model.Movie.query.filter(model.Movie.genres.contains([genre])) items_count = items.count() items_on_page = items\ .paginate(int(page), MAX_MOVIES_PER_LISTING, error_out=False)\ .items genre = model.Genre.query\ .with_entities(model.Genre.id, model.Genre.name)\ .filter(model.Genre.id == genre)\ .one() return render_template( "genres/genre.html", items=items_on_page, number_of_pages=(items_count // MAX_MOVIES_PER_LISTING) + 1, genre=genre )