Velmi PoC kód, ale už se aspoň dá testovat.
Bude potřeba to rebasovat a učesat, ale co už…
This commit is contained in:
parent
e6f5bb4975
commit
fd94b38859
4 changed files with 47 additions and 13 deletions
|
@ -7,21 +7,30 @@
|
|||
{# TODO: Jak chceme umožnit problémy jak k témátku tak všechny? #}
|
||||
{% endblock %}
|
||||
</h1>
|
||||
<table><form>
|
||||
<form method=POST><table class="dosla_reseni">
|
||||
{% csrf_token %}
|
||||
<tr>
|
||||
<th>{# checkbox #}</th>
|
||||
<th>Úloha/Problém</th>
|
||||
<th>Stav</th>
|
||||
<th>{# admin #}</th>
|
||||
</tr>
|
||||
{% for obj in object_list %}
|
||||
<tr>
|
||||
{% %}
|
||||
<td><input type=checkbox id="problem_{{ obj.pk }}"</td>
|
||||
<td><input type=checkbox name="problem_id" value="{{ obj.pk }}" id="problem_{{ obj.pk }}"</td>
|
||||
<td>{{ obj.nazev }}</td>
|
||||
<td><a href="{% url 'admin:seminar_problem_change' obj %}">Zobrazit v Adminu</a></td>
|
||||
<td>{{ obj.get_stav_display }}</td>
|
||||
<td><a href="{% url 'admin:seminar_problem_change' obj.pk %}">🔧</a></td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</table>
|
||||
Označené problémy označit jako: <select name=akce>
|
||||
<option value="{{ STAV_ZADANY }}">Zadaný</option>
|
||||
{# TODO: ty další #}
|
||||
{% for k,v in STAVY.items %}
|
||||
<option value="{{ k }}">{{ v }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
<input type=submit value=Proveď>
|
||||
</form></table>
|
||||
</form>
|
||||
|
||||
<hrule>
|
||||
<h1> Přidat problémy </h1>
|
||||
|
@ -33,6 +42,6 @@
|
|||
|
||||
|
||||
<p>TODO: Help text: jak vypadá formát čísel, co se dá psát do šablony</p>
|
||||
<p>Pokud chceš přidat jen jeden problém nebo vyrobit témátko, použij k tomu spíš <a href="{% url 'admin:seminar_problem_changelist' %}">Admin</a>.
|
||||
<p>Pokud chceš přidat jen jeden problém nebo vyrobit témátko, použij k tomu spíš <a href="{% url 'admin:seminar_problem_changelist' %}">Admin 🔧</a>.
|
||||
|
||||
{% endblock content %}
|
||||
|
|
|
@ -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'),
|
||||
]
|
||||
|
|
|
@ -2,3 +2,5 @@ from .views_all import *
|
|||
|
||||
# Dočsasné views
|
||||
from .docasne import *
|
||||
|
||||
from .zadavatko_problemu import zadavatkoProblemuView
|
||||
|
|
|
@ -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)?
|
||||
|
||||
|
|
Loading…
Reference in a new issue