Dokončena oprava výsledkovek čísla a ročníku - generování TeXu.
This commit is contained in:
		
							parent
							
								
									03696d79ab
								
							
						
					
					
						commit
						c499d823f9
					
				
					 5 changed files with 57 additions and 140 deletions
				
			
		|  | @ -1,9 +1,9 @@ | ||||||
| \setlength{\tabcolsep}{3pt} | \setlength{\tabcolsep}{3pt} | ||||||
| \begin{longtable}{|r|l|c|r|{% for p in problemy %}c@{\hskip.5em}{% endfor %}|r|r|}\hline | \begin{longtable}{|r|l|c|r|{% for p in problemy %}c@{\hskip.5em}{% endfor %}|r|r|}\hline | ||||||
| & & & & \multicolumn{ {{ problemy|length}} }{c|}{\textbf{Úlohy}} & & \\\textbf{Poř.}& \textbf{Jméno}& \textbf{R.}& \raisebox{0.7mm}{$\sum_{-1}$}& {% for p in problemy %}{% if p.typ == "uloha" %}\textbf{r{{p.kod}}}&{% elif p.typ == "tema" %}\textbf{t{{p.kod}}}&{% else  %}\textbf{ {{p.kod}} }&{% endif %}{% endfor %}\raisebox{0.7mm}{$\sum_0$}&\raisebox{0.7mm}{$\sum_1$}\\\hline | & & & & \multicolumn{ {{ problemy|length}} }{c|}{\textbf{Úlohy}} & & \\\textbf{Poř.}& \textbf{Jméno}& \textbf{R.}& \raisebox{0.7mm}{$\sum_{-1}$}& {% for p in problemy %}\textbf{ {{ p.kod_v_rocniku }} }&{% endfor %}\raisebox{0.7mm}{$\sum_0$}&\raisebox{0.7mm}{$\sum_1$}\\\hline | ||||||
| \endhead | \endhead | ||||||
| \hline | \hline | ||||||
| \endfoot  | \endfoot  | ||||||
| {% for rv in vysledkovka %}{{rv.poradi}}&{% if rv.titul %}\titul{ {{ rv.titul}}}{% endif %}{{rv.resitel.inicial_krestni}} {{rv.resitel.prijmeni}}&{{rv.resitel.rocnik|default:""}}&{{rv.body_celkem_odjakziva}}&{% for b in rv.body_ulohy %}{{b}}&{% endfor %}{{rv.body_cislo}}&{{rv.body_celkem_rocnik|default:0}}\\ | {% for rv in radky_vysledkovky %}{{rv.poradi}}&{% if rv.titul %}\titul{ {{ rv.titul}}}{% endif %}{{rv.resitel.osoba.jmeno|slice:":1"}}. {{rv.resitel.osoba.prijmeni}}&{{rv.rocnik_resitele|default:""}}&{{rv.body_celkem_odjakziva}}&{% for b in rv.body_problemy_sezn %}{{b}}&{% endfor %}{{rv.body_cislo}}&{{rv.body_rocnik|default:0}}\\ | ||||||
| {% endfor %} | {% endfor %} | ||||||
| \end{longtable} | \end{longtable} | ||||||
|  |  | ||||||
|  | @ -1,13 +1,12 @@ | ||||||
| {% with lb="{" %} | {% with lb="{" %} | ||||||
| {% with rb="}" %} | {% with rb="}" %} | ||||||
| \setlength{\tabcolsep}{3pt} | \setlength{\tabcolsep}{3pt} | ||||||
| \begin{longtable}{|r|l|c|r|{% for cislo in vysledkovka.cisla %}c{% if not forloop.last %}@{\hskip.5em}{% endif %}{% endfor %}|r|} | \begin{longtable}{|r|l|c|r|{% for cislo in cisla %}c{% if not forloop.last %}@{\hskip.5em}{% endif %}{% endfor %}|r|}\hline | ||||||
| \hline | & & & & \multicolumn{{ lb }}{{ cisla|length }}}{c|}{\textbf{Číslo}} & \\\textbf{Poř.} & \textbf{Jméno} & \textbf{R.} & \raisebox{0.7mm}{$\sum_{-1}$} & {% for cislo in cisla %}\textbf{{ lb }}{{ cislo.poradi }}{{ rb }} & {% endfor %}\raisebox{0.7mm}{$\sum_1$} \\\hline | ||||||
| & & & & \multicolumn{{ lb }}{{ vysledkovka.cisla|length }}}{c|}{\textbf{Číslo}} & \\\textbf{Poř.} & \textbf{Jméno} & \textbf{R.} & \raisebox{0.7mm}{$\sum_{-1}$} & {% for cislo in vysledkovka.cisla %}\textbf{{ lb }}{{ cislo.cislo }}{{ rb }} & {% endfor %}\raisebox{0.7mm}{$\sum_1$} \\\hline |  | ||||||
| \endhead | \endhead | ||||||
| \hline | \hline | ||||||
| \endfoot | \endfoot | ||||||
| {% for rv in radky_vysledkovky %}{{ rv.poradi }} & {% if rv.titul %}\titul{{ lb }}{{ rv.titul }}}~{% endif %}{{ rv.resitel.osoba.jmeno|slice:":1" }}.~{{ rv.resitel.osoba.prijmeni }} & {% if rv.resitel.rocnik %}{{ rv.resitel.rocnik }}.{% endif %} & {{ rv.body_odjakziva }} {% for b in rv.body_cisla_sezn %} & {{ b }}{% endfor %} & {{ rv.body_rocnik }} \\ | {% for rv in radky_vysledkovky %}{{ rv.poradi }} & {% if rv.titul %}\titul{{ lb }}{{ rv.titul }}}~{% endif %}{{ rv.resitel.osoba.jmeno|slice:":1" }}.~{{ rv.resitel.osoba.prijmeni }} & {% if rv.rocnik_resitele %}{{ rv.rocnik_resitele }}{% endif %} & {{ rv.body_celkem_odjakziva }} {% for b in rv.body_cisla_sezn %} & {{ b }}{% endfor %} & {{ rv.body_rocnik }} \\ | ||||||
| {% endfor %}\end{longtable} | {% endfor %}\end{longtable} | ||||||
| {% endwith %} | {% endwith %} | ||||||
| {% endwith %} | {% endwith %} | ||||||
|  |  | ||||||
|  | @ -18,7 +18,7 @@ | ||||||
|         {{ rv.titul }}<sup>MM</sup> |         {{ rv.titul }}<sup>MM</sup> | ||||||
|       {% endif %} |       {% endif %} | ||||||
|       {{ rv.resitel.osoba.plne_jmeno }} |       {{ rv.resitel.osoba.plne_jmeno }} | ||||||
|     <td class='border-r'>{{ rv.resitel.rocnik }} |     <td class='border-r'>{{ rv.rocnik_resitele }} | ||||||
|     <td class='border-r'>{{ rv.body_celkem_odjakziva }} |     <td class='border-r'>{{ rv.body_celkem_odjakziva }} | ||||||
|     {% for b in rv.body_cisla_sezn %} |     {% for b in rv.body_cisla_sezn %} | ||||||
|     <td class='border-r'>{{ b }} |     <td class='border-r'>{{ b }} | ||||||
|  |  | ||||||
|  | @ -75,13 +75,15 @@ urlpatterns = [ | ||||||
| 	path('aesop-export/index.csv', export.ExportIndexView.as_view(), name='seminar_export_index'), | 	path('aesop-export/index.csv', export.ExportIndexView.as_view(), name='seminar_export_index'), | ||||||
| 
 | 
 | ||||||
| 	# Stranky viditelne pouze pro orgy: | 	# Stranky viditelne pouze pro orgy: | ||||||
| 	#path( | 	path( | ||||||
| 	#    'rocnik/(?P<rocnik>\d+)/vysledkovka.tex', | 	    'rocnik/<int:rocnik>/vysledkovka.tex', | ||||||
| 	#    staff_member_required(views.RocnikVysledkovkaView.as_view()), | 	    staff_member_required(views.RocnikVysledkovkaView.as_view()), | ||||||
| 	#    name='seminar_cislo_vysledkovka' | 	    name='seminar_rocnik_vysledkovka' | ||||||
| 	#), | 	), | ||||||
| 	#path('cislo/(?P<rocnik>\d+).(?P<cislo>[0-9-]+)/vysledkovka.tex', | 	path('cislo/<int:rocnik>.<int:cislo>/vysledkovka.tex', | ||||||
| 	 #   staff_member_required(views.CisloVysledkovkaView.as_view()), name='seminar_cislo_vysledkovka'), | 	    staff_member_required(views.CisloVysledkovkaView.as_view()),  | ||||||
|  | 	    name='seminar_cislo_vysledkovka' | ||||||
|  | 	), | ||||||
| 	path('cislo/<int:rocnik>.<int:cislo>/obalky.pdf', | 	path('cislo/<int:rocnik>.<int:cislo>/obalky.pdf', | ||||||
| 		staff_member_required(views.cisloObalkyView), name='seminar_cislo_obalky'), | 		staff_member_required(views.cisloObalkyView), name='seminar_cislo_obalky'), | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -39,6 +39,7 @@ import traceback | ||||||
| import sys | import sys | ||||||
| import csv | import csv | ||||||
| import logging | import logging | ||||||
|  | import time | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def verejna_temata(rocnik): | def verejna_temata(rocnik): | ||||||
|  | @ -536,26 +537,26 @@ def body_resitelu_odjakziva(rocnik, resitele): | ||||||
| 	# Body za posledních 10 let je dobrá aproximace pro naše potřeby (výsledkovka | 	# Body za posledních 10 let je dobrá aproximace pro naše potřeby (výsledkovka | ||||||
| 	# s aktivními řešiteli) | 	# s aktivními řešiteli) | ||||||
|          |          | ||||||
| 	body_pred_roky = [] | 	#body_pred_roky = [] | ||||||
| 	rok = rocnik.prvni_rok | 	#rok = rocnik.prvni_rok | ||||||
| 	rocniky = Rocnik.objects.filter(prvni_rok__gt=rok-11) | 	#rocniky = Rocnik.objects.filter(prvni_rok__gt=rok-11) | ||||||
| 	for roc in rocniky:	 | 	#for roc in rocniky:	 | ||||||
| 		body_pred_roky.append(body_resitelu_za_rocnik(roc, resitele)) | 	#	body_pred_roky.append(body_resitelu_za_rocnik(roc, resitele)) | ||||||
|          |         # | ||||||
| 	for r in resitele: | 	#for r in resitele: | ||||||
| 		for i in range(0,10): | 	#	for i in range(0,10): | ||||||
| 			body_odjakziva[str(r.id)] += body_pred_roky[i][str(r.id)] | 	#		body_odjakziva[str(r.id)] += body_pred_roky[i][str(r.id)] | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| # Nasledující řešení je sice správné, ale moc pomalé: | # Nasledující řešení je sice správné, ale moc pomalé: | ||||||
| # (důsledek toho, že dotazy na joinování databázových tabulek jsou kvadratické) | # (důsledek toho, že dotazy na joinování databázových tabulek jsou kvadratické) | ||||||
| #	for res in Reseni.objects.prefetch_related('resitele', 'hodnoceni_set').all(): | 	for res in Reseni.objects.prefetch_related('resitele', 'hodnoceni_set').all(): | ||||||
| #		for r in res.resitele.all(): | 		for r in res.resitele.all(): | ||||||
| #			# daný řešitel nemusí být v naší podmnožině | 			# daný řešitel nemusí být v naší podmnožině | ||||||
| #			if r not in resitele: continue | 			if r not in resitele: continue | ||||||
| #			 | 			 | ||||||
| #			for hodn in res.hodnoceni_set.all(): | 			for hodn in res.hodnoceni_set.all(): | ||||||
| #				pricti_body(body_odjakziva, r, hodn.body) | 				pricti_body(body_odjakziva, r, hodn.body) | ||||||
| 	return body_odjakziva | 	return body_odjakziva | ||||||
| 
 | 
 | ||||||
