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))) diff --git a/seminar/utils.py b/seminar/utils.py index bb4cdfe7..cacc52d8 100644 --- a/seminar/utils.py +++ b/seminar/utils.py @@ -217,10 +217,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): """