Výsledkovky s neveřejnými body v zadání/výsledky
a v ročníku
This commit is contained in:
parent
b43eee735c
commit
d16cb935f7
4 changed files with 43 additions and 13 deletions
|
@ -33,6 +33,15 @@
|
|||
{% include "seminar/vysledkovka_rocnik.html" %}
|
||||
{% endif %}
|
||||
|
||||
{% if user.is_staff and vysledkovka_s_neverejnymi %}
|
||||
<div class='mam-org-only'>
|
||||
<h3>Výsledková listina včetně neveřejných bodů</h3>
|
||||
{% with vysledkovka_s_neverejnymi as vysledkovka %}
|
||||
{% include "seminar/vysledkovka_rocnik.html" %}
|
||||
{% endwith %}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
</div>
|
||||
{% endblock content %}
|
||||
|
||||
|
|
|
@ -4,15 +4,13 @@
|
|||
<th class='border-r'>Jméno
|
||||
<th class='border-r'>R.
|
||||
<th class='border-r'>Odjakživa
|
||||
{% for c in rocnik.verejna_cisla %}
|
||||
{% if c.verejna_vysledkovka %}
|
||||
{% for c in vysledkovka.cisla %}
|
||||
<th class='border-r'><a href="{{ c.verejne_url }}">
|
||||
{{c.rocnik.rocnik}}.{{ c.cislo }}</a>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
<th class='border-r'>Celkem
|
||||
|
||||
{% for rv in vysledkovka %}
|
||||
{% for rv in vysledkovka.radky %}
|
||||
<tr>
|
||||
<td class='border-r'>{% autoescape off %}{{ rv.poradi }}{% endautoescape %}
|
||||
<th class='border-r'>
|
||||
|
|
|
@ -21,5 +21,15 @@
|
|||
{% else %}
|
||||
V tomto ročníku zatím žádné výsledky nejsou
|
||||
{% endif %}
|
||||
|
||||
{% if user.is_staff and vysledkovka_s_neverejnymi %}
|
||||
<div class='mam-org-only'>
|
||||
<h2>Výsledky včetně neveřejných</h2>
|
||||
{% with vysledkovka_s_neverejnymi as vysledkovka %}
|
||||
{% include "seminar/vysledkovka_rocnik.html" %}
|
||||
{% endwith %}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% endwith %}
|
||||
{% endblock content %}
|
||||
|
|
|
@ -45,10 +45,12 @@ def ZadaniTemataView(request):
|
|||
def ZadaniAktualniVysledkovkaView(request):
|
||||
nastaveni = get_object_or_404(Nastaveni)
|
||||
vysledkovka = vysledkovka_rocniku(nastaveni.aktualni_rocnik)
|
||||
vysledkovka_s_neverejnymi = vysledkovka_rocniku(nastaveni.aktualni_rocnik, jen_verejne=False)
|
||||
return render(request, 'seminar/zadani/AktualniVysledkovka.html',
|
||||
{
|
||||
'nastaveni': nastaveni,
|
||||
'vysledkovka': vysledkovka,
|
||||
'vysledkovka_s_neverejnymi': vysledkovka_s_neverejnymi,
|
||||
}
|
||||
)
|
||||
|
||||
|
@ -126,29 +128,39 @@ def sloupec_s_poradim(vysledky):
|
|||
return poradi_l
|
||||
|
||||
|
||||
def vysledkovka_rocniku(rocnik):
|
||||
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"
|
||||
"""
|
||||
|
||||
#vyberu vsechny verejne vysledky z rocniku
|
||||
cisla_v_rocniku = VysledkyKCisluZaRocnik.objects.filter(cislo__verejna_vysledkovka=True, cislo__rocnik=rocnik).order_by('cislo')
|
||||
#vyberu vsechny vysledky z rocniku
|
||||
cisla_v_rocniku = VysledkyKCisluZaRocnik.objects.filter(cislo__rocnik=rocnik).order_by('cislo')
|
||||
if jen_verejne:
|
||||
cisla_v_rocniku = cisla_v_rocniku.filter(cislo__verejna_vysledkovka=True)
|
||||
|
||||
#pokud žádné nejsou, výsledkovka se nezobrazí
|
||||
if not cisla_v_rocniku:
|
||||
return None
|
||||
|
||||
#vybere vsechny vysledky z posledniho verejneho cisla a setridi sestupne dle bodu
|
||||
#vybere vsechny vysledky z posledniho (verejneho) cisla a setridi sestupne dle bodu
|
||||
vysledky = list(cisla_v_rocniku.filter(cislo = cisla_v_rocniku[0].cislo).order_by('-body', 'resitel__prijmeni', 'resitel__jmeno').select_related('resitel'))
|
||||
|
||||
vysledkovka = []
|
||||
class Vysledkovka:
|
||||
def __init__(self):
|
||||
self.radky = []
|
||||
self.cisla = []
|
||||
|
||||
vysledkovka = Vysledkovka()
|
||||
vysledkovka.cisla = (rocnik.verejne_vysledkovky_cisla() if jen_verejne else rocnik.cisla.all().order_by('cislo'))
|
||||
|
||||
# doplníme některé údaje do řádků výsledkovky pro řešitele ve skupině
|
||||
for poradi, v in zip(sloupec_s_poradim(vysledky), vysledky):
|
||||
v.poradi = poradi
|
||||
v.resitel.rocnik = v.resitel.rocnik(rocnik)
|
||||
|
||||
verejne_vysl_odjakziva = VysledkyKCisluOdjakziva.objects.filter(cislo__verejna_vysledkovka=True, cislo__rocnik=rocnik, cislo=cisla_v_rocniku[0].cislo)
|
||||
verejne_vysl_odjakziva = VysledkyKCisluOdjakziva.objects.filter(cislo__rocnik=rocnik, cislo=cisla_v_rocniku[0].cislo)
|
||||
if jen_verejne:
|
||||
verejne_vysl_odjakziva = verejne_vysl_odjakziva.filter(cislo__verejna_vysledkovka=True)
|
||||
|
||||
v.body_odjakziva = verejne_vysl_odjakziva.filter(resitel = v.resitel)[0].body
|
||||
v.titul = v.resitel.get_titul(v.body_odjakziva)
|
||||
|
@ -156,8 +168,8 @@ def vysledkovka_rocniku(rocnik):
|
|||
v.body_cisla = []
|
||||
|
||||
#pokud pro dany rok a cislo nema resitel vysledky, ma defaultne 0
|
||||
for cis in rocnik.verejna_cisla():
|
||||
if cis.verejna_vysledkovka:
|
||||
for cis in vysledkovka.cisla:
|
||||
if not jen_verejne or cis.verejna_vysledkovka:
|
||||
#seznam vysledku se spravnym rocnikem a cislem pro resitele
|
||||
#zobrazim jen je-li vysledkovka verejna
|
||||
body_za_cislo = VysledkyZaCislo.objects.filter(cislo__rocnik=rocnik).filter(cislo = cis).filter(resitel = v.resitel)
|
||||
|
@ -168,7 +180,7 @@ def vysledkovka_rocniku(rocnik):
|
|||
#resitel nema za cislo body
|
||||
v.body_cisla.append(0)
|
||||
|
||||
vysledkovka.append(v)
|
||||
vysledkovka.radky.append(v)
|
||||
|
||||
return vysledkovka
|
||||
|
||||
|
@ -195,6 +207,7 @@ class RocnikView(generic.DetailView):
|
|||
context = super(RocnikView, self).get_context_data(**kwargs)
|
||||
|
||||
context['vysledkovka'] = vysledkovka_rocniku(context["rocnik"])
|
||||
context['vysledkovka_s_neverejnymi'] = vysledkovka_rocniku(context["rocnik"], jen_verejne=False)
|
||||
context['temata_v_rocniku'] = verejna_temata(context["rocnik"])
|
||||
|
||||
return context
|
||||
|
|
Loading…
Reference in a new issue