| # vrátí slovník řešitel:body obsahující počty bodů zadaných řešitelů za daný ročník | # vrátí slovník řešitel:body obsahující počty bodů zadaných řešitelů za daný ročník | ||||||
|  | @ -566,24 +567,28 @@ def body_resitelu_za_rocnik(rocnik, aktivni_resitele): | ||||||
| 		body_za_rocnik[str(ar.id)] = 0 | 		body_za_rocnik[str(ar.id)] = 0 | ||||||
| 	 | 	 | ||||||
| 	# spočítáme body řešitelům přes všechna řešení s hodnocením v daném ročníku | 	# spočítáme body řešitelům přes všechna řešení s hodnocením v daném ročníku | ||||||
|  | 	print("Před dotazem:{}".format(time.time()))	 | ||||||
| 	reseni = Reseni.objects.prefetch_related('resitele', 'hodnoceni_set').filter(hodnoceni__cislo_body__rocnik=rocnik) | 	reseni = Reseni.objects.prefetch_related('resitele', 'hodnoceni_set').filter(hodnoceni__cislo_body__rocnik=rocnik) | ||||||
|  | 	print("Po dotazu:{}".format(time.time()))	 | ||||||
| 	for res in reseni: | 	for res in reseni: | ||||||
| 		for resitel in res.resitele.all(): | 		for resitel in res.resitele.all(): | ||||||
| 			for hodn in res.hodnoceni_set.all(): | 			for hodn in res.hodnoceni_set.all(): | ||||||
| 				pricti_body(body_za_rocnik, resitel, hodn.body) | 				pricti_body(body_za_rocnik, resitel, hodn.body) | ||||||
|  | 	print("Po for-cyklu:{}".format(time.time()))	 | ||||||
| 	return body_za_rocnik | 	return body_za_rocnik | ||||||
| 
 | 
 | ||||||
