Browse Source

Dnes, za přítomnosti dvou svědků Tomáš Domes slíbil, že slovník v testutils.py, 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.

export_seznamu_prednasek
Martin Z. (Zimamazim) 5 years ago
parent
commit
49f5ce3d91
  1. 29
      seminar/testutils.py

29
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)

Loading…
Cancel
Save