From b094347b7cc628799cd8bb5ba007df08522a8650 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Fri, 2 Aug 2024 18:34:05 +0200 Subject: [PATCH 01/13] =?UTF-8?q?Vyta=C5=BEen=C3=AD=20prefixu=20'soustrede?= =?UTF-8?q?ni/'=20do=20aplikace=20soustredeni?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/urls.py | 2 +- soustredeni/urls.py | 15 ++++++++------- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/mamweb/urls.py b/mamweb/urls.py index cdd7df09..25910d33 100644 --- a/mamweb/urls.py +++ b/mamweb/urls.py @@ -43,7 +43,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/urls.py b/soustredeni/urls.py index 2e5a6136..4d07f660 100644 --- a/soustredeni/urls.py +++ b/soustredeni/urls.py @@ -2,39 +2,40 @@ from django.urls import path, include from . import views from seminar.utils import org_required +# prefix = 'soustredeni/' urlpatterns = [ path( - 'soustredeni/probehlo/', + 'probehlo/', views.SoustredeniListView.as_view(), name='seminar_seznam_soustredeni' ), path( - 'soustredeni//seznam_ucastniku', + '/seznam_ucastniku', org_required(views.SoustredeniUcastniciView.as_view()), name='soustredeni_ucastnici' ), path( - 'soustredeni//maily_ucastniku', + '/maily_ucastniku', org_required(views.SoustredeniMailyUcastnikuView.as_view()), name='maily_ucastniku' ), path( - 'soustredeni//export_ucastniku', + '/export_ucastniku', org_required(views.soustredeniUcastniciExportView), name='soustredeni_ucastnici_export' ), path( - 'soustredeni//stvrzenky.pdf', + '/stvrzenky.pdf', org_required(views.soustredeniStvrzenkyView), name='soustredeni_ucastnici_stvrzenky' ), path( - 'soustredeni//obalky.pdf', + '/obalky.pdf', org_required(views.soustredeniObalkyView), name='seminar_soustredeni_obalky' ), path( - 'soustredeni//fotogalerie/', + '/fotogalerie/', include('galerie.urls') ), ] From 0fa2fb8e2bd8eb7c9ef34d135e9deb501bd05c64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Fri, 2 Aug 2024 19:01:50 +0200 Subject: [PATCH 02/13] =?UTF-8?q?=C3=9Aprava=20import=C5=AF=20v=20soustred?= =?UTF-8?q?eni?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- soustredeni/views.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/soustredeni/views.py b/soustredeni/views.py index f150b6b8..6ec8c36c 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,10 @@ import http from seminar.views import obalkyView +from .models import Soustredeni, Soustredeni_Ucastnici +from personalni.models import Resitel +from various.models import Nastaveni + class SoustredeniListView(generic.ListView): model = Soustredeni From ddda7052ae1b619c47aef27fbacd18a4a11e17c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Fri, 2 Aug 2024 19:17:11 +0200 Subject: [PATCH 03/13] =?UTF-8?q?Zbaven=C3=AD=20se=20zbyte=C4=8Dn=C3=A9ho?= =?UTF-8?q?=20importu=20modelu=20Resitel?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- soustredeni/views.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/soustredeni/views.py b/soustredeni/views.py index 6ec8c36c..2022adba 100644 --- a/soustredeni/views.py +++ b/soustredeni/views.py @@ -13,7 +13,6 @@ import http from seminar.views import obalkyView from .models import Soustredeni, Soustredeni_Ucastnici -from personalni.models import Resitel from various.models import Nastaveni @@ -66,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"' @@ -79,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', { From d1db1b952fba9aabdd1cbf83d5924e12553fe82c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Fri, 2 Aug 2024 19:17:49 +0200 Subject: [PATCH 04/13] Obsah modulu soustredeni --- soustredeni/__init__.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/soustredeni/__init__.py b/soustredeni/__init__.py index a9f1f263..88d1678e 100644 --- a/soustredeni/__init__.py +++ b/soustredeni/__init__.py @@ -1,5 +1,3 @@ """ -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í. +""" From 036af434c643620122b1e148e3fa6e51bf779614 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Fri, 2 Aug 2024 19:25:25 +0200 Subject: [PATCH 05/13] =?UTF-8?q?Odd=C4=9Blen=C3=AD=20urlpatterns=20konkr?= =?UTF-8?q?=C3=A9tn=C3=ADho=20sousu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- soustredeni/urls.py | 66 +++++++++++++++++++++++++-------------------- 1 file changed, 37 insertions(+), 29 deletions(-) diff --git a/soustredeni/urls.py b/soustredeni/urls.py index 4d07f660..7ae79cdd 100644 --- a/soustredeni/urls.py +++ b/soustredeni/urls.py @@ -2,7 +2,7 @@ from django.urls import path, include from . import views from seminar.utils import org_required -# prefix = 'soustredeni/' +# prefix = soustredeni/ urlpatterns = [ path( 'probehlo/', @@ -10,32 +10,40 @@ urlpatterns = [ name='seminar_seznam_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( - '/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( + 'fotogalerie/', + include('galerie.urls') + ), + ] + ) + ) ] From 62a65af40ed8954fc1966fc72ca23fe10197d755 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Fri, 2 Aug 2024 19:29:13 +0200 Subject: [PATCH 06/13] =?UTF-8?q?Odstran=C4=9Bn=C3=AD=20zbyte=C4=8Dn=C3=A9?= =?UTF-8?q?ho=20importu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- galerie/forms.py | 1 - 1 file changed, 1 deletion(-) diff --git a/galerie/forms.py b/galerie/forms.py index e6666884..2f4e1337 100644 --- a/galerie/forms.py +++ b/galerie/forms.py @@ -1,7 +1,6 @@ #coding: utf-8 from django import forms -from seminar.models import Soustredeni class KomentarForm(forms.Form): komentar = forms.CharField(label = "Komentář:", max_length = 300, required=False) From 27beb3415398779fe2c70e4efd42167d50c4573a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Fri, 2 Aug 2024 19:38:06 +0200 Subject: [PATCH 07/13] =?UTF-8?q?Odd=C4=9Blen=C3=AD=20generov=C3=A1n=C3=AD?= =?UTF-8?q?=20testdat=20k=20sous=20v=C4=9Bcem?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/testutils.py | 52 +++-------------------------------- soustredeni/testutils.py | 59 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 63 insertions(+), 48 deletions(-) create mode 100644 soustredeni/testutils.py diff --git a/seminar/testutils.py b/seminar/testutils.py index 0d90456a..b3888fa9 100644 --- a/seminar/testutils.py +++ b/seminar/testutils.py @@ -12,13 +12,15 @@ import unidecode import logging from korektury.testutils import create_test_pdf -from seminar.models import Skola, Resitel, Rocnik, Cislo, Deadline, Problem, Reseni, PrilohaReseni, Nastaveni, Soustredeni, Soustredeni_Ucastnici, Soustredeni_Organizatori, Osoba, Organizator, Prijemce, Tema, Uloha, Konfera, TextNode, UlohaVzorakNode, RocnikNode, CisloNode, TemaVCisleNode, Text, Hodnoceni, UlohaZadaniNode, Novinky, TreeNode +from seminar.models import Skola, Resitel, Rocnik, Cislo, Deadline, Problem, Reseni, PrilohaReseni, Nastaveni, Osoba, Organizator, Prijemce, Tema, Uloha, TextNode, UlohaVzorakNode, RocnikNode, CisloNode, TemaVCisleNode, Text, Hodnoceni, UlohaZadaniNode, Novinky, TreeNode import seminar.models as m from django.contrib.flatpages.models import FlatPage from django.contrib.sites.models import Site from treenode.treelib import all_children, insert_last_child, all_children_of_type, create_node_after +from soustredeni.testutils import gen_soustredeni, gen_konfery + User = django.contrib.auth.get_user_model() zlinska = None # tohle bude speciální škola, které později dodáme kontaktní osobu @@ -354,30 +356,6 @@ def gen_ulohy_do_cisla(rnd, organizatori, resitele, rocnik_cisla, rocniky, size) return -def gen_soustredeni(rnd, resitele, organizatori): - logger.info('Generuji soustředění...') - - soustredeni = [] - for _ in range(1, 10): #FIXME Tu range si změňte jak chcete, nevím, co přesně znamená size (asi Anet?) - datum_zacatku=datetime.date(rnd.randint(2000, 2020), rnd.randint(1, 12), rnd.randint(1, 28)) - working_sous = Soustredeni.objects.create( - rocnik=Rocnik.objects.order_by('?').first(), - verejne_db=rnd.choice([True, False]), - misto=rnd.choice(['Kremrolovice', 'Indiánov', 'U zmzliny', 'Vafláreň', 'Větrník', 'Horní Rakvička', 'Dolní cheesecake']), - typ=rnd.choice(['jarni', 'podzimni', 'vikend']), - datum_zacatku=datum_zacatku, - datum_konce=datum_zacatku + datetime.timedelta(days=7)) - ucastnici = rnd.sample(resitele, min(len(resitele), 20)) - working_sous.ucastnici.set(ucastnici) - #for res in rnd.sample(resitele, min(len(resitele), 20)): - # Soustredeni_Ucastnici.objects.create(resitel=res, soutredeni=working_sous) - orgove_vyber = rnd.sample(organizatori, min(len(organizatori), 20)) - working_sous.organizatori.set(orgove_vyber) - #for org in rnd.sample(organizatori, min(len(organizatori), 20)): - # Soustredeni_Organizatori.objects.create(organizator=org, soutredeni=working_sous) - working_sous.save() - soustredeni.append(working_sous) - return soustredeni def gen_rocniky(last_rocnik, size): logger.info('Generuji ročníky (size={})...'.format(size)) @@ -392,28 +370,6 @@ def gen_rocniky(last_rocnik, size): rocniky.append(rocnik) return rocniky -def gen_konfery(size, rnd, organizatori, resitele, soustredeni): - logger.info('Generuji konfery (size={})...'.format(size)) - - konfery = [] - for _ in range(1, size): #FIXME Tu range si změňte jak chcete, nevím, co přesně znamená size (asi Anet?) - # Anet: size je parametr udávající velikost testovacích dat a dá se pomocí ní škálovat, - # kolik dat se nageneruje - konfera = Konfera.objects.create( - nazev=rnd.choice(['Pozorování', 'Zkoumání', 'Modelování', 'Počítání', 'Zkoušení']) + rnd.choice([' vlastností', ' jevů', ' charakteristik']) + rnd.choice([' vektorových prostorů', ' kinetické terorie látek', ' molekulární biologie', ' syntentických stromů']), - anotace=lorem.paragraph(), - abstrakt=lorem.paragraph(), - garant=rnd.choice(organizatori), - soustredeni=rnd.choice(soustredeni), - typ_prezentace=rnd.choice(['veletrh', 'prezentace'])) - ucastnici_sous = list(konfera.soustredeni.ucastnici.all()) - ucastnici = rnd.sample(ucastnici_sous, min(len(ucastnici_sous), rnd.randint(3, 6))) - konfera.ucastnici.set(ucastnici) - #for res in rnd.sample(ucastnici, min(len(ucastnici), rnd.randint(3, 6))): - # Konfery_Ucastnici.objects.create(resitel=res, konfera=konfera) - konfera.save() - konfery.append(konfera) - return konfery def gen_cisla(rnd, rocniky): logger.info('Generuji čísla...') @@ -883,7 +839,7 @@ def create_test_data(size = 6, rnd = None): gen_ulohy_k_tematum(rnd, rocniky, rocnik_cisla, rocnik_temata, organizatori, resitele) #generování soustředění - soustredeni = gen_soustredeni(rnd, resitele, organizatori) + soustredeni = gen_soustredeni(size, rnd, resitele, organizatori) #generování konfer konfery = gen_konfery(size, rnd, organizatori, resitele, soustredeni) diff --git a/soustredeni/testutils.py b/soustredeni/testutils.py new file mode 100644 index 00000000..12a48378 --- /dev/null +++ b/soustredeni/testutils.py @@ -0,0 +1,59 @@ +import logging +import datetime + +import lorem + +from .models import Soustredeni, Konfera +import seminar.models.tvorba as am + +logger = logging.getLogger(__name__) + + +def gen_soustredeni(size, rnd, resitele, organizatori): + logger.info('Generuji soustředění...') + + soustredeni = [] + for _ in range(1, 10): # FIXME Tu range si změňte jak chcete, nevím, co přesně znamená size (asi Anet?) + datum_zacatku = datetime.date(rnd.randint(2000, 2020), rnd.randint(1, 12), rnd.randint(1, 28)) + working_sous = Soustredeni.objects.create( + rocnik=am.Rocnik.objects.order_by('?').first(), + verejne_db=rnd.choice([True, False]), + misto=rnd.choice(['Kremrolovice', 'Indiánov', 'U zmzliny', 'Vafláreň', 'Větrník', 'Horní Rakvička', 'Dolní cheesecake']), + typ=rnd.choice(['jarni', 'podzimni', 'vikend']), + datum_zacatku=datum_zacatku, + datum_konce=datum_zacatku + datetime.timedelta(days=7)) + ucastnici = rnd.sample(resitele, min(len(resitele), 20)) + working_sous.ucastnici.set(ucastnici) + # for res in rnd.sample(resitele, min(len(resitele), 20)): + # Soustredeni_Ucastnici.objects.create(resitel=res, soutredeni=working_sous) + orgove_vyber = rnd.sample(organizatori, min(len(organizatori), 20)) + working_sous.organizatori.set(orgove_vyber) + # for org in rnd.sample(organizatori, min(len(organizatori), 20)): + # Soustredeni_Organizatori.objects.create(organizator=org, soutredeni=working_sous) + working_sous.save() + soustredeni.append(working_sous) + return soustredeni + + +def gen_konfery(size, rnd, organizatori, resitele, soustredeni): + logger.info('Generuji konfery (size={})...'.format(size)) + + konfery = [] + for _ in range(1, size): # FIXME Tu range si změňte jak chcete, nevím, co přesně znamená size (asi Anet?) + # Anet: size je parametr udávající velikost testovacích dat a dá se pomocí ní škálovat, + # kolik dat se nageneruje + konfera = Konfera.objects.create( + nazev=rnd.choice(['Pozorování', 'Zkoumání', 'Modelování', 'Počítání', 'Zkoušení']) + rnd.choice([' vlastností', ' jevů', ' charakteristik']) + rnd.choice([' vektorových prostorů', ' kinetické terorie látek', ' molekulární biologie', ' syntentických stromů']), + anotace=lorem.paragraph(), + abstrakt=lorem.paragraph(), + garant=rnd.choice(organizatori), + soustredeni=rnd.choice(soustredeni), + typ_prezentace=rnd.choice(['veletrh', 'prezentace'])) + ucastnici_sous = list(konfera.soustredeni.ucastnici.all()) + ucastnici = rnd.sample(ucastnici_sous, min(len(ucastnici_sous), rnd.randint(3, 6))) + konfera.ucastnici.set(ucastnici) + # for res in rnd.sample(ucastnici, min(len(ucastnici), rnd.randint(3, 6))): + # Konfery_Ucastnici.objects.create(resitel=res, konfera=konfera) + konfera.save() + konfery.append(konfera) + return konfery From a6220e8d50b12d61618f164a9582ac29b3222d02 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Fri, 2 Aug 2024 20:05:19 +0200 Subject: [PATCH 08/13] =?UTF-8?q?Typov=C3=A9=20anotace=20a=20dal=C5=A1?= =?UTF-8?q?=C3=AD=20detaily=20v=20generov=C3=A1n=C3=AD=20testdat=20k=20sou?= =?UTF-8?q?stredeni?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/testutils.py | 4 ++-- soustredeni/testutils.py | 22 +++++++++++++++++++--- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/seminar/testutils.py b/seminar/testutils.py index b3888fa9..2de60884 100644 --- a/seminar/testutils.py +++ b/seminar/testutils.py @@ -839,10 +839,10 @@ def create_test_data(size = 6, rnd = None): gen_ulohy_k_tematum(rnd, rocniky, rocnik_cisla, rocnik_temata, organizatori, resitele) #generování soustředění - soustredeni = gen_soustredeni(size, rnd, resitele, organizatori) + soustredeni = gen_soustredeni(size, resitele, organizatori, rnd=rnd) #generování konfer - konfery = gen_konfery(size, rnd, organizatori, resitele, soustredeni) + konfery = gen_konfery(size, organizatori, resitele, soustredeni, rnd=rnd) # vytvoreni pdf ke korekturam create_test_pdf(rnd, organizatori) diff --git a/soustredeni/testutils.py b/soustredeni/testutils.py index 12a48378..51bbb135 100644 --- a/soustredeni/testutils.py +++ b/soustredeni/testutils.py @@ -1,16 +1,25 @@ import logging import datetime +import random +from typing import Sequence import lorem from .models import Soustredeni, Konfera import seminar.models.tvorba as am +import personalni.models as pm logger = logging.getLogger(__name__) -def gen_soustredeni(size, rnd, resitele, organizatori): - logger.info('Generuji soustředění...') +def gen_soustredeni( + size: int, + resitele: Sequence[pm.Resitel], + organizatori: Sequence[pm.Organizator], + rnd: random.Random = None, +) -> Sequence[Soustredeni]: + logger.info('Generuji soustředění (size={})...') + rnd = rnd or random.Random(x=42) soustredeni = [] for _ in range(1, 10): # FIXME Tu range si změňte jak chcete, nevím, co přesně znamená size (asi Anet?) @@ -35,8 +44,15 @@ def gen_soustredeni(size, rnd, resitele, organizatori): return soustredeni -def gen_konfery(size, rnd, organizatori, resitele, soustredeni): +def gen_konfery( + size: int, + organizatori: Sequence[pm.Organizator], + resitele: Sequence[pm.Resitel], + soustredeni: Sequence[Soustredeni], + rnd: random.Random = None, +) -> Sequence[Konfera]: logger.info('Generuji konfery (size={})...'.format(size)) + rnd = rnd or random.Random(x=42) konfery = [] for _ in range(1, size): # FIXME Tu range si změňte jak chcete, nevím, co přesně znamená size (asi Anet?) From b44bdadb0a4060ac61a8b865868efdb28721d208 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Fri, 2 Aug 2024 20:15:02 +0200 Subject: [PATCH 09/13] =?UTF-8?q?Odstran=C4=9Bn=20zakomentovan=C3=BD=20zby?= =?UTF-8?q?te=C4=8Dn=C4=9B=20slo=C5=BEit=C3=BD=20k=C3=B3d?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- soustredeni/testutils.py | 6 ------ 1 file changed, 6 deletions(-) diff --git a/soustredeni/testutils.py b/soustredeni/testutils.py index 51bbb135..6e406530 100644 --- a/soustredeni/testutils.py +++ b/soustredeni/testutils.py @@ -33,12 +33,8 @@ def gen_soustredeni( datum_konce=datum_zacatku + datetime.timedelta(days=7)) ucastnici = rnd.sample(resitele, min(len(resitele), 20)) working_sous.ucastnici.set(ucastnici) - # for res in rnd.sample(resitele, min(len(resitele), 20)): - # Soustredeni_Ucastnici.objects.create(resitel=res, soutredeni=working_sous) orgove_vyber = rnd.sample(organizatori, min(len(organizatori), 20)) working_sous.organizatori.set(orgove_vyber) - # for org in rnd.sample(organizatori, min(len(organizatori), 20)): - # Soustredeni_Organizatori.objects.create(organizator=org, soutredeni=working_sous) working_sous.save() soustredeni.append(working_sous) return soustredeni @@ -68,8 +64,6 @@ def gen_konfery( ucastnici_sous = list(konfera.soustredeni.ucastnici.all()) ucastnici = rnd.sample(ucastnici_sous, min(len(ucastnici_sous), rnd.randint(3, 6))) konfera.ucastnici.set(ucastnici) - # for res in rnd.sample(ucastnici, min(len(ucastnici), rnd.randint(3, 6))): - # Konfery_Ucastnici.objects.create(resitel=res, konfera=konfera) konfera.save() konfery.append(konfera) return konfery From ccf3ec07f7865ecace408d4d1ea4f18bb8b980fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Fri, 2 Aug 2024 20:17:31 +0200 Subject: [PATCH 10/13] =?UTF-8?q?Generov=C3=A1n=C3=AD=20konfer=20s=20konkr?= =?UTF-8?q?=C3=A9tn=C3=ADmi=20=C5=99e=C5=A1iteli?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/testutils.py | 2 +- soustredeni/testutils.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/seminar/testutils.py b/seminar/testutils.py index 2de60884..ea6e0125 100644 --- a/seminar/testutils.py +++ b/seminar/testutils.py @@ -842,7 +842,7 @@ def create_test_data(size = 6, rnd = None): soustredeni = gen_soustredeni(size, resitele, organizatori, rnd=rnd) #generování konfer - konfery = gen_konfery(size, organizatori, resitele, soustredeni, rnd=rnd) + konfery = gen_konfery(size, organizatori, soustredeni, rnd=rnd) # vytvoreni pdf ke korekturam create_test_pdf(rnd, organizatori) diff --git a/soustredeni/testutils.py b/soustredeni/testutils.py index 6e406530..52e81d1c 100644 --- a/soustredeni/testutils.py +++ b/soustredeni/testutils.py @@ -43,8 +43,8 @@ def gen_soustredeni( def gen_konfery( size: int, organizatori: Sequence[pm.Organizator], - resitele: Sequence[pm.Resitel], soustredeni: Sequence[Soustredeni], + resitele: Sequence[pm.Resitel] = None, rnd: random.Random = None, ) -> Sequence[Konfera]: logger.info('Generuji konfery (size={})...'.format(size)) @@ -61,7 +61,7 @@ def gen_konfery( garant=rnd.choice(organizatori), soustredeni=rnd.choice(soustredeni), typ_prezentace=rnd.choice(['veletrh', 'prezentace'])) - ucastnici_sous = list(konfera.soustredeni.ucastnici.all()) + ucastnici_sous = resitele if resitele else list(konfera.soustredeni.ucastnici.all()) ucastnici = rnd.sample(ucastnici_sous, min(len(ucastnici_sous), rnd.randint(3, 6))) konfera.ucastnici.set(ucastnici) konfera.save() From 4a3681b1a6818171f078e778a398db8a6e16e6bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Fri, 2 Aug 2024 20:32:07 +0200 Subject: [PATCH 11/13] Drobnost --- soustredeni/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/soustredeni/views.py b/soustredeni/views.py index 2022adba..a0e3fe13 100644 --- a/soustredeni/views.py +++ b/soustredeni/views.py @@ -24,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", From d5d55d76a9bd9fbc528a7a13920bca0adff61f83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Tue, 22 Oct 2024 21:57:01 +0200 Subject: [PATCH 12/13] =?UTF-8?q?Lep=C5=A1=C3=AD=20koment=C3=A1=C5=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- soustredeni/__init__.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/soustredeni/__init__.py b/soustredeni/__init__.py index 88d1678e..94eca4f4 100644 --- a/soustredeni/__init__.py +++ b/soustredeni/__init__.py @@ -1,3 +1,4 @@ """ -Obsahuje vše (až na přednášky a galerie) 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. """ From 3db6231a77d89bb15407440376fa0052b97baa58 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Tue, 22 Oct 2024 22:11:59 +0200 Subject: [PATCH 13/13] =?UTF-8?q?N=C3=A1zev=20id=20v=20url?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- soustredeni/views.py | 1 + 1 file changed, 1 insertion(+) diff --git a/soustredeni/views.py b/soustredeni/views.py index 2f296b60..67a0305f 100644 --- a/soustredeni/views.py +++ b/soustredeni/views.py @@ -105,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