Testdata: Generujeme jeden článek
This commit is contained in:
parent
cad478cd99
commit
443f05bddc
1 changed files with 73 additions and 0 deletions
|
@ -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ě
|
||||
|
|
Loading…
Reference in a new issue