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.shortcuts import HttpResponseRedirect | ||||
| 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 seminar.models import Soustredeni | ||||
|  | @ -55,9 +55,14 @@ class SeznamListView(generic.ListView): | |||
| 
 | ||||
|     def get_queryset(self): | ||||
|         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( | ||||
|             '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 | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue
	
	 LEdoian
						LEdoian