diff --git a/seminar/templates/seminar/soustredeni/seznam_soustredeni.html b/seminar/templates/seminar/soustredeni/seznam_soustredeni.html index 18447a67..538843bd 100644 --- a/seminar/templates/seminar/soustredeni/seznam_soustredeni.html +++ b/seminar/templates/seminar/soustredeni/seznam_soustredeni.html @@ -49,7 +49,8 @@ Vygenerovat obálky pro účastníky
Seznam účastníků - HTML tabulka pro tisk, - CSV
+ CSV, + E-maily
Stvrzenky (42 v URL nahraďte prvním číslem z rozsahu) {% endif %} diff --git a/seminar/templates/seminar/soustredeni/seznam_ucastniku.html b/seminar/templates/seminar/soustredeni/seznam_ucastniku.html index e5f40aaf..346b348b 100644 --- a/seminar/templates/seminar/soustredeni/seznam_ucastniku.html +++ b/seminar/templates/seminar/soustredeni/seznam_ucastniku.html @@ -18,6 +18,7 @@ Jméno Maturita Mobil + Poznámka {% for sous_ucast in object_list %} @@ -25,6 +26,7 @@ {{sous_ucast.resitel}} {{sous_ucast.resitel.rok_maturity}} {{sous_ucast.resitel.telefon}} + {{sous_ucast.poznamka}} diff --git a/seminar/urls.py b/seminar/urls.py index 16c8799b..d39653ec 100644 --- a/seminar/urls.py +++ b/seminar/urls.py @@ -1,5 +1,5 @@ from django.conf.urls import * # NOQA -from django.conf.urls import patterns, url +from django.conf.urls import url, include from django.contrib.auth.decorators import user_passes_test from . import views, export from utils import staff_member_required @@ -25,13 +25,40 @@ urlpatterns = [ url(r'^problem/(?P\d+)/(?P\d+)/$', views.PrispevekView.as_view(), name='seminar_problem_prispevek'), # Soustredeni - url(r'^soustredeni/probehlo/$', views.SoustredeniListView.as_view(), - name = 'seminar_seznam_soustredeni'), - url(r'^soustredeni/probehlo/(?P\d+)/$', views.SoustredeniView.as_view(), name='seminar_soustredeni'), - url(r'^soustredeni/(?P\d+)/seznam_ucastniku$', staff_member_required(views.SoustredeniUcastniciView.as_view()), name='soustredeni_ucastnici'), - url(r'^soustredeni/(?P\d+)/stvrzenky/(?P\d+)$', staff_member_required(views.soustredeniStvrzenkyExportView), name='soustredeni_stvrzenky'), - url(r'^soustredeni/(?P\d+)/export_ucastniku$', staff_member_required(views.soustredeniUcastniciExportView), name='soustredeni_ucastnici_export'), - url(r'^soustredeni/(?P\d+)/fotogalerie/', include('galerie.urls')), + url( + r'^soustredeni/probehlo/$', + views.SoustredeniListView.as_view(), + name='seminar_seznam_soustredeni' + ), + url( + r'^soustredeni/probehlo/(?P\d+)/$', + views.SoustredeniView.as_view(), + name='seminar_soustredeni' + ), + url( + r'^soustredeni/(?P\d+)/seznam_ucastniku$', + staff_member_required(views.SoustredeniUcastniciView.as_view()), + name='soustredeni_ucastnici' + ), + url( + r'^soustredeni/(?P\d+)/maily_ucastniku$', + staff_member_required(views.SoustredeniMailyUcastnikuView.as_view()), + name='maily_ucastniku' + ), + url( + r'^soustredeni/(?P\d+)/stvrzenky/(?P\d+)$', + staff_member_required(views.soustredeniStvrzenkyExportView), + name='soustredeni_stvrzenky' + ), + url( + r'^soustredeni/(?P\d+)/export_ucastniku$', + staff_member_required(views.soustredeniUcastniciExportView), + name='soustredeni_ucastnici_export' + ), + url( + r'^soustredeni/(?P\d+)/fotogalerie/', + include('galerie.urls') + ), # Zadani url(r'^zadani/aktualni/$', views.AktualniZadaniView, name='seminar_aktualni_zadani'), diff --git a/seminar/views.py b/seminar/views.py index 4c18c2fe..f558e915 100644 --- a/seminar/views.py +++ b/seminar/views.py @@ -578,6 +578,7 @@ def obalkyView(request,resitele): shutil.rmtree(tempdir) return response + def obalkovaniView(request, rocnik, cislo): rocnik = Rocnik.objects.get(rocnik=rocnik) cislo = Cislo.objects.get(rocnik=rocnik, cislo=cislo) @@ -640,13 +641,30 @@ def soustredeniObalkyView(request,soustredeni): soustredeni = get_object_or_404(Soustredeni,id = soustredeni) return obalkyView(request,soustredeni.ucastnici.all()) -class SoustredeniUcastniciView(generic.ListView): + +class SoustredeniUcastniciBaseView(generic.ListView): model = Soustredeni_Ucastnici - template_name = 'seminar/soustredeni/seznam_ucastniku.html' - + def get_queryset(self): - self.soustredeni = get_object_or_404(Soustredeni, id=self.kwargs["soustredeni"]) - return Soustredeni_Ucastnici.objects.filter(soustredeni=self.soustredeni).select_related('resitel') + soustredeni = get_object_or_404( + Soustredeni, + pk=self.kwargs["soustredeni"] + ) + return Soustredeni_Ucastnici.objects.filter( + soustredeni=soustredeni).select_related('resitel') + + +class SoustredeniMailyUcastnikuView(SoustredeniUcastniciBaseView): + """Seznam e-mailů řešitelů oddělených čárkami""" + model = Soustredeni_Ucastnici + template_name = 'seminar/soustredeni/maily_ucastniku.txt' + + +class SoustredeniUcastniciView(SoustredeniUcastniciBaseView): + """HTML tabulka účastníků pro tisk""" + model = Soustredeni_Ucastnici + template_name = 'seminar/soustredeni/seznam_ucastniku.html' + def soustredeniStvrzenkyExportView(request,soustredeni,first_num): first_num = int(first_num)