Oddělení generování testdat k sous věcem
This commit is contained in:
		
							parent
							
								
									c34716e134
								
							
						
					
					
						commit
						0b0a939de5
					
				
					 2 changed files with 63 additions and 48 deletions
				
			
		|  | @ -10,13 +10,15 @@ import unidecode | |||
| import logging | ||||
| 
 | ||||
| from korektury.testutils import create_test_pdf | ||||
| from seminar.models import Skola, Resitel, Rocnik, Cislo, Deadline, Problem, Reseni, PrilohaReseni, Nastaveni, Soustredeni, Soustredeni_Ucastnici, Soustredeni_Organizatori, Osoba, Organizator, Prijemce, Tema, Uloha, Konfera, TextNode, UlohaVzorakNode, RocnikNode, CisloNode, TemaVCisleNode, Text, Hodnoceni, UlohaZadaniNode, Novinky, TreeNode | ||||
| from seminar.models import Skola, Resitel, Rocnik, Cislo, Deadline, Problem, Reseni, PrilohaReseni, Nastaveni, Osoba, Organizator, Prijemce, Tema, Uloha, TextNode, UlohaVzorakNode, RocnikNode, CisloNode, TemaVCisleNode, Text, Hodnoceni, UlohaZadaniNode, Novinky, TreeNode | ||||
| import seminar.models as m | ||||
| 
 | ||||
| from django.contrib.flatpages.models import FlatPage | ||||
| from django.contrib.sites.models import Site | ||||
| from treenode.treelib import all_children, insert_last_child, all_children_of_type, create_node_after | ||||
| 
 | ||||
| from soustredeni.testutils import gen_soustredeni, gen_konfery | ||||
| 
 | ||||
| 
 | ||||
| User = django.contrib.auth.get_user_model() | ||||
| zlinska = None # tohle bude speciální škola, které později dodáme kontaktní osobu | ||||
|  | @ -352,30 +354,6 @@ def gen_ulohy_do_cisla(rnd, organizatori, resitele, rocnik_cisla, rocniky, size) | |||
| 
 | ||||
| 	return | ||||
| 
 | ||||
| def gen_soustredeni(rnd, resitele, organizatori): | ||||
| 	logger.info('Generuji soustředění...') | ||||
| 
 | ||||
| 	soustredeni = [] | ||||
| 	for _ in range(1, 10): #FIXME Tu range si změňte jak chcete, nevím, co přesně znamená size (asi Anet?) | ||||
| 		datum_zacatku=datetime.date(rnd.randint(2000, 2020), rnd.randint(1, 12), rnd.randint(1, 28)) | ||||
| 		working_sous = Soustredeni.objects.create( | ||||
| 			rocnik=Rocnik.objects.order_by('?').first(), | ||||
| 			verejne_db=rnd.choice([True, False]), | ||||
| 			misto=rnd.choice(['Kremrolovice', 'Indiánov', 'U zmzliny', 'Vafláreň', 'Větrník', 'Horní Rakvička', 'Dolní cheesecake']), | ||||
| 			typ=rnd.choice(['jarni', 'podzimni', 'vikend']), | ||||
| 			datum_zacatku=datum_zacatku, | ||||
| 			datum_konce=datum_zacatku + datetime.timedelta(days=7)) | ||||
| 		ucastnici = rnd.sample(resitele, min(len(resitele), 20)) | ||||
| 		working_sous.ucastnici.set(ucastnici) | ||||
| 		#for res in rnd.sample(resitele, min(len(resitele), 20)): | ||||
| 		#	Soustredeni_Ucastnici.objects.create(resitel=res, soutredeni=working_sous) | ||||
| 		orgove_vyber = rnd.sample(organizatori, min(len(organizatori), 20)) | ||||
| 		working_sous.organizatori.set(orgove_vyber) | ||||
| 		#for org in rnd.sample(organizatori, min(len(organizatori), 20)): | ||||
| 		#	Soustredeni_Organizatori.objects.create(organizator=org, soutredeni=working_sous) | ||||
| 		working_sous.save() | ||||
| 		soustredeni.append(working_sous) | ||||
| 	return soustredeni | ||||
| 
 | ||||
