Browse Source

přidání odkazů na aktivní témata na titulní stránku

export_seznamu_prednasek
Kateřina Č 4 years ago
parent
commit
67c1e43dc1
  1. 1
      seminar/models.py
  2. 3
      seminar/templates/seminar/titulnistrana.html
  3. 38
      seminar/views/views_all.py

1
seminar/models.py

@ -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)

3
seminar/templates/seminar/titulnistrana.html

@ -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>

38
seminar/views/views_all.py

@ -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ě 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

Loading…
Cancel
Save