|
@ -17,73 +17,89 @@ zlinska = None # tohle bude speciální škola, které později dodáme kontaktn |
|
|
|
|
|
|
|
|
def gen_osoby(rnd, size): |
|
|
def gen_osoby(rnd, size): |
|
|
jmena_m = ['Aleš', 'Tomáš', 'Martin', 'Jakub', 'Petr', 'Lukáš', 'Cyril', 'Pavel Karel'] |
|
|
jmena_m = ['Aleš', 'Tomáš', 'Martin', 'Jakub', 'Petr', 'Lukáš', 'Cyril', 'Pavel Karel'] |
|
|
jmena_f = ['Eva', 'Karolína', 'Zuzana', 'Sylvie', 'Iva', 'Jana', 'Marie', |
|
|
jmena_f = ['Eva', 'Karolína', 'Zuzana', 'Sylvie', 'Iva', 'Jana', 'Marie', |
|
|
'Marta Iva', 'Shu Shan'] |
|
|
'Marta Iva', 'Shu Shan'] |
|
|
prijmeni_m = ['Novotný', 'Svoboda', 'Pecha', 'Kořen', 'Holan', 'Uhlíř', 'Chytráček', |
|
|
prijmeni_m = ['Novotný', 'Svoboda', 'Pecha', 'Kořen', 'Holan', 'Uhlíř', 'Chytráček', |
|
|
'Pokora', 'Koch', 'Szegedy', 'Rudý', "von Neumann", "d'Este"] |
|
|
'Pokora', 'Koch', 'Szegedy', 'Rudý', "von Neumann", "d'Este"] |
|
|
prijmeni_f = ['Novotná', 'Svobodová', 'Machová', 'Zelená', 'Yu-Xin', 'Mlsná', 'Dubná', |
|
|
prijmeni_f = ['Novotná', 'Svobodová', 'Machová', 'Zelená', 'Yu-Xin', 'Mlsná', 'Dubná', |
|
|
'Mrkvová', 'Suchá', 'Lovelace', 'Holcová', 'Rui'] |
|
|
'Mrkvová', 'Suchá', 'Lovelace', 'Holcová', 'Rui', "Nováčková Tydlitátová"] |
|
|
prezdivky = ['Kaki', 'Hurdur', 'Maracuja', 'Bobbo', "", "", "", "", "", |
|
|
prezdivky = ['Kaki', 'Hurdur', 'Maracuja', 'Bobbo', "", "", "", "", "", |
|
|
"", "", 'Riki', 'Sapa', "", '', '---', 'Koko'] |
|
|
"", "", 'Riki', 'Sapa', "", '', '---', 'Koko'] |
|
|
domain = ['example.com', 'dolujeme.eu', 'mff.cuni.cz', 'strcprstskrzkrk.cz', |
|
|
domain = ['example.com', 'dolujeme.eu', 'mff.cuni.cz', 'strcprstskrzkrk.cz', |
|
|
'british.co.uk', 'splachni.to', 'haha.org'] |
|
|
'british.co.uk', 'splachni.to', 'haha.org'] |
|
|
seznam_ulic = ['Krátká', 'Vlhká', 'Jungmanova', '17. listopadu', '4. října', 'Roztocká', |
|
|
seznam_ulic = ['Krátká', 'Vlhká', 'Jungmanova', '17. listopadu', '4. října', 'Roztocká', |
|
|
'Forstova', 'Generála Františka Janouška', 'Náměstí Války', |
|
|
'Forstova', 'Generála Františka Janouška', 'Náměstí Války', |
|
|
'Svratecké náměstí', 'Zelená lhota', 'Z Plynu', 'K Jezeru', 'U Kocourkova', |
|
|
'Svratecké náměstí', 'Zelená lhota', 'Z Plynu', 'K Jezeru', 'U Kocourkova', |
|
|
'Uštěpačná', 'Ostrorepská', 'Zubří'] |
|
|
'Uštěpačná', 'Ostrorepská', 'Zubří'] |
|
|
seznam_mest = ['Praha', 'Brno', 'Ostrava', 'Horní Jelení', 'Dolní Zábrdovice', 'Prdelkov', |
|
|
seznam_mest = ['Praha', 'Brno', 'Ostrava', 'Horní Jelení', 'Dolní Zábrdovice', 'Prdelkov', |
|
|
'Stará myslivna', 'Kocourkov', 'Šalingrad', 'Medvědí hora', 'Basilej', |
|
|
'Stará myslivna', 'Kocourkov', 'Šalingrad', 'Medvědí hora', 'Basilej', |
|
|
'Unterschiedlich', 'Old York', 'Lancastershire', 'Vóloďháza'] |
|
|
'Unterschiedlich', 'Old York', 'Lancastershire', 'Vóloďháza'] |
|
|
|
|
|
|
|
|
|
|
|
seznam_konicku = ["vařím", "jezdím na kole", "řeším diferenciální rovnice", "koukám z okna", |
|
|
|
|
|
"tancuji", "programuji", "jezdím vlakem", "nedělám nic"] |
|
|
|
|
|
seznam_oboru = ["matematiku", "matematiku", "matematiku", "fyziku", "literaturu", |
|
|
|
|
|
"informatiku", "informatiku", "běhání dokolečka"] |
|
|
|
|
|
|
|
|
osoby = [] |
|
|
osoby = [] |
|
|
# 30 je náhodná konstanta, size je použité na víc místech a |
|
|
# 30 je náhodná konstanta, size je použité na víc místech a |
|
|
# říká, jak velká asi chceme testovací data |
|
|
# říká, jak velká asi chceme testovací data |
|
|
for i in range(30 * size): |
|
|
for i in range(30 * size): |
|
|
pohlavi = rnd.randint(0,1) |
|
|
pohlavi = rnd.randint(0,1) |
|
|
jmeno = rnd.choice([jmena_m, jmena_f][pohlavi]) |
|
|
jmeno = rnd.choice([jmena_m, jmena_f][pohlavi]) |
|
|
prijmeni = rnd.choice([prijmeni_m, prijmeni_f][pohlavi]) |
|
|
prijmeni = rnd.choice([prijmeni_m, prijmeni_f][pohlavi]) |
|
|
prezdivka = rnd.choice(prezdivky) |
|
|
prezdivka = rnd.choice(prezdivky) |
|
|
email = "@".join([unidecode.unidecode(jmeno), rnd.choice(domain)]) |
|
|
email = "@".join([unidecode.unidecode(jmeno), rnd.choice(domain)]) |
|
|
telefon = "".join([str(rnd.choice([k for k in range(10)])) for i in range(9)]) |
|
|
telefon = "".join([str(rnd.choice([k for k in range(10)])) for i in range(9)]) |
|
|
narozeni = datetime.date(rnd.randint(1980, 2020), rnd.randint(1, 12), |
|
|
narozeni = datetime.date(rnd.randint(1980, 2020), rnd.randint(1, 12), |
|
|
rnd.randint(1, 28)) |
|
|
rnd.randint(1, 28)) |
|
|
ulic = rnd.choice(seznam_ulic) |
|
|
ulic = rnd.choice(seznam_ulic) |
|
|
cp = rnd.randint(1, 99) |
|
|
cp = rnd.randint(1, 99) |
|
|
ulice = " ".join([ulic, str(cp)]) |
|
|
ulice = "".join([ulic, str(cp)]) |
|
|
mesto = rnd.choice(seznam_mest) |
|
|
mesto = rnd.choice(seznam_mest) |
|
|
psc = "".join([str(rnd.choice([k for k in range(10)])) for i in range(5)]) |
|
|
psc = "".join([str(rnd.choice([k for k in range(10)])) for i in range(5)]) |
|
|
osoby.append(Osoba.objects.create(jmeno = jmeno, prijmeni = prijmeni, |
|
|
|
|
|
prezdivka = prezdivka, pohlavi_muz = pohlavi, email = email, |
|
|
konicek1 = rnd.choice(seznam_konicku) |
|
|
telefon = telefon, datum_narozeni = narozeni, ulice = ulice, |
|
|
popis_orga = "Ve volném čase ".join(konicek1) |
|
|
mesto = mesto, psc = psc, |
|
|
popis_orga.join(" a kromě toho taky ") |
|
|
datum_registrace = datetime.date(rnd.randint(2019, 2029), |
|
|
konicek2 = rnd.choice(seznam_konicku) |
|
|
|
|
|
popis_orga.join(konicek2) |
|
|
|
|
|
obor = rnd.choice(seznam_oboru) |
|
|
|
|
|
popis_orga.join(" Studuji ") |
|
|
|
|
|
popis_orga.join(obor) |
|
|
|
|
|
popis_orga.join(" a moc mě to baví.") |
|
|
|
|
|
|
|
|
|
|
|
osoby.append(Osoba.objects.create(jmeno = jmeno, prijmeni = prijmeni, |
|
|
|
|
|
prezdivka = prezdivka, pohlavi_muz = pohlavi, email = email, |
|
|
|
|
|
telefon = telefon, datum_narozeni = narozeni, ulice = ulice, |
|
|
|
|
|
mesto = mesto, psc = psc, strucny_popis_organizatora = popis_orga, |
|
|
|
|
|
datum_registrace = datetime.date(rnd.randint(2019, 2029), |
|
|
rnd.randint(1, 12), rnd.randint(1, 28)))) |
|
|
rnd.randint(1, 12), rnd.randint(1, 28)))) |
|
|
#TODO pridat foto male a velke. Jak? |
|
|
#TODO pridat foto male a velke. Jak? |
|
|
# Pavel tvrdí, že to necháme a přidáme až do adminu |
|
|
# Pavel tvrdí, že to necháme a přidáme až do adminu |
|
|
|
|
|
|
|
|
return osoby |
|
|
return osoby |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def gen_skoly(): #TODO někdy to přepsat, aby jich bylo více |
|
|
def gen_skoly(): #TODO někdy to přepsat, aby jich bylo více |
|
|
skoly = [] |
|
|
skoly = [] |
|
|
prvnizs = Skola.objects.create(mesto='Praha', stat='CZ', psc='101 00', |
|
|
prvnizs = Skola.objects.create(mesto='Praha', stat='CZ', psc='101 00', |
|
|
ulice='Krátká 5', nazev='První ZŠ', je_zs=True, je_ss=False) |
|
|
ulice='Krátká 5', nazev='První ZŠ', je_zs=True, je_ss=False) |
|
|
skoly.append(prvnizs) |
|
|
skoly.append(prvnizs) |
|
|
skoly.append(Skola.objects.create(mesto='Praha', stat='CZ', psc='101 00', |
|
|
skoly.append(Skola.objects.create(mesto='Praha', stat='CZ', psc='101 00', |
|
|
ulice='Krátká 5', nazev='První SŠ', je_zs=False, je_ss=True)) |
|
|
ulice='Krátká 5', nazev='První SŠ', je_zs=False, je_ss=True)) |
|
|
skoly.append(Skola.objects.create(mesto='Praha', stat='CZ', psc='102 00', |
|
|
skoly.append(Skola.objects.create(mesto='Praha', stat='CZ', psc='102 00', |
|
|
ulice='Dlouhá 5', nazev='Druhá SŠ', je_zs=False, je_ss=True)) |
|
|
ulice='Dlouhá 5', nazev='Druhá SŠ', je_zs=False, je_ss=True)) |
|
|
skoly.append(Skola.objects.create(mesto='Praha', stat='CZ', psc='103 00', |
|
|
skoly.append(Skola.objects.create(mesto='Praha', stat='CZ', psc='103 00', |
|
|
ulice='Široká 3', nazev='Třetí SŠ a ZŠ', je_zs=True, je_ss=True)) |
|
|
ulice='Široká 3', nazev='Třetí SŠ a ZŠ', je_zs=True, je_ss=True)) |
|
|
skoly.append(Skola.objects.create(mesto='Ostrava', stat='CZ', psc='700 00', |
|
|
skoly.append(Skola.objects.create(mesto='Ostrava', stat='CZ', psc='700 00', |
|
|
ulice='Hluboká 42', nazev='Hutní gympl', je_zs=False, je_ss=True)) |
|
|
ulice='Hluboká 42', nazev='Hutní gympl', je_zs=False, je_ss=True)) |
|
|
skoly.append(Skola.objects.create(mesto='Humenné', stat='SK', psc='012 34', |
|
|
skoly.append(Skola.objects.create(mesto='Humenné', stat='SK', psc='012 34', |
|
|
ulice='Pltká 1', nazev='Sredná škuola', je_zs=False, je_ss=True)) |
|
|
ulice='Pltká 1', nazev='Sredná škuola', je_zs=False, je_ss=True)) |
|
|
global zlinska |
|
|
global zlinska |
|
|
zlinska = Skola.objects.create(mesto = 'Zlín', stat='CZ', psc='76001', |
|
|
zlinska = Skola.objects.create(mesto = 'Zlín', stat='CZ', psc='76001', |
|
|
ulice='náměstí T.G. Masaryka 2734-9', |
|
|
ulice='náměstí T.G. Masaryka 2734-9', |
|
|
nazev='Gymnázium a Střední jazyková škola s právem SJZ', |
|
|
nazev='Gymnázium a Střední jazyková škola s právem SJZ', |
|
|
kratky_nazev="GaSJŠspSJZ", je_zs=True, je_ss=True) |
|
|
kratky_nazev="GaSJŠspSJZ", je_zs=True, je_ss=True) |
|
|
skoly.append(zlinska) |
|
|
skoly.append(zlinska) |
|
|
return skoly |
|
|
return skoly |
|
@ -93,8 +109,8 @@ def gen_resitele(rnd, osoby, skoly): |
|
|
for os in osoby: |
|
|
for os in osoby: |
|
|
rand = rnd.randint(0, 8) |
|
|
rand = rnd.randint(0, 8) |
|
|
if not (rand % 8 == 0): |
|
|
if not (rand % 8 == 0): |
|
|
resitele.append(Resitel.objects.create(osoba=os, skola=rnd.choice(skoly), |
|
|
resitele.append(Resitel.objects.create(osoba=os, skola=rnd.choice(skoly), |
|
|
rok_maturity=rnd.randint(2019, 2029), |
|
|
rok_maturity=rnd.randint(2019, 2029), |
|
|
zasilat=rnd.choice(Resitel.ZASILAT_CHOICES))) |
|
|
zasilat=rnd.choice(Resitel.ZASILAT_CHOICES))) |
|
|
return resitele |
|
|
return resitele |
|
|
|
|
|
|
|
@ -111,20 +127,20 @@ def gen_organizatori(rnd, osoby, last_rocnik, users): |
|
|
if (rand % 8 == 0): |
|
|
if (rand % 8 == 0): |
|
|
pusobnost = rnd.randint(1, last_rocnik) |
|
|
pusobnost = rnd.randint(1, last_rocnik) |
|
|
od = datetime.date(1993 + pusobnost, rnd.randint(1, 12), rnd.randint(1, 28)) |
|
|
od = datetime.date(1993 + pusobnost, rnd.randint(1, 12), rnd.randint(1, 28)) |
|
|
do = datetime.date(od.year + rnd.randint(1, 6), rnd.randint(1, 12), |
|
|
do = datetime.date(od.year + rnd.randint(1, 6), rnd.randint(1, 12), |
|
|
rnd.randint(1, 28)) |
|
|
rnd.randint(1, 28)) |
|
|
#aktualni organizatori jeste nemaji vyplnene organizuje_do |
|
|
#aktualni organizatori jeste nemaji vyplnene organizuje_do |
|
|
if do.year > datetime.datetime.now().year: |
|
|
if do.year > datetime.datetime.now().year: |
|
|
do = None |
|
|
do = None |
|
|
organizatori.append(Organizator.objects.create(osoba=os, |
|
|
organizatori.append(Organizator.objects.create(osoba=os, |
|
|
organizuje_od=od, organizuje_do=do)) |
|
|
organizuje_od=od, organizuje_do=do)) |
|
|
return organizatori |
|
|
return organizatori |
|
|
|
|
|
|
|
|
def gen_ulohy_do_cisla(rnd, organizatori, resitele, rocnik_cisla, rocniky, size): |
|
|
def gen_ulohy_do_cisla(rnd, organizatori, resitele, rocnik_cisla, rocniky, size): |
|
|
# ulohy resene v cisle |
|
|
# ulohy resene v cisle |
|
|
jaka = ["Šachová", "Černá", "Větrná", "Dlouhá", "Křehká", "Rychlá", |
|
|
jaka = ["Šachová", "Černá", "Větrná", "Dlouhá", "Křehká", "Rychlá", |
|
|
"Zákeřná", "Fyzikální"] |
|
|
"Zákeřná", "Fyzikální"] |
|
|
co = ["kostka", "smršť", "díra", "zrada", "toulka", "tyč", |
|
|
co = ["kostka", "smršť", "díra", "zrada", "toulka", "tyč", |
|
|
"úloha", "blecha"] |
|
|
"úloha", "blecha"] |
|
|
sloveso = ["Najděte", "Spočítejte", "Zapište", "Změřte", "Odhadněte"] |
|
|
sloveso = ["Najděte", "Spočítejte", "Zapište", "Změřte", "Odhadněte"] |
|
|
koho = ["délku", "počet", "množství", "dílky"] |
|
|
koho = ["délku", "počet", "množství", "dílky"] |
|
@ -132,9 +148,9 @@ def gen_ulohy_do_cisla(rnd, organizatori, resitele, rocnik_cisla, rocniky, size) |
|
|
jmeno = ["řešení", "tahů", "čísel", "kalhot", "koulí", "hadů"] |
|
|
jmeno = ["řešení", "tahů", "čísel", "kalhot", "koulí", "hadů"] |
|
|
kde = ["na zemi", "ve vesmíru", "ve vzduchu", "na šňůře", "v letadle"] |
|
|
kde = ["na zemi", "ve vesmíru", "ve vzduchu", "na šňůře", "v letadle"] |
|
|
obor = ["M", "F", "I", "O", "B"] |
|
|
obor = ["M", "F", "I", "O", "B"] |
|
|
reseni = ["to je přece jasné", "triviální", "omlouváme se," |
|
|
reseni = ["to je přece jasné", "triviální", "omlouváme se," |
|
|
"otevřený problém", "neřešitelné", "triviálně triviální", |
|
|
"otevřený problém", "neřešitelné", "triviálně triviální", |
|
|
"použitím věty z prvního semestru na matfyzu", |
|
|
"použitím věty z prvního semestru na matfyzu", |
|
|
"jednoduše pomocí látky z druhého semestru na matfyzu", |
|
|
"jednoduše pomocí látky z druhého semestru na matfyzu", |
|
|
"netriviální aplikace diferenciálních rovnic", "zadání je vnitřně" |
|
|
"netriviální aplikace diferenciálních rovnic", "zadání je vnitřně" |
|
|
"sporné", "nepopsatelně jednoduché", "pokud jste na to nepřišli," |
|
|
"sporné", "nepopsatelně jednoduché", "pokud jste na to nepřišli," |
|
@ -153,29 +169,29 @@ def gen_ulohy_do_cisla(rnd, organizatori, resitele, rocnik_cisla, rocniky, size) |
|
|
nazev=" ".join([rnd.choice(jaka), rnd.choice(co)]), |
|
|
nazev=" ".join([rnd.choice(jaka), rnd.choice(co)]), |
|
|
stav=Problem.STAV_ZADANY, |
|
|
stav=Problem.STAV_ZADANY, |
|
|
zamereni=rnd.sample(["M", "F", "I", "O", "B"], poc_oboru), |
|
|
zamereni=rnd.sample(["M", "F", "I", "O", "B"], poc_oboru), |
|
|
autor=rnd.choice(organizatori), |
|
|
autor=rnd.choice(organizatori), |
|
|
garant=rnd.choice(organizatori), |
|
|
garant=rnd.choice(organizatori), |
|
|
kod=str(pi), |
|
|
kod=str(pi), |
|
|
# atributy třídy Uloha |
|
|
# atributy třídy Uloha |
|
|
cislo_zadani=cisla[ci-2-1], |
|
|
cislo_zadani=cisla[ci-2-1], |
|
|
cislo_reseni=cisla[ci-1], |
|
|
cislo_reseni=cisla[ci-1], |
|
|
cislo_deadline=cisla[ci-1], |
|
|
cislo_deadline=cisla[ci-1], |
|
|
max_body = rnd.randint(1, 8) |
|
|
max_body = rnd.randint(1, 8) |
|
|
) |
|
|
) |
|
|
|
|
|
|
|
|
text_zadani = Text.objects.create( |
|
|
text_zadani = Text.objects.create( |
|
|
na_web = " ".join( |
|
|
na_web = " ".join( |
|
|
[rnd.choice(sloveso), |
|
|
[rnd.choice(sloveso), |
|
|
rnd.choice(koho), |
|
|
rnd.choice(koho), |
|
|
rnd.choice(ceho), |
|
|
rnd.choice(ceho), |
|
|
rnd.choice(jmeno), |
|
|
rnd.choice(jmeno), |
|
|
rnd.choice(kde)] |
|
|
rnd.choice(kde)] |
|
|
), |
|
|
), |
|
|
do_cisla = " ".join( |
|
|
do_cisla = " ".join( |
|
|
[rnd.choice(sloveso), |
|
|
[rnd.choice(sloveso), |
|
|
rnd.choice(koho), |
|
|
rnd.choice(koho), |
|
|
rnd.choice(ceho), |
|
|
rnd.choice(ceho), |
|
|
rnd.choice(jmeno), |
|
|
rnd.choice(jmeno), |
|
|
rnd.choice(kde)] |
|
|
rnd.choice(kde)] |
|
|
) |
|
|
) |
|
|
) |
|
|
) |
|
@ -183,7 +199,7 @@ def gen_ulohy_do_cisla(rnd, organizatori, resitele, rocnik_cisla, rocniky, size) |
|
|
uloha_zadani = UlohaZadaniNode.objects.create(uloha=p, first_child = zad) |
|
|
uloha_zadani = UlohaZadaniNode.objects.create(uloha=p, first_child = zad) |
|
|
p.ulohazadaninode = uloha_zadani |
|
|
p.ulohazadaninode = uloha_zadani |
|
|
otec_syn(cisla[ci-2-1].cislonode, uloha_zadani) |
|
|
otec_syn(cisla[ci-2-1].cislonode, uloha_zadani) |
|
|
|
|
|
|
|
|
text_vzoraku = Text.objects.create( |
|
|
text_vzoraku = Text.objects.create( |
|
|
na_web = rnd.choice(reseni), |
|
|
na_web = rnd.choice(reseni), |
|
|
do_cisla = rnd.choice(reseni) |
|
|
do_cisla = rnd.choice(reseni) |
|
@ -198,8 +214,8 @@ def gen_ulohy_do_cisla(rnd, organizatori, resitele, rocnik_cisla, rocniky, size) |
|
|
|
|
|
|
|
|
# reseni ulohy |
|
|
# reseni ulohy |
|
|
poc_reseni = rnd.randint(size // 2, size * 2) |
|
|
poc_reseni = rnd.randint(size // 2, size * 2) |
|
|
#poc_resitel = rnd.randint(1, 3) <- k čemu je himbajs tahle proměnná? |
|
|
#poc_resitel = rnd.randint(1, 3) <- k čemu je himbajs tahle proměnná? |
|
|
# vybereme nahodny vzorek resitelu o delce poctu reseni |
|
|
# vybereme nahodny vzorek resitelu o delce poctu reseni |
|
|
# (nebo skoro vsechny resitele, pokud jich je mene nez pocet reseni) |
|
|
# (nebo skoro vsechny resitele, pokud jich je mene nez pocet reseni) |
|
|
for ri in range(poc_reseni): |
|
|
for ri in range(poc_reseni): |
|
|
res_vyber = rnd.sample(resitele, rnd.randint(1, 5)) |
|
|
res_vyber = rnd.sample(resitele, rnd.randint(1, 5)) |
|
@ -215,7 +231,7 @@ def gen_ulohy_do_cisla(rnd, organizatori, resitele, rocnik_cisla, rocniky, size) |
|
|
reseni=res, |
|
|
reseni=res, |
|
|
problem=p |
|
|
problem=p |
|
|
) |
|
|
) |
|
|
|
|
|
|
|
|
return |
|
|
return |
|
|
|
|
|
|
|
|
def gen_soustredeni(rnd, resitele, organizatori): |
|
|
def gen_soustredeni(rnd, resitele, organizatori): |
|
@ -255,8 +271,8 @@ def gen_rocniky(last_rocnik, size): |
|
|
def gen_konfery(size, rnd, organizatori, resitele, soustredeni): |
|
|
def gen_konfery(size, rnd, organizatori, resitele, soustredeni): |
|
|
konfery = [] |
|
|
konfery = [] |
|
|
for _ in range(1, size): #FIXME Tu range si změňte jak chcete, nevím, co přesně znamená size (asi Anet?) |
|
|
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, |
|
|
# Anet: size je parametr udávající velikost testovacích dat a dá se pomocí ní škálovat, |
|
|
# kolik dat se nageneruje |
|
|
# kolik dat se nageneruje |
|
|
konfera = Konfera.objects.create( |
|
|
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ů']), |
|
|
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(), |
|
|
anotace=lorem.paragraph(), |
|
@ -271,7 +287,7 @@ def gen_konfery(size, rnd, organizatori, resitele, soustredeni): |
|
|
# Konfery_Ucastnici.objects.create(resitel=res, konfera=konfera) |
|
|
# Konfery_Ucastnici.objects.create(resitel=res, konfera=konfera) |
|
|
konfera.save() |
|
|
konfera.save() |
|
|
konfery.append(konfera) |
|
|
konfery.append(konfera) |
|
|
|
|
|
|
|
|
konferanode = KonferaNode.objects.create(konfera=konfera) |
|
|
konferanode = KonferaNode.objects.create(konfera=konfera) |
|
|
konferanode.save() |
|
|
konferanode.save() |
|
|
return konfery |
|
|
return konfery |
|
@ -290,21 +306,21 @@ def gen_cisla(rnd, rocniky): |
|
|
mesic_vydani = (ci - 1)*2 + 6 |
|
|
mesic_vydani = (ci - 1)*2 + 6 |
|
|
# celociselné dělení mi řekne, jestli to je první nebo druhý rok ročníku |
|
|
# celociselné dělení mi řekne, jestli to je první nebo druhý rok ročníku |
|
|
vydano = datetime.date(rocnik.prvni_rok + mesic_vydani // 12, |
|
|
vydano = datetime.date(rocnik.prvni_rok + mesic_vydani // 12, |
|
|
(mesic_vydani - 1) % 12 + 1, |
|
|
(mesic_vydani - 1) % 12 + 1, |
|
|
|
|
|
rnd.randint(1, 28)) |
|
|
|
|
|
deadline = datetime.date(rocnik.prvni_rok + (mesic_vydani + 2) // 12, |
|
|
|
|
|
(mesic_vydani + 1) % 12 + 1, |
|
|
rnd.randint(1, 28)) |
|
|
rnd.randint(1, 28)) |
|
|
deadline = datetime.date(rocnik.prvni_rok + (mesic_vydani + 2) // 12, |
|
|
|
|
|
(mesic_vydani + 1) % 12 + 1, |
|
|
|
|
|
rnd.randint(1, 28)) |
|
|
|
|
|
|
|
|
|
|
|
# posledni 2 cisla v rocniku nemaji deadline |
|
|
# posledni 2 cisla v rocniku nemaji deadline |
|
|
if (ci + 2 > cisel): |
|
|
if (ci + 2 > cisel): |
|
|
deadline = None |
|
|
deadline = None |
|
|
|
|
|
|
|
|
cislo = Cislo.objects.create( |
|
|
cislo = Cislo.objects.create( |
|
|
rocnik = rocnik, |
|
|
rocnik = rocnik, |
|
|
cislo = str(ci), |
|
|
cislo = str(ci), |
|
|
datum_vydani=vydano, |
|
|
datum_vydani=vydano, |
|
|
datum_deadline=deadline, |
|
|
datum_deadline=deadline, |
|
|
verejne_db=True |
|
|
verejne_db=True |
|
|
) |
|
|
) |
|
|
node2 = CisloNode.objects.create(cislo = cislo, succ = node) |
|
|
node2 = CisloNode.objects.create(cislo = cislo, succ = node) |
|
@ -314,19 +330,19 @@ def gen_cisla(rnd, rocniky): |
|
|
otec = False |
|
|
otec = False |
|
|
rocnik.rocniknode.first_child = node |
|
|
rocnik.rocniknode.first_child = node |
|
|
rocnik.save() |
|
|
rocnik.save() |
|
|
|
|
|
|
|
|
cisla.append(cislo) |
|
|
cisla.append(cislo) |
|
|
rocnik_cisla.append(cisla) |
|
|
rocnik_cisla.append(cisla) |
|
|
return rocnik_cisla |
|
|
return rocnik_cisla |
|
|
|
|
|
|
|
|
def gen_temata(rnd, rocniky, rocnik_cisla, organizatori): |
|
|
def gen_temata(rnd, rocniky, rocnik_cisla, organizatori): |
|
|
jake = ["Hravé", "Fyzikální", "Nejlepší", "Totálně masakrální", |
|
|
jake = ["Hravé", "Fyzikální", "Nejlepší", "Totálně masakrální", |
|
|
"Šokující", "Magnetické", "Modré", "Překvapivé", |
|
|
"Šokující", "Magnetické", "Modré", "Překvapivé", |
|
|
"Plasmatické", "Novoroční"] |
|
|
"Plasmatické", "Novoroční"] |
|
|
co = ["téma", "záření", "stavení", "jiskření", "jelito", |
|
|
co = ["téma", "záření", "stavení", "jiskření", "jelito", |
|
|
"drama", "kuře", "moře", "klání", "proudění", "čekání"] |
|
|
"drama", "kuře", "moře", "klání", "proudění", "čekání"] |
|
|
poc_oboru = rnd.randint(1, 2) |
|
|
poc_oboru = rnd.randint(1, 2) |
|
|
poc_op = rnd.randint(1, 3) |
|
|
poc_op = rnd.randint(1, 3) |
|
|
|
|
|
|
|
|
rocnik_temata = [] |
|
|
rocnik_temata = [] |
|
|
k = 0 |
|
|
k = 0 |
|
@ -342,8 +358,8 @@ def gen_temata(rnd, rocniky, rocnik_cisla, organizatori): |
|
|
nazev=" ".join([rnd.choice(jake), rnd.choice(co)]), |
|
|
nazev=" ".join([rnd.choice(jake), rnd.choice(co)]), |
|
|
stav=Problem.STAV_ZADANY, |
|
|
stav=Problem.STAV_ZADANY, |
|
|
zamereni=rnd.sample(["M", "F", "I", "O", "B"], poc_oboru), |
|
|
zamereni=rnd.sample(["M", "F", "I", "O", "B"], poc_oboru), |
|
|
autor=rnd.choice(organizatori), |
|
|
autor=rnd.choice(organizatori), |
|
|
garant=rnd.choice(organizatori), |
|
|
garant=rnd.choice(organizatori), |
|
|
kod=str(n), |
|
|
kod=str(n), |
|
|
# atributy třídy Téma |
|
|
# atributy třídy Téma |
|
|
tema_typ=rnd.choice(Tema.TEMA_CHOICES), |
|
|
tema_typ=rnd.choice(Tema.TEMA_CHOICES), |
|
@ -364,9 +380,9 @@ def gen_temata(rnd, rocniky, rocnik_cisla, organizatori): |
|
|
|
|
|
|
|
|
def gen_ulohy_k_tematum(rnd, rocniky, rocnik_cisla, rocnik_temata, organizatori): |
|
|
def gen_ulohy_k_tematum(rnd, rocniky, rocnik_cisla, rocnik_temata, organizatori): |
|
|
# ulohy resene v cisle |
|
|
# ulohy resene v cisle |
|
|
jaka = ["Šachová", "Černá", "Větrná", "Dlouhá", "Křehká", "Rychlá", |
|
|
jaka = ["Šachová", "Černá", "Větrná", "Dlouhá", "Křehká", "Rychlá", |
|
|
"Zákeřná", "Fyzikální"] |
|
|
"Zákeřná", "Fyzikální"] |
|
|
co = ["kostka", "smršť", "díra", "zrada", "toulka", "tyč", |
|
|
co = ["kostka", "smršť", "díra", "zrada", "toulka", "tyč", |
|
|
"úloha", "blecha"] |
|
|
"úloha", "blecha"] |
|
|
sloveso = ["Najděte", "Spočítejte", "Zapište", "Změřte", "Odhadněte"] |
|
|
sloveso = ["Najděte", "Spočítejte", "Zapište", "Změřte", "Odhadněte"] |
|
|
koho = ["délku", "počet", "množství", "dílky"] |
|
|
koho = ["délku", "počet", "množství", "dílky"] |
|
@ -374,9 +390,9 @@ def gen_ulohy_k_tematum(rnd, rocniky, rocnik_cisla, rocnik_temata, organizatori) |
|
|
jmeno = ["řešení", "tahů", "čísel", "kalhot", "koulí", "hadů"] |
|
|
jmeno = ["řešení", "tahů", "čísel", "kalhot", "koulí", "hadů"] |
|
|
kde = ["na zemi", "ve vesmíru", "ve vzduchu", "na šňůře", "v letadle"] |
|
|
kde = ["na zemi", "ve vesmíru", "ve vzduchu", "na šňůře", "v letadle"] |
|
|
obor = ["M", "F", "I", "O", "B"] |
|
|
obor = ["M", "F", "I", "O", "B"] |
|
|
reseni = ["to je přece jasné", "triviální", "omlouváme se," |
|
|
reseni = ["to je přece jasné", "triviální", "omlouváme se," |
|
|
"otevřený problém", "neřešitelné", "triviálně triviální", |
|
|
"otevřený problém", "neřešitelné", "triviálně triviální", |
|
|
"použitím věty z prvního semestru na matfyzu", |
|
|
"použitím věty z prvního semestru na matfyzu", |
|
|
"jednoduše pomocí látky z druhého semestru na matfyzu", |
|
|
"jednoduše pomocí látky z druhého semestru na matfyzu", |
|
|
"netriviální aplikace diferenciálních rovnic", "zadání je vnitřně" |
|
|
"netriviální aplikace diferenciálních rovnic", "zadání je vnitřně" |
|
|
"sporné", "nepopsatelně jednoduché", "pokud jste na to nepřišli," |
|
|
"sporné", "nepopsatelně jednoduché", "pokud jste na to nepřišli," |
|
@ -387,7 +403,7 @@ def gen_ulohy_k_tematum(rnd, rocniky, rocnik_cisla, rocnik_temata, organizatori) |
|
|
cisla = rocnik_cisla[k-1] |
|
|
cisla = rocnik_cisla[k-1] |
|
|
temata = rocnik_temata[k-1] |
|
|
temata = rocnik_temata[k-1] |
|
|
for ci in range(len(cisla)): |
|
|
for ci in range(len(cisla)): |
|
|
cislo = cisla[ci-1] |
|
|
cislo = cisla[ci-1] |
|
|
mozna_tema_vcn = cislo.cislonode.first_child |
|
|
mozna_tema_vcn = cislo.cislonode.first_child |
|
|
while mozna_tema_vcn != None: |
|
|
while mozna_tema_vcn != None: |
|
|
if type(mozna_tema_vcn) != TemaVCisleNode: |
|
|
if type(mozna_tema_vcn) != TemaVCisleNode: |
|
@ -395,44 +411,44 @@ def gen_ulohy_k_tematum(rnd, rocniky, rocnik_cisla, rocnik_temata, organizatori) |
|
|
continue |
|
|
continue |
|
|
else: |
|
|
else: |
|
|
tema = mozna_tema_vcn.tema |
|
|
tema = mozna_tema_vcn.tema |
|
|
|
|
|
|
|
|
if not temata[int(tema.kod)-1][1] >= ci+2: |
|
|
if not temata[int(tema.kod)-1][1] >= ci+2: |
|
|
mozna_tema_vcn = mozna_tema_vcn.succ |
|
|
mozna_tema_vcn = mozna_tema_vcn.succ |
|
|
continue |
|
|
continue |
|
|
|
|
|
|
|
|
for i in range(1, rnd.randint(1, 4)): |
|
|
for i in range(1, rnd.randint(1, 4)): |
|
|
poc_op = rnd.randint(1, 4) |
|
|
poc_op = rnd.randint(1, 4) |
|
|
poc_oboru = rnd.randint(1, 2) |
|
|
poc_oboru = rnd.randint(1, 2) |
|
|
p = Uloha.objects.create( |
|
|
p = Uloha.objects.create( |
|
|
nazev=": ".join([tema.nazev, |
|
|
nazev=": ".join([tema.nazev, |
|
|
"úloha {}.".format(i)]), |
|
|
"úloha {}.".format(i)]), |
|
|
nadproblem=tema, |
|
|
nadproblem=tema, |
|
|
stav=Problem.STAV_ZADANY, |
|
|
stav=Problem.STAV_ZADANY, |
|
|
zamereni=tema.zamereni, |
|
|
zamereni=tema.zamereni, |
|
|
autor=tema.autor, |
|
|
autor=tema.autor, |
|
|
garant=tema.garant, |
|
|
garant=tema.garant, |
|
|
kod=str(i), |
|
|
kod=str(i), |
|
|
cislo_zadani=cislo, |
|
|
cislo_zadani=cislo, |
|
|
cislo_reseni=cisla[ci+2-1], |
|
|
cislo_reseni=cisla[ci+2-1], |
|
|
cislo_deadline=cisla[ci+2-1], |
|
|
cislo_deadline=cisla[ci+2-1], |
|
|
max_body = rnd.randint(1, 8) |
|
|
max_body = rnd.randint(1, 8) |
|
|
) |
|
|
) |
|
|
|
|
|
|
|
|
p.opravovatele.set(rnd.sample(organizatori, poc_op)) |
|
|
p.opravovatele.set(rnd.sample(organizatori, poc_op)) |
|
|
|
|
|
|
|
|
text_zadani = Text.objects.create( |
|
|
text_zadani = Text.objects.create( |
|
|
na_web = " ".join( |
|
|
na_web = " ".join( |
|
|
[rnd.choice(sloveso), |
|
|
[rnd.choice(sloveso), |
|
|
rnd.choice(koho), |
|
|
rnd.choice(koho), |
|
|
rnd.choice(ceho), |
|
|
rnd.choice(ceho), |
|
|
rnd.choice(jmeno), |
|
|
rnd.choice(jmeno), |
|
|
rnd.choice(kde)] |
|
|
rnd.choice(kde)] |
|
|
), |
|
|
), |
|
|
do_cisla = " ".join( |
|
|
do_cisla = " ".join( |
|
|
[rnd.choice(sloveso), |
|
|
[rnd.choice(sloveso), |
|
|
rnd.choice(koho), |
|
|
rnd.choice(koho), |
|
|
rnd.choice(ceho), |
|
|
rnd.choice(ceho), |
|
|
rnd.choice(jmeno), |
|
|
rnd.choice(jmeno), |
|
|
rnd.choice(kde)] |
|
|
rnd.choice(kde)] |
|
|
) |
|
|
) |
|
|
) |
|
|
) |
|
@ -440,7 +456,7 @@ def gen_ulohy_k_tematum(rnd, rocniky, rocnik_cisla, rocnik_temata, organizatori) |
|
|
uloha_zadani = UlohaZadaniNode.objects.create(uloha=p, first_child = zad) |
|
|
uloha_zadani = UlohaZadaniNode.objects.create(uloha=p, first_child = zad) |
|
|
p.ulohazadaninode = uloha_zadani |
|
|
p.ulohazadaninode = uloha_zadani |
|
|
otec_syn(mozna_tema_vcn, uloha_zadani) # TODO dělá se podproblém takto??? TODO |
|
|
otec_syn(mozna_tema_vcn, uloha_zadani) # TODO dělá se podproblém takto??? TODO |
|
|
|
|
|
|
|
|
text_vzoraku = Text.objects.create( |
|
|
text_vzoraku = Text.objects.create( |
|
|
na_web = rnd.choice(reseni), |
|
|
na_web = rnd.choice(reseni), |
|
|
do_cisla = rnd.choice(reseni) |
|
|
do_cisla = rnd.choice(reseni) |
|
@ -452,9 +468,9 @@ def gen_ulohy_k_tematum(rnd, rocniky, rocnik_cisla, rocnik_temata, organizatori) |
|
|
while res_tema_vcn.tema != tema: |
|
|
while res_tema_vcn.tema != tema: |
|
|
res_tema_vcn = res_tema_vcn.succ |
|
|
res_tema_vcn = res_tema_vcn.succ |
|
|
otec_syn(res_tema_vcn, uloha_vzorak) |
|
|
otec_syn(res_tema_vcn, uloha_vzorak) |
|
|
|
|
|
|
|
|
p.save() |
|
|
p.save() |
|
|
|
|
|
|
|
|
mozna_tema_vcn = mozna_tema_vcn.succ |
|
|
mozna_tema_vcn = mozna_tema_vcn.succ |
|
|
return |
|
|
return |
|
|
|
|
|
|
|
@ -470,7 +486,7 @@ def gen_novinky(rnd, organizatori): |
|
|
novinka = Novinky.objects.create(id=i,autor=rnd.choice(organizatori),text=(text_novinky+", těšíme se na vás!"),zverejneno=rnd.choice([True,False])) |
|
|
novinka = Novinky.objects.create(id=i,autor=rnd.choice(organizatori),text=(text_novinky+", těšíme se na vás!"),zverejneno=rnd.choice([True,False])) |
|
|
novinka.save() |
|
|
novinka.save() |
|
|
return |
|
|
return |
|
|
|
|
|
|
|
|
def otec_syn(otec, syn): |
|
|
def otec_syn(otec, syn): |
|
|
bratr = otec.first_child |
|
|
bratr = otec.first_child |
|
|
syn.succ = bratr |
|
|
syn.succ = bratr |
|
@ -487,7 +503,7 @@ def create_test_data(size = 6, rnd = None): |
|
|
# static URL stranky |
|
|
# static URL stranky |
|
|
# FIXME: nakopirovat sem vsechny z produkcni databaze |
|
|
# FIXME: nakopirovat sem vsechny z produkcni databaze |
|
|
s = Site.objects.filter(name="example.com") |
|
|
s = Site.objects.filter(name="example.com") |
|
|
f = FlatPage.objects.create(url="/", title="Seminář M&M", |
|
|
f = FlatPage.objects.create(url="/", title="Seminář M&M", |
|
|
content = "<p>Vítejte na stránce semináře MaM!</p>") |
|
|
content = "<p>Vítejte na stránce semináře MaM!</p>") |
|
|
print(s) |
|
|
print(s) |
|
|
f.sites.add(s[0]) |
|
|
f.sites.add(s[0]) |
|
@ -521,33 +537,33 @@ def create_test_data(size = 6, rnd = None): |
|
|
|
|
|
|
|
|
# prijemci |
|
|
# prijemci |
|
|
prijemci = gen_prijemci(rnd, osoby) |
|
|
prijemci = gen_prijemci(rnd, osoby) |
|
|
|
|
|
|
|
|
global zlinska |
|
|
global zlinska |
|
|
zlinska.kontaktni_osoba=rnd.choice(osoby) |
|
|
zlinska.kontaktni_osoba=rnd.choice(osoby) |
|
|
zlinska.save() |
|
|
zlinska.save() |
|
|
|
|
|
|
|
|
# rocniky |
|
|
# rocniky |
|
|
rocniky = gen_rocniky(last_rocnik, size) |
|
|
rocniky = gen_rocniky(last_rocnik, size) |
|
|
|
|
|
|
|
|
# cisla |
|
|
# cisla |
|
|
rocnik_cisla = gen_cisla(rnd, rocniky) |
|
|
rocnik_cisla = gen_cisla(rnd, rocniky) |
|
|
|
|
|
|
|
|
# generování obyčejných úloh do čísel |
|
|
# generování obyčejných úloh do čísel |
|
|
gen_ulohy_do_cisla(rnd, organizatori, resitele, rocnik_cisla, rocniky, size) |
|
|
gen_ulohy_do_cisla(rnd, organizatori, resitele, rocnik_cisla, rocniky, size) |
|
|
|
|
|
|
|
|
# generování témat, zatím v prvních třech číslech po jednom |
|
|
# generování témat, zatím v prvních třech číslech po jednom |
|
|
# FIXME: více témat |
|
|
# FIXME: více témat |
|
|
rocnik_temata = gen_temata(rnd, rocniky, rocnik_cisla, organizatori) |
|
|
rocnik_temata = gen_temata(rnd, rocniky, rocnik_cisla, organizatori) |
|
|
|
|
|
|
|
|
# generování úloh k tématům ve všech číslech |
|
|
# generování úloh k tématům ve všech číslech |
|
|
gen_ulohy_k_tematum(rnd, rocniky, rocnik_cisla, rocnik_temata, organizatori) |
|
|
gen_ulohy_k_tematum(rnd, rocniky, rocnik_cisla, rocnik_temata, organizatori) |
|
|
|
|
|
|
|
|
#generování soustředění |
|
|
#generování soustředění |
|
|
soustredeni = gen_soustredeni(rnd, resitele, organizatori) |
|
|
soustredeni = gen_soustredeni(rnd, resitele, organizatori) |
|
|
|
|
|
|
|
|
#generování konfer |
|
|
#generování konfer |
|
|
konfery = gen_konfery(size, rnd, organizatori, resitele, soustredeni) |
|
|
konfery = gen_konfery(size, rnd, organizatori, resitele, soustredeni) |
|
|
|
|
|
|
|
|
# TODO: nastavi správně, kolik se čeho generuje, aby rozsahy přibližně odpovídaly |
|
|
# TODO: nastavi správně, kolik se čeho generuje, aby rozsahy přibližně odpovídaly |
|
|
# FIXME: misto typu ruzne typy objektu a vnoreni do sebe (Tom nechápe, co je tímto fixme míněno) |
|
|
# FIXME: misto typu ruzne typy objektu a vnoreni do sebe (Tom nechápe, co je tímto fixme míněno) |
|
|
# TODO: vytvorit temata s ruznymi vlakny |
|
|
# TODO: vytvorit temata s ruznymi vlakny |
|
|