diff --git a/seminar/templates/seminar/org/obalkovani.html b/seminar/templates/seminar/org/obalkovani.html
new file mode 100644
index 00000000..fa130bc7
--- /dev/null
+++ b/seminar/templates/seminar/org/obalkovani.html
@@ -0,0 +1,30 @@
+{% extends "base.html" %}
+
+{% block content %}
+
+ {% block nadpis1a %}{% block nadpis1b %}
+ Obálkování {{ cislo }}
+ {% endblock %}{% endblock %}
+
+
+ {% for reseni in object_list %}
+ {% ifchanged reseni.resitele %}
+ {% if not forloop.first %}
+
+ {% endif %}
+ {% for resitel in reseni.resitele.all %}{{resitel.osoba}},{% endfor %}
+
+ {% endifchanged %}
+
+ - Celkem {{reseni.hodnoceni__body__sum}} bodů z {{reseni.hodnoceni__count}} hodnocení
+
+ {% for h in reseni.hodnoceni_set.all %}
+ - {{ h.problem }}: {{ h.body }}b
+ {% endfor %}
+
+
+ {% endfor %}
+
+
+
+{% endblock content %}
diff --git a/seminar/urls.py b/seminar/urls.py
index 7ae2558c..57e447f3 100644
--- a/seminar/urls.py
+++ b/seminar/urls.py
@@ -89,7 +89,7 @@ urlpatterns = [
path('stav',
staff_member_required(views.StavDatabazeView), name='stav_databaze'),
path('cislo/./obalkovani',
- staff_member_required(views.obalkovaniView), name='seminar_cislo_resitel_obalkovani'),
+ staff_member_required(views.ObalkovaniView.as_view()), name='seminar_cislo_resitel_obalkovani'),
path('cislo/./tex-download.json',
staff_member_required(views.texDownloadView), name='seminar_tex_download'),
path('soustredeni//obalky.pdf',
@@ -101,6 +101,8 @@ urlpatterns = [
staff_member_required(views.texUploadView),
name='seminar_tex_upload'
),
+ path('org/vloz_body//',
+ staff_member_required(views.VlozBodyView.as_view()),name='seminar_org_vlozbody'),
path('auth/prihlaska/',views.prihlaskaView, name='seminar_prihlaska'),
path('auth/login/', views.LoginView.as_view(), name='login'),
path('auth/logout/', views.LogoutView.as_view(), name='logout'),
diff --git a/seminar/views.py b/seminar/views.py
index 6f31a889..b4c710a5 100644
--- a/seminar/views.py
+++ b/seminar/views.py
@@ -7,7 +7,7 @@ from django.core.exceptions import PermissionDenied, ObjectDoesNotExist
from django.views import generic
from django.utils.translation import ugettext as _
from django.http import Http404,HttpResponseBadRequest,HttpResponseRedirect
-from django.db.models import Q
+from django.db.models import Q, Sum, Count
from django.views.decorators.csrf import ensure_csrf_cookie
from django.contrib.auth import authenticate, login, get_user_model, logout
from django.contrib.auth import views as auth_views
@@ -45,6 +45,45 @@ def verejna_temata(rocnik):
"""
return Problem.objects.filter(typ=Problem.TYP_TEMA, cislo_zadani__rocnik=rocnik, cislo_zadani__verejne_db=True).order_by('kod')
+def temata_v_rocniku(rocnik):
+ return Problem.objects.filter(typ=Problem.TYP_TEMA, rocnik=rocnik)
+
+def get_problemy_k_tematu(tema):
+ return Problemy.objects.filter(nadproblem = tema)
+
+
+class VlozBodyView(generic.ListView):
+ template_name = 'seminar/org/vloz_body.html'
+
+ def get_queryset(self):
+ self.tema = get_object_or_404(Problem,id=self.kwargs['tema'])
+ print(self.tema)
+ self.problemy = Problem.objects.filter(nadproblem = self.tema)
+ print(self.problemy)
+ self.reseni = Reseni.objects.filter(problem__in=self.problemy)
+ print(self.reseni)
+ return self.reseni
+
+
+class ObalkovaniView(generic.ListView):
+ template_name = 'seminar/org/obalkovani.html'
+
+ def get_queryset(self):
+ rocnik = get_object_or_404(Rocnik,rocnik=self.kwargs['rocnik'])
+ cislo = get_object_or_404(Cislo,rocnik=rocnik,poradi=self.kwargs['cislo'])
+ self.cislo = cislo
+ self.hodnoceni = s.Hodnoceni.objects.filter(cislo_body=cislo)
+ self.reseni = Reseni.objects.filter(hodnoceni__in = self.hodnoceni).annotate(Sum('hodnoceni__body')).annotate(Count('hodnoceni')).order_by('resitele__osoba')
+ return self.reseni
+
+ def get_context_data(self, **kwargs):
+ context = super(ObalkovaniView, self).get_context_data(**kwargs)
+ print(self.cislo)
+ context['cislo'] = self.cislo
+ return context
+
+
+
def AktualniZadaniView(request):
nastaveni = get_object_or_404(Nastaveni)
@@ -740,7 +779,7 @@ def obalkyView(request,resitele):
return response
-def obalkovaniView(request, rocnik, cislo):
+def oldObalkovaniView(request, rocnik, cislo):
rocnik = Rocnik.objects.get(rocnik=rocnik)
cislo = Cislo.objects.get(rocnik=rocnik, cislo=cislo)