From 7969f474d1b6b87e93ae0cf466e32399e88956a2 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Mon, 31 Oct 2022 20:00:13 +0100 Subject: [PATCH 1/5] =?UTF-8?q?Za=C4=8D=C3=A1tek=20template=20zad=C3=A1v?= =?UTF-8?q?=C3=A1tka=20probl=C3=A9m=C5=AF=20[WIP]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../seminar/org/vyroba_problemu.html | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 seminar/templates/seminar/org/vyroba_problemu.html diff --git a/seminar/templates/seminar/org/vyroba_problemu.html b/seminar/templates/seminar/org/vyroba_problemu.html new file mode 100644 index 00000000..f3258731 --- /dev/null +++ b/seminar/templates/seminar/org/vyroba_problemu.html @@ -0,0 +1,24 @@ +{% extends "base.html" %} + +{% block content %} +

+ {% block nadpis1a %} + Zadané problémy + {% endblock %} +

+ {# Přehled problémů #} + {# TODO: filtr na stavy #} + + {% for obj in object_list %} + + + + + {% endfor %} +
butonek{{ obj.nazev }}
+ + + {# Přidat problém #} + + +{% endblock content %} -- 2.39.5 From 15c49dd43cae1705bda87cfb6e57631dbbcf7d76 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Mon, 28 Nov 2022 22:46:57 +0100 Subject: [PATCH 2/5] =?UTF-8?q?Zad=C3=A1v=C3=A1tko:=20prvn=C3=AD=20n=C3=A1?= =?UTF-8?q?st=C5=99el=20vzhledu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Zatím nemám tušení, jak se ty věci zpracují a objeví, ale už máme nějaký nástřel frontendu, se kterým můžeme interagovat a dodělávat ho. --- .../seminar/org/vyroba_problemu.html | 24 +++++++++++++++---- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/seminar/templates/seminar/org/vyroba_problemu.html b/seminar/templates/seminar/org/vyroba_problemu.html index f3258731..648ed51d 100644 --- a/seminar/templates/seminar/org/vyroba_problemu.html +++ b/seminar/templates/seminar/org/vyroba_problemu.html @@ -3,22 +3,36 @@ {% block content %}

{% block nadpis1a %} - Zadané problémy + Zadané problémy k tématu {{ tema }} + {# TODO: Jak chceme umožnit problémy jak k témátku tak všechny? #} {% endblock %}

- {# Přehled problémů #} - {# TODO: filtr na stavy #} {% for obj in object_list %} - + {% %} + + {% endfor %} + Označené problémy označit jako: +
butonek {{ obj.nazev }}Zobrazit v Adminu
- {# Přidat problém #} +

Přidat problémy

+
+ {% csrf_token %} + {{ form }} + {# - Téma, čísla úloh, čísla problémů, šablona názvu problému. #} +
+

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. + {% endblock content %} -- 2.39.5 From 6dd9ee98bbe174cdfa241ec17295a3368584fa8d Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Tue, 29 Nov 2022 00:33:31 +0100 Subject: [PATCH 3/5] =?UTF-8?q?WIP:=20po=C4=8D=C3=A1tek=20backendu=20pro?= =?UTF-8?q?=20zad=C3=A1v=C3=A1tko?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Zatím je to spíš TODO list než kód :-) --- seminar/views/zadavatko_problemu.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 seminar/views/zadavatko_problemu.py diff --git a/seminar/views/zadavatko_problemu.py b/seminar/views/zadavatko_problemu.py new file mode 100644 index 00000000..a8b006ae --- /dev/null +++ b/seminar/views/zadavatko_problemu.py @@ -0,0 +1,19 @@ +import seminar.models as m + + +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? + 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 + # - Umět filtrovat jen na nevyřešené problémy (Návrhy, Smazané a Vyřešené nechci vidět vždycky) + # - Formulář na vyrábění problémů – logika má být asi ve forms… + + -- 2.39.5 From fd94b3885935927eddbca918ae5c03d23622e506 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Tue, 16 May 2023 13:41:59 +0200 Subject: [PATCH 4/5] =?UTF-8?q?Velmi=20PoC=20k=C3=B3d,=20ale=20u=C5=BE=20s?= =?UTF-8?q?e=20aspo=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)? + -- 2.39.5 From b0988acac5e42aff4d8686f688c09172bbdd4230 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Thu, 24 Oct 2024 11:21:43 +0200 Subject: [PATCH 5/5] =?UTF-8?q?Pohrobek=20splitu=20semin=C3=A1=C5=99e=20(p?= =?UTF-8?q?=C5=99edchoz=C3=ADho=20merge)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../templates/tvorba}/org/vyroba_problemu.html | 0 tvorba/views/zadavatko_problemu.py | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) rename {seminar/templates/seminar => tvorba/templates/tvorba}/org/vyroba_problemu.html (100%) diff --git a/seminar/templates/seminar/org/vyroba_problemu.html b/tvorba/templates/tvorba/org/vyroba_problemu.html similarity index 100% rename from seminar/templates/seminar/org/vyroba_problemu.html rename to tvorba/templates/tvorba/org/vyroba_problemu.html diff --git a/tvorba/views/zadavatko_problemu.py b/tvorba/views/zadavatko_problemu.py index 8c4aa7f4..e78021aa 100644 --- a/tvorba/views/zadavatko_problemu.py +++ b/tvorba/views/zadavatko_problemu.py @@ -3,7 +3,7 @@ from django.shortcuts import render def zadavatkoProblemuView(req, problem=None): - template_name = 'seminar/org/vyroba_problemu.html' + template_name = 'tvorba/org/vyroba_problemu.html' if req.method == 'POST': cilovy_stav = req.POST['akce'] @@ -17,7 +17,7 @@ def zadavatkoProblemuView(req, problem=None): # 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 - + # 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 -- 2.39.5