Oddělení sousových věcí #56

Merged
zelvuska merged 15 commits from split_sous into master 1 week ago
  1. 1
      galerie/forms.py
  2. 2
      mamweb/urls.py
  3. 7
      soustredeni/__init__.py
  4. 77
      soustredeni/urls.py
  5. 13
      soustredeni/views.py

1
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)

2
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)

7
soustredeni/__init__.py

@ -1,5 +1,4 @@
"""
Obsahuje vše ( na přednášky) ohledně soustředění.
TODO stvrzenky?
"""
Obsahuje vše ( 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.
"""

77
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/<int:soustredeni>/seznam_ucastniku',
org_required(views.SoustredeniUcastniciView.as_view()),
name='soustredeni_ucastnici'
),
path(
'soustredeni/<int:soustredeni>/maily_ucastniku',
org_required(views.SoustredeniMailyUcastnikuView.as_view()),
name='maily_ucastniku'
),
path(
'soustredeni/<int:soustredeni>/export_ucastniku',
org_required(views.soustredeniUcastniciExportView),
name='soustredeni_ucastnici_export'
),
path(
'soustredeni/<int:soustredeni>/stvrzenky.pdf',
org_required(views.soustredeniStvrzenkyView),
name='soustredeni_ucastnici_stvrzenky'
),
path(
'soustredeni/<int:soustredeni>/obalky.pdf',
org_required(views.soustredeniObalkyView),
name='seminar_soustredeni_obalky'
),
path(
'soustredeni/<int:pk>/abstrakty',
org_required(views.SoustredeniAbstraktyView.as_view()),
name='seminar_soustredeni_abstrakty'
),
path(
'soustredeni/<int:soustredeni>/fotogalerie/',
include('galerie.urls')
),
'<int:soustredeni>/',
include(
# prefix = 'soustredeni/<int: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')
),
]
)
)
]

13
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 <int:soustredeni> místo defaultně požadovaného <int:pk>

Loading…
Cancel
Save