přidání odkazů na aktivní témata na titulní stránku
This commit is contained in:
		
							parent
							
								
									b81420e06b
								
							
						
					
					
						commit
						67c1e43dc1
					
				
					 3 changed files with 34 additions and 12 deletions
				
			
		|  | @ -698,6 +698,7 @@ class Problem(SeminarModelBase,PolymorphicModel): | ||||||
| 		(STAV_SMAZANY, 'Smazaný'), | 		(STAV_SMAZANY, 'Smazaný'), | ||||||
| 		] | 		] | ||||||
| 	stav = models.CharField('stav problému', max_length=32, choices=STAV_CHOICES, blank=False, default=STAV_NAVRH) | 	stav = models.CharField('stav problému', max_length=32, choices=STAV_CHOICES, blank=False, default=STAV_NAVRH) | ||||||
|  | 	# Téma je taky Problém, takže má stavy, "zadané" témátko je aktuálně otevřené a dá se k němu něco poslat (řešení nebo článek) | ||||||
| 
 | 
 | ||||||
| 	zamereni = TaggableManager(verbose_name='zaměření',  | 	zamereni = TaggableManager(verbose_name='zaměření',  | ||||||
| 		help_text='Zaměření M/F/I/O problému, příp. další tagy', blank=True) | 		help_text='Zaměření M/F/I/O problému, příp. další tagy', blank=True) | ||||||
|  |  | ||||||
|  | @ -40,6 +40,9 @@ | ||||||
| 
 | 
 | ||||||
|   <div class="vitej"> |   <div class="vitej"> | ||||||
|     Přidej se k nám! Pusť se do řešení témát a pojeď na soustředění. |     Přidej se k nám! Pusť se do řešení témát a pojeď na soustředění. | ||||||
|  |     {% for tema in aktualni_temata %} | ||||||
|  |     <a href="{{ tema.url }}"> <div class="button"> {{ tema.nazev }} </div> </a> | ||||||
|  |     {% endfor %} | ||||||
|   </div> |   </div> | ||||||
|    |    | ||||||
| </div> | </div> | ||||||
|  |  | ||||||
|  | @ -43,14 +43,15 @@ import time | ||||||
| 
 | 
 | ||||||
| from seminar.utils import aktivniResitele, resi_v_rocniku | from seminar.utils import aktivniResitele, resi_v_rocniku | ||||||
| 
 | 
 | ||||||
| 
 | # ze starého modelu | ||||||
| def verejna_temata(rocnik): | #def verejna_temata(rocnik): | ||||||
| 	"""Vrací queryset zveřejněných témat v daném ročníku. | #	""" | ||||||
| 	""" | #	Vrací queryset zveřejněných témat v daném ročníku. | ||||||
| 	return Problem.objects.filter(typ=Problem.TYP_TEMA, cislo_zadani__rocnik=rocnik, cislo_zadani__verejne_db=True).order_by('kod') | #	""" | ||||||
| 
 | #	return Problem.objects.filter(typ=Problem.TYP_TEMA, cislo_zadani__rocnik=rocnik, cislo_zadani__verejne_db=True).order_by('kod') | ||||||
| def temata_v_rocniku(rocnik): | # | ||||||
| 	return Problem.objects.filter(typ=Problem.TYP_TEMA, rocnik=rocnik) | #def temata_v_rocniku(rocnik): | ||||||
|  | #	return Problem.objects.filter(typ=Problem.TYP_TEMA, rocnik=rocnik) | ||||||
| 
 | 
 | ||||||
| def get_problemy_k_tematu(tema): | def get_problemy_k_tematu(tema): | ||||||
| 	return Problem.objects.filter(nadproblem = tema) | 	return Problem.objects.filter(nadproblem = tema) | ||||||
|  | @ -242,6 +243,12 @@ def spravne_novinky(request): | ||||||
| 		qs = qs.filter(zverejneno=True) | 		qs = qs.filter(zverejneno=True) | ||||||
| 	return qs.order_by('-datum') | 	return qs.order_by('-datum') | ||||||
| 
 | 
 | ||||||
|  | def aktualni_temata(rocnik): | ||||||
|  | 	""" | ||||||
|  | 	Vrací PolymorphicQuerySet témat v daném ročníku, ke kterým se aktuálně dá něco odevzdat. | ||||||
|  | 	""" | ||||||
|  | 	return Tema.objects.filter(rocnik=rocnik, stav='zadany').order_by('kod') | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| class TitulniStranaView(generic.ListView): | class TitulniStranaView(generic.ListView): | ||||||
| 	template_name='seminar/titulnistrana.html' | 	template_name='seminar/titulnistrana.html' | ||||||
|  | @ -283,7 +290,16 @@ class TitulniStranaView(generic.ListView): | ||||||
| 			context['deadline_soustredeni'] = deadline_soustredeni | 			context['deadline_soustredeni'] = deadline_soustredeni | ||||||
| 
 | 
 | ||||||
