Browse Source

Merge branch 'data_migrations' of gimli.ms.mff.cuni.cz:/akce/mam/git/mamweb into data_migrations

export_seznamu_prednasek
Martin Z. (Zimamazim) 5 years ago
parent
commit
3206f8cf62
  1. 78
      seminar/testutils.py

78
seminar/testutils.py

@ -259,6 +259,7 @@ def gen_konfery(rnd, reseni, organizatori, ucastnici, soustredeni):
def gen_cisla(rocniky): def gen_cisla(rocniky):
slovnik_rocnik_cisla = {} slovnik_rocnik_cisla = {}
for rocnik in rocniky: for rocnik in rocniky:
otec = True
slovnik_cisel = {} slovnik_cisel = {}
cisel = rnd.randint(4, 8) cisel = rnd.randint(4, 8)
node = None node = None
@ -288,6 +289,10 @@ def gen_cisla(rocniky):
) )
node2 = CisloNode.objects.create(cislo = cislo, succ = node) node2 = CisloNode.objects.create(cislo = cislo, succ = node)
node = node2 node = node2
if otec:
otec = False
rocnik.RocnikNode.first_child = node
rocnik.save()
slovnik_cisel[ci] = cislo slovnik_cisel[ci] = cislo
slovnik_rocnik_cisla[rocnik] = slovnik_cisel slovnik_rocnik_cisla[rocnik] = slovnik_cisel
@ -306,6 +311,12 @@ def gen_temata(rocniky, slovnik_rocnik_cisla):
"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)
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( t = Tema.objects.create(
# atributy třídy Problem # atributy třídy Problem
nazev=" ".join([rnd.choice(jake), rnd.choice(co)]), nazev=" ".join([rnd.choice(jake), rnd.choice(co)]),
@ -313,42 +324,72 @@ def gen_temata(rocniky, slovnik_rocnik_cisla):
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),
# FIXME: téma má kód podle čísla, až jich bude kod=str(n),
# více, tak udělat kód podle pořadí vygenerování
kod=str(cislo),
# atributy třídy Téma # atributy třídy Téma
tema_typ=rnd.choice(Tema.TEMA_CHOICES), 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.opravovatele=rnd.sample(organizatori, poc_op)
t.save() t.save()
temata[cislo] = t temata[cislo] = t
slovnik_rocnik_temata[tema] = temata 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: for rocnik in rocniky:
slovnik_cisel = slovnik_rocnik_cisla[rocnik] slovnik_cisel = slovnik_rocnik_cisla[rocnik]
cisel = len(slovnik_cisel)
slovnik_temat = slovnik_rocnik_temata[rocnik] slovnik_temat = slovnik_rocnik_temata[rocnik]
for tema in slovnik_temat: for cislo in slovnik_cisel:
for i in []: syn = cislo.CisloNode.first_child
if (1==1):#TODO while syn != None:
tema = syn.tema
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-ci+1)]), "úloha {}.".format(i)]),
nadproblem=tema, nadproblem=tema,
stav=Problem.STAV_ZADANY, stav=Problem.STAV_ZADANY,
zamereni=t.zamereni, zamereni=tema.zamereni,
autor=t.autor, autor=tema.autor,
garant=t.garant, garant=tema.garant,
opravovatele=rnd.sample(organizatori, poc_op), opravovatele=rnd.sample(organizatori, poc_op),
kod=str(i), kod=str(i),
cislo_zadani=slovnik_cisel[ci], cislo_zadani=cislo,
cislo_reseni=slovnik_cisel[ci+2], cislo_reseni=slovnik_cisel[cislo.cislo+2],
cislo_deadline=slovnik_cisel[ci+2], cislo_deadline=slovnik_cisel[cislo.cislo+2],
max_body = rnd.randint(1, 8)) max_body = rnd.randint(1, 8)
)
p.zadani = " ".join([rnd.choice(sloveso), rnd.choice(koho), p.zadani = " ".join([rnd.choice(sloveso), rnd.choice(koho),
rnd.choice(ceho), rnd.choice(jmeno), rnd.choice(kde)]) rnd.choice(ceho), rnd.choice(jmeno), rnd.choice(kde)])
@ -365,6 +406,9 @@ def gen_ulohy_k_tematum(rocniky, slovnik_rocnik_cisla, slovnik_rocnik_temata):
p.save() p.save()
syn = syn.succ
# vytvor text # vytvor text
# vytvor TemaVCisleNode # vytvor TemaVCisleNode
if (rnd.randint(1, 3) % 3 == 0): if (rnd.randint(1, 3) % 3 == 0):

Loading…
Cancel
Save