From ce4ca5b05daa6d459876b9eedd49e2a59ace42dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pavel=20Turinsk=C3=BD?= Date: Tue, 13 Oct 2020 23:25:39 +0200 Subject: [PATCH] =?UTF-8?q?TitulniStranaView:=20Preddeadline=20p=C5=99id?= =?UTF-8?q?=C3=A1n=20do=20contextu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/views/views_all.py | 51 +++++++++++++++++--------------------- 1 file changed, 23 insertions(+), 28 deletions(-) diff --git a/seminar/views/views_all.py b/seminar/views/views_all.py index 110a1727..e981d673 100644 --- a/seminar/views/views_all.py +++ b/seminar/views/views_all.py @@ -24,7 +24,7 @@ from seminar import utils, treelib from seminar.forms import PrihlaskaForm, LoginForm, ProfileEditForm import seminar.forms as f -from datetime import timedelta, date, datetime +from datetime import timedelta, date, datetime, MAXYEAR from django.utils import timezone from itertools import groupby from collections import OrderedDict @@ -259,35 +259,30 @@ class TitulniStranaView(generic.ListView): def get_context_data(self, **kwargs): context = super(TitulniStranaView, self).get_context_data(**kwargs) nastaveni = get_object_or_404(Nastaveni) + + deadline_soustredeni = (nastaveni.aktualni_cislo.datum_deadline_soustredeni, "soustredeni") + preddeadline = (nastaveni.aktualni_cislo.datum_preddeadline, "preddeadline") + deadline = (nastaveni.aktualni_cislo.datum_deadline, "deadline") - # zjisteni spravneho terminu - if nastaveni.aktualni_cislo.datum_deadline_soustredeni: - cas_deadline_soustredeni = nastaveni.aktualni_cislo.\ - datum_deadline_soustredeni - if (datetime.now().date() <= cas_deadline_soustredeni): - cas_deadline = cas_deadline_soustredeni - deadline_soustredeni = True - else: - cas_deadline = nastaveni.aktualni_cislo.datum_deadline - deadline_soustredeni = False + try: + nejblizsi_deadline = sorted(filter(lambda dl: dl[0] is not None and dl[0] >= date.today(), [deadline_soustredeni, preddeadline, deadline]))[0] + except IndexError: + nejblizsi_deadline = (None, None) # neni zadna aktualni deadline + + if nejblizsi_deadline[0] is not None: + context['nejblizsi_deadline'] = datetime.combine(nejblizsi_deadline[0], datetime.max.time()) else: - cas_deadline = nastaveni.aktualni_cislo.datum_deadline - deadline_soustredeni = False - - # Pokud neni zverejnene cislo nezverejnuj odpocet - if nastaveni.aktualni_cislo.verejne(): - # pokus se zjistit termin odeslani a pokud neni zadany, - # nezverejnuj odpocet - context['deadline_soustredeni'] = deadline_soustredeni - try: - context['dead'] = datetime.combine(cas_deadline, - datetime.max.time()) - context['ted'] = datetime.now() - except: - context['dead'] = None + context['nejblizsi_deadline'] = None + + context['typ_deadline'] = nejblizsi_deadline[1] + context['ted'] = datetime.now() + + if (nejblizsi_deadline[1] == 'soustredeni'): + context['dead'] = datetime.combine(deadline_soustredeni[0], datetime.max.time()) + context['deadline_soustredeni'] = True else: - context['dead'] = None - context['deadline_soustredeni'] = deadline_soustredeni + context['dead'] = context['nejblizsi_deadline'] + context['deadline_soustredeni'] = False # Aktuální témata nazvy_a_odkazy_na_aktualni_temata = [] @@ -1361,4 +1356,4 @@ class JakResitView(generic.ListView): template_name = 'seminar/jak-resit.html' def get_queryset(self): - return None \ No newline at end of file + return None