| def gen_rocniky(last_rocnik, size): | ||||
| 	logger.info('Generuji ročníky (size={})...'.format(size)) | ||||
|  | @ -390,28 +368,6 @@ def gen_rocniky(last_rocnik, size): | |||
| 		rocniky.append(rocnik) | ||||
| 	return rocniky | ||||
| 
 | ||||
| def gen_konfery(size, rnd, organizatori, resitele, soustredeni): | ||||
| 	logger.info('Generuji konfery (size={})...'.format(size)) | ||||
| 
 | ||||
| 	konfery = [] | ||||
| 	for _ in range(1, size): #FIXME Tu range si změňte jak chcete, nevím, co přesně znamená size (asi Anet?) | ||||
| 		# Anet: size je parametr udávající velikost testovacích dat a dá se pomocí ní škálovat, | ||||
| 		# kolik dat se nageneruje | ||||
| 		konfera = Konfera.objects.create( | ||||
| 			nazev=rnd.choice(['Pozorování', 'Zkoumání', 'Modelování', 'Počítání', 'Zkoušení']) + rnd.choice([' vlastností', ' jevů', ' charakteristik']) + rnd.choice([' vektorových prostorů', ' kinetické terorie látek', ' molekulární biologie', ' syntentických stromů']), | ||||
| 			anotace=lorem.paragraph(), | ||||
| 			abstrakt=lorem.paragraph(), | ||||
| 			garant=rnd.choice(organizatori), | ||||
| 			soustredeni=rnd.choice(soustredeni), | ||||
| 			typ_prezentace=rnd.choice(['veletrh', 'prezentace'])) | ||||
| 		ucastnici_sous = list(konfera.soustredeni.ucastnici.all()) | ||||
| 		ucastnici = rnd.sample(ucastnici_sous, min(len(ucastnici_sous), rnd.randint(3, 6))) | ||||
| 		konfera.ucastnici.set(ucastnici) | ||||
| 		#for res in rnd.sample(ucastnici, min(len(ucastnici), rnd.randint(3, 6))): | ||||
| 		#	Konfery_Ucastnici.objects.create(resitel=res, konfera=konfera) | ||||
| 		konfera.save() | ||||
| 		konfery.append(konfera) | ||||
| 	return konfery | ||||
| 
 | ||||
| def gen_cisla(rnd, rocniky): | ||||
| 	logger.info('Generuji čísla...') | ||||
|  | @ -881,7 +837,7 @@ def create_test_data(size = 6, rnd = None): | |||
| 	gen_ulohy_k_tematum(rnd, rocniky, rocnik_cisla, rocnik_temata, organizatori, resitele) | ||||
| 
 | ||||
| 	#generování soustředění | ||||
| 	soustredeni = gen_soustredeni(rnd, resitele, organizatori) | ||||
| 	soustredeni = gen_soustredeni(size, rnd, resitele, organizatori) | ||||
| 
 | ||||
| 	#generování konfer | ||||
| 	konfery = gen_konfery(size, rnd, organizatori, resitele, soustredeni) | ||||
|  |  | |||
							
								
								
									
										59
									
								
								soustredeni/testutils.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										59
									
								
								soustredeni/testutils.py
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,59 @@ | |||
| import logging | ||||
| import datetime | ||||
| 
 | ||||
| import lorem | ||||
| 
 | ||||
| from .models import Soustredeni, Konfera | ||||
| import seminar.models.tvorba as am | ||||
| 
 | ||||
| logger = logging.getLogger(__name__) | ||||
| 
 | ||||
| 
 | ||||
| def gen_soustredeni(size, rnd, resitele, organizatori): | ||||
| 	logger.info('Generuji soustředění...') | ||||
| 
 | ||||
