Prednasky: v aktuálních výsledcích jen aktuální výsledky
This commit is contained in:
parent
5db763f2cb
commit
bd92068b37
1 changed files with 7 additions and 2 deletions
|
@ -3,7 +3,7 @@ from django.shortcuts import render, get_object_or_404
|
||||||
from django.views import generic
|
from django.views import generic
|
||||||
from django.shortcuts import HttpResponseRedirect
|
from django.shortcuts import HttpResponseRedirect
|
||||||
from django.core.exceptions import ObjectDoesNotExist
|
from django.core.exceptions import ObjectDoesNotExist
|
||||||
from django.db.models import Sum
|
from django.db.models import Sum, Subquery
|
||||||
|
|
||||||
from prednasky.models import Prednaska, Hlasovani, Seznam, STAV_NAVRH
|
from prednasky.models import Prednaska, Hlasovani, Seznam, STAV_NAVRH
|
||||||
from seminar.models import Soustredeni
|
from seminar.models import Soustredeni
|
||||||
|
@ -55,9 +55,14 @@ class SeznamListView(generic.ListView):
|
||||||
|
|
||||||
def get_queryset(self):
|
def get_queryset(self):
|
||||||
self.seznam = get_object_or_404(Seznam, id=self.kwargs["seznam"])
|
self.seznam = get_object_or_404(Seznam, id=self.kwargs["seznam"])
|
||||||
|
# Od "annotate" je to hack opsaný ze stack overflow, kterým se filtrují
|
||||||
|
# jen výsledky z aktuálního seznamu. Dosud se zobrazoval součet bodů u
|
||||||
|
# přednášky od počátku historie.
|
||||||
|
# TODO: udělat lépe (Django 2 má Sum s filtrem)
|
||||||
prednasky = Prednaska.objects.filter(seznamy=self.seznam).order_by(
|
prednasky = Prednaska.objects.filter(seznamy=self.seznam).order_by(
|
||||||
'org__user__first_name', 'org__user__last_name'
|
'org__user__first_name', 'org__user__last_name'
|
||||||
).annotate(body=Sum('hlasovani__body'))
|
).annotate(body=Subquery(Hlasovani.objects.filter(seznam=self.seznam)
|
||||||
|
.values('body').annotate(b=Sum('body')).values('b')))
|
||||||
return prednasky
|
return prednasky
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue