from fastapi import HTTPException, Request from folkugat_web.model import temes as model from folkugat_web.services.temes import query as temes_q from folkugat_web.services.temes.links import guess_link_type from folkugat_web.templates import templates def link(request: Request, logged_in: bool, link: model.Link): return templates.TemplateResponse( "fragments/tema/link.html", { "request": request, "logged_in": logged_in, "link": link, "LinkType": model.LinkType, "ContentType": model.ContentType, }, headers={ "HX-Trigger": f"reload-tema-{link.tema_id}-score" } ) def link_editor(request: Request, logged_in: bool, link: model.Link): return templates.TemplateResponse( "fragments/tema/editor/link.html", { "request": request, "logged_in": logged_in, "link": link, "LinkType": model.LinkType, "ContentType": model.ContentType, } ) def link_editor_url(request: Request, logged_in: bool, link: model.Link): return templates.TemplateResponse( "fragments/tema/editor/link_url.html", { "request": request, "logged_in": logged_in, "link": link, "LinkType": model.LinkType, "ContentType": model.ContentType, } ) def link_editor_file(request: Request, logged_in: bool, link: model.Link): return templates.TemplateResponse( "fragments/tema/editor/link_file.html", { "request": request, "logged_in": logged_in, "link": link, "LinkType": model.LinkType, "ContentType": model.ContentType, } ) def link_icon(request: Request, logged_in: bool, link: model.Link): return templates.TemplateResponse( "fragments/tema/link_icon.html", { "request": request, "logged_in": logged_in, "link": link, "LinkType": model.LinkType, "ContentType": model.ContentType, } ) def score(request: Request, logged_in: bool, tema_id: int): tema = temes_q.get_tema_by_id(tema_id) if not tema: raise HTTPException(status_code=404, detail="Could not find tune") return templates.TemplateResponse( "fragments/tema/score.html", { "request": request, "logged_in": logged_in, "tema": tema, "LinkType": model.LinkType, } )