From fd94b3885935927eddbca918ae5c03d23622e506 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Tue, 16 May 2023 13:41:59 +0200 Subject: [PATCH] =?UTF-8?q?Velmi=20PoC=20k=C3=B3d,=20ale=20u=C5=BE=20se=20?= =?UTF-8?q?aspo=C5=88=20d=C3=A1=20testovat.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bude potřeba to rebasovat a učesat, ale co už… --- .../seminar/org/vyroba_problemu.html | 25 ++++++++++----- seminar/urls.py | 2 ++ seminar/views/__init__.py | 2 ++ seminar/views/zadavatko_problemu.py | 31 ++++++++++++++++--- 4 files changed, 47 insertions(+), 13 deletions(-) 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 %} - +
+ {% csrf_token %} + + + + + + {% for obj in object_list %} - {% %} - - + + {% endfor %} +
{# checkbox #}Úloha/ProblémStav{# admin #}
+ {{ obj.nazev }}Zobrazit v Adminu{{ obj.get_stav_display }}🔧
Označené problémy označit jako: - +

Přidat problémy

@@ -33,6 +42,6 @@

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)? +