|
|
|
from django import template
|
|
|
|
from django.utils.safestring import mark_safe
|
|
|
|
from seminar.utils import TypDeadline, deadline
|
|
|
|
register = template.Library()
|
|
|
|
|
|
|
|
@register.filter(name='deadline')
|
|
|
|
def deadline_text(datum):
|
|
|
|
if deadline(datum) is None:
|
|
|
|
return 'Neznámý deadline'
|
|
|
|
typ, cislo, dl = deadline(datum)
|
|
|
|
strings = {
|
|
|
|
TypDeadline.PredDeadline: f"1. deadline čísla {cislo} ({dl})",
|
|
|
|
TypDeadline.SousDeadline: f"Soustřeďkový deadline čísla {cislo} ({dl})",
|
|
|
|
TypDeadline.FinalDeadline: f"Finální deadline čísla {cislo} ({dl})",
|
|
|
|
}
|
|
|
|
return strings[typ]
|
|
|
|
|
|
|
|
@register.filter(name='deadline_kratseji')
|
|
|
|
def deadline_kratsi_text(datum):
|
|
|
|
if deadline(datum) is None:
|
|
|
|
return 'NONE'
|
|
|
|
typ, cislo, dl = deadline(datum)
|
|
|
|
strings = {
|
|
|
|
TypDeadline.PredDeadline: f"{cislo} ♲",
|
|
|
|
TypDeadline.SousDeadline: f"{cislo} Ⓢ",
|
|
|
|
TypDeadline.FinalDeadline: f"{cislo} ✓",
|
|
|
|
}
|
|
|
|
return strings[typ]
|
|
|
|
|
|
|
|
@register.filter(name='deadline_html')
|
|
|
|
def deadline_html(datum):
|
|
|
|
if deadline(datum) is None:
|
|
|
|
return 'Neznámý deadline'
|
|
|
|
typ, _, _ = deadline(datum)
|
|
|
|
text = deadline_kratsi_text(datum)
|
|
|
|
classes = {
|
|
|
|
TypDeadline.PredDeadline: 'preddeadline',
|
|
|
|
TypDeadline.SousDeadline: 'sous_deadline',
|
|
|
|
TypDeadline.FinalDeadline: 'final_deadline',
|
|
|
|
}
|
|
|
|
return mark_safe(f'<span class="{classes[typ]}">{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
|