From 5afc52afb5f6b18cfc659622b54518bf4c3fdc87 Mon Sep 17 00:00:00 2001 From: Anet Date: Wed, 3 Jun 2020 23:26:16 +0200 Subject: [PATCH] =?UTF-8?q?Zm=C4=9Bny=20ve=20views=5Fall,=20aby=20se=20v?= =?UTF-8?q?=20exportu=20neduplikoval=20k=C3=B3d.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/views/views_all.py | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/seminar/views/views_all.py b/seminar/views/views_all.py index cd798631..b7b861ae 100644 --- a/seminar/views/views_all.py +++ b/seminar/views/views_all.py @@ -496,6 +496,12 @@ class RadekVysledkovkyRocniku(object): self.body_cisla_sezn = body_cisla_sezn self.titul = resitel.get_titul(body_odjakziva) +def setrid_resitele_a_body(slov_resitel_body): + setrizeni_resitele_id = [dvojice[0] for dvojice in slov_resitel_body] + setrizeni_resitele = [Resitel.objects.get(id=i) for i in setrizeni_resitele_id] + setrizene_body = [dvojice[1] for dvojice in slov_resitel_body] + return setrizeni_resitele_id, setrizeni_resitele, setrizene_body + def vysledkovka_rocniku(rocnik, jen_verejne=True): """ Přebírá ročník (např. context["rocnik"]) a vrací výsledkovou listinu ve formě vhodné pro šablonu "seminar/vysledkovka_rocniku.html" @@ -516,9 +522,7 @@ def vysledkovka_rocniku(rocnik, jen_verejne=True): resitel_rocnikbody_sezn = secti_body_za_rocnik(rocnik, aktivni_resitele) # setřídíme řešitele podle počtu bodů a získáme seznam s body od nejvyšších po nenižší - setrizeni_resitele_id = [dvojice[0] for dvojice in resitel_rocnikbody_sezn] - setrizeni_resitele = [Resitel.objects.get(id=i) for i in setrizeni_resitele_id] - setrizene_body = [dvojice[1] for dvojice in resitel_rocnikbody_sezn] + setrizeni_resitele_id, setrizeni_resitele, setrizene_body = setrid_resitele_a_body(resitel_rocnikbody_sezn) poradi = sloupec_s_poradim(setrizene_body) # získáme body odjakživa @@ -835,12 +839,13 @@ def resi_v_rocniku(rocnik, cislo=None): return letosni_resitele.distinct() -def aktivniResitele(rocnik, cislo): +def aktivniResitele(rocnik, cislo, pouze_realni=False): """ Vrací QuerySet aktivních řešitelů, což jsou ti, co ještě neodmaturovali a letos něco poslali (anebo loni něco poslali, pokud jde o první tři čísla). Parametry: rocnik (typu int) číslo ročníku, o který se jedná cislo (typu int) pořadí čísla, o které se jedná + pouze_realni jen řešitelé, kteří tento rok něco poslali """ letos = Rocnik.objects.get(rocnik = rocnik) @@ -856,6 +861,10 @@ def aktivniResitele(rocnik, cislo): except ValueError: # pravděpodobně se jedná o číslo 7-8 zacatek_rocniku = False + + # nehledě na číslo chceme jen řešitele, kteří letos něco odevzdali + if pouze_realni: + zacatek_rocniku = False if not zacatek_rocniku: return resi_v_rocniku(letos)