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 7f39f3d1..c1844e15 100644
--- a/seminar/views.py
+++ b/seminar/views.py
@@ -611,6 +611,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)
@@ -673,13 +674,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)