|
|
@ -69,28 +69,28 @@ def ZadaniTemataView(request): |
|
|
|
|
|
|
|
|
|
|
|
#def ZadaniAktualniVysledkovkaView(request): |
|
|
|
# nastaveni = get_object_or_404(Nastaveni) |
|
|
|
# # Aktualni verejna vysledkovka |
|
|
|
# vysledkovka = vysledkovka_rocniku(nastaveni.aktualni_rocnik) |
|
|
|
# # kdyz neni verejna vysledkovka, tak zobraz starou |
|
|
|
# if not vysledkovka: |
|
|
|
# try: |
|
|
|
# minuly_rocnik = Rocnik.objects.get( |
|
|
|
# prvni_rok=(nastaveni.aktualni_rocnik.prvni_rok-1)) |
|
|
|
# vysledkovka = vysledkovka_rocniku(minuly_rocnik) |
|
|
|
# except ObjectDoesNotExist: |
|
|
|
# pass |
|
|
|
# # vysledkovka s neverejnyma vysledkama |
|
|
|
# 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, |
|
|
|
# } |
|
|
|
# ) |
|
|
|
# nastaveni = get_object_or_404(Nastaveni) |
|
|
|
# # Aktualni verejna vysledkovka |
|
|
|
# vysledkovka = vysledkovka_rocniku(nastaveni.aktualni_rocnik) |
|
|
|
# # kdyz neni verejna vysledkovka, tak zobraz starou |
|
|
|
# if not vysledkovka: |
|
|
|
# try: |
|
|
|
# minuly_rocnik = Rocnik.objects.get( |
|
|
|
# prvni_rok=(nastaveni.aktualni_rocnik.prvni_rok-1)) |
|
|
|
# vysledkovka = vysledkovka_rocniku(minuly_rocnik) |
|
|
|
# except ObjectDoesNotExist: |
|
|
|
# pass |
|
|
|
# # vysledkovka s neverejnyma vysledkama |
|
|
|
# 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, |
|
|
|
# } |
|
|
|
# ) |
|
|
|
|
|
|
|
|
|
|
|
### Titulni strana |
|
|
@ -125,7 +125,7 @@ class TitulniStranaView(generic.ListView): |
|
|
|
context['deadline_soustredeni'] = deadline_soustredeni |
|
|
|
try: |
|
|
|
context['dead'] = datetime.combine(cas_deadline, |
|
|
|
datetime.max.time()) |
|
|
|
datetime.max.time()) |
|
|
|
context['ted'] = datetime.now() |
|
|
|
except: |
|
|
|
context['dead'] = None |
|
|
@ -274,61 +274,61 @@ def sloupec_s_poradim(vysledky): |
|
|
|
|
|
|
|
|
|
|
|
#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 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 |
|
|
|
# vysledky = list(cisla_v_rocniku.filter(cislo = cisla_v_rocniku[0].cislo).order_by('-body', 'resitel__prijmeni', 'resitel__jmeno').select_related('resitel')) |
|
|
|
# |
|
|
|
# class Vysledkovka: |
|
|
|
# def __init__(self): |
|
|
|
# self.rocnik = rocnik.rocnik |
|
|
|
# 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__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) |
|
|
|
# v.body_rocnik = v.body |
|
|
|
# v.body_cisla = [] |
|
|
|
# |
|
|
|
# #pokud pro dany rok a cislo nema resitel vysledky, ma defaultne 0 |
|
|
|
# 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) |
|
|
|
# if body_za_cislo: |
|
|
|
# #neprazdne vysledky by mely obsahovat prave jeden vysledek |
|
|
|
# v.body_cisla.append(body_za_cislo[0].body) |
|
|
|
# else: |
|
|
|
# #resitel nema za cislo body |
|
|
|
# v.body_cisla.append(0) |
|
|
|
# |
|
|
|
# vysledkovka.radky.append(v) |
|
|
|
# |
|
|
|
# return vysledkovka |
|
|
|
# """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 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 |
|
|
|
# vysledky = list(cisla_v_rocniku.filter(cislo = cisla_v_rocniku[0].cislo).order_by('-body', 'resitel__prijmeni', 'resitel__jmeno').select_related('resitel')) |
|
|
|
# |
|
|
|
# class Vysledkovka: |
|
|
|
# def __init__(self): |
|
|
|
# self.rocnik = rocnik.rocnik |
|
|
|
# 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__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) |
|
|
|
# v.body_rocnik = v.body |
|
|
|
# v.body_cisla = [] |
|
|
|
# |
|
|
|
# #pokud pro dany rok a cislo nema resitel vysledky, ma defaultne 0 |
|
|
|
# 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) |
|
|
|
# if body_za_cislo: |
|
|
|
# #neprazdne vysledky by mely obsahovat prave jeden vysledek |
|
|
|
# v.body_cisla.append(body_za_cislo[0].body) |
|
|
|
# else: |
|
|
|
# #resitel nema za cislo body |
|
|
|
# v.body_cisla.append(0) |
|
|
|
# |
|
|
|
# vysledkovka.radky.append(v) |
|
|
|
# |
|
|
|
# return vysledkovka |
|
|
|
|
|
|
|
|
|
|
|
class RocnikView(generic.DetailView): |
|
|
@ -346,7 +346,7 @@ class RocnikView(generic.DetailView): |
|
|
|
obj = queryset.get() |
|
|
|
except queryset.model.DoesNotExist: |
|
|
|
raise Http404(_("No %(verbose_name)s found matching the query") % |
|
|
|
{'verbose_name': queryset.model._meta.verbose_name}) |
|
|
|
{'verbose_name': queryset.model._meta.verbose_name}) |
|
|
|
return obj |
|
|
|
|
|
|
|
def get_context_data(self, **kwargs): |
|
|
@ -379,43 +379,43 @@ class ProblemView(generic.DetailView): |
|
|
|
|
|
|
|
## Prispevek byl zrusen, mozna ale bude podobny nahled na neco jineho. |
|
|
|
#class PrispevekView(generic.DetailView): |
|
|
|
# model = Prispevek |
|
|
|
# template_name = 'seminar/archiv/prispevek.html' |
|
|
|
# |
|
|
|
# # Vlastni ziskavani objektu z databaze podle prispevku |
|
|
|
# # pokud je prispevek neverejny zobrazi se jenom orgum |
|
|
|
# def get_object(self, queryset=None): |
|
|
|
# if queryset is None: |
|
|
|
# queryset = self.get_queryset() |
|
|
|
# problem_arg = self.kwargs.get('pk') |
|
|
|
# prispevek_arg = self.kwargs.get('prispevek') |
|
|
|
# queryset = queryset.filter(pk=prispevek_arg) |
|
|
|
# |
|
|
|
# try: |
|
|
|
# obj = queryset.get() |
|
|
|
# except queryset.model.DoesNotExist: |
|
|
|
# raise Http404(_("No %(verbose_name)s found matching the query") % |
|
|
|
# {'verbose_name': queryset.model._meta.verbose_name}) |
|
|
|
# |
|
|
|
# if self.request.user.is_staff or obj.zverejnit: |
|
|
|
# return obj |
|
|
|
# else: |
|
|
|
# raise Http404() |
|
|
|
# |
|
|
|
# def get_context_data(self, **kwargs): |
|
|
|
# context = super(PrispevekView, self).get_context_data(**kwargs) |
|
|
|
# # snaho o ziskani titulu |
|
|
|
# titul = '' |
|
|
|
# try: |
|
|
|
# resitel = context['prispevek'].reseni.resitel |
|
|
|
# cislo = context['prispevek'].reseni.cislo_body |
|
|
|
# body = VysledkyKCisluOdjakziva.objects.get(resitel=resitel, |
|
|
|
# cislo=cislo).body |
|
|
|
# titul = resitel.get_titul(body) |
|
|
|
# except: |
|
|
|
# pass |
|
|
|
# context['titul'] = titul |
|
|
|
# return context |
|
|
|
# model = Prispevek |
|
|
|
# template_name = 'seminar/archiv/prispevek.html' |
|
|
|
# |
|
|
|
# # Vlastni ziskavani objektu z databaze podle prispevku |
|
|
|
# # pokud je prispevek neverejny zobrazi se jenom orgum |
|
|
|
# def get_object(self, queryset=None): |
|
|
|
# if queryset is None: |
|
|
|
# queryset = self.get_queryset() |
|
|
|
# problem_arg = self.kwargs.get('pk') |
|
|
|
# prispevek_arg = self.kwargs.get('prispevek') |
|
|
|
# queryset = queryset.filter(pk=prispevek_arg) |
|
|
|
# |
|
|
|
# try: |
|
|
|
# obj = queryset.get() |
|
|
|
# except queryset.model.DoesNotExist: |
|
|
|
# raise Http404(_("No %(verbose_name)s found matching the query") % |
|
|
|
# {'verbose_name': queryset.model._meta.verbose_name}) |
|
|
|
# |
|
|
|
# if self.request.user.is_staff or obj.zverejnit: |
|
|
|
# return obj |
|
|
|
# else: |
|
|
|
# raise Http404() |
|
|
|
# |
|
|
|
# def get_context_data(self, **kwargs): |
|
|
|
# context = super(PrispevekView, self).get_context_data(**kwargs) |
|
|
|
# # snaho o ziskani titulu |
|
|
|
# titul = '' |
|
|
|
# try: |
|
|
|
# resitel = context['prispevek'].reseni.resitel |
|
|
|
# cislo = context['prispevek'].reseni.cislo_body |
|
|
|
# body = VysledkyKCisluOdjakziva.objects.get(resitel=resitel, |
|
|
|
# cislo=cislo).body |
|
|
|
# titul = resitel.get_titul(body) |
|
|
|
# except: |
|
|
|
# pass |
|
|
|
# context['titul'] = titul |
|
|
|
# return context |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -423,83 +423,83 @@ class RadekVysledkovky(object): |
|
|
|
pass |
|
|
|
|
|
|
|
#class CisloView(generic.DetailView): |
|
|
|
# model = Cislo |
|
|
|
# template_name = 'seminar/archiv/cislo.html' |
|
|
|
# |
|
|
|
# # Vlastni ziskavani objektu z databaze podle (Rocnik.rocnik) |
|
|
|
# def get_object(self, queryset=None): |
|
|
|
# if queryset is None: |
|
|
|
# queryset = self.get_queryset() |
|
|
|
# rocnik_arg = self.kwargs.get('rocnik') |
|
|
|
# cislo_arg = self.kwargs.get('cislo') |
|
|
|
# queryset = queryset.filter(rocnik__rocnik=rocnik_arg, cislo=cislo_arg) |
|
|
|
# |
|
|
|
# try: |
|
|
|
# obj = queryset.get() |
|
|
|
# except queryset.model.DoesNotExist: |
|
|
|
# raise Http404(_("No %(verbose_name)s found matching the query") % |
|
|
|
# {'verbose_name': queryset.model._meta.verbose_name}) |
|
|
|
# return obj |
|
|
|
# |
|
|
|
# |
|
|
|
# def get_context_data(self, **kwargs): |
|
|
|
# context = super(CisloView, self).get_context_data(**kwargs) |
|
|
|
# |
|
|
|
# vysledky = VysledkyKCisluZaRocnik.objects.filter(cislo = context['cislo']).order_by('-body', 'resitel__prijmeni', 'resitel__jmeno') |
|
|
|
# reseni = Reseni.objects.filter(cislo_body = context['cislo']).select_related("resitel") |
|
|
|
# |
|
|
|
# # typy úloh, které se mají zobrazovat u čísla, tj. těch, které byly v čísle skutečně zadány |
|
|
|
# typy_skutecne_zadanych = [Problem.TYP_ULOHA, Problem.TYP_SERIAL, Problem.TYP_ORG_CLANEK] |
|
|
|
# v_cisle_zadane = Problem.objects.filter(cislo_zadani=context['cislo']).filter(typ__in=typy_skutecne_zadanych).order_by('kod') |
|
|
|
# |
|
|
|
# resene_problemy = Problem.objects.filter(cislo_reseni=context['cislo']).filter(typ__in=typy_skutecne_zadanych).order_by('cislo_zadani__cislo', 'kod') |
|
|
|
# |
|
|
|
# poradi_typu = { |
|
|
|
# Problem.TYP_ULOHA: 1, |
|
|
|
# Problem.TYP_SERIAL: 2, |
|
|
|
# Problem.TYP_ORG_CLANEK: 3, |
|
|
|
# Problem.TYP_TEMA: 4, |
|
|
|
# Problem.TYP_RES_CLANEK: 5 |
|
|
|
# } |
|
|
|
# problemy = sorted(set(r.problem for r in reseni), key=lambda x:(poradi_typu[x.typ], x.kod_v_rocniku())) |
|
|
|
# #setridi problemy podle typu a poradi zadani |
|
|
|
# problem_index = {} |
|
|
|
# for i in range(len(problemy)): |
|
|
|
# problem_index[problemy[i].id] = i |
|
|
|
# #umoznuje zjistit index podle id problemu |
|
|
|
# |
|
|
|
# vysledky_resitele = {} |
|
|
|
# vysledkovka = [] |
|
|
|
# |
|
|
|
# # 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.body_celkem_rocnik = v.body |
|
|
|
# v.body_celkem_odjakziva = VysledkyKCisluOdjakziva.objects.get(resitel=v.resitel, cislo=context['cislo']).body |
|
|
|
# v.resitel.rocnik = v.resitel.rocnik(v.cislo.rocnik) |
|
|
|
# |
|
|
|
# # je tady '', aby se nezobrazovala 0, pokud se řešitel o řešení úlohy ani nepokusil |
|
|
|
# v.body_ulohy = [''] * len(problemy) |
|
|
|
# |
|
|
|
# v.titul = v.resitel.get_titul(v.body_celkem_odjakziva) |
|
|
|
# |
|
|
|
# body_cislo_q = VysledkyZaCislo.objects.filter(resitel=v.resitel, cislo=context['cislo']) |
|
|
|
# v.body_cislo = body_cislo_q[0].body if body_cislo_q else 0 |
|
|
|
# |
|
|
|
# vysledkovka.append(v) |
|
|
|
# |
|
|
|
# # připravíme si odkaz na řádek, abychom do něj mohli doplnit body za jednotlivé úlohy |
|
|
|
# vysledky_resitele[v.resitel.id] = v |
|
|
|
# |
|
|
|
# # za každé řešení doplníme k příslušnému řešiteli a úloze body |
|
|
|
# for r in reseni: |
|
|
|
# vysledky_resitele[r.resitel.id].body_ulohy[problem_index[r.problem.id]] = r.body |
|
|
|
# |
|
|
|
# context['vysledkovka'] = vysledkovka |
|
|
|
# context['problemy'] = problemy |
|
|
|
# context['v_cisle_zadane'] = v_cisle_zadane |
|
|
|
# context['resene_problemy'] = resene_problemy |
|
|
|
# return context |
|
|
|
# model = Cislo |
|
|
|
# template_name = 'seminar/archiv/cislo.html' |
|
|
|
# |
|
|
|
# # Vlastni ziskavani objektu z databaze podle (Rocnik.rocnik) |
|
|
|
# def get_object(self, queryset=None): |
|
|
|
# if queryset is None: |
|
|
|
# queryset = self.get_queryset() |
|
|
|
# rocnik_arg = self.kwargs.get('rocnik') |
|
|
|
# cislo_arg = self.kwargs.get('cislo') |
|
|
|
# queryset = queryset.filter(rocnik__rocnik=rocnik_arg, cislo=cislo_arg) |
|
|
|
# |
|
|
|
# try: |
|
|
|
# obj = queryset.get() |
|
|
|
# except queryset.model.DoesNotExist: |
|
|
|
# raise Http404(_("No %(verbose_name)s found matching the query") % |
|
|
|
# {'verbose_name': queryset.model._meta.verbose_name}) |
|
|
|
# return obj |
|
|
|
# |
|
|
|
# |
|
|
|
# def get_context_data(self, **kwargs): |
|
|
|
# context = super(CisloView, self).get_context_data(**kwargs) |
|
|
|
# |
|
|
|
# vysledky = VysledkyKCisluZaRocnik.objects.filter(cislo = context['cislo']).order_by('-body', 'resitel__prijmeni', 'resitel__jmeno') |
|
|
|
# reseni = Reseni.objects.filter(cislo_body = context['cislo']).select_related("resitel") |
|
|
|
# |
|
|
|
# # typy úloh, které se mají zobrazovat u čísla, tj. těch, které byly v čísle skutečně zadány |
|
|
|
# typy_skutecne_zadanych = [Problem.TYP_ULOHA, Problem.TYP_SERIAL, Problem.TYP_ORG_CLANEK] |
|
|
|
# v_cisle_zadane = Problem.objects.filter(cislo_zadani=context['cislo']).filter(typ__in=typy_skutecne_zadanych).order_by('kod') |
|
|
|
# |
|
|
|
# resene_problemy = Problem.objects.filter(cislo_reseni=context['cislo']).filter(typ__in=typy_skutecne_zadanych).order_by('cislo_zadani__cislo', 'kod') |
|
|
|
# |
|
|
|
# poradi_typu = { |
|
|
|
# Problem.TYP_ULOHA: 1, |
|
|
|
# Problem.TYP_SERIAL: 2, |
|
|
|
# Problem.TYP_ORG_CLANEK: 3, |
|
|
|
# Problem.TYP_TEMA: 4, |
|
|
|
# Problem.TYP_RES_CLANEK: 5 |
|
|
|
# } |
|
|
|
# problemy = sorted(set(r.problem for r in reseni), key=lambda x:(poradi_typu[x.typ], x.kod_v_rocniku())) |
|
|
|
# #setridi problemy podle typu a poradi zadani |
|
|
|
# problem_index = {} |
|
|
|
# for i in range(len(problemy)): |
|
|
|
# problem_index[problemy[i].id] = i |
|
|
|
# #umoznuje zjistit index podle id problemu |
|
|
|
# |
|
|
|
# vysledky_resitele = {} |
|
|
|
# vysledkovka = [] |
|
|
|
# |
|
|
|
# # 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.body_celkem_rocnik = v.body |
|
|
|
# v.body_celkem_odjakziva = VysledkyKCisluOdjakziva.objects.get(resitel=v.resitel, cislo=context['cislo']).body |
|
|
|
# v.resitel.rocnik = v.resitel.rocnik(v.cislo.rocnik) |
|
|
|
# |
|
|
|
# # je tady '', aby se nezobrazovala 0, pokud se řešitel o řešení úlohy ani nepokusil |
|
|
|
# v.body_ulohy = [''] * len(problemy) |
|
|
|
# |
|
|
|
# v.titul = v.resitel.get_titul(v.body_celkem_odjakziva) |
|
|
|
# |
|
|
|
# body_cislo_q = VysledkyZaCislo.objects.filter(resitel=v.resitel, cislo=context['cislo']) |
|
|
|
# v.body_cislo = body_cislo_q[0].body if body_cislo_q else 0 |
|
|
|
# |
|
|
|
# vysledkovka.append(v) |
|
|
|
# |
|
|
|
# # připravíme si odkaz na řádek, abychom do něj mohli doplnit body za jednotlivé úlohy |
|
|
|
# vysledky_resitele[v.resitel.id] = v |
|
|
|
# |
|
|
|
# # za každé řešení doplníme k příslušnému řešiteli a úloze body |
|
|
|
# for r in reseni: |
|
|
|
# vysledky_resitele[r.resitel.id].body_ulohy[problem_index[r.problem.id]] = r.body |
|
|
|
# |
|
|
|
# context['vysledkovka'] = vysledkovka |
|
|
|
# context['problemy'] = problemy |
|
|
|
# context['v_cisle_zadane'] = v_cisle_zadane |
|
|
|
# context['resene_problemy'] = resene_problemy |
|
|
|
# return context |
|
|
|
|
|
|
|
class ArchivTemataView(generic.ListView): |
|
|
|
model = Problem |
|
|
@ -509,20 +509,20 @@ class ArchivTemataView(generic.ListView): |
|
|
|
### Generovani vysledkovky |
|
|
|
|
|
|
|
#class CisloVysledkovkaView(CisloView): |
|
|
|
# model = Cislo |
|
|
|
# template_name = 'seminar/archiv/cislo_vysledkovka.tex' |
|
|
|
# #content_type = 'application/x-tex; charset=UTF8' |
|
|
|
# #umozni rovnou stahnout TeXovsky dokument |
|
|
|
# content_type = 'text/plain; charset=UTF8' |
|
|
|
# #vypise na stranku textovy obsah vyTeXane vysledkovky k okopirovani |
|
|
|
# model = Cislo |
|
|
|
# template_name = 'seminar/archiv/cislo_vysledkovka.tex' |
|
|
|
# #content_type = 'application/x-tex; charset=UTF8' |
|
|
|
# #umozni rovnou stahnout TeXovsky dokument |
|
|
|
# content_type = 'text/plain; charset=UTF8' |
|
|
|
# #vypise na stranku textovy obsah vyTeXane vysledkovky k okopirovani |
|
|
|
# |
|
|
|
#class RocnikVysledkovkaView(RocnikView): |
|
|
|
# model = Rocnik |
|
|
|
# template_name = 'seminar/archiv/rocnik_vysledkovka.tex' |
|
|
|
# #content_type = 'application/x-tex; charset=UTF8' |
|
|
|
# #umozni rovnou stahnout TeXovsky dokument |
|
|
|
# content_type = 'text/plain; charset=UTF8' |
|
|
|
# #vypise na stranku textovy obsah vyTeXane vysledkovky k okopirovani |
|
|
|
# model = Rocnik |
|
|
|
# template_name = 'seminar/archiv/rocnik_vysledkovka.tex' |
|
|
|
# #content_type = 'application/x-tex; charset=UTF8' |
|
|
|
# #umozni rovnou stahnout TeXovsky dokument |
|
|
|
# content_type = 'text/plain; charset=UTF8' |
|
|
|
# #vypise na stranku textovy obsah vyTeXane vysledkovky k okopirovani |
|
|
|
|
|
|
|
### Generovani obalek |
|
|
|
class CisloObalkyStruct: |
|
|
@ -534,8 +534,8 @@ class CisloObalkyStruct: |
|
|
|
def aktualniResitele(rocnik): |
|
|
|
letos = Rocnik.objects.get(rocnik = rocnik) |
|
|
|
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)) |
|
|
|
# # 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 && |
|
|
@ -604,27 +604,27 @@ def obalkovaniView(request, rocnik, cislo): |
|
|
|
# TODO udelat neco jako get_objects_or_404 |
|
|
|
# FIXME: prepsat, aby nepouzivalo VysledkyK... |
|
|
|
#def TitulyView(request, rocnik, cislo): |
|
|
|
# rocnik_obj = Rocnik.objects.get(rocnik = rocnik) |
|
|
|
# resitele = Resitel.objects.filter(rok_maturity__gte = rocnik_obj.prvni_rok) |
|
|
|
# cislo_obj = Cislo.objects.get(rocnik = rocnik_obj, cislo = cislo) |
|
|
|
# rocnik_obj = Rocnik.objects.get(rocnik = rocnik) |
|
|
|
# resitele = Resitel.objects.filter(rok_maturity__gte = rocnik_obj.prvni_rok) |
|
|
|
# cislo_obj = Cislo.objects.get(rocnik = rocnik_obj, cislo = cislo) |
|
|
|
# |
|
|
|
# asciijmena = [] |
|
|
|
# broken = False |
|
|
|
# asciijmena = [] |
|
|
|
# broken = False |
|
|
|
# |
|
|
|
# for resitel in resitele: |
|
|
|
# try: |
|
|
|
# vys = VysledkyKCisluOdjakziva.objects.get(resitel = resitel, cislo = cislo_obj) |
|
|
|
# body = vys.body |
|
|
|
# except ObjectDoesNotExist: |
|
|
|
# body = 0 |
|
|
|
# resitel.titul = resitel.get_titul(body) |
|
|
|
# resitel.ascii = unicodedata.normalize('NFKD',resitel.jmeno+resitel.prijmeni).encode("ascii","ignore").replace(" ","") |
|
|
|
# if resitel.ascii not in asciijmena: |
|
|
|
# asciijmena.append(resitel.ascii) |
|
|
|
# else: |
|
|
|
# broken = True |
|
|
|
# for resitel in resitele: |
|
|
|
# try: |
|
|
|
# vys = VysledkyKCisluOdjakziva.objects.get(resitel = resitel, cislo = cislo_obj) |
|
|
|
# body = vys.body |
|
|
|
# except ObjectDoesNotExist: |
|
|
|
# body = 0 |
|
|
|
# resitel.titul = resitel.get_titul(body) |
|
|
|
# resitel.ascii = unicodedata.normalize('NFKD',resitel.jmeno+resitel.prijmeni).encode("ascii","ignore").replace(" ","") |
|
|
|
# if resitel.ascii not in asciijmena: |
|
|
|
# asciijmena.append(resitel.ascii) |
|
|
|
# else: |
|
|
|
# broken = True |
|
|
|
# |
|
|
|
# return render(request, 'seminar/archiv/tituly.tex',{'resitele': resitele,'broken':broken},content_type="text/plain") |
|
|
|
# return render(request, 'seminar/archiv/tituly.tex',{'resitele': resitele,'broken':broken},content_type="text/plain") |
|
|
|
|
|
|
|
|
|
|
|
### Soustredeni |
|
|
@ -712,21 +712,21 @@ class ClankyResitelView(generic.ListView): |
|
|
|
|
|
|
|
# FIXME: pokud chceme orgoclanky, tak nejak zavest do modelu a podle toho odkomentovat a upravit |
|
|
|
#class ClankyOrganizatorView(generic.ListView)<F12>: |
|
|
|
# model = Problem |
|
|
|
# template_name = 'seminar/clanky/organizatorske_clanky.html' |
|
|
|
# queryset = Problem.objects.filter(stav=Problem.STAV_ZADANY).select_related('cislo_zadani__rocnik').order_by('-cislo_zadani__rocnik__rocnik', 'kod') |
|
|
|
# model = Problem |
|
|
|
# template_name = 'seminar/clanky/organizatorske_clanky.html' |
|
|
|
# queryset = Problem.objects.filter(stav=Problem.STAV_ZADANY).select_related('cislo_zadani__rocnik').order_by('-cislo_zadani__rocnik__rocnik', 'kod') |
|
|
|
|
|
|
|
|
|
|
|
### Status |
|
|
|
|
|
|
|
def StavDatabazeView(request): |
|
|
|
# nastaveni = Nastaveni.objects.get() |
|
|
|
# nastaveni = Nastaveni.objects.get() |
|
|
|
problemy = utils.seznam_problemu() |
|
|
|
muzi = Resitel.objects.filter(pohlavi_muz=True) |
|
|
|
zeny = Resitel.objects.filter(pohlavi_muz=False) |
|
|
|
return render(request, 'seminar/stav_databaze.html', |
|
|
|
{ |
|
|
|
# 'nastaveni': nastaveni, |
|
|
|
# 'nastaveni': nastaveni, |
|
|
|
'problemy': problemy, |
|
|
|
|
|
|
|
'resitele': Resitel.objects.all(), |
|
|
|