Views: Aktualizován view a template na obálkování.
This commit is contained in:
parent
33fe0452b3
commit
aaee03497d
3 changed files with 74 additions and 3 deletions
30
seminar/templates/seminar/org/obalkovani.html
Normal file
30
seminar/templates/seminar/org/obalkovani.html
Normal file
|
@ -0,0 +1,30 @@
|
|||
{% extends "base.html" %}
|
||||
|
||||
{% block content %}
|
||||
<h1>
|
||||
{% block nadpis1a %}{% block nadpis1b %}
|
||||
Obálkování {{ cislo }}
|
||||
{% endblock %}{% endblock %}
|
||||
</h1>
|
||||
<ul>
|
||||
{% for reseni in object_list %}
|
||||
{% ifchanged reseni.resitele %}
|
||||
{% if not forloop.first %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
<h4>{% for resitel in reseni.resitele.all %}{{resitel.osoba}},{% endfor %}</h4>
|
||||
<ul>
|
||||
{% endifchanged %}
|
||||
|
||||
<li>Celkem {{reseni.hodnoceni__body__sum}} bodů z {{reseni.hodnoceni__count}} hodnocení
|
||||
<ul>
|
||||
{% for h in reseni.hodnoceni_set.all %}
|
||||
<li> {{ h.problem }}: {{ h.body }}b </li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
|
||||
|
||||
{% endblock content %}
|
|
@ -89,7 +89,7 @@ urlpatterns = [
|
|||
path('stav',
|
||||
staff_member_required(views.StavDatabazeView), name='stav_databaze'),
|
||||
path('cislo/<int:rocnik>.<int: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/<int:rocnik>.<int:cislo>/tex-download.json',
|
||||
staff_member_required(views.texDownloadView), name='seminar_tex_download'),
|
||||
path('soustredeni/<int:soustredeni>/obalky.pdf',
|
||||
|
@ -101,6 +101,8 @@ urlpatterns = [
|
|||
staff_member_required(views.texUploadView),
|
||||
name='seminar_tex_upload'
|
||||
),
|
||||
path('org/vloz_body/<int:tema>/',
|
||||
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'),
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
|
Loading…
Reference in a new issue