| class RadekVysledkovkyRocniku(object): | class RadekVysledkovkyRocniku(object): | ||||||
| 	"""Obsahuje věci, které se hodí vědět při konstruování výsledkovky. | 	"""Obsahuje věci, které se hodí vědět při konstruování výsledkovky. | ||||||
| 	Umožňuje snazší práci v templatu (lepší, než seznam).""" | 	Umožňuje snazší práci v templatu (lepší, než seznam).""" | ||||||
| 
 | 
 | ||||||
| 	def __init__(self, poradi, resitel, body_cisla_sezn, body_rocnik, body_odjakziva): | 	def __init__(self, poradi, resitel, body_cisla_sezn, body_rocnik, body_odjakziva, rok): | ||||||
| 		self.poradi = poradi | 		self.poradi = poradi | ||||||
| 		self.resitel = resitel | 		self.resitel = resitel | ||||||
|  | 		self.rocnik_resitele = resitel.rocnik(rok) | ||||||
| 		self.body_rocnik = body_rocnik | 		self.body_rocnik = body_rocnik | ||||||
| 		self.body_celkem_odjakziva = body_odjakziva | 		self.body_celkem_odjakziva = body_odjakziva | ||||||
| 		self.body_cisla_sezn = body_cisla_sezn | 		self.body_cisla_sezn = body_cisla_sezn | ||||||
| 		self.titul = resitel.get_titul(body_odjakziva) | 		elf.titul = resitel.get_titul(body_odjakziva) | ||||||
| 
 | 
 | ||||||
