Merge branch 'data_migrations' of gimli.ms.mff.cuni.cz:/akce/mam/git/mamweb into data_migrations
This commit is contained in:
commit
3206f8cf62
1 changed files with 65 additions and 21 deletions
|
@ -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
|
||||||
|
@ -302,10 +307,16 @@ def gen_temata(rocniky, slovnik_rocnik_cisla):
|
||||||
jake = ["Hravé", "Fyzikální", "Nejlepší", "Totálně masakrální",
|
jake = ["Hravé", "Fyzikální", "Nejlepší", "Totálně masakrální",
|
||||||
"Šokující", "Magnetické", "Modré", "Překvapivé",
|
"Šokující", "Magnetické", "Modré", "Překvapivé",
|
||||||
"Plasmatické", "Novoroční"]
|
"Plasmatické", "Novoroční"]
|
||||||
co = ["téma", "záření", "stavení", "jiskření", "jelito",
|
co = ["téma", "záření", "stavení", "jiskření", "jelito",
|
||||||
"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…
Reference in a new issue