From 96161c49743ba41ee532dda38d3721c7b1ffa8ee Mon Sep 17 00:00:00 2001 From: "Tomas \"Jethro\" Pokorny" Date: Sun, 6 Dec 2015 23:32:25 +0100 Subject: [PATCH] Funkce pro aktualni a aktivni resitele. --- seminar/views.py | 47 +++++++++++++++++++++++++++++++---------------- 1 file changed, 31 insertions(+), 16 deletions(-) diff --git a/seminar/views.py b/seminar/views.py index 54ed3e11..84890ea8 100644 --- a/seminar/views.py +++ b/seminar/views.py @@ -7,6 +7,7 @@ from django.core.urlresolvers import reverse from django.views import generic from django.utils.translation import ugettext as _ from django.http import Http404 +from django.db.models import Q from .models import Problem, Cislo, Reseni, Nastaveni, Rocnik, Soustredeni, Organizator, Resitel, Novinky, Soustredeni_Ucastnici from .models import VysledkyZaCislo, VysledkyKCisluZaRocnik, VysledkyKCisluOdjakziva @@ -343,28 +344,42 @@ class RocnikVysledkovkaView(RocnikView): ### Generovani obalek class CisloObalkyStruct: - resitele = None rocnik = None - problemy = None - -def cisloObalkyView(request,rocnik,cislo): + cisla = None + + +# Vraci QuerySet aktualnich resitelu = nekdy neco poslali, ale jeste neodmaturovali +def aktualniResitele(rocnik): + letos = Rocnik.objects.filter(rocnik = rocnik).first() + return Resitel.objects.filter(rok_maturity__gt = letos.prvni_rok) +# # ALERT: pokud nekdo nema vypleny rok maturity, tak neni aktualni, protoze Karel Tesar a jini +# return Resitel.objects.filter(Q(rok_maturity__gt = letos.prvni_rok)|Q(rok_maturity = None)) + +# Vraci QuerySet aktivnich resitelu = +# jeste neodmaturovali && +# (pokud je aktualni cislo mensi nez 3, pak (letos || loni) neco poslali +# jinak letos neco poslali) +def aktivniResitele(rocnik,cislo): letos = CisloObalkyStruct() loni = CisloObalkyStruct() - letos.rocnik = Rocnik.objects.filter(rocnik = rocnik)[0] - loni.rocnik = Rocnik.objects.filter(rocnik = int(rocnik)-1)[0] - letos.problemy = Problem.objects.filter(cislo_zadani = Cislo.objects.filter(rocnik=letos.rocnik,cislo__lte = cislo)) - loni.problemy = Problem.objects.filter(cislo_zadani = Cislo.objects.filter(rocnik=loni.rocnik)) - letos.resitele = Resitel.objects.filter(reseni = Reseni.objects.filter(problem=letos.problemy)).distinct() - loni.resitele = Resitel.objects.filter(reseni = Reseni.objects.filter(problem=loni.problemy)).distinct() - - loni.resitele = loni.resitele.filter(rok_maturity__gt = letos.rocnik.prvni_rok) - + aktualni_resitele = aktualniResitele(rocnik) + + letos.rocnik = Rocnik.objects.filter(rocnik = rocnik).first() + loni.rocnik = Rocnik.objects.filter(rocnik = int(rocnik)-1).first() + letos.cisla = Cislo.objects.filter(rocnik=letos.rocnik,cislo__lte = cislo) + loni.cisla = Cislo.objects.filter(rocnik=loni.rocnik) if int(cislo) > 3: - resitele = letos.resitele + problemy = Problem.objects.filter(cislo_zadani = letos.cisla) else: - resitele = list(letos.resitele) + list(loni.resitele) - return obalkyView(request,resitele) + problemy = Problem.objects.filter(Q(cislo_zadani = letos.cisla)|Q(cislo_zadani=loni.cisla)) + resitele = aktualni_resitele.filter(reseni = Reseni.objects.filter(problem=problemy)).distinct() + + return resitele + + +def cisloObalkyView(request,rocnik,cislo): + return obalkyView(request,aktivniResitele(rocnik,cislo)) def obalkyView(request,resitele):