| def vysledkovka_rocniku(rocnik, jen_verejne=True): | def vysledkovka_rocniku(rocnik, jen_verejne=True): | ||||||
| 	"""Přebírá ročník (např. context["rocnik"]) a vrací výsledkovou listinu ve | 	"""Přebírá ročník (např. context["rocnik"]) a vrací výsledkovou listinu ve | ||||||
|  | @ -632,7 +637,8 @@ def vysledkovka_rocniku(rocnik, jen_verejne=True): | ||||||
| 			Resitel.objects.get(id=ar_id), # řešitel (z id) | 			Resitel.objects.get(id=ar_id), # řešitel (z id) | ||||||
| 			body_cisla_sezn, # seznam bodů za čísla | 			body_cisla_sezn, # seznam bodů za čísla | ||||||
| 			setrizene_body[i], # body za ročník (spočítané výše s pořadím) | 			setrizene_body[i], # body za ročník (spočítané výše s pořadím) | ||||||
| 			resitel_odjakzivabody_slov[ar_id]) # body odjakživa | 			resitel_odjakzivabody_slov[ar_id], # body odjakživa | ||||||
|  | 			rocnik) # ročník semináře pro získání ročníku řešitele | ||||||
| 		print("{}: číslobody - {}, ročníkbody - {}," | 		print("{}: číslobody - {}, ročníkbody - {}," | ||||||
| 			"odjakživabody - {}".format(radek.resitel, radek.body_cisla_sezn,  | 			"odjakživabody - {}".format(radek.resitel, radek.body_cisla_sezn,  | ||||||
| 			radek.body_rocnik, radek.body_celkem_odjakziva)) | 			radek.body_rocnik, radek.body_celkem_odjakziva)) | ||||||
|  | @ -643,59 +649,6 @@ def vysledkovka_rocniku(rocnik, jen_verejne=True): | ||||||
| 	return radky_vysledkovky | 	return radky_vysledkovky | ||||||
| 	 | 	 | ||||||
| 
 | 
 | ||||||
