from fastapi import Request from folkugat_web.model import temes as model from folkugat_web.model.pagines import Pages from folkugat_web.services.temes import query as temes_q from folkugat_web.services.temes import search as temes_s from folkugat_web.templates import templates def temes_pagina(request: Request, logged_in: bool, query: str): return templates.TemplateResponse( "fragments/temes/pagina.html", { "request": request, "logged_in": logged_in, "query": query, "Pages": Pages, "menu_selected_id": Pages.Temes, } ) def temes_busca(request: Request, logged_in: bool, query: str, offset: int = 0, limit: int = 10): temes = temes_s.busca_temes( query=query, hidden=logged_in, limit=limit + 1, offset=offset, ) next_offset, prev_offset = None, None if len(temes) > limit: next_offset = offset + limit temes = temes[:limit] if offset > 0: prev_offset = max(offset - limit, 0) return templates.TemplateResponse( "fragments/temes/results.html", { "request": request, "logged_in": logged_in, "temes": temes, "query": query, "prev_offset": prev_offset, "next_offset": next_offset, "LinkType": model.LinkType, "ContentType": model.ContentType, } ) def tema(request: Request, tema_id: int, logged_in: bool): tema = temes_q.get_tema_by_id(tema_id) return templates.TemplateResponse( "fragments/tema/pagina.html", { "request": request, "logged_in": logged_in, "Pages": Pages, "LinkType": model.LinkType, "ContentType": model.ContentType, "tema": tema, } )