From f34dbb1736e861ba79e3984140e3396ff2343621 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mat=C4=9Bj=20Koci=C3=A1n?= Date: Fri, 6 Oct 2017 00:37:08 +0200 Subject: [PATCH] prednasky/views: fix export --- prednasky/views.py | 33 ++++++++++++++++++++++----------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/prednasky/views.py b/prednasky/views.py index e25af366..ae0d11d4 100644 --- a/prednasky/views.py +++ b/prednasky/views.py @@ -1,8 +1,10 @@ -from django.shortcuts import render,get_object_or_404 +# -*- coding: utf-8 -*- +from django.shortcuts import render, get_object_or_404 from django.views import generic from prednasky.forms import NewPrednaskyForm from prednasky.models import Seznam, Hlasovani, Prednaska from django.shortcuts import HttpResponseRedirect +from django.core.exceptions import ObjectDoesNotExist from models import Prednaska, Seznam, STAV_NAVRH @@ -54,23 +56,32 @@ class SeznamListView(generic.ListView): return Prednaska.objects.filter(seznamy = self.seznam) -def SeznamExportView(request,seznam): - seznam_obj = Seznam.objects.get(id=seznam) +def SeznamExportView(request, seznam): + u"""Vypíše výsledky hlasování ve formátu pro prologovský optimalizátor""" + # TODO zřejmě se nepoužívá, časem vyřadit? nahradit tabulkou vhodnější pro + # lidi? hlasovani = Hlasovani.objects.filter(seznam=seznam) prednasky = Prednaska.objects.filter(seznamy=seznam) - orgove = set(map(lambda x:x.org,prednasky)) - ucastnici = list(set(map(lambda x:x.ucastnik,hlasovani))) + orgove = set(p.org for p in prednasky) + ucastnici = set(h.ucastnik for h in hlasovani) for p in prednasky: p.body = [] for u in ucastnici: - p.body.append(hlasovani.get(ucastnik=u,prednaska=p).body) + try: + p.body.append(hlasovani.get(ucastnik=u, prednaska=p).body) + except ObjectDoesNotExist: + # účastník nehlasoval + p.body.append("?") for h in hlasovani: - h.ucastnik = hash(h.ucastnik) - - return render(request, 'prednasky/seznam_prednasek_export.txt', - {"hlasovani":hlasovani,"prednasky":prednasky,"orgove":orgove}, - content_type="text/plain") + h.ucastnik = hash(h.ucastnik) + + return render( + request, + 'prednasky/seznam_prednasek_export.txt', + {"hlasovani": hlasovani, "prednasky": prednasky, "orgove": orgove}, + content_type="text/plain" + )