Progres na testdatech
This commit is contained in:
		
							parent
							
								
									e7e57140af
								
							
						
					
					
						commit
						7c14bf4100
					
				
					 1 changed files with 70 additions and 72 deletions
				
			
		|  | @ -7,7 +7,7 @@ import django.contrib.auth | |||
| from django.db import transaction | ||||
| 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 | ||||
| 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 django.contrib.flatpages.models import FlatPage | ||||
| from django.contrib.sites.models import Site | ||||
|  | @ -102,11 +102,8 @@ def gen_resitele(rnd, osoby, skoly): | |||
| 
 | ||||
| def gen_prijemci(rnd, osoby, kolik=10): | ||||
| 	prijemci = [] | ||||
| 	osoby = [] | ||||
| 	for i in range(kolik): | ||||
| 		osoby.append(rnd.choice(osoby)) | ||||
| 	for i in range(kolik): | ||||
| 		prijemci.append(Prijemce.objects.create(osoba=osoby[i])) | ||||
| 	for i in rnd.sample(osoby, kolik): | ||||
| 		prijemci.append(Prijemce.objects.create(osoba=i)) | ||||
| 	return prijemci | ||||
| 
 | ||||
| def gen_organizatori(rnd, osoby, last_rocnik, users): | ||||
|  | @ -153,7 +150,7 @@ def gen_ulohy_do_cisla(rnd, ci, organizatori, resitele, slovnik_cisel, size): | |||
| 				# atributy třídy Problem | ||||
| 				nazev=" ".join([rnd.choice(jaka), rnd.choice(co)]), | ||||
| 				stav=Problem.STAV_ZADANY, | ||||
| 				zamereni=rnd.sample(zamereni, poc_oboru), | ||||
| 				zamereni=rnd.sample(["M", "F", "I", "O", "B"], poc_oboru), | ||||
| 				autor=rnd.choice(organizatori),  | ||||
| 				garant=rnd.choice(organizatori),  | ||||
| 				kod=str(pi),  | ||||
|  | @ -178,9 +175,12 @@ def gen_ulohy_do_cisla(rnd, ci, organizatori, resitele, slovnik_cisel, size): | |||
| 			) | ||||
| 			vzorak = TextNode.objects.create(text = text_vzoraku) | ||||
| 			uloha_vzorak = UlohaVzorakNode.objects.create(uloha=p, first_child = vzorak) | ||||
| 			p.UlohaVzorakNode = uloha_vzorak | ||||
| 			p.ulohavzoraknode = uloha_vzorak | ||||
| 			 | ||||
| 			p.opravovatele = rnd.sample(organizatori, poc_op) | ||||
| 
 | ||||
| 			for org in rnd.sample(organizatori, poc_op): | ||||
| 				p.opravovatele_ulohas.objects.create(org)  | ||||
| 	#		p.opravovatele.set(rnd.sample(organizatori,poc_op)) | ||||
| 			p.save() | ||||
| 
 | ||||
| 			# reseni ulohy | ||||
|  | @ -229,6 +229,7 @@ def gen_rocniky(last_rocnik, size): | |||
| 	for ri in range(min(last_rocnik - size, 1), last_rocnik + 1): | ||||
| 		rocnik = Rocnik.objects.create(prvni_rok = 1993 + ri, rocnik = ri) | ||||
| 		node2 = RocnikNode.objects.create(rocnik = rocnik, succ = node) | ||||
| 		rocnik.save() | ||||
| 		node = node2 | ||||
| 		rocniky.append(rocnik) | ||||
| 	return rocniky | ||||
|  | @ -253,7 +254,7 @@ def gen_konfery(rnd, reseni, organizatori, ucastnici, soustredeni): | |||
| 		konferanode.save() | ||||
| 	return konfery | ||||
| 
 | ||||
