Pouze CSV export přednášek (smazání ostatních)
This commit is contained in:
parent
7a70b9dcff
commit
4d5800f3b8
3 changed files with 5 additions and 73 deletions
|
@ -2,19 +2,19 @@
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<h1>{% block nadpis1a %}
|
<h1>{% block nadpis1a %}
|
||||||
Hlasování o přednáškách
|
Výsledky hlasování o přednáškách
|
||||||
{% endblock %}</h1>
|
{% endblock %}</h1>
|
||||||
{# Projdi vsechny seznamy #}
|
{# Projdi vsechny seznamy #}
|
||||||
<div class="mam-org-only">
|
<div class="mam-org-only">
|
||||||
<ul>
|
<ul>
|
||||||
{% for seznam in object_list %}
|
{% for seznam in object_list %}
|
||||||
<li>
|
<li>
|
||||||
{% if seznam.stav == 1 %} {# STAV_NAHRH = 1 #}
|
{% if seznam.stav == seznam.Stav.NAVRH %}
|
||||||
<a href="/prednasky/seznam_prednasek/{{seznam.id}}">Návrh přednášek na soustředění {{seznam.soustredeni.misto}} </a>
|
Návrh přednášek na soustředění {{seznam.soustredeni.misto}}
|
||||||
{% else %}
|
{% else %}
|
||||||
<a href="/prednasky/seznam_prednasek/{{seznam.id}}">Seznam přednášek na soustředění {{seznam.soustredeni.misto}} </a>
|
Seznam přednášek na soustředění {{seznam.soustredeni.misto}}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<a href='{% url "seznam-export-csv" seznam=seznam.id %}'>Export</a>
|
<a href='{% url "seznam-export-csv" seznam=seznam.id %}'>(CSV)</a>
|
||||||
</li>
|
</li>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</ul>
|
</ul>
|
||||||
|
|
|
@ -12,19 +12,9 @@ urlpatterns = [
|
||||||
'prednasky/metaseznam_prednasek',
|
'prednasky/metaseznam_prednasek',
|
||||||
org_required(views.MetaSeznamListView.as_view()),
|
org_required(views.MetaSeznamListView.as_view()),
|
||||||
name='metaseznam-list'),
|
name='metaseznam-list'),
|
||||||
# path(
|
|
||||||
# 'prednasky/seznam_prednasek/<int:seznam>/export',
|
|
||||||
# org_required(views.SeznamExportView),
|
|
||||||
# name='seznam-export'
|
|
||||||
# ),
|
|
||||||
path(
|
path(
|
||||||
'prednasky/seznam_prednasek/<int:seznam>/hlasovani.csv',
|
'prednasky/seznam_prednasek/<int:seznam>/hlasovani.csv',
|
||||||
org_required(views.PrednaskyExportView),
|
org_required(views.PrednaskyExportView),
|
||||||
name='seznam-export-csv'
|
name='seznam-export-csv'
|
||||||
),
|
),
|
||||||
path(
|
|
||||||
'prednasky/seznam_prednasek/<int:seznam>/',
|
|
||||||
org_required(views.SeznamListView.as_view()),
|
|
||||||
name='seznam-list'
|
|
||||||
),
|
|
||||||
]
|
]
|
||||||
|
|
|
@ -133,64 +133,6 @@ class MetaSeznamListView(generic.ListView):
|
||||||
template_name = 'prednasky/metaseznam_prednasek.html'
|
template_name = 'prednasky/metaseznam_prednasek.html'
|
||||||
|
|
||||||
|
|
||||||
class SeznamListView(generic.ListView):
|
|
||||||
"""
|
|
||||||
Náhled na to, kolik má která přednáška v :py:class:`Seznamu <prednasky.models.Seznam>` :py:class:`hlasů <prednasky.models.Hlasovani.Body>`.
|
|
||||||
(Je otázka, zda tento View vůbec chceme. Pokud ano, hodilo by se do něj přidat i znalosti.)
|
|
||||||
"""
|
|
||||||
template_name = 'prednasky/seznam_prednasek.html'
|
|
||||||
|
|
||||||
def get_queryset(self):
|
|
||||||
self.seznam = get_object_or_404(Seznam, id=self.kwargs["seznam"])
|
|
||||||
prednasky = Prednaska.objects.filter(seznamy=self.seznam).order_by(
|
|
||||||
'org__osoba__user__first_name', 'org__osoba__user__last_name'
|
|
||||||
)
|
|
||||||
return prednasky
|
|
||||||
|
|
||||||
# FIXME nahradit anotaci s filtrem po prechodu na Django 2.2
|
|
||||||
def get_context_data(self,**kwargs):
|
|
||||||
context = super(SeznamListView, self).get_context_data(**kwargs)
|
|
||||||
|
|
||||||
# hlasovani se vztahuje k nejnovejsimu soustredeni
|
|
||||||
sous = Soustredeni.objects.first()
|
|
||||||
seznam = Seznam.objects.filter(soustredeni = sous, stav=Seznam.Stav.NAVRH).first()
|
|
||||||
|
|
||||||
for obj in self.object_list:
|
|
||||||
hlasovani_set = obj.hlasovani_set.filter(seznam=seznam).only('body')
|
|
||||||
obj.body = sum(map(lambda x: x.body,hlasovani_set))
|
|
||||||
|
|
||||||
return context
|
|
||||||
|
|
||||||
|
|
||||||
# def SeznamExportView(request, seznam):
|
|
||||||
# """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(p.org for p in prednasky)
|
|
||||||
# ucastnici = set(h.ucastnik for h in hlasovani)
|
|
||||||
#
|
|
||||||
# for p in prednasky:
|
|
||||||
# p.body = []
|
|
||||||
# for u in ucastnici:
|
|
||||||
# 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"
|
|
||||||
# )
|
|
||||||
|
|
||||||
|
|
||||||
def PrednaskyExportView(request: HttpRequest, seznam: int, **kwargs) -> HttpResponse:
|
def PrednaskyExportView(request: HttpRequest, seznam: int, **kwargs) -> HttpResponse:
|
||||||
"""
|
"""
|
||||||
Vrátí všechna :py:class:`Hlasování <prednasky.models.Hlasovani>`
|
Vrátí všechna :py:class:`Hlasování <prednasky.models.Hlasovani>`
|
||||||
|
|
Loading…
Reference in a new issue