@ -7,7 +7,7 @@ import django.contrib.auth
from django . db import transaction
from django . db import transaction
import unidecode
import unidecode
from seminar . models import Skola , Resitel , Rocnik , Cislo , Problem , Reseni , PrilohaReseni , Nastaveni , Soustredeni , Soustredeni_Ucastnici , Soustredeni_Organizatori , Osoba , Organizator , Prijemce , Tema , Uloha , Konfera , KonferaNode , TextNode , UlohaVzorakNode , RocnikNode , CisloNode , TemaVCisleNode , Text
from seminar . models import Skola , Resitel , Rocnik , Cislo , Problem , Reseni , PrilohaReseni , Nastaveni , Soustredeni , Soustredeni_Ucastnici , Soustredeni_Organizatori , Osoba , Organizator , Prijemce , Tema , Uloha , Konfera , KonferaNode , TextNode , UlohaVzorakNode , RocnikNode , CisloNode , TemaVCisleNode , Text , Hodnoceni
from django . contrib . flatpages . models import FlatPage
from django . contrib . flatpages . models import FlatPage
from django . contrib . sites . models import Site
from django . contrib . sites . models import Site
@ -178,9 +178,7 @@ def gen_ulohy_do_cisla(rnd, ci, organizatori, resitele, slovnik_cisel, size):
p . ulohavzoraknode = uloha_vzorak
p . ulohavzoraknode = uloha_vzorak
for org in rnd . sample ( organizatori , poc_op ) :
p . opravovatele . set ( rnd . sample ( organizatori , poc_op ) )
p . opravovatele_ulohas . objects . create ( org )
# p.opravovatele.set(rnd.sample(organizatori,poc_op))
p . save ( )
p . save ( )
# reseni ulohy
# reseni ulohy
@ -188,13 +186,11 @@ def gen_ulohy_do_cisla(rnd, ci, organizatori, resitele, slovnik_cisel, size):
#poc_resitel = rnd.randint(1, 3) <- k čemu je himbajs tahle proměnná?
#poc_resitel = rnd.randint(1, 3) <- k čemu je himbajs tahle proměnná?
# vybereme nahodny vzorek resitelu o delce poctu reseni
# vybereme nahodny vzorek resitelu o delce poctu reseni
# (nebo skoro vsechny resitele, pokud jich je mene nez pocet reseni)
# (nebo skoro vsechny resitele, pokud jich je mene nez pocet reseni)
res_vyber = rnd . sample ( resitele , min ( poc_reseni , len ( resitele ) - 2 ) )
for ri in range ( poc_reseni ) :
for resitel in res_vyber :
res_vyber = rnd . sample ( resitele , rnd . randint ( 1 , 5 ) )
# problem a resitele přiřadíme později, ManyToManyField
# problem a resitele přiřadíme později, ManyToManyField
# se nedá vyplnit v create()
# se nedá vyplnit v create()
res = Reseni . objects . create ( forma = rnd . choice ( Reseni . FORMA_CHOICES ) )
res = Reseni . objects . create ( forma = rnd . choice ( Reseni . FORMA_CHOICES ) )
res . resitele = [ resitel ]
res . problem = p
res . save ( )
res . save ( )
hod = Hodnoceni . objects . create (
hod = Hodnoceni . objects . create (
body = rnd . randint ( 0 , p . max_body ) ,
body = rnd . randint ( 0 , p . max_body ) ,
@ -286,6 +282,7 @@ def gen_cisla(rnd, rocniky):
verejne_db = True
verejne_db = True
)
)
node2 = CisloNode . objects . create ( cislo = cislo , succ = node )
node2 = CisloNode . objects . create ( cislo = cislo , succ = node )
cislo . save ( )
node = node2
node = node2
if otec :
if otec :
otec = False
otec = False
@ -296,7 +293,7 @@ def gen_cisla(rnd, rocniky):
slovnik_rocnik_cisla [ rocnik ] = slovnik_cisel
slovnik_rocnik_cisla [ rocnik ] = slovnik_cisel
return slovnik_rocnik_cisla
return slovnik_rocnik_cisla
def gen_temata ( rocniky , slovnik_rocnik_cisla ) :
def gen_temata ( rnd , r ocniky , slovnik_rocnik_cisla , organizatori ) :
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í " ]
@ -328,13 +325,14 @@ def gen_temata(rocniky, slovnik_rocnik_cisla):
konec_tematu = min ( rnd . randint ( ci , 7 ) , len ( slovnik_cisel ) )
konec_tematu = min ( rnd . randint ( ci , 7 ) , len ( slovnik_cisel ) )
for i in range ( ci , konec_tematu + 1 ) :
for i in range ( ci , konec_tematu + 1 ) :
node = TemaVCisleNode . objects . create ( tema = t )
node = TemaVCisleNode . objects . create ( tema = t )
otec = slovnik_cisel [ i ] . CisloN ode
otec = slovnik_cisel [ i ] . cislon ode
otec_syn ( otec , node )
otec_syn ( otec , node )
t . opravovatele = rnd . sample ( organizatori , poc_op )
t . opravovatele . set ( rnd . sample ( organizatori , poc_op ) )
t . save ( )
t . save ( )
temata [ n ] = ( ci , konec_tematu , t )
temata [ n ] = ( ci , konec_tematu , t )
slovnik_rocnik_temata [ rocnik ] = temata
slovnik_rocnik_temata [ rocnik ] = temata
return slovnik_rocnik_temata
def gen_ulohy_k_tematum ( rocniky , slovnik_rocnik_cisla , slovnik_rocnik_temata ) : #Tahle funkce je nedodělaná
def gen_ulohy_k_tematum ( rocniky , slovnik_rocnik_cisla , slovnik_rocnik_temata ) : #Tahle funkce je nedodělaná
@ -359,15 +357,16 @@ def gen_ulohy_k_tematum(rocniky, slovnik_rocnik_cisla, slovnik_rocnik_temata): #
for rocnik in rocniky :
for rocnik in rocniky :
slovnik_cisel = slovnik_rocnik_cisla [ rocnik ]
slovnik_cisel = slovnik_rocnik_cisla [ rocnik ]
slovnik_temat = slovnik_rocnik_temata [ rocnik ]
slovnik_temat = slovnik_rocnik_temata [ rocnik ]
for ci , cislo in slovnik_cisel . items ( ) [ : - 2 ] :
for ci in list ( slovnik_cisel ) [ : - 2 ] :
mozna_tema_vcn = cislo . CisloNode . first_child
cislo = slovnik_cisel [ ci ]
mozna_tema_vcn = cislo . cislonode . first_child
while mozna_tema_vcn != None :
while mozna_tema_vcn != None :
if type ( mozna_tema_vcn ) != TemaVCisleNode :
if type ( mozna_tema_vcn ) != TemaVCisleNode :
continue
continue
else :
else :
tema = mozna_tema_vcn . tema
tema = mozna_tema_vcn . tema
if not slovnik_temat [ int ( tema . kod ) ] [ 1 ] > = ci + 2 :
if not slovnik_temat [ int ( tema . kod ) ] [ 1 ] > = ci + 2 : # Dnes, za přítomnosti dvou svědků Tomáš Domes slíbil, že tento slovník, ve kterém používá jako klíče přirozená čísla, přepíše na normální list. Budiž. Zde jsem také skončil 21. 6. léta Páně 2019 s první vlnou debugování. Bože žehnej těm, kteří toto debugovací břímě převezmou.
continue
continue
for i in range ( 1 , rnd . randint ( 1 , 4 ) ) :
for i in range ( 1 , rnd . randint ( 1 , 4 ) ) :
@ -477,7 +476,7 @@ def create_test_data(size = 6, rnd = None):
# generování témat, zatím v prvních třech číslech po jednom
# generování témat, zatím v prvních třech číslech po jednom
# FIXME: více témat
# FIXME: více témat
slovnik_rocnik_temata = gen_temata ( rocniky , slovnik_rocnik_cisla )
slovnik_rocnik_temata = gen_temata ( rnd , r ocniky , slovnik_rocnik_cisla , organizatori )
# generování úloh k tématům ve všech číslech
# generování úloh k tématům ve všech číslech
gen_ulohy_k_tematum ( rocniky , slovnik_rocnik_cisla , slovnik_rocnik_temata )
gen_ulohy_k_tematum ( rocniky , slovnik_rocnik_cisla , slovnik_rocnik_temata )