Oddělení generování testdat k sous věcem
This commit is contained in:
parent
62a65af40e
commit
27beb34153
2 changed files with 63 additions and 48 deletions
|
@ -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)
|
||||
|
|
59
soustredeni/testutils.py
Normal file
59
soustredeni/testutils.py
Normal file
|
@ -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
|
Loading…
Reference in a new issue