89 lines
2.5 KiB
Python
89 lines
2.5 KiB
Python
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,
|
|
}
|
|
)
|