cineclub-site/server/myapi/templatetags/film_tags.py

28 lines
659 B
Python

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)