From b3464a582f427b0bfafcbea30be368b12969447e Mon Sep 17 00:00:00 2001 From: "Martin Z. (Zimamazim)" Date: Tue, 11 Jun 2019 01:34:20 +0200 Subject: [PATCH 1/4] =?UTF-8?q?P=C5=99id=C3=A1na=20funkce=20gen=5Fkonfery?= =?UTF-8?q?=20Upravena=20funkce=20pro=20generov=C3=A1n=C3=AD=20soust=C5=99?= =?UTF-8?q?ed=C4=9Bn=C3=AD=20P=C5=99id=C3=A1n=20bal=C3=AD=C4=8Dek=20lorem?= =?UTF-8?q?=20pro=20generov=C3=A1n=C3=AD=20Lorem=20Ipsum=20do=20testdat?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/testutils.py | 46 ++++++++++++++++++++++++++++++++++---------- 1 file changed, 36 insertions(+), 10 deletions(-) diff --git a/seminar/testutils.py b/seminar/testutils.py index c52e3bea..ee08530f 100644 --- a/seminar/testutils.py +++ b/seminar/testutils.py @@ -2,11 +2,12 @@ import datetime import random +import lorem import django.contrib.auth from django.db import transaction import unidecode -from seminar.models import Skola, Resitel, Rocnik, Cislo, Problem, Reseni, PrilohaReseni, Nastaveni, Soustredeni, Soustredeni_Ucastnici, Osoba, Organizator, Prijemce, Tema, Uloha +from seminar.models import Skola, Resitel, Rocnik, Cislo, Problem, Reseni, PrilohaReseni, Nastaveni, Soustredeni, Soustredeni_Ucastnici, Soustredeni_Organizatori, Osoba, Organizator, Prijemce, Tema, Uloha, Konfera, KonferaNode, Konfera_Ucastnici from django.contrib.flatpages.models import FlatPage from django.contrib.sites.models import Site @@ -206,22 +207,25 @@ def gen_ulohy_do_cisla(rnd, cislo, organizatori, resitele, slovnik_cisel, size): ) return -def gen_soustredeni(): - sousy = [] +# FIXME Každé funkci se předává nějaké rnd, netuším, co to je. Pokud to tam má být, tak to tam přijdejte, pokud ne, tak je tato poznámka bezpředmětná. +def gen_soustredeni(resitele, organizatori): + soustredeni = [] for sousi in range(1, size): #FIXME Tu range si změňte jak chcete, nevím, co přesně znamená size (asi Anet?) datum_zacatku=datetime.date(randint(2000, 2020), randint(1, 12), radint(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']), - datum_zacatku=datum_zacatku, - datum_konce=datum_zacatku + datetime.timedelta(weeks=1)) + 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', 'podzmini', 'vikend']), + datum_zacatku=datum_zacatku, + datum_konce=datum_zacatku + datetime.timedelta(weeks=1)) for res in rnd.sample(resitele, min(len(resitele), 20)): Soustredeni_Ucastnici.objects.create(resitel=res, soutredeni=working_sous) for org in rnd.sample(organizatori, min(len(organizatori), 20)): Soustredeni_Organizatori.objects.create(organizator=org, soutredeni=working_sous) working_sous.save() - sousy.append(working_sous) - return sousy + soustredeni.append(working_sous) + return soustredeni def gen_rocniky(last_rocnik, size): rocniky = [] @@ -233,6 +237,28 @@ def gen_rocniky(last_rocnik, size): rocniky.append(rocnik) return rocniky +# FIXME Každé funkci se předává nějaké rnd, netuším, co to je. Pokud to tam má být, tak to tam přijdejte, pokud ne, tak je tato poznámka bezpředmětná. +def gen_konfery(organizatori, ucastnici, soustredeni): + konfery = [] + for konferai in range(1, size): #FIXME Tu range si změňte jak chcete, nevím, co přesně znamená size (asi Anet?) + 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(), + organizator=rnd.choice(organizatori), + ucastnici=rnd.choice(ucastnici), + soustredeni=rnd.choice(soustredeni), + reseni=rnd.choice(reseni), + typ_prezentace=rnd.choice(['veletrh', 'prezentace'])) + for res in rnd.sample(resitele, min(len(resitele), randint(3, 6))): + Konfery_Ucastnici.objects.create(resitel=res, konfera=konfera) + konfery.append(konfera) + konfera.save() + + konferanode = KonferaNode.objects.create(konfera=konfera) + konferanode.save() + return konfery + def gen_cisla(rocniky): slovnik_rocnik_cisla = {} for rocnik in rocniky: From 3f5d642cf381f5510dfec57f9ddf307ab6a1993b Mon Sep 17 00:00:00 2001 From: "Martin Z. (Zimamazim)" Date: Tue, 11 Jun 2019 01:37:25 +0200 Subject: [PATCH 2/4] =?UTF-8?q?P=C5=99id=C3=A1n=20bal=C3=AD=C4=8Dek=20lore?= =?UTF-8?q?m=20pro=20generov=C3=A1n=C3=AD=20Lorem=20Ipsum=20do=20testdat?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- requirements.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/requirements.txt b/requirements.txt index 25d438d1..45070bfb 100644 --- a/requirements.txt +++ b/requirements.txt @@ -49,3 +49,7 @@ Werkzeug==0.14.1 # uWSGI uWSGI==2.0.17.1 + +# Potřeba pro test data + +lorem From 09161f169c8472649e69d36b587ee374df0a9bf2 Mon Sep 17 00:00:00 2001 From: "Martin Z. (Zimamazim)" Date: Tue, 11 Jun 2019 01:50:50 +0200 Subject: [PATCH 3/4] Fix v gen_konfery a gen_soustredeni --- seminar/testutils.py | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/seminar/testutils.py b/seminar/testutils.py index ee08530f..1f788306 100644 --- a/seminar/testutils.py +++ b/seminar/testutils.py @@ -207,10 +207,9 @@ def gen_ulohy_do_cisla(rnd, cislo, organizatori, resitele, slovnik_cisel, size): ) return -# FIXME Každé funkci se předává nějaké rnd, netuším, co to je. Pokud to tam má být, tak to tam přijdejte, pokud ne, tak je tato poznámka bezpředmětná. -def gen_soustredeni(resitele, organizatori): +def gen_soustredeni(rnd, resitele, organizatori): soustredeni = [] - for sousi 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?) datum_zacatku=datetime.date(randint(2000, 2020), randint(1, 12), radint(1, 28)) working_sous = Soustredeni.objects.create( rocnik=Rocnik.objects.order_by('?').first(), @@ -237,20 +236,18 @@ def gen_rocniky(last_rocnik, size): rocniky.append(rocnik) return rocniky -# FIXME Každé funkci se předává nějaké rnd, netuším, co to je. Pokud to tam má být, tak to tam přijdejte, pokud ne, tak je tato poznámka bezpředmětná. -def gen_konfery(organizatori, ucastnici, soustredeni): +def gen_konfery(rnd, reseni, organizatori, ucastnici, soustredeni): konfery = [] - for konferai 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?) 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(), organizator=rnd.choice(organizatori), - ucastnici=rnd.choice(ucastnici), soustredeni=rnd.choice(soustredeni), reseni=rnd.choice(reseni), typ_prezentace=rnd.choice(['veletrh', 'prezentace'])) - for res in rnd.sample(resitele, min(len(resitele), randint(3, 6))): + for res in rnd.sample(ucastnici, min(len(ucastnici), randint(3, 6))): Konfery_Ucastnici.objects.create(resitel=res, konfera=konfera) konfery.append(konfera) konfera.save() From 3ab9e55322c6441fb4f69fb528b8f36b9baf0875 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Domes?= Date: Tue, 11 Jun 2019 02:04:52 +0200 Subject: [PATCH 4/4] =?UTF-8?q?testutils.py:=20za=C4=8Dal=20jsem=20p=C5=99?= =?UTF-8?q?id=C3=A1vat=20Nody?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/testutils.py | 92 +++++++++++++++++++++++++++++++------------- 1 file changed, 66 insertions(+), 26 deletions(-) diff --git a/seminar/testutils.py b/seminar/testutils.py index eb993c7f..e2ffc0ac 100644 --- a/seminar/testutils.py +++ b/seminar/testutils.py @@ -232,6 +232,7 @@ def gen_rocniky(last_rocnik, size): def gen_cisla(rocniky): slovnik_rocnik_cisla = {} for rocnik in rocniky: + otec = True slovnik_cisel = {} cisel = rnd.randint(4, 8) node = None @@ -261,6 +262,10 @@ def gen_cisla(rocniky): ) node2 = CisloNode.objects.create(cislo = cislo, succ = node) node = node2 + if otec: + otec = False + rocnik.RocnikNode.first_child = node + rocnik.save() slovnik_cisel[ci] = cislo slovnik_rocnik_cisla[rocnik] = slovnik_cisel @@ -268,17 +273,19 @@ def gen_cisla(rocniky): def gen_temata(rocniky, slovnik_rocnik_cisla): slovnik_rocnik_temata = {} - for rocnik in rocniky: - temata = {} - for cislo in slovnik_r[rocnik] - if cislo <= 3: - jake = ["Hravé", "Fyzikální", "Nejlepší", "Totálně masakrální", + jake = ["Hravé", "Fyzikální", "Nejlepší", "Totálně masakrální", "Šokující", "Magnetické", "Modré", "Překvapivé", "Plasmatické", "Novoroční"] - co = ["téma", "záření", "stavení", "jiskření", "jelito", - "drama", "kuře", "moře", "klání", "proudění", "čekání"] - poc_oboru = rnd.randint(1, 2) - poc_op = rnd.randint(1, 3) + co = ["téma", "záření", "stavení", "jiskření", "jelito", + "drama", "kuře", "moře", "klání", "proudění", "čekání"] + poc_oboru = rnd.randint(1, 2) + poc_op = rnd.randint(1, 3) + n = 1 + for rocnik in rocniky: + temata = {} + slovnik_cisel = slovnik_rocnik_cisla[rocnik] + for cislo in slovnik_cisel + if cislo.cislo <= 3: t = Tema.objects.create( # atributy třídy Problem nazev=" ".join([rnd.choice(jake), rnd.choice(co)]), @@ -286,42 +293,72 @@ def gen_temata(rocniky, slovnik_rocnik_cisla): zamereni=rnd.sample(["M", "F", "I", "O", "B"], poc_oboru), autor=rnd.choice(organizatori), garant=rnd.choice(organizatori), - # FIXME: téma má kód podle čísla, až jich bude - # více, tak udělat kód podle pořadí vygenerování - kod=str(cislo), + kod=str(n), # atributy třídy Téma tema_typ=rnd.choice(Tema.TEMA_CHOICES), - rocnik=rocnik) + rocnik=rocnik + ) + n+=1 + konec_tematu = rnd.randint(cislo.cislo, 7) + for i in range(cislo.cislo, min(konec_tematu, len(slovnik_cisel))): + node = TemaVCisleNode.objects.create(tema = t) + otec = slovnik_cisel[i].CisloNode + bratr = otec.first_child + node.succ = bratr + otec.first_child = node + node.save() + otec.save() t.opravovatele=rnd.sample(organizatori, poc_op) t.save() temata[cislo] = t slovnik_rocnik_temata[tema] = temata -def gen_ulohy_k_tematum(rocniky, slovnik_rocnik_cisla, slovnik_rocnik_temata): + +def gen_ulohy_k_tematum(rocniky, slovnik_rocnik_cisla, slovnik_rocnik_temata): #Tahle funkce je nedodělaná + # ulohy resene v cisle + jaka = ["Šachová", "Černá", "Větrná", "Dlouhá", "Křehká", "Rychlá", + "Zákeřná", "Fyzikální"] + co = ["kostka", "smršť", "díra", "zrada", "toulka", "tyč", + "úloha", "blecha"] + sloveso = ["Najděte", "Spočítejte", "Zapište", "Změřte", "Odhadněte"] + koho = ["délku", "počet", "množství", "dílky"] + ceho = ["všech", "správných", "konstatních", "zelených"] + jmeno = ["řešení", "tahů", "čísel", "kalhot", "koulí", "hadů"] + kde = ["na zemi", "ve vesmíru", "ve vzduchu", "na šňůře", "v letadle"] + obor = ["M", "F", "I", "O", "B"] + reseni = ["to je přece jasné", "triviální", "omlouváme se," + "otevřený problém", "neřešitelné", "triviálně triviální", + "použitím věty z první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ě" + "sporné", "nepopsatelně jednoduché", "pokud jste na to nepřišli," + "tak jste fakt hloupí"] for rocnik in rocniky: slovnik_cisel = slovnik_rocnik_cisla[rocnik] - cisel = len(slovnik_cisel) slovnik_temat = slovnik_rocnik_temata[rocnik] - for tema in slovnik_temat: - for i in range(tema. - if #TODO + for cislo in slovnik_cisel: + syn = cislo.CisloNode.first_child + while syn != None: + tema = syn.tema + for i in range(1, rnd.randint(1, 4)) poc_op = rnd.randint(1, 4) poc_oboru = rnd.randint(1, 2) p = Uloha.objects.create( nazev=": ".join([tema.nazev, - "úloha {}.".format(i-ci+1)]), + "úloha {}.".format(i)]), nadproblem=tema, stav=Problem.STAV_ZADANY, - zamereni=t.zamereni, - autor=t.autor, - garant=t.garant, + zamereni=tema.zamereni, + autor=tema.autor, + garant=tema.garant, opravovatele=rnd.sample(organizatori, poc_op), kod=str(i), - cislo_zadani=slovnik_cisel[ci], - cislo_reseni=slovnik_cisel[ci+2], - cislo_deadline=slovnik_cisel[ci+2], - max_body = rnd.randint(1, 8)) + cislo_zadani=cislo, + cislo_reseni=slovnik_cisel[cislo.cislo+2], + cislo_deadline=slovnik_cisel[cislo.cislo+2], + max_body = rnd.randint(1, 8) + ) p.zadani = " ".join([rnd.choice(sloveso), rnd.choice(koho), rnd.choice(ceho), rnd.choice(jmeno), rnd.choice(kde)]) @@ -338,6 +375,9 @@ def gen_ulohy_k_tematum(rocniky, slovnik_rocnik_cisla, slovnik_rocnik_temata): p.save() + syn = syn.succ + + # vytvor text # vytvor TemaVCisleNode if (rnd.randint(1, 3) % 3 == 0):