| 	#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].poradi).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].poradi) |  | ||||||
| #		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): | class RocnikView(generic.DetailView): | ||||||
| 	model = Rocnik | 	model = Rocnik | ||||||
| 	template_name = 'seminar/archiv/rocnik.html' | 	template_name = 'seminar/archiv/rocnik.html' | ||||||
|  | @ -723,7 +676,8 @@ class RocnikView(generic.DetailView): | ||||||
| 		context['cisla_s_neverejnymi'] = cisla_rocniku(context["rocnik"], jen_verejne=False) | 		context['cisla_s_neverejnymi'] = cisla_rocniku(context["rocnik"], jen_verejne=False) | ||||||
| 		context['cisla'] = cisla_rocniku(context["rocnik"]) | 		context['cisla'] = cisla_rocniku(context["rocnik"]) | ||||||
| 		context['radky_vysledkovky'] = vysledkovka_rocniku(context["rocnik"]) | 		context['radky_vysledkovky'] = vysledkovka_rocniku(context["rocnik"]) | ||||||
| 		context['radky_vysledkovky_s_neverejnymi'] = vysledkovka_rocniku(context["rocnik"], jen_verejne=False) | 		context['radky_vysledkovky_s_neverejnymi'] = vysledkovka_rocniku( | ||||||
|  | 			context["rocnik"], jen_verejne=False) | ||||||
| 		context['hlavni_problemy_v_rocniku'] = hlavni_problemy_rocniku(context["rocnik"]) | 		context['hlavni_problemy_v_rocniku'] = hlavni_problemy_rocniku(context["rocnik"]) | ||||||
| 		context['hlavni_problemy_v_rocniku_s_neverejnymi'] = hlavni_problemy_rocniku(context["rocnik"], jen_verejne=False) | 		context['hlavni_problemy_v_rocniku_s_neverejnymi'] = hlavni_problemy_rocniku(context["rocnik"], jen_verejne=False) | ||||||
| 
 | 
 | ||||||
|  | @ -754,8 +708,9 @@ class RadekVysledkovkyCisla(object): | ||||||
| 	Umožňuje snazší práci v templatu (lepší, než seznam).""" | 	Umožňuje snazší práci v templatu (lepší, než seznam).""" | ||||||
| 
 | 
 | ||||||
| 	def __init__(self, poradi, resitel, body_problemy_sezn,  | 	def __init__(self, poradi, resitel, body_problemy_sezn,  | ||||||
| 				body_cislo, body_rocnik, body_odjakziva): | 				body_cislo, body_rocnik, body_odjakziva, rok): | ||||||
| 		self.resitel = resitel | 		self.resitel = resitel | ||||||
|  | 		self.rocnik_resitele = resitel.rocnik(rok) | ||||||
| 		self.body_cislo = body_cislo | 		self.body_cislo = body_cislo | ||||||
| 		self.body_rocnik = body_rocnik | 		self.body_rocnik = body_rocnik | ||||||
| 		self.body_celkem_odjakziva = body_odjakziva | 		self.body_celkem_odjakziva = body_odjakziva | ||||||
|  | @ -826,7 +781,6 @@ def secti_body_za_cislo(cislo, aktivni_resitele, hlavni_problemy=None): | ||||||
| 					pricti_body(cislobody, resitel, body) | 					pricti_body(cislobody, resitel, body) | ||||||
| 					pricti_body(nadproblem_slovnik, resitel, body) | 					pricti_body(nadproblem_slovnik, resitel, body) | ||||||
| 	return hlavni_problemy_slovnik, cislobody | 	return hlavni_problemy_slovnik, cislobody | ||||||
| 		 |  | ||||||
| 
 | 
 | ||||||
