diff --git a/seminar/testutils.py b/seminar/testutils.py index 43258ab2..f82afbd6 100644 --- a/seminar/testutils.py +++ b/seminar/testutils.py @@ -7,7 +7,7 @@ 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, Soustredeni_Organizatori, Osoba, Organizator, Prijemce, Tema, Uloha, Konfera, KonferaNode, TextNode, UlohaVzorakNode, RocnikNode, CisloNode, TemaVCisleNode, Text +from seminar.models import Skola, Resitel, Rocnik, Cislo, Problem, Reseni, PrilohaReseni, Nastaveni, Soustredeni, Soustredeni_Ucastnici, Soustredeni_Organizatori, Osoba, Organizator, Prijemce, Tema, Uloha, Konfera, KonferaNode, TextNode, UlohaVzorakNode, RocnikNode, CisloNode, TemaVCisleNode, Text, Hodnoceni from django.contrib.flatpages.models import FlatPage from django.contrib.sites.models import Site @@ -178,9 +178,7 @@ def gen_ulohy_do_cisla(rnd, ci, organizatori, resitele, slovnik_cisel, size): p.ulohavzoraknode = uloha_vzorak - for org in rnd.sample(organizatori, poc_op): - p.opravovatele_ulohas.objects.create(org) - # p.opravovatele.set(rnd.sample(organizatori,poc_op)) + p.opravovatele.set(rnd.sample(organizatori,poc_op)) p.save() # reseni ulohy @@ -188,13 +186,11 @@ def gen_ulohy_do_cisla(rnd, ci, organizatori, resitele, slovnik_cisel, size): #poc_resitel = rnd.randint(1, 3) <- k čemu je himbajs tahle proměnná? # vybereme nahodny vzorek resitelu o delce poctu reseni # (nebo skoro vsechny resitele, pokud jich je mene nez pocet reseni) - res_vyber = rnd.sample(resitele, min(poc_reseni, len(resitele) - 2)) - for resitel in res_vyber: + for ri in range(poc_reseni): + res_vyber = rnd.sample(resitele, rnd.randint(1, 5)) # problem a resitele přiřadíme později, ManyToManyField # se nedá vyplnit v create() res = Reseni.objects.create(forma=rnd.choice(Reseni.FORMA_CHOICES)) - res.resitele = [resitel] - res.problem = p res.save() hod = Hodnoceni.objects.create( body=rnd.randint(0, p.max_body), @@ -286,6 +282,7 @@ def gen_cisla(rnd, rocniky): verejne_db=True ) node2 = CisloNode.objects.create(cislo = cislo, succ = node) + cislo.save() node = node2 if otec: otec = False @@ -296,7 +293,7 @@ def gen_cisla(rnd, rocniky): slovnik_rocnik_cisla[rocnik] = slovnik_cisel return slovnik_rocnik_cisla -def gen_temata(rocniky, slovnik_rocnik_cisla): +def gen_temata(rnd, rocniky, slovnik_rocnik_cisla, organizatori): jake = ["Hravé", "Fyzikální", "Nejlepší", "Totálně masakrální", "Šokující", "Magnetické", "Modré", "Překvapivé", "Plasmatické", "Novoroční"] @@ -328,13 +325,14 @@ def gen_temata(rocniky, slovnik_rocnik_cisla): konec_tematu = min(rnd.randint(ci, 7), len(slovnik_cisel)) for i in range(ci, konec_tematu+1): node = TemaVCisleNode.objects.create(tema = t) - otec = slovnik_cisel[i].CisloNode + otec = slovnik_cisel[i].cislonode otec_syn(otec, node) - t.opravovatele=rnd.sample(organizatori, poc_op) + t.opravovatele.set(rnd.sample(organizatori, poc_op)) t.save() temata[n] = (ci, konec_tematu, t) slovnik_rocnik_temata[rocnik] = temata + return slovnik_rocnik_temata def gen_ulohy_k_tematum(rocniky, slovnik_rocnik_cisla, slovnik_rocnik_temata): #Tahle funkce je nedodělaná @@ -359,15 +357,16 @@ def gen_ulohy_k_tematum(rocniky, slovnik_rocnik_cisla, slovnik_rocnik_temata): # for rocnik in rocniky: slovnik_cisel = slovnik_rocnik_cisla[rocnik] slovnik_temat = slovnik_rocnik_temata[rocnik] - for ci, cislo in slovnik_cisel.items()[:-2]: - mozna_tema_vcn = cislo.CisloNode.first_child + for ci in list(slovnik_cisel)[:-2]: + cislo = slovnik_cisel[ci] + mozna_tema_vcn = cislo.cislonode.first_child while mozna_tema_vcn != None: if type(mozna_tema_vcn) != TemaVCisleNode: continue else: tema = mozna_tema_vcn.tema - if not slovnik_temat[int(tema.kod)][1] >= ci+2: + if not slovnik_temat[int(tema.kod)][1] >= ci+2: # Dnes, za přítomnosti dvou svědků Tomáš Domes slíbil, že tento slovník, ve kterém používá jako klíče přirozená čísla, přepíše na normální list. Budiž. Zde jsem také skončil 21. 6. léta Páně 2019 s první vlnou debugování. Bože žehnej těm, kteří toto debugovací břímě převezmou. continue for i in range(1, rnd.randint(1, 4)): @@ -477,7 +476,7 @@ def create_test_data(size = 6, rnd = None): # generování témat, zatím v prvních třech číslech po jednom # FIXME: více témat - slovnik_rocnik_temata = gen_temata(rocniky, slovnik_rocnik_cisla) + slovnik_rocnik_temata = gen_temata(rnd, rocniky, slovnik_rocnik_cisla, organizatori) # generování úloh k tématům ve všech číslech gen_ulohy_k_tematum(rocniky, slovnik_rocnik_cisla, slovnik_rocnik_temata)