From 49f5ce3d9105869f652bd9e01c66f0109f6aec99 Mon Sep 17 00:00:00 2001 From: "Martin Z. (Zimamazim)" Date: Fri, 21 Jun 2019 01:59:48 +0200 Subject: [PATCH] =?UTF-8?q?Dnes,=20za=20p=C5=99=C3=ADtomnosti=20dvou=20sv?= =?UTF-8?q?=C4=9Bdk=C5=AF=20Tom=C3=A1=C5=A1=20Domes=20sl=C3=ADbil,=20?= =?UTF-8?q?=C5=BEe=20slovn=C3=ADk=20v=20testutils.py,=20ve=20kter=C3=A9m?= =?UTF-8?q?=20pou=C5=BE=C3=ADv=C3=A1=20jako=20kl=C3=AD=C4=8De=20p=C5=99iro?= =?UTF-8?q?zen=C3=A1=20=C4=8D=C3=ADsla,=20p=C5=99ep=C3=AD=C5=A1e=20na=20no?= =?UTF-8?q?rm=C3=A1ln=C3=AD=20list.=20Budi=C5=BE.=20Zde=20jsem=20tak=C3=A9?= =?UTF-8?q?=20skon=C4=8Dil=2021.=206.=20l=C3=A9ta=20P=C3=A1n=C4=9B=202019?= =?UTF-8?q?=20s=20prvn=C3=AD=20vlnou=20debugov=C3=A1n=C3=AD.=20Bo=C5=BEe?= =?UTF-8?q?=20=C5=BEehnej=20t=C4=9Bm,=20kte=C5=99=C3=AD=20toto=20debugovac?= =?UTF-8?q?=C3=AD=20b=C5=99=C3=ADm=C4=9B=20p=C5=99evezmou.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/testutils.py | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) 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)