| def gen_cisla(rocniky): | ||||
| def gen_cisla(rnd, rocniky): | ||||
| 	slovnik_rocnik_cisla = {} | ||||
| 	for rocnik in rocniky: | ||||
| 		otec = True | ||||
|  | @ -266,11 +267,11 @@ def gen_cisla(rocniky): | |||
| 			# další po dvou měsících (což je rozumná aproximace) | ||||
| 			mesic_vydani = (ci - 1)*2 + 6 | ||||
| 			# celociselné dělení mi řekne, jestli to je první nebo druhý rok ročníku | ||||
| 			vydano = datetime.date(r.prvni_rok + mesic_vydani // 12, | ||||
| 				mesic_vydani,  | ||||
| 			vydano = datetime.date(rocnik.prvni_rok + mesic_vydani // 12, | ||||
| 				(mesic_vydani - 1) % 12 + 1,  | ||||
| 				rnd.randint(1, 28)) | ||||
| 			deadline = datetime.date(r.prvni_rok + (mesic_vydani + 2) // 12,  | ||||
| 				mesic_vydani + 2,  | ||||
| 			deadline = datetime.date(rocnik.prvni_rok + (mesic_vydani + 2) // 12,  | ||||
| 				(mesic_vydani + 1) % 12 + 1,  | ||||
| 				rnd.randint(1, 28))  | ||||
| 			 | ||||
| 			# posledni 2 cisla v rocniku nemaji deadline | ||||
|  | @ -288,7 +289,7 @@ def gen_cisla(rocniky): | |||
| 			node = node2 | ||||
| 			if otec: | ||||
| 				otec = False | ||||
| 				rocnik.RocnikNode.first_child = node | ||||
| 				rocnik.rocniknode.first_child = node | ||||
| 				rocnik.save() | ||||
| 			 | ||||
| 			slovnik_cisel[ci] = cislo | ||||
|  | @ -358,57 +359,57 @@ def gen_ulohy_k_tematum(rocniky, slovnik_rocnik_cisla, slovnik_rocnik_temata): # | |||
| 	for rocnik in rocniky: | ||||
| 		slovnik_cisel = slovnik_rocnik_cisla[rocnik] | ||||
| 		slovnik_temat = slovnik_rocnik_temata[rocnik] | ||||
| 			for ci, cislo in slovnik_cisel.items()[:-2]: | ||||
| 				mozna_tema_vcn = cislo.CisloNode.first_child | ||||
| 				while mozna_tema_vcn != None: | ||||
| 					if type(mozna_tema_vcn) != TemaVCisleNode: | ||||
| 						continue | ||||
| 					else: | ||||
| 						tema = mozna_tema_vcn.tema | ||||
| 		for ci, cislo in slovnik_cisel.items()[:-2]: | ||||
| 			mozna_tema_vcn = cislo.CisloNode.first_child | ||||
| 			while mozna_tema_vcn != None: | ||||
| 				if type(mozna_tema_vcn) != TemaVCisleNode: | ||||
| 					continue | ||||
| 				else: | ||||
| 					tema = mozna_tema_vcn.tema | ||||
| 					 | ||||
| 					if not slovnik_temat[int(tema.kod)][1] >= ci+2: | ||||
| 						continue | ||||
| 				if not slovnik_temat[int(tema.kod)][1] >= ci+2: | ||||
| 					continue | ||||
| 					 | ||||
| 					for i in range(1, rnd.randint(1, 4)) | ||||
| 						poc_op = rnd.randint(1, 4) | ||||
| 						poc_oboru = rnd.randint(1, 2) | ||||
| 						p = Uloha.objects.create( | ||||
| 							nazev=": ".join([tema.nazev,  | ||||
| 								"úloha {}.".format(i)]), | ||||
| 							nadproblem=tema, | ||||
| 							stav=Problem.STAV_ZADANY, | ||||
| 							zamereni=tema.zamereni, | ||||
| 							autor=tema.autor,  | ||||
| 							garant=tema.garant,  | ||||
| 							opravovatele=rnd.sample(organizatori, poc_op),   | ||||
| 							kod=str(i),  | ||||
| 							cislo_zadani=cislo,  | ||||
| 							cislo_reseni=slovnik_cisel[ci+2],  | ||||
| 							cislo_deadline=slovnik_cisel[ci+2],  | ||||
| 							max_body = rnd.randint(1, 8) | ||||
| 						) | ||||
| 						p.zadani = " ".join([rnd.choice(sloveso), rnd.choice(koho),  | ||||
| 							rnd.choice(ceho), rnd.choice(jmeno), rnd.choice(kde)]) | ||||
| 						uloha_zadani = UlohaZadaniNode.objects.create(uloha=p) | ||||
| 						p.UlohaZadaniNode = uloha_zadani | ||||
| 						otec_syn(mozna_tema_vcn, uloha_zadani) | ||||
| 				for i in range(1, rnd.randint(1, 4)): | ||||
| 					poc_op = rnd.randint(1, 4) | ||||
| 					poc_oboru = rnd.randint(1, 2) | ||||
| 					p = Uloha.objects.create( | ||||
| 						nazev=": ".join([tema.nazev,  | ||||
| 							"úloha {}.".format(i)]), | ||||
| 						nadproblem=tema, | ||||
| 						stav=Problem.STAV_ZADANY, | ||||
| 						zamereni=tema.zamereni, | ||||
| 						autor=tema.autor,  | ||||
| 						garant=tema.garant,  | ||||
| 						opravovatele=rnd.sample(organizatori, poc_op),   | ||||
| 						kod=str(i),  | ||||
| 						cislo_zadani=cislo,  | ||||
| 						cislo_reseni=slovnik_cisel[ci+2],  | ||||
| 						cislo_deadline=slovnik_cisel[ci+2],  | ||||
| 						max_body = rnd.randint(1, 8) | ||||
| 					) | ||||
| 					p.zadani = " ".join([rnd.choice(sloveso), rnd.choice(koho),  | ||||
| 						rnd.choice(ceho), rnd.choice(jmeno), rnd.choice(kde)]) | ||||
| 					uloha_zadani = UlohaZadaniNode.objects.create(uloha=p) | ||||
| 					p.UlohaZadaniNode = uloha_zadani | ||||
| 					otec_syn(mozna_tema_vcn, uloha_zadani) | ||||
| 					 | ||||
| 						text_vzoraku = Text.objects.create( | ||||
| 							na_web = rnd.choice(reseni), | ||||
| 							do_cisla = rnd.choice(reseni) | ||||
| 						) | ||||
| 						vzorak = TextNode.objects.create(text = text_vzoraku) | ||||
| 						uloha_vzorak = UlohaVzorakNode.objects.create(uloha=p, first_child = vzorak) | ||||
| 						p.UlohaVzorakNode = uloha_vzorak | ||||
| 						#res_tema_vcn =  | ||||
| 						res_tema_vcn = slovnik_cisel[ci+2].CisloNode.first_child | ||||
| 						while res_tema_vcn.tema != tema: | ||||
| 							res_tema_vcn = res_tema_vcn.succ | ||||
| 						otec_syn(res_tema_vcn, uloha_vzorak) | ||||
| 					text_vzoraku = Text.objects.create( | ||||
| 						na_web = rnd.choice(reseni), | ||||
| 						do_cisla = rnd.choice(reseni) | ||||
| 					) | ||||
| 					vzorak = TextNode.objects.create(text = text_vzoraku) | ||||
| 					uloha_vzorak = UlohaVzorakNode.objects.create(uloha=p, first_child = vzorak) | ||||
| 					p.UlohaVzorakNode = uloha_vzorak | ||||
| 					#res_tema_vcn =  | ||||
| 					res_tema_vcn = slovnik_cisel[ci+2].CisloNode.first_child | ||||
| 					while res_tema_vcn.tema != tema: | ||||
| 						res_tema_vcn = res_tema_vcn.succ | ||||
| 					otec_syn(res_tema_vcn, uloha_vzorak) | ||||
| 					 | ||||
| 						p.save() | ||||
| 					p.save() | ||||
| 			 | ||||
| 					mozna_tema_vcn = mozna_tema_vcn.succ | ||||
| 				mozna_tema_vcn = mozna_tema_vcn.succ | ||||
| 				     | ||||
| def otec_syn(otec, syn): | ||||
| 	bratr = otec.first_child | ||||
|  | @ -423,10 +424,6 @@ def create_test_data(size = 6, rnd = None): | |||
| 	# pevna pseudo-nahodnost | ||||
| 	rnd = rnd or random.Random(x=42) | ||||
| 
 | ||||
| 	gen_rocniky(25, 10) | ||||
| 	gen_soustredeni(rnd, [], []) | ||||
| 	return | ||||
| 
 | ||||
| 	# static URL stranky | ||||
| 	# FIXME: nakopirovat sem vsechny z produkcni databaze | ||||
| 	s = Site.objects.filter(name="example.com") | ||||
|  | @ -449,6 +446,7 @@ def create_test_data(size = 6, rnd = None): | |||
| 
 | ||||
| 	# skoly | ||||
| 	skoly = gen_skoly() | ||||
| 	#TODO Generovat soustredeni konfery | ||||
| 
 | ||||
| 	# osoby | ||||
| 	osoby = gen_osoby(rnd, size) | ||||
|  | @ -469,7 +467,7 @@ def create_test_data(size = 6, rnd = None): | |||
| 	rocniky = gen_rocniky(last_rocnik, size) | ||||
| 	 | ||||
| 	# cisla | ||||
| 	slovnik_rocnik_cisla = gen_cisla(rocniky)	 | ||||
| 	slovnik_rocnik_cisla = gen_cisla(rnd, rocniky)	 | ||||
| 	 | ||||
| 	# generování obyčejných úloh do čísel | ||||
| 	for rocnik in rocniky: | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue
	
	 Martin Z. (Zimamazim)
						Martin Z. (Zimamazim)