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