| 		# Aktuální témata | 		# Aktuální témata | ||||||
| 		 | 		nazvy_a_odkazy_na_aktualni_temata = [] | ||||||
|  | 		akt_temata = aktualni_temata(nastaveni.aktualni_rocnik) | ||||||
|  | 
 | ||||||
|  | 		for tema in akt_temata: | ||||||
|  | 			# FIXME: netuším, jestli funguje tema.verejne_url(), nemáme testdata na témátka - je to asi url vzhledem k ročníku | ||||||
|  | 			nazvy_a_odkazy_na_aktualni_temata.append({'nazev':tema.nazev,'url':tema.verejne_url()}) | ||||||
|  | 
 | ||||||
|  | 		context['aktualni_temata'] = nazvy_a_odkazy_na_aktualni_temata | ||||||
|  | 
 | ||||||
|  | 		print(context) | ||||||
| 
 | 
 | ||||||
| 		return context | 		return context | ||||||
| 
 | 
 | ||||||
|  | @ -347,7 +363,8 @@ class ArchivView(generic.ListView): | ||||||
| ### Výsledky | ### Výsledky | ||||||
| 
 | 
 | ||||||
| def sloupec_s_poradim(setrizene_body): | def sloupec_s_poradim(setrizene_body): | ||||||
| 	""" Ze seznamu obsahujícího sestupně setřízené body řešitelů za daný ročník  | 	""" | ||||||
|  | 	Ze seznamu obsahujícího sestupně setřízené body řešitelů za daný ročník  | ||||||
| 	vytvoří seznam s pořadími (včetně 3.-5. a pak 2 volná místa atp.), | 	vytvoří seznam s pořadími (včetně 3.-5. a pak 2 volná místa atp.), | ||||||
| 	podle toho, jak jdou za sebou ve výsledkovce. | 	podle toho, jak jdou za sebou ve výsledkovce. | ||||||
| 	Parametr: | 	Parametr: | ||||||
|  | @ -387,7 +404,8 @@ def sloupec_s_poradim(setrizene_body): | ||||||
| 	return sloupec_s_poradim | 	return sloupec_s_poradim | ||||||
| 
 | 
 | ||||||
| def cisla_rocniku(rocnik, jen_verejne=True): | def cisla_rocniku(rocnik, jen_verejne=True): | ||||||
| 	""" Vrátí všechna čísla daného ročníku. | 	""" | ||||||
|  | 	Vrátí všechna čísla daného ročníku. | ||||||
| 	Parametry: | 	Parametry: | ||||||
| 		rocnik (Rocnik): ročník semináře | 		rocnik (Rocnik): ročník semináře | ||||||
| 		jen_verejne (bool): zda se mají vrátit jen veřejná, nebo všechna čísla | 		jen_verejne (bool): zda se mají vrátit jen veřejná, nebo všechna čísla | ||||||
|  | @ -542,7 +560,7 @@ def vysledkovka_rocniku(rocnik, jen_verejne=True): | ||||||
| 
 | 
 | ||||||
| 	# získáme body za ročník, seznam obsahuje dvojice (řešitel_id, body) setřízené sestupně | 	# získáme body za ročník, seznam obsahuje dvojice (řešitel_id, body) setřízené sestupně | ||||||
| 	resitel_rocnikbody_sezn = secti_body_za_rocnik(rocnik, aktivni_resitele) | 	resitel_rocnikbody_sezn = secti_body_za_rocnik(rocnik, aktivni_resitele) | ||||||
| 	 | 
 | ||||||
| 	# setřídíme řešitele podle počtu bodů a získáme seznam s body od nejvyšších po nenižší | 	# setřídíme řešitele podle počtu bodů a získáme seznam s body od nejvyšších po nenižší | ||||||
| 	setrizeni_resitele_id, setrizeni_resitele, setrizene_body = setrid_resitele_a_body(resitel_rocnikbody_sezn) | 	setrizeni_resitele_id, setrizeni_resitele, setrizene_body = setrid_resitele_a_body(resitel_rocnikbody_sezn) | ||||||
| 	poradi = sloupec_s_poradim(setrizene_body) | 	poradi = sloupec_s_poradim(setrizene_body) | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue
	
	 Kateřina Č
						Kateřina Č