diff --git a/seminar/templates/seminar/org/vyroba_problemu.html b/seminar/templates/seminar/org/vyroba_problemu.html index 648ed51d..721287c3 100644 --- a/seminar/templates/seminar/org/vyroba_problemu.html +++ b/seminar/templates/seminar/org/vyroba_problemu.html @@ -7,21 +7,30 @@ {# TODO: Jak chceme umožnit problémy jak k témátku tak všechny? #} {% endblock %} -
TODO: Help text: jak vypadá formát čísel, co se dá psát do šablony
-Pokud chceš přidat jen jeden problém nebo vyrobit témátko, použij k tomu spíš Admin. +
Pokud chceš přidat jen jeden problém nebo vyrobit témátko, použij k tomu spíš Admin 🔧. {% endblock content %} diff --git a/seminar/urls.py b/seminar/urls.py index f6f2e2fb..fe5b05e8 100644 --- a/seminar/urls.py +++ b/seminar/urls.py @@ -116,4 +116,6 @@ urlpatterns = [ org_required(views.HromadnePridaniView.as_view()), name="hromadne_pridani" ), + + path('test/zadavatko_problemu', org_required(views.zadavatkoProblemuView), name='zadavatko_problemu'), ] diff --git a/seminar/views/__init__.py b/seminar/views/__init__.py index 8db4424b..0774c945 100644 --- a/seminar/views/__init__.py +++ b/seminar/views/__init__.py @@ -2,3 +2,5 @@ from .views_all import * # Dočsasné views from .docasne import * + +from .zadavatko_problemu import zadavatkoProblemuView diff --git a/seminar/views/zadavatko_problemu.py b/seminar/views/zadavatko_problemu.py index a8b006ae..8c4aa7f4 100644 --- a/seminar/views/zadavatko_problemu.py +++ b/seminar/views/zadavatko_problemu.py @@ -1,15 +1,23 @@ import seminar.models as m +from django.shortcuts import render def zadavatkoProblemuView(req, problem=None): - template_name = 'seminar/templates/seminar/org/vyroba_problemu.html' - if problem=None: - problemy = m.Problem.objects.all() - # TODO: Možná jen úlohy a problémy? + template_name = 'seminar/org/vyroba_problemu.html' + + if req.method == 'POST': + cilovy_stav = req.POST['akce'] + pr = req.POST['problem_id'] + print(cilovy_stav, pr) + + if problem is None: + # Vykradený autocomplete :-) + rocnik = m.Nastaveni.get_solo().aktualni_rocnik + problemy = m.Uloha.objects.filter(cislo_zadani__rocnik=rocnik) + # Věříme, že drtivá většina úložek bude mít číslo zadání už od vzniku, protože vznikly tady. K úložce bez čísla zadání se pořád dá dostat přes témátko, k těm netémátkovým jen z Admina. else: problemy = problem.podproblemy_rekurzivne - # --- snip --- # Je potřeba mít v kontextu: # - seznam příslušných problémů # - Formulář na vybírání problémů a společné změny @@ -17,3 +25,16 @@ def zadavatkoProblemuView(req, problem=None): # - Formulář na vyrábění problémů – logika má být asi ve forms… + ctx = {'object_list': problemy, 'form': 'Hello!', 'STAVY': dict(m.Problem.STAV_CHOICES)} + return render(req, template_name, ctx) + +# TODO: Přesunout forms někam jinam! (nechtělo se mi počáteční implementaci sekat do spousty souborů, pro vývoj to bylo přehlednější) + +# NOTE: Formsety nejdou použít, protože my chceme vlastní značítka. +# - Na takovém řádku chceme: +# - Zaškrtávátko s výběrem +# - Přehled stavu: název problému, stav, číslo zadání, počet bodů +# - Nějak snadno umět upravit stav. (Výhledově inlinemodelform + disketka asi) +# - Odkaz do Admina +# - Reset opravovatelů/garantů/… (i.e. podědit z nadproblému)? +