diff --git a/seminar/templates/seminar/archiv/rocnik.html b/seminar/templates/seminar/archiv/rocnik.html
index baa5e09d..8fcc01cd 100644
--- a/seminar/templates/seminar/archiv/rocnik.html
+++ b/seminar/templates/seminar/archiv/rocnik.html
@@ -33,6 +33,15 @@
{% include "seminar/vysledkovka_rocnik.html" %}
{% endif %}
+ {% if user.is_staff and vysledkovka_s_neverejnymi %}
+
+
Výsledková listina včetně neveřejných bodů
+ {% with vysledkovka_s_neverejnymi as vysledkovka %}
+ {% include "seminar/vysledkovka_rocnik.html" %}
+ {% endwith %}
+
+ {% endif %}
+
{% endblock content %}
diff --git a/seminar/templates/seminar/vysledkovka_rocnik.html b/seminar/templates/seminar/vysledkovka_rocnik.html
index 91e1d8ca..f1dc1d79 100644
--- a/seminar/templates/seminar/vysledkovka_rocnik.html
+++ b/seminar/templates/seminar/vysledkovka_rocnik.html
@@ -4,15 +4,13 @@
Jméno
| R.
| Odjakživa
- {% for c in rocnik.verejna_cisla %}
- {% if c.verejna_vysledkovka %}
+ {% for c in vysledkovka.cisla %}
|
{{c.rocnik.rocnik}}.{{ c.cislo }}
- {% endif %}
{% endfor %}
| Celkem
-{% for rv in vysledkovka %}
+{% for rv in vysledkovka.radky %}
|
{% autoescape off %}{{ rv.poradi }}{% endautoescape %}
|
diff --git a/seminar/templates/seminar/zadani/AktualniVysledkovka.html b/seminar/templates/seminar/zadani/AktualniVysledkovka.html
index c8943fec..9996b567 100644
--- a/seminar/templates/seminar/zadani/AktualniVysledkovka.html
+++ b/seminar/templates/seminar/zadani/AktualniVysledkovka.html
@@ -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 %}
+
+ Výsledky včetně neveřejných
+ {% with vysledkovka_s_neverejnymi as vysledkovka %}
+ {% include "seminar/vysledkovka_rocnik.html" %}
+ {% endwith %}
+
+ {% endif %}
+
{% endwith %}
{% endblock content %}
diff --git a/seminar/views.py b/seminar/views.py
index 46dc0c1d..59590bbf 100644
--- a/seminar/views.py
+++ b/seminar/views.py
@@ -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
|