You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

50 lines
1.5 KiB

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):
if len(nazev) > 10:
if nazev[9] == " ":
nazev = nazev[:9] + "..."
else:
nazev = nazev[:10] + "..."
return nazev