| 	soustredeni = [] | ||||
| 	for _ in range(1, 10):  # FIXME Tu range si změňte jak chcete, nevím, co přesně znamená size (asi Anet?) | ||||
| 		datum_zacatku = datetime.date(rnd.randint(2000, 2020), rnd.randint(1, 12), rnd.randint(1, 28)) | ||||
| 		working_sous = Soustredeni.objects.create( | ||||
| 			rocnik=am.Rocnik.objects.order_by('?').first(), | ||||
| 			verejne_db=rnd.choice([True, False]), | ||||
| 			misto=rnd.choice(['Kremrolovice', 'Indiánov', 'U zmzliny', 'Vafláreň', 'Větrník', 'Horní Rakvička', 'Dolní cheesecake']), | ||||
| 			typ=rnd.choice(['jarni', 'podzimni', 'vikend']), | ||||
| 			datum_zacatku=datum_zacatku, | ||||
| 			datum_konce=datum_zacatku + datetime.timedelta(days=7)) | ||||
| 		ucastnici = rnd.sample(resitele, min(len(resitele), 20)) | ||||
| 		working_sous.ucastnici.set(ucastnici) | ||||
| 		# for res in rnd.sample(resitele, min(len(resitele), 20)): | ||||
| 		# 	Soustredeni_Ucastnici.objects.create(resitel=res, soutredeni=working_sous) | ||||
| 		orgove_vyber = rnd.sample(organizatori, min(len(organizatori), 20)) | ||||
| 		working_sous.organizatori.set(orgove_vyber) | ||||
| 		# for org in rnd.sample(organizatori, min(len(organizatori), 20)): | ||||
| 		# 	Soustredeni_Organizatori.objects.create(organizator=org, soutredeni=working_sous) | ||||
| 		working_sous.save() | ||||
| 		soustredeni.append(working_sous) | ||||
| 	return soustredeni | ||||
| 
 | ||||
| 
 | ||||
| def gen_konfery(size, rnd, organizatori, resitele, soustredeni): | ||||
| 	logger.info('Generuji konfery (size={})...'.format(size)) | ||||
| 
 | ||||
| 	konfery = [] | ||||
| 	for _ in range(1, size):  # FIXME Tu range si změňte jak chcete, nevím, co přesně znamená size (asi Anet?) | ||||
| 		# Anet: size je parametr udávající velikost testovacích dat a dá se pomocí ní škálovat, | ||||
| 		# kolik dat se nageneruje | ||||
| 		konfera = Konfera.objects.create( | ||||
| 			nazev=rnd.choice(['Pozorování', 'Zkoumání', 'Modelování', 'Počítání', 'Zkoušení']) + rnd.choice([' vlastností', ' jevů', ' charakteristik']) + rnd.choice([' vektorových prostorů', ' kinetické terorie látek', ' molekulární biologie', ' syntentických stromů']), | ||||
| 			anotace=lorem.paragraph(), | ||||
| 			abstrakt=lorem.paragraph(), | ||||
| 			garant=rnd.choice(organizatori), | ||||
| 			soustredeni=rnd.choice(soustredeni), | ||||
| 			typ_prezentace=rnd.choice(['veletrh', 'prezentace'])) | ||||
| 		ucastnici_sous = list(konfera.soustredeni.ucastnici.all()) | ||||
| 		ucastnici = rnd.sample(ucastnici_sous, min(len(ucastnici_sous), rnd.randint(3, 6))) | ||||
| 		konfera.ucastnici.set(ucastnici) | ||||
| 		# for res in rnd.sample(ucastnici, min(len(ucastnici), rnd.randint(3, 6))): | ||||
| 		# 	Konfery_Ucastnici.objects.create(resitel=res, konfera=konfera) | ||||
| 		konfera.save() | ||||
| 		konfery.append(konfera) | ||||
| 	return konfery | ||||
		Loading…
	
		Reference in a new issue