feat [api]: format tags and filters
This commit is contained in:
parent
a396b5be5b
commit
75d14d6054
2 changed files with 31 additions and 2 deletions
|
@ -1,13 +1,15 @@
|
||||||
|
{% load film_tags %}
|
||||||
|
|
||||||
\centerline{\date{% templatetag openbrace %}{{ film.projection_date|date:"l d F Y" }}, {{ film.projection_date|time:"H\hi" }}}
|
\centerline{\date{% templatetag openbrace %}{{ film.projection_date|date:"l d F Y" }}, {{ film.projection_date|time:"H\hi" }}}
|
||||||
\centerline{Salle Dussane}
|
\centerline{Salle Dussane}
|
||||||
\centerline{\emph{\Large {{ film.title }}}}
|
\centerline{\emph{\Large {{ film.title }}}}
|
||||||
\centerline{% templatetag openbrace %}{{ film.director }} ({{ film.release_year }})}
|
\centerline{% templatetag openbrace %}{{ film.director }} ({{ film.release_year }})}
|
||||||
\medskip
|
\medskip
|
||||||
\centerline{% templatetag openbrace %}{{ film.actors }}}
|
\centerline{% templatetag openbrace %}{% list_actors film.actors %}}
|
||||||
\medskip
|
\medskip
|
||||||
\centerline{% templatetag openbrace %}{{ film.movie_format }} . {{ film.language_subtitles }}}
|
\centerline{% templatetag openbrace %}{{ film.movie_format }} . {{ film.language_subtitles }}}
|
||||||
\medskip
|
\medskip
|
||||||
\centerline{\textit{% templatetag openbrace %}{{ film.duration }} minutes}}
|
\centerline{\textit{% templatetag openbrace %}{{ film.duration|movie_duration }}}}
|
||||||
|
|
||||||
\medskip
|
\medskip
|
||||||
\medskip
|
\medskip
|
||||||
|
|
27
server/myapi/templatetags/film_tags.py
Normal file
27
server/myapi/templatetags/film_tags.py
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
from datetime import timedelta
|
||||||
|
from django import template
|
||||||
|
from typing import List
|
||||||
|
from django.utils.safestring import mark_safe
|
||||||
|
|
||||||
|
register = template.Library()
|
||||||
|
|
||||||
|
|
||||||
|
@register.simple_tag
|
||||||
|
def color_display(in_color: bool) -> str:
|
||||||
|
res = "Couleur" if in_color else "Noir & Blanc"
|
||||||
|
return mark_safe(res)
|
||||||
|
|
||||||
|
|
||||||
|
@register.simple_tag
|
||||||
|
def list_actors(actors: List[str]) -> str:
|
||||||
|
res = ", ".join(actors[:3])
|
||||||
|
if len(actors) > 3:
|
||||||
|
res += "..."
|
||||||
|
return res
|
||||||
|
|
||||||
|
|
||||||
|
@register.filter
|
||||||
|
def movie_duration(value: timedelta) -> str:
|
||||||
|
s = value.total_seconds()
|
||||||
|
str_duration = f"{int(s // 3600):01d}h{int(s % 3600 // 60):02d}"
|
||||||
|
return mark_safe(str_duration)
|
Loading…
Reference in a new issue