| def vysledkovka_cisla(cislo, context=None): | def vysledkovka_cisla(cislo, context=None): | ||||||
| 	if context is None: | 	if context is None: | ||||||
|  | @ -874,14 +828,14 @@ def vysledkovka_cisla(cislo, context=None): | ||||||
| 			problemy, # seznam bodů za hlavní problémy čísla | 			problemy, # seznam bodů za hlavní problémy čísla | ||||||
| 			cislobody[ar_id], # body za číslo | 			cislobody[ar_id], # body za číslo | ||||||
| 			setrizeni_resitele_body[i], # body za ročník (spočítané výše s pořadím) | 			setrizeni_resitele_body[i], # body za ročník (spočítané výše s pořadím) | ||||||
| 			resitel_odjakzivabody_slov[ar_id]) # body odjakživa | 			resitel_odjakzivabody_slov[ar_id], # body odjakživa | ||||||
|  | 			cislo.rocnik) # ročník semináře pro zjištění ročníku řešitele | ||||||
| 		print("{}: body za problémy - {}, číslobody - {}, ročníkbody - {}, odjakživabody - {}".format(radek.resitel,  | 		print("{}: body za problémy - {}, číslobody - {}, ročníkbody - {}, odjakživabody - {}".format(radek.resitel,  | ||||||
| 			radek.body_problemy_sezn, radek.body_cislo, radek.body_rocnik, radek.body_celkem_odjakziva)) | 			radek.body_problemy_sezn, radek.body_cislo, radek.body_rocnik, radek.body_celkem_odjakziva)) | ||||||
| 		radky_vysledkovky.append(radek) | 		radky_vysledkovky.append(radek) | ||||||
| 		print("Přikládám {}-tý řádek.".format(i)) | 		print("Přikládám {}-tý řádek.".format(i)) | ||||||
| 		i += 1 | 		i += 1 | ||||||
| 
 | 
 | ||||||
| 	print("Následuje předávání do kontextu.") |  | ||||||
| 	# vytahané informace předáváme do kontextu | 	# vytahané informace předáváme do kontextu | ||||||
| 	context['cislo'] = cislo | 	context['cislo'] = cislo | ||||||
| 	context['radky_vysledkovky'] = radky_vysledkovky | 	context['radky_vysledkovky'] = radky_vysledkovky | ||||||
|  | @ -917,43 +871,6 @@ class CisloView(generic.DetailView): | ||||||
| 		# vrátíme context (aktuálně obsahuje jen věci ohledně výsledkovky | 		# vrátíme context (aktuálně obsahuje jen věci ohledně výsledkovky | ||||||
| 		return vysledkovka_cisla(cislo, context) | 		return vysledkovka_cisla(cislo, context) | ||||||
| 
 | 
 | ||||||
| #		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)): |  | ||||||
| #			#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 |  | ||||||
| 
 | 
 | ||||||
| class ArchivTemataView(generic.ListView): | class ArchivTemataView(generic.ListView): | ||||||
| 	model = Problem | 	model = Problem | ||||||
|  | @ -962,19 +879,18 @@ class ArchivTemataView(generic.ListView): | ||||||
| 
 | 
 | ||||||
| ### Generovani vysledkovky | ### Generovani vysledkovky | ||||||
| 
 | 
 | ||||||
| #class CisloVysledkovkaView(CisloView):i | class CisloVysledkovkaView(CisloView): | ||||||
| #	poradi | titul. jmeno prijmeni | ulohy | za cislo | celkem | odjakziva | 	"View vytvořené pro stránku zobrazující výsledkovku čísla v TeXu." | ||||||
| # | 
 | ||||||
| # | 	model = Cislo | ||||||
| # | 	template_name = 'seminar/archiv/cislo_vysledkovka.tex' | ||||||
| #	model = Cislo | 	#content_type = 'application/x-tex; charset=UTF8' | ||||||
| #	template_name = 'seminar/archiv/cislo_vysledkovka.tex' | 	#umozni rovnou stahnout TeXovsky dokument | ||||||
| #	#content_type = 'application/x-tex; charset=UTF8' | 	content_type = 'text/plain; charset=UTF8' | ||||||
| #	#umozni rovnou stahnout TeXovsky dokument | 	#vypise na stranku textovy obsah vyTeXane vysledkovky k okopirovani | ||||||
| #	content_type = 'text/plain; charset=UTF8' | 
 | ||||||
| #	#vypise na stranku textovy obsah vyTeXane vysledkovky k okopirovani |  | ||||||
| # |  | ||||||
| class RocnikVysledkovkaView(RocnikView): | class RocnikVysledkovkaView(RocnikView): | ||||||
|  | 	"View vytvořené pro stránku zobrazující výsledkovku ročníku v TeXu." | ||||||
| 	model = Rocnik | 	model = Rocnik | ||||||
| 	template_name = 'seminar/archiv/rocnik_vysledkovka.tex' | 	template_name = 'seminar/archiv/rocnik_vysledkovka.tex' | ||||||
| 	#content_type = 'application/x-tex; charset=UTF8' | 	#content_type = 'application/x-tex; charset=UTF8' | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue
	
	 Anet
						Anet