diff --git a/galerie/forms.py b/galerie/forms.py index e27b53fb..81fffc8a 100644 --- a/galerie/forms.py +++ b/galerie/forms.py @@ -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) diff --git a/mamweb/urls.py b/mamweb/urls.py index 4152ae80..42761c1f 100644 --- a/mamweb/urls.py +++ b/mamweb/urls.py @@ -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) diff --git a/soustredeni/__init__.py b/soustredeni/__init__.py index a9f1f263..94eca4f4 100644 --- a/soustredeni/__init__.py +++ b/soustredeni/__init__.py @@ -1,5 +1,4 @@ """ -Obsahuje vše (až na přednášky) ohledně soustředění. - -TODO stvrzenky? -""" \ No newline at end of file +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. +""" diff --git a/soustredeni/urls.py b/soustredeni/urls.py index c961906a..0daae321 100644 --- a/soustredeni/urls.py +++ b/soustredeni/urls.py @@ -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//seznam_ucastniku', - org_required(views.SoustredeniUcastniciView.as_view()), - name='soustredeni_ucastnici' - ), - path( - 'soustredeni//maily_ucastniku', - org_required(views.SoustredeniMailyUcastnikuView.as_view()), - name='maily_ucastniku' - ), - path( - 'soustredeni//export_ucastniku', - org_required(views.soustredeniUcastniciExportView), - name='soustredeni_ucastnici_export' - ), - path( - 'soustredeni//stvrzenky.pdf', - org_required(views.soustredeniStvrzenkyView), - name='soustredeni_ucastnici_stvrzenky' - ), - path( - 'soustredeni//obalky.pdf', - org_required(views.soustredeniObalkyView), - name='seminar_soustredeni_obalky' - ), - path( - 'soustredeni//abstrakty', - org_required(views.SoustredeniAbstraktyView.as_view()), - name='seminar_soustredeni_abstrakty' - ), - path( - 'soustredeni//fotogalerie/', - include('galerie.urls') - ), + '/', + include( + # prefix = 'soustredeni//' + [ + path( + 'seznam_ucastniku', + org_required(views.SoustredeniUcastniciView.as_view()), + name='soustredeni_ucastnici' + ), + path( + 'maily_ucastniku', + org_required(views.SoustredeniMailyUcastnikuView.as_view()), + name='maily_ucastniku' + ), + path( + 'export_ucastniku', + org_required(views.soustredeniUcastniciExportView), + name='soustredeni_ucastnici_export' + ), + path( + 'stvrzenky.pdf', + org_required(views.soustredeniStvrzenkyView), + name='soustredeni_ucastnici_stvrzenky' + ), + path( + 'obalky.pdf', + org_required(views.soustredeniObalkyView), + name='seminar_soustredeni_obalky' + ), + path( + 'abstrakty', + org_required(views.SoustredeniAbstraktyView.as_view()), + name='seminar_soustredeni_abstrakty' + ), + path( + 'fotogalerie/', + include('galerie.urls') + ), + ] + ) + ) ] diff --git a/soustredeni/views.py b/soustredeni/views.py index 5fc3bbc0..67a0305f 100644 --- a/soustredeni/views.py +++ b/soustredeni/views.py @@ -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 místo defaultně požadovaného