|
|
@ -681,6 +681,77 @@ def otec_syn(otec, syn): |
|
|
|
syn.save() |
|
|
|
otec.save() |
|
|
|
|
|
|
|
def gen_clanek(rnd): |
|
|
|
logger.info("Generuji článek do čísla 22.2") |
|
|
|
clanek = m.Clanek.objects.create( |
|
|
|
nazev="Článek o Lorem ipsum", |
|
|
|
nadproblem=None, |
|
|
|
stav='vyreseny', |
|
|
|
zamereni=['I'], |
|
|
|
garant=rnd.choice(m.Organizator.objects.all()), |
|
|
|
kod='cl', |
|
|
|
) |
|
|
|
clanek.save() |
|
|
|
|
|
|
|
reseni = m.Reseni.objects.create( |
|
|
|
zverejneno=True, |
|
|
|
) |
|
|
|
reseni.resitele.add(rnd.choice(m.Resitel.objects.all())) |
|
|
|
reseni.save() |
|
|
|
|
|
|
|
cislo = m.Cislo.objects.get(rocnik__rocnik=22, poradi=2) |
|
|
|
cislonode = cislo.cislonode |
|
|
|
|
|
|
|
hodnoceni = m.Hodnoceni.objects.create( |
|
|
|
body=15.0, |
|
|
|
cislo_body=cislo, |
|
|
|
reseni=reseni, |
|
|
|
problem=clanek, |
|
|
|
) |
|
|
|
hodnoceni.save() |
|
|
|
|
|
|
|
reseninode = m.ReseniNode.objects.create( |
|
|
|
reseni=reseni |
|
|
|
) |
|
|
|
reseninode.save() |
|
|
|
|
|
|
|
# Bude to celý text |
|
|
|
reseni.text_cely = reseninode |
|
|
|
reseni.save() |
|
|
|
|
|
|
|
from seminar.treelib import insert_last_child, create_child |
|
|
|
insert_last_child(cislonode, reseninode) |
|
|
|
|
|
|
|
# Vyrobíme nějaký obsah |
|
|
|
# FIXME: Ten, kdo vymyslel TreeLib (mj. týž, kdo psal tenhle kód), |
|
|
|
# nevyrobil vhodnou funkci, takže to postavíme pozpátku pomocí create_child |
|
|
|
# (které vyrábí _prvního_ syna) |
|
|
|
create_child(reseninode, m.CastNode, nadpis="Lorem ipsum") |
|
|
|
# Taky ten člověk nevyrobil vracení nových věcí... |
|
|
|
castnode = reseninode.first_child |
|
|
|
|
|
|
|
# Úvodní odstaveček |
|
|
|
obsah = "Tohle je zamyšlení o textu lorem ipsum. Začneme a skončíme ukázkou." |
|
|
|
text = m.Text.objects.create( |
|
|
|
na_web=obsah, |
|
|
|
do_cisla=obsah, |
|
|
|
) |
|
|
|
text.save() |
|
|
|
create_child(reseninode, m.TextNode, text=text) |
|
|
|
|
|
|
|
# Několik odstavců lorem ipsum |
|
|
|
for _ in range(rnd.randint(3, 7)): |
|
|
|
lipsum = lorem.paragraph() |
|
|
|
text = m.Text.objects.create( |
|
|
|
na_web=lipsum, |
|
|
|
do_cisla=lipsum, |
|
|
|
) |
|
|
|
text.save() |
|
|
|
create_child(castnode, m.TextNode, text=text) |
|
|
|
logger.info(f"Článek vygenerován (reseni={reseni.id}, treenode={reseninode.id})") |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@transaction.atomic |
|
|
|
def create_test_data(size = 6, rnd = None): |
|
|
|
logger.info('Vyrábím testovací data (size={})...'.format(size)) |
|
|
@ -768,6 +839,8 @@ def create_test_data(size = 6, rnd = None): |
|
|
|
# TODO: mezičíslo node |
|
|
|
# TODO: přidat ke konferám řešení a dát je do čísel |
|
|
|
|
|
|
|
# Dohackované vytvoření jednoho článku |
|
|
|
gen_clanek(rnd) |
|
|
|
|
|
|
|
|
|
|
|
# obecné nastavení semináře, musí být už přidané ročníky a čísla, jinak se nastaví divně |
|
|
|