Browse Source

Merge branch 'data_migrations' of gimli.ms.mff.cuni.cz:/akce/mam/git/mamweb into data_migrations

export_seznamu_prednasek
Pavel 'LEdoian' Turinsky 5 years ago
parent
commit
eb6a8a1f1d
  1. 4
      seminar/templates/seminar/tematka/rozcestnik.html
  2. 1
      seminar/templates/seminar/tematka/toaletak.html
  3. 4
      seminar/urls.py
  4. 22
      seminar/views.py

4
seminar/templates/seminar/tematka/rozcestnik.html

@ -3,10 +3,10 @@
<p>{{tematko.abstrakt}}</p> <p>{{tematko.abstrakt}}</p>
<ul> <ul>
{% for cislo in tematko.cisla %} {% for cislo in tematko.cisla %}
<li>{{cislo.0.0}} -&gt; /{{tematko.kod}}/#{{cislo.0.1}}</li> <li><a href="/{{rocnik}}/t{{tematko.kod}}/#{{cislo.0.1}}">{{cislo.0.0}}</a></li>
<ul> <ul>
{% for odkaz in cislo.1 %} {% for odkaz in cislo.1 %}
<li>{{odkaz.0}} -&gt; /{{tematko.kod}}/#{{odkaz.1}}</li> <li><a href="/{{rocnik}}/t{{tematko.kod}}/#{{odkaz.1}}">{{odkaz.0}}</a></li>
{% endfor %} {% endfor %}
</ul> </ul>
{% endfor %} {% endfor %}

1
seminar/templates/seminar/tematka/toaletak.html

@ -0,0 +1 @@
Stránká témátka

4
seminar/urls.py

@ -8,8 +8,8 @@ from django.contrib.auth import views as auth_views
staff_member_required = user_passes_test(lambda u: u.is_staff) staff_member_required = user_passes_test(lambda u: u.is_staff)
urlpatterns = [ urlpatterns = [
path('tematka/', views.TemataRozcestnikView), path('aktualni/temata/', views.TemataRozcestnikView),
path('tematko/<int:tematko>/', views.TematkoView), path('<int:rocnik>/t<int:tematko>/', views.TematkoView),
# REDIRECTy # REDIRECTy
path('jak-resit/', RedirectView.as_view(url='/co-je-MaM/jak-resit/')), path('jak-resit/', RedirectView.as_view(url='/co-je-MaM/jak-resit/')),

22
seminar/views.py

@ -75,10 +75,7 @@ def ZadaniTemataView(request):
} }
) )
#TODO na příště - implementovat DFS, které vrátí seznam objektů, jejich hloubku a objekt, který chci zobrazit, # TODO Napsat tuto funkci znovu rekurzivně podle Jethrorad. Potom se podívat, jak lehce se dá modifikovat pro Rozcestník. Pokud lehce, rozšířit ji. Pokud složitě - použít tuhle
#TODO na příště - rozmyslet, jak zobrazovat objekty - u každého Nodu se objekt, na který ukazuje jmenuje jinak, zavést metodu, která se u každé subclassy bude jmenovat stejně? __str__
#TODO na příště - v jaké formě předávat templatu? Jak řešit rozbalovací tagy?
#TODO na příště - implementace vpisování rozbalovacích tagů, vytvořit si nový objekt, který bude mít stejnou metodu jako objekty, které mají node, která bude vracet vhodný tag a prostě ji přidat do seznamu?
def vytahniZLesaSeznam(tematko, koren, pouze_zajimave=False): def vytahniZLesaSeznam(tematko, koren, pouze_zajimave=False):
returnVal = [] returnVal = []
@ -122,8 +119,19 @@ def vytahniZLesaSeznam(tematko, koren, pouze_zajimave=False):
returnVal.append((wn, wd)) returnVal.append((wn, wd))
return returnVal return returnVal
def TematkoView(request): def TematkoView(request, rocnik, tematko):
neco nastaveni = s.Nastaveni.objects.first()
rocnik_object = s.Rocnik.objects.filter(rocnik=rocnik)
tematko_object = s.Tema.objects.filter(rocnik=rocnik_object[0], kod=tematko)
seznam = vytahniZLesaSeznam(tematko_object[0], nastaveni.aktualni_rocnik().rocniknode)
for node, depth in seznam:
if node.isinstance(node, s.KonferaNode):
raise Exception("Not implemented yet")
if node.isinstance(node, s.PohadkaNode): # Mohu ignorovat, má pod sebou
pass
return render(request, 'seminar/tematka/toaletak.html', {})
def TemataRozcestnikView(request): def TemataRozcestnikView(request):
print("=============================================") print("=============================================")
@ -158,7 +166,7 @@ def TemataRozcestnikView(request):
"obrazek": tematko_object.obrazek, "obrazek": tematko_object.obrazek,
"cisla" : cisla "cisla" : cisla
}) })
return render(request, 'seminar/tematka/rozcestnik.html', {"tematka": tematka}) return render(request, 'seminar/tematka/rozcestnik.html', {"tematka": tematka, "rocnik" : nastaveni.aktualni_rocnik().rocnik})
#def ZadaniAktualniVysledkovkaView(request): #def ZadaniAktualniVysledkovkaView(request):

Loading…
Cancel
Save