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 seminar.models import Soustredeni | ||||
| 
 | ||||
| class KomentarForm(forms.Form): | ||||
| 	komentar = forms.CharField(label = "Komentář:", max_length = 300, required=False) | ||||
|  |  | |||
|  | @ -30,7 +30,7 @@ urlpatterns = [ | |||
| 	path('', include('prednasky.urls')), | ||||
| 
 | ||||
| 	# Soustredkova aplikace (ma vlastni podadresare) | ||||
| 	path('', include('soustredeni.urls')), | ||||
| 	path('soustredeni/', include('soustredeni.urls')), | ||||
| 
 | ||||
| 	# Personalni aplikace (ma vlastni podadresare) | ||||
| 	# (profil, osobní údaje, ..., ne autentizace, viz dále) | ||||
|  |  | |||
|  | @ -1,5 +1,4 @@ | |||
| """ | ||||
| Obsahuje vše (až na přednášky) ohledně soustředění. | ||||
| 
 | ||||
| TODO stvrzenky? | ||||
| 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. | ||||
| """ | ||||
|  | @ -2,44 +2,53 @@ from django.urls import path, include | |||
| from . import views | ||||
| from personalni.utils import org_required | ||||
| 
 | ||||
| # prefix = soustredeni/ | ||||
| urlpatterns = [ | ||||
| 	path( | ||||
| 		'soustredeni/probehlo/', | ||||
| 		'probehlo/', | ||||
| 		views.SoustredeniListView.as_view(), | ||||
| 		name='seminar_seznam_soustredeni' | ||||
| 	), | ||||
| 	path( | ||||
| 		'soustredeni/<int:soustredeni>/seznam_ucastniku', | ||||
| 		'<int:soustredeni>/', | ||||
| 		include( | ||||
| 			# prefix = 'soustredeni/<int:soustredeni>/' | ||||
| 			[ | ||||
| 				path( | ||||
| 					'seznam_ucastniku', | ||||
| 					org_required(views.SoustredeniUcastniciView.as_view()), | ||||
| 					name='soustredeni_ucastnici' | ||||
| 				), | ||||
| 				path( | ||||
| 		'soustredeni/<int:soustredeni>/maily_ucastniku', | ||||
| 					'maily_ucastniku', | ||||
| 					org_required(views.SoustredeniMailyUcastnikuView.as_view()), | ||||
| 					name='maily_ucastniku' | ||||
| 				), | ||||
| 				path( | ||||
| 		'soustredeni/<int:soustredeni>/export_ucastniku', | ||||
| 					'export_ucastniku', | ||||
| 					org_required(views.soustredeniUcastniciExportView), | ||||
| 					name='soustredeni_ucastnici_export' | ||||
| 				), | ||||
| 				path( | ||||
| 		'soustredeni/<int:soustredeni>/stvrzenky.pdf', | ||||
| 					'stvrzenky.pdf', | ||||
| 					org_required(views.soustredeniStvrzenkyView), | ||||
| 					name='soustredeni_ucastnici_stvrzenky' | ||||
| 				), | ||||
| 				path( | ||||
| 		'soustredeni/<int:soustredeni>/obalky.pdf', | ||||
| 					'obalky.pdf', | ||||
| 					org_required(views.soustredeniObalkyView), | ||||
| 					name='seminar_soustredeni_obalky' | ||||
| 				), | ||||
| 				path( | ||||
| 		'soustredeni/<int:pk>/abstrakty', | ||||
| 					'abstrakty', | ||||
| 					org_required(views.SoustredeniAbstraktyView.as_view()), | ||||
| 					name='seminar_soustredeni_abstrakty' | ||||
| 				), | ||||
| 				path( | ||||
| 		'soustredeni/<int:soustredeni>/fotogalerie/', | ||||
| 					'fotogalerie/', | ||||
| 					include('galerie.urls') | ||||
| 				), | ||||
| 			] | ||||
| 		) | ||||
| 	) | ||||
| ] | ||||
|  |  | |||
|  | @ -1,9 +1,8 @@ | |||
| from django.shortcuts import get_object_or_404, render | ||||
| from django.http import HttpResponse | ||||
| from django.views import generic | ||||
| from django.conf import settings | ||||
| 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 tempfile | ||||
| import shutil | ||||
|  | @ -13,6 +12,9 @@ import http | |||
| 
 | ||||
| import personalni.views | ||||
| 
 | ||||
| from .models import Soustredeni, Soustredeni_Ucastnici | ||||
| from various.models import Nastaveni | ||||
| 
 | ||||
| 
 | ||||
| class SoustredeniListView(generic.ListView): | ||||
| 	model = Soustredeni | ||||
|  | @ -22,7 +24,7 @@ class SoustredeniListView(generic.ListView): | |||
| 		if not self.request.user.je_org: | ||||
| 			return super().get_queryset() | ||||
| 		return ( | ||||
| 			Soustredeni.objects | ||||
| 			super().get_queryset() | ||||
| 			.prefetch_related( | ||||
| 				"ucastnici", "ucastnici__osoba", | ||||
| 				"organizatori", "organizatori__osoba", | ||||
|  | @ -63,7 +65,7 @@ class SoustredeniUcastniciView(SoustredeniUcastniciBaseView): | |||
| 
 | ||||
| def soustredeniUcastniciExportView(request, 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['Content-Disposition'] = 'attachment; filename="ucastnici.csv"' | ||||
| 
 | ||||
|  | @ -76,7 +78,7 @@ def soustredeniUcastniciExportView(request, soustredeni): | |||
| 
 | ||||
| def soustredeniStvrzenkyView(request, soustredeni): | ||||
| 	soustredeni = get_object_or_404(Soustredeni, id=soustredeni) | ||||
| 	ucastnici = Resitel.objects.filter(soustredeni=soustredeni) | ||||
| 	ucastnici = soustredeni.ucastnici.all() | ||||
| 	if ucastnici.count() == 0: | ||||
| 		return HttpResponse( | ||||
| 			render(request, 'universal.html', { | ||||
|  | @ -103,3 +105,4 @@ def soustredeniStvrzenkyView(request, soustredeni): | |||
| class SoustredeniAbstraktyView(generic.DetailView): | ||||
| 	model = Soustredeni | ||||
| 	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.