Browse Source

Odevzdávátko: shlukování řešení podle deadline

middleware_test
Pavel "LEdoian" Turinsky 3 years ago
parent
commit
0b9110cf68
  1. 6
      seminar/templates/seminar/odevzdavatko/seznam.html
  2. 10
      seminar/views/odevzdavatko.py

6
seminar/templates/seminar/odevzdavatko/seznam.html

@ -1,11 +1,15 @@
{% extends "base.html" %}
{% load deadliny %}
{% block content %}
{% for dl, mnozina_reseni in reseni_podle_deadlinu.items %}
<h1>{{ dl.2 | deadline_html }}</h1>
<ul>
{% for obj in object_list %}
{% for obj in mnozina_reseni %}
<li><a href="{% url 'odevzdavatko_detail_reseni' pk=obj.id %}">{{ obj }}</a> ({{ obj.get_forma_display }} {{ obj.cas_doruceni }})
{% endfor %}
</ul>
{% endfor %}
{% endblock %}

10
seminar/views/odevzdavatko.py

@ -8,12 +8,13 @@ from django.db import transaction
from dataclasses import dataclass
import datetime
from itertools import groupby
import logging
import seminar.models as m
import seminar.forms as f
from seminar.forms import OdevzdavatkoTabulkaFiltrForm as FiltrForm
from seminar.utils import aktivniResitele, resi_v_rocniku
from seminar.utils import aktivniResitele, resi_v_rocniku, deadline
logger = logging.getLogger(__name__)
@ -169,7 +170,12 @@ class ReseniProblemuView(MultipleObjectTemplateResponseMixin, MultipleObjectMixi
return redirect(reverse("odevzdavatko_detail_reseni", kwargs={"pk": jedine_reseni.id}))
context = self.get_context_data()
return self.render_to_response(context)
# Kontext automaticky?
def get_context_data(self, *args, **kwargs):
ctx = super().get_context_data(*args, **kwargs)
# FIXME: Lepší by bylo předat groupby do template.
ctx['reseni_podle_deadlinu'] = {k: list(v) for k,v in groupby(ctx['object_list'], lambda r: deadline(r.cas_doruceni))}
return ctx
## XXX: https://docs.djangoproject.com/en/3.1/topics/class-based-views/mixins/#avoid-anything-more-complex
class DetailReseniView(DetailView):

Loading…
Cancel
Save