|
|
@ -4,41 +4,52 @@ from django.views import generic |
|
|
|
from django.shortcuts import HttpResponseRedirect |
|
|
|
from django.core.exceptions import ObjectDoesNotExist |
|
|
|
from django.db.models import Sum |
|
|
|
from django.forms import Form |
|
|
|
|
|
|
|
from prednasky.models import Prednaska, Hlasovani, Seznam, STAV_NAVRH |
|
|
|
from seminar.models import Soustredeni |
|
|
|
from prednasky.forms import NewPrednaskyForm |
|
|
|
from seminar.models import Soustredeni, Osoba |
|
|
|
|
|
|
|
def newPrednaska(request): |
|
|
|
# hlasovani se vztahuje k nejnovejsimu soustredeni |
|
|
|
sous = Soustredeni.objects.first() |
|
|
|
seznam = Seznam.objects.filter(soustredeni = sous, stav = STAV_NAVRH).first() |
|
|
|
print(seznam) |
|
|
|
seznam = Seznam.objects.all().first() |
|
|
|
osoba = Osoba.objects.filter(user=request.user).first() |
|
|
|
ucastnik = osoba.plne_jmeno() + ' ' + str(osoba.id) |
|
|
|
# obsluha formulare |
|
|
|
if request.method == 'POST': |
|
|
|
form = NewPrednaskyForm(request.POST, request.FILES) |
|
|
|
form = Form(request.POST, request.FILES) |
|
|
|
if form.is_valid(): |
|
|
|
jmeno = form.cleaned_data['ucastnik'] |
|
|
|
# id z důvodu duplicitních jmen (přechod z jména na objekt Osoby nějak kape na tom, |
|
|
|
# že všechna předchozí hlasování zde mají náhodný string…) |
|
|
|
# TODO Změnit to na Osobu |
|
|
|
|
|
|
|
# TODO v následujících řádcích je zbytečně mnoho dotazů na QuerySet (pokud účastník hlasoval, hlasoval u všech) |
|
|
|
for i in request.POST: |
|
|
|
if i[0] == 'q': |
|
|
|
hlasovani = Hlasovani() |
|
|
|
print("q:"+i[1:]) |
|
|
|
hlasovani.prednaska = Prednaska.objects.filter(pk = int(i[1:]))[0] |
|
|
|
prednaska = Prednaska.objects.filter(pk=int(i[1:]))[0] |
|
|
|
hlasovani = Hlasovani.objects.filter(ucastnik=ucastnik, prednaska=prednaska).first() |
|
|
|
if not hlasovani: |
|
|
|
hlasovani = Hlasovani() |
|
|
|
hlasovani.prednaska = prednaska |
|
|
|
hlasovani.ucastnik = ucastnik |
|
|
|
hlasovani.seznam = seznam |
|
|
|
hlasovani.body = int(request.POST[i]) |
|
|
|
hlasovani.ucastnik = jmeno |
|
|
|
hlasovani.seznam = seznam |
|
|
|
hlasovani.save() |
|
|
|
|
|
|
|
# presmerovani na prave vzniklou galerii |
|
|
|
return HttpResponseRedirect('./hotovo') |
|
|
|
|
|
|
|
else: |
|
|
|
form = NewPrednaskyForm() |
|
|
|
def prednaska_hodnoceni(prednaska): |
|
|
|
h = Hlasovani.objects.filter(ucastnik=ucastnik, prednaska=prednaska).first() |
|
|
|
if h: |
|
|
|
return prednaska, h.body |
|
|
|
else: |
|
|
|
return prednaska, 0 |
|
|
|
|
|
|
|
return render( |
|
|
|
request, |
|
|
|
'prednasky/base.html', |
|
|
|
{'form': form, 'prednasky': seznam} |
|
|
|
{'prednasky': map(prednaska_hodnoceni, seznam.prednaska_set.all())} |
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|