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',
|
||||
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')
|
||||
),
|
||||
]
|
||||
)
|
||||
)
|
||||
]
|
||||
|
|
|
@ -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