Oddělení sousových věcí #56
					 5 changed files with 55 additions and 45 deletions
				
			
		|  | @ -1,5 +1,4 @@ | ||||||
| from django import forms | from django import forms | ||||||
| from seminar.models import Soustredeni |  | ||||||
| 
 | 
 | ||||||
| class KomentarForm(forms.Form): | class KomentarForm(forms.Form): | ||||||
| 	komentar = forms.CharField(label = "Komentář:", max_length = 300, required=False) | 	komentar = forms.CharField(label = "Komentář:", max_length = 300, required=False) | ||||||
|  |  | ||||||
|  | @ -30,7 +30,7 @@ urlpatterns = [ | ||||||
| 	path('', include('prednasky.urls')), | 	path('', include('prednasky.urls')), | ||||||
| 
 | 
 | ||||||
| 	# Soustredkova aplikace (ma vlastni podadresare) | 	# Soustredkova aplikace (ma vlastni podadresare) | ||||||
| 	path('', include('soustredeni.urls')), | 	path('soustredeni/', include('soustredeni.urls')), | ||||||
| 
 | 
 | ||||||
| 	# Personalni aplikace (ma vlastni podadresare) | 	# Personalni aplikace (ma vlastni podadresare) | ||||||
| 	# (profil, osobní údaje, ..., ne autentizace, viz dále) | 	# (profil, osobní údaje, ..., ne autentizace, viz dále) | ||||||
|  |  | ||||||
|  | @ -1,5 +1,4 @@ | ||||||
| """ | """ | ||||||
| Obsahuje vše (až na přednášky) ohledně soustředění. | Obsahuje vše (až na přednášky a galerie) ohledně soustředění, | ||||||
|  | |||||||
| 
 | tzn. převážně informace o účastech orgů a účastníků a o tom, kdo byl na které konfeře. | ||||||
| TODO stvrzenky? |  | ||||||
| """ | """ | ||||||
|  | @ -2,44 +2,53 @@ from django.urls import path, include | ||||||
| from . import views | from . import views | ||||||
| from personalni.utils import org_required | from personalni.utils import org_required | ||||||
| 
 | 
 | ||||||
|  | # prefix = soustredeni/ | ||||||
| urlpatterns = [ | urlpatterns = [ | ||||||
| 	path( | 	path( | ||||||
| 		'soustredeni/probehlo/', | 		'probehlo/', | ||||||
| 		views.SoustredeniListView.as_view(), | 		views.SoustredeniListView.as_view(), | ||||||
| 		name='seminar_seznam_soustredeni' | 		name='seminar_seznam_soustredeni' | ||||||
| 	), | 	), | ||||||
| 	path( | 	path( | ||||||
| 		'soustredeni/<int:soustredeni>/seznam_ucastniku', | 		'<int:soustredeni>/', | ||||||
|  | 		include( | ||||||
|  | 			# prefix = 'soustredeni/<int:soustredeni>/' | ||||||
|  | 			[ | ||||||
|  | 				path( | ||||||
|  | 					'seznam_ucastniku', | ||||||
| 					org_required(views.SoustredeniUcastniciView.as_view()), | 					org_required(views.SoustredeniUcastniciView.as_view()), | ||||||
| 					name='soustredeni_ucastnici' | 					name='soustredeni_ucastnici' | ||||||
| 				), | 				), | ||||||
| 				path( | 				path( | ||||||
| 		'soustredeni/<int:soustredeni>/maily_ucastniku', | 					'maily_ucastniku', | ||||||
| 					org_required(views.SoustredeniMailyUcastnikuView.as_view()), | 					org_required(views.SoustredeniMailyUcastnikuView.as_view()), | ||||||
| 					name='maily_ucastniku' | 					name='maily_ucastniku' | ||||||
| 				), | 				), | ||||||
| 				path( | 				path( | ||||||
| 		'soustredeni/<int:soustredeni>/export_ucastniku', | 					'export_ucastniku', | ||||||
| 					org_required(views.soustredeniUcastniciExportView), | 					org_required(views.soustredeniUcastniciExportView), | ||||||
| 					name='soustredeni_ucastnici_export' | 					name='soustredeni_ucastnici_export' | ||||||
| 				), | 				), | ||||||
| 				path( | 				path( | ||||||
| 		'soustredeni/<int:soustredeni>/stvrzenky.pdf', | 					'stvrzenky.pdf', | ||||||
| 					org_required(views.soustredeniStvrzenkyView), | 					org_required(views.soustredeniStvrzenkyView), | ||||||
| 					name='soustredeni_ucastnici_stvrzenky' | 					name='soustredeni_ucastnici_stvrzenky' | ||||||
| 				), | 				), | ||||||
| 				path( | 				path( | ||||||
| 		'soustredeni/<int:soustredeni>/obalky.pdf', | 					'obalky.pdf', | ||||||
| 					org_required(views.soustredeniObalkyView), | 					org_required(views.soustredeniObalkyView), | ||||||
| 					name='seminar_soustredeni_obalky' | 					name='seminar_soustredeni_obalky' | ||||||
| 				), | 				), | ||||||
| 				path( | 				path( | ||||||
| 		'soustredeni/<int:pk>/abstrakty', | 					'abstrakty', | ||||||
| 					org_required(views.SoustredeniAbstraktyView.as_view()), | 					org_required(views.SoustredeniAbstraktyView.as_view()), | ||||||
| 					name='seminar_soustredeni_abstrakty' | 					name='seminar_soustredeni_abstrakty' | ||||||
| 				), | 				), | ||||||
| 				path( | 				path( | ||||||
| 		'soustredeni/<int:soustredeni>/fotogalerie/', | 					'fotogalerie/', | ||||||
| 					include('galerie.urls') | 					include('galerie.urls') | ||||||
| 				), | 				), | ||||||
|  | 			] | ||||||
|  | 		) | ||||||
|  | 	) | ||||||
| ] | ] | ||||||
|  |  | ||||||
|  | @ -1,9 +1,8 @@ | ||||||
| from django.shortcuts import get_object_or_404, render | from django.shortcuts import get_object_or_404, render | ||||||
| from django.http import HttpResponse | from django.http import HttpResponse | ||||||
| from django.views import generic | from django.views import generic | ||||||
| from django.conf import settings |  | ||||||
| from django.contrib.staticfiles.finders import find | from django.contrib.staticfiles.finders import find | ||||||
| from seminar.models import Soustredeni, Resitel, Soustredeni_Ucastnici, Nastaveni # Tohle je stare a chceme se toho zbavit. Pouzivejte s.ToCoChci | 
 | ||||||
| import csv | import csv | ||||||
| import tempfile | import tempfile | ||||||
| import shutil | import shutil | ||||||
|  | @ -13,6 +12,9 @@ import http | ||||||
| 
 | 
 | ||||||
| import personalni.views | import personalni.views | ||||||
| 
 | 
 | ||||||
|  | from .models import Soustredeni, Soustredeni_Ucastnici | ||||||
|  | from various.models import Nastaveni | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| class SoustredeniListView(generic.ListView): | class SoustredeniListView(generic.ListView): | ||||||
| 	model = Soustredeni | 	model = Soustredeni | ||||||
|  | @ -22,7 +24,7 @@ class SoustredeniListView(generic.ListView): | ||||||
| 		if not self.request.user.je_org: | 		if not self.request.user.je_org: | ||||||
| 			return super().get_queryset() | 			return super().get_queryset() | ||||||
| 		return ( | 		return ( | ||||||
| 			Soustredeni.objects | 			super().get_queryset() | ||||||
| 			.prefetch_related( | 			.prefetch_related( | ||||||
| 				"ucastnici", "ucastnici__osoba", | 				"ucastnici", "ucastnici__osoba", | ||||||
| 				"organizatori", "organizatori__osoba", | 				"organizatori", "organizatori__osoba", | ||||||
|  | @ -63,7 +65,7 @@ class SoustredeniUcastniciView(SoustredeniUcastniciBaseView): | ||||||
| 
 | 
 | ||||||
| def soustredeniUcastniciExportView(request, soustredeni): | def soustredeniUcastniciExportView(request, soustredeni): | ||||||
| 	soustredeni = get_object_or_404(Soustredeni, id=soustredeni) | 	soustredeni = get_object_or_404(Soustredeni, id=soustredeni) | ||||||
| 	ucastnici = Resitel.objects.filter(soustredeni=soustredeni) | 	ucastnici = soustredeni.ucastnici.all() | ||||||
| 	response = HttpResponse(content_type='text/csv') | 	response = HttpResponse(content_type='text/csv') | ||||||
| 	response['Content-Disposition'] = 'attachment; filename="ucastnici.csv"' | 	response['Content-Disposition'] = 'attachment; filename="ucastnici.csv"' | ||||||
| 
 | 
 | ||||||
|  | @ -76,7 +78,7 @@ def soustredeniUcastniciExportView(request, soustredeni): | ||||||
| 
 | 
 | ||||||
| def soustredeniStvrzenkyView(request, soustredeni): | def soustredeniStvrzenkyView(request, soustredeni): | ||||||
| 	soustredeni = get_object_or_404(Soustredeni, id=soustredeni) | 	soustredeni = get_object_or_404(Soustredeni, id=soustredeni) | ||||||
| 	ucastnici = Resitel.objects.filter(soustredeni=soustredeni) | 	ucastnici = soustredeni.ucastnici.all() | ||||||
| 	if ucastnici.count() == 0: | 	if ucastnici.count() == 0: | ||||||
| 		return HttpResponse( | 		return HttpResponse( | ||||||
| 			render(request, 'universal.html', { | 			render(request, 'universal.html', { | ||||||
|  | @ -103,3 +105,4 @@ def soustredeniStvrzenkyView(request, soustredeni): | ||||||
| class SoustredeniAbstraktyView(generic.DetailView): | class SoustredeniAbstraktyView(generic.DetailView): | ||||||
| 	model = Soustredeni | 	model = Soustredeni | ||||||
| 	template_name = 'soustredeni/export_do_abstraktu.html' | 	template_name = 'soustredeni/export_do_abstraktu.html' | ||||||
|  | 	pk_url_kwarg = 'soustredeni' # v url bude <int:soustredeni> místo defaultně požadovaného <int:pk> | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue
	
	
… tzn. převážně informace o účastech orgů a účastníků a o tom, kdo byl na které konfeře. A myslím, že tuhle věc asi víc rozšiřovat nechceme.