From 443f05bddc25cd596610546dea3b3c32104069d1 Mon Sep 17 00:00:00 2001 From: Pavel 'LEdoian' Turinsky Date: Thu, 18 Jun 2020 09:28:36 +0000 Subject: [PATCH] =?UTF-8?q?Testdata:=20Generujeme=20jeden=20=C4=8Dl=C3=A1n?= =?UTF-8?q?ek?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/testutils.py | 73 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) diff --git a/seminar/testutils.py b/seminar/testutils.py index 3c4356a2..c7ed79c7 100644 --- a/seminar/testutils.py +++ b/seminar/testutils.py @@ -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ě