Browse Source

V tabulce potřebujeme znát i Hodnocení, kvůli bodům…

prehlednejsi_hodnotitko
Pavel "LEdoian" Turinsky 2 years ago
parent
commit
468443e062
  1. 6
      odevzdavatko/templates/odevzdavatko/tabulka.html
  2. 10
      odevzdavatko/views.py

6
odevzdavatko/templates/odevzdavatko/tabulka.html

@ -38,10 +38,10 @@ Do data (včetně): {{ filtr.reseni_do }}
</td> </td>
{% for bunka in hodnoty %} {% for bunka in hodnoty %}
<td> <td>
{% for reseni in bunka %} {% for reseni,hodnoceni in bunka %}
<a href="{% url 'odevzdavatko_detail_reseni' pk=reseni.id %}"> <a href="{% url 'odevzdavatko_detail_reseni' pk=reseni.id %}">
{{reseni.datum_doruceni | date:"j. n."}}({{ hodn.body }}b) {{reseni.cas_doruceni | date:"j. n."}} ({{ hodnoceni.body }}b)
</a> </a><br>
{% endfor %} {% endfor %}
</td> </td>
{% endfor %} {% endfor %}

10
odevzdavatko/views.py

@ -118,7 +118,7 @@ class TabulkaOdevzdanychReseniView(ListView):
ctx = super().get_context_data(*args, **kwargs) ctx = super().get_context_data(*args, **kwargs)
ctx['problemy'] = self.problemy ctx['problemy'] = self.problemy
ctx['resitele'] = self.resitele ctx['resitele'] = self.resitele
tabulka: dict[m.Problem, dict[m.Resitel, list[m.Reseni]]] = dict() tabulka: dict[m.Problem, dict[m.Resitel, list[tuple[m.Reseni, m.Hodnoceni]]]] = dict()
def pridej_reseni(resitel, hodnoceni): def pridej_reseni(resitel, hodnoceni):
problem = hodnoceni.problem problem = hodnoceni.problem
@ -128,19 +128,19 @@ class TabulkaOdevzdanychReseniView(ListView):
if problem not in tabulka: if problem not in tabulka:
tabulka[problem] = dict() tabulka[problem] = dict()
if resitel not in tabulka[problem]: if resitel not in tabulka[problem]:
tabulka[problem][resitel] = [reseni] tabulka[problem][resitel] = [(reseni, hodnoceni)]
else: else:
tabulka[problem][resitel].append(reseni) tabulka[problem][resitel].append((reseni, hodnoceni))
for hodnoceni in self.get_queryset(): for hodnoceni in self.get_queryset():
for resitel in hodnoceni.reseni.resitele.all(): for resitel in hodnoceni.reseni.resitele.all():
pridej_reseni(resitel, hodnoceni) pridej_reseni(resitel, hodnoceni)
hodnoty: list[list[list[m.Reseni]]] = [] # Seznam řádků výsledné tabulky podle self.resitele, v každém řádku buňky v pořadí podle self.problemy, v každé buňce seznam řešení k danému řešiteli a problému. hodnoty: list[list[list[tuple[m.Reseni, m.Hodnoceni]]]] = [] # Seznam řádků výsledné tabulky podle self.resitele, v každém řádku buňky v pořadí podle self.problemy, v každé buňce seznam řešení k danému řešiteli a problému.
resitele_do_tabulky: list[m.Resitel] = [] resitele_do_tabulky: list[m.Resitel] = []
for resitel in self.resitele: for resitel in self.resitele:
dostal_body = False dostal_body = False
resiteluv_radek: list[list[m.Resitel]] = [] # podle pořadí v self.problemy resiteluv_radek: list[list[tuple[m.Resitel, m.Hodnoceni]]] = [] # podle pořadí v self.problemy
for problem in self.problemy: for problem in self.problemy:
if problem in tabulka and resitel in tabulka[problem]: if problem in tabulka and resitel in tabulka[problem]:
resiteluv_radek.append(tabulka[problem][resitel]) resiteluv_radek.append(tabulka[problem][resitel])

Loading…
Cancel
Save