|
|
|
from django import template
|
|
|
|
from django.utils.safestring import mark_safe
|
|
|
|
register = template.Library()
|
|
|
|
import seminar.models as m
|
|
|
|
|
|
|
|
@register.filter(name='deadline_kratseji')
|
|
|
|
def deadline_kratsi_text(deadline: m.Deadline):
|
|
|
|
if deadline is None:
|
|
|
|
return 'NONE'
|
|
|
|
strings = {
|
|
|
|
m.Deadline.TYP_PRVNI: f"{deadline.cislo} ⭯",
|
|
|
|
m.Deadline.TYP_SOUS: f"{deadline.cislo} Ⓢ",
|
|
|
|
m.Deadline.TYP_PRVNI_A_SOUS: f"{deadline.cislo} ⭯Ⓢ",
|
|
|
|
m.Deadline.TYP_CISLA: f"{deadline.cislo} ✓",
|
|
|
|
}
|
|
|
|
return strings[deadline.typ]
|
|
|
|
|
|
|
|
@register.filter(name='deadline_html')
|
|
|
|
def deadline_html(deadline: m.Deadline):
|
|
|
|
if deadline is None:
|
|
|
|
return 'Neznámý deadline'
|
|
|
|
text = deadline_kratsi_text(deadline)
|
|
|
|
classes = {
|
|
|
|
m.Deadline.TYP_PRVNI: 'preddeadline',
|
|
|
|
m.Deadline.TYP_SOUS: 'sous_deadline',
|
|
|
|
m.Deadline.TYP_PRVNI_A_SOUS: 'sous_deadline',
|
|
|
|
m.Deadline.TYP_CISLA: 'final_deadline',
|
|
|
|
}
|
|
|
|
return mark_safe(f'<span class="{classes[deadline.typ]}" title="{deadline}">{text}</span>')
|
|
|
|
|
|
|
|
@register.filter(name='zkrat_nazev_problemu')
|
|
|
|
def zkrat_nazev_problemu(nazev,width):
|
|
|
|
if len(nazev) > width:
|
|
|
|
if nazev[width-1] == " ":
|
|
|
|
nazev = nazev[:width-1] + "..."
|
|
|
|
else:
|
|
|
|
nazev = nazev[:width] + "..."
|
|
|
|
return nazev
|