From b201d881d568764f41ce2498900677bbf115636d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Thu, 14 Oct 2021 14:44:05 +0200 Subject: [PATCH 1/2] =?UTF-8?q?P=C5=99id=C3=A1n=20filtr=20podle=20maturity?= =?UTF-8?q?=20u=20aktivniResitele()?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Dokumentace to dokonce i slibuje, jen to nebylo implementováno (ono ve skutečnosti podle toho filtruje už resi_v_rocniku, ale resi_v_rocniku(loni) filtruje podle loni, projistotu jsem to přidal na obojí) --- seminar/utils.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/seminar/utils.py b/seminar/utils.py index 898e0843..4604245c 100644 --- a/seminar/utils.py +++ b/seminar/utils.py @@ -212,10 +212,10 @@ def aktivniResitele(cislo, pouze_letosni=False): zacatek_rocniku = False if not zacatek_rocniku: - return resi_v_rocniku(letos, cislo) + return resi_v_rocniku(letos, cislo).filter(rok_maturity__gte=letos.druhy_rok()) else: # spojíme querysety s řešiteli loni a letos do daného čísla - return (resi_v_rocniku(loni) | resi_v_rocniku(letos, cislo)).distinct() + return (resi_v_rocniku(loni) | resi_v_rocniku(letos, cislo)).distinct().filter(rok_maturity__gte=letos.druhy_rok()) def viewMethodSwitch(get, post): """ From 4b4568160ff554dc3e62b1b5102246faf6ada9d6 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Mon, 22 Nov 2021 23:13:30 +0100 Subject: [PATCH 2/2] =?UTF-8?q?U=C5=BE=20nezobrazujeme=20=C5=99e=C5=A1itel?= =?UTF-8?q?=C5=AFm=20v=C3=ADce=20tabulek=20pro=20stejn=C3=BD=20ro=C4=8Dn?= =?UTF-8?q?=C3=ADk?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Řeší #1270 --- odevzdavatko/views.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/odevzdavatko/views.py b/odevzdavatko/views.py index aa95af2f..cc571a91 100644 --- a/odevzdavatko/views.py +++ b/odevzdavatko/views.py @@ -312,12 +312,15 @@ class PrehledOdevzdanychReseni(ListView): resitel = m.Resitel.objects.filter(osoba__user=self.request.user).first() qs = super().get_queryset() qs = qs.filter(reseni__resitele__in=[resitel]) + # Setřídíme podle času doručení řešení, aby se netřídily podle okamžiku vyrobení Hodnocení + qs = qs.order_by('reseni__cas_doruceni') return qs def get_context_data(self, *args, **kwargs): ctx = super().get_context_data(*args, **kwargs) # Ročník určujeme podle čísla, do jehož deadlinu došlo řešení. # Chceme to mít seřazené, takže místo comphrerehsion ručně postavíme pole polí. Django templates neumí použít OrderedDict :-/ + # TODO: Funkce deadline vrací deadliny v jiném ročníku, zvlášť pokud se vyrobí řešení až po deadlinu (třeba při poslání mailem) podle_rocniku = [] for rocnik, hodnoceni in groupby(ctx['object_list'], lambda ho: deadline(ho.reseni.cas_doruceni)[1].rocnik if deadline(ho.reseni.cas_doruceni) is not None else None): podle_rocniku.append((rocnik, list(hodnoceni)))