Merge branch 'data_migrations' of gimli.ms.mff.cuni.cz:/akce/mam/git/mamweb into data_migrations
This commit is contained in:
		
						commit
						38a0fb1a73
					
				
					 2 changed files with 94 additions and 38 deletions
				
			
		
							
								
								
									
										56
									
								
								seminar/migrations/0055_smazat_nemigrovane_zastarale_veci.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										56
									
								
								seminar/migrations/0055_smazat_nemigrovane_zastarale_veci.py
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,56 @@ | |||
| # -*- coding: utf-8 -*- | ||||
| # Generated by Django 1.11.20 on 2019-05-23 20:16 | ||||
| from __future__ import unicode_literals | ||||
| 
 | ||||
| from django.db import migrations, models | ||||
| 
 | ||||
| 
 | ||||
| class Migration(migrations.Migration): | ||||
| 
 | ||||
|     dependencies = [ | ||||
|         ('seminar', '0054_problem_to_uloha_tema_clanek'), | ||||
|     ] | ||||
| 
 | ||||
|     operations = [ | ||||
|         migrations.RemoveField( | ||||
|             model_name='prispevek', | ||||
|             name='problem', | ||||
|         ), | ||||
|         migrations.RemoveField( | ||||
|             model_name='prispevek', | ||||
|             name='reseni', | ||||
|         ), | ||||
|         migrations.DeleteModel( | ||||
|             name='ProblemNavrh', | ||||
|         ), | ||||
|         migrations.DeleteModel( | ||||
|             name='ProblemZadany', | ||||
|         ), | ||||
|         migrations.RemoveField( | ||||
|             model_name='cislo', | ||||
|             name='faze', | ||||
|         ), | ||||
|         migrations.RemoveField( | ||||
|             model_name='konfera', | ||||
|             name='popis', | ||||
|         ), | ||||
|         migrations.RemoveField( | ||||
|             model_name='konfera', | ||||
|             name='prispevek', | ||||
|         ), | ||||
|         migrations.RemoveField( | ||||
|             model_name='problem', | ||||
|             name='import_dakos_id', | ||||
|         ), | ||||
|         migrations.RemoveField( | ||||
|             model_name='resitel', | ||||
|             name='import_mamoper_id', | ||||
|         ), | ||||
|         migrations.RemoveField( | ||||
|             model_name='skola', | ||||
|             name='import_dakos_id', | ||||
|         ), | ||||
|         migrations.DeleteModel( | ||||
|             name='Prispevek', | ||||
|         ), | ||||
|     ] | ||||
|  | @ -13,7 +13,7 @@ from django.contrib.sites.models import Site | |||
| 
 | ||||
| User = django.contrib.auth.get_user_model() | ||||
| 
 | ||||
| def gen_osoby(size): | ||||
| def gen_osoby(rnd, size): | ||||
| 	jmena_m = ['Aleš', 'Tomáš', 'Martin', 'Jakub', 'Petr', 'Lukáš', 'Cyril', 'Pavel Karel'] | ||||
| 	jmena_f = ['Eva', 'Karolína', 'Zuzana', 'Sylvie', 'Iva', 'Jana', 'Marie',  | ||||
| 		'Marta Iva', 'Shu Shan'] | ||||
|  | @ -34,7 +34,7 @@ def gen_osoby(size): | |||
| 			'Unterschiedlich', 'Old York', 'Lancastershire', 'Vóloďháza'] | ||||
| 
 | ||||
| 	osoby = [] | ||||
| 	for i in range(3 * size): | ||||
| 	for i in range(3 * size): # 3 je náhodná konstanta, size je použité na víc místech a říká, jak velká asi chceme testovací data | ||||
| 		pohlavi = rnd.randint(0,1) | ||||
| 		jmeno = rnd.choice([jmena_m, jmena_f][pohlavi]) | ||||
| 		prijmeni = rnd.choice([prijmeni_m, prijmeni_f][pohlavi]) | ||||
|  | @ -61,7 +61,7 @@ def gen_osoby(size): | |||
| 	 | ||||
| 
 | ||||
| 
 | ||||
| def gen_skoly(): | ||||
| def gen_skoly(): #TODO někdy to přepsat, aby jich bylo více | ||||
| 	skoly = [] | ||||
| 	prvnizs = Skola.objects.create(mesto='Praha', stat='CZ', psc='101 00',  | ||||
| 		ulice='Krátká 5', nazev='První ZŠ', je_zs=True, je_ss=False) | ||||
|  | @ -77,13 +77,13 @@ def gen_skoly(): | |||
| 	skoly.append(Skola.objects.create(mesto='Humenné', stat='SK', psc='012 34',  | ||||
| 		ulice='Pltká 1', nazev='Sredná škuola', je_zs=False, je_ss=True)) | ||||
| 	#FIXME pridat kontaktni osobu alespon nekde | ||||
| 	skoly.append(zlinska = Skola.objects.create(mesto = 'Zlín', stat='CZ', psc='76001',  | ||||
| 	skoly.append(Skola.objects.create(mesto = 'Zlín', stat='CZ', psc='76001',  | ||||
| 		ulice='náměstí T.G. Masaryka 2734-9',  | ||||
| 		nazev='Gymnázium a Střední jazyková škola s právem SJZ',  | ||||
| 		kratky_nazev="GaSJŠspSJZ", je_zs=True, je_ss=True)) | ||||
| 	return skoly | ||||
| 
 | ||||
| def gen_resitele(osoby, skoly): | ||||
| def gen_resitele(rnd, osoby, skoly): | ||||
| 	resitele = [] | ||||
| 	for os in osoby: | ||||
| 		rand = rnd.randint(0, 8) | ||||
|  | @ -93,30 +93,30 @@ def gen_resitele(osoby, skoly): | |||
| 				zasilat=rnd.choice(Resitel.ZASILAT_CHOICES))) | ||||
| 	return resitele | ||||
| 
 | ||||
| def gen_prijemci(osoby, kolik=10): | ||||
| def gen_prijemci(rnd, osoby, kolik=10): | ||||
| 	prijemci = [] | ||||
| 	for i in range(kolik): | ||||
| 		rand_os = rnd.choice(osoby) | ||||
| 		prijemci.add(Prijemce.objects.create(osoba=rand_os)) | ||||
| 		prijemci.append(Prijemce.objects.create(osoba=rand_os)) | ||||
| 	return prijemci  | ||||
| 
 | ||||
| def gen_organizatori(osoby, last_rocnik): | ||||
| def gen_organizatori(rnd, osoby, last_rocnik): | ||||
| 	organizatori = [] | ||||
| 	for os in osoby: | ||||
| 		rand = rnd.randint(0, 8) | ||||
| 		if (rand % 8 == 0): | ||||
| 			pusobnost = rnd.randint(1, last_rocnik) | ||||
| 			od = 1993 + last_rocnik - pusobnost | ||||
| 			od = 1993 + pusobnost | ||||
| 			do = od + rnd.randint(1, 6) | ||||
| 			#aktualni organizatori jeste nemaji vyplnene organizuje_do | ||||
| 			#if do > datetime.datetime.now().year: | ||||
| 			#	do = None | ||||
| 			#organizatori.append(Organizator.objects.create(osoba=os,  | ||||
| 			#		user=rnd.choice(users), | ||||
| 			#		organizuje_od=od, organizuje_do=do)) | ||||
| 			if do > datetime.datetime.now().year: | ||||
| 				do = None | ||||
| 			organizatori.append(Organizator.objects.create(osoba=os,  | ||||
| 					user=rnd.choice(users), | ||||
| 					organizuje_od=od, organizuje_do=do)) | ||||
| 	return organizatori | ||||
| 
 | ||||
| def gen_ulohy_do_cisla(cislo, organizatori, resitele, slovnik_cisel, size): | ||||
| def gen_ulohy_do_cisla(rnd, cislo, organizatori, resitele, slovnik_cisel, size): | ||||
| 	'''cislo = cislo cisla v rocniku, nikoli objekt Cislo ''' | ||||
| 	# ulohy resene v ci | ||||
| 	jaka = ["Šachová", "Černá", "Větrná", "Dlouhá", "Křehká", "Rychlá",  | ||||
|  | @ -139,7 +139,7 @@ def gen_ulohy_do_cisla(cislo, organizatori, resitele, slovnik_cisel, size): | |||
| 				 | ||||
| 	if cislo >= 3: | ||||
| 		for pi in range(1, ((size + 1) // 2) + 1): | ||||
| 			poc_op = rnd.randint(1, 4) | ||||
| 			poc_op = rnd.randint(1, 4) #počet opravovatelů | ||||
| 			poc_oboru = rnd.randint(1, 2) | ||||
| 			p = Uloha.objects.create( | ||||
| 				nazev=" ".join([rnd.choice(jaka), rnd.choice(co)]), | ||||
|  | @ -170,7 +170,18 @@ def gen_ulohy_do_cisla(cislo, organizatori, resitele, slovnik_cisel, size): | |||
| 				cislo_body=slovnik_cisel[cislo], reseni=res, problem=p) | ||||
| 	return  | ||||
| 
 | ||||
| def gen_soustredeni(): | ||||
| 	# TODO: vice soustredeni a k nim nahodne podmnoziny organizatoru a ucastniku | ||||
| 	sous = Soustredeni.objects.create(rocnik=Rocnik.objects.first(), verejne_db=True,  | ||||
| 		misto=u'Někde',	datum_zacatku=datetime.date(2000, 11, 23),  | ||||
| 		datum_konce=datetime.date(2000, 11, 27)) | ||||
| 
 | ||||
| 	for res in rnd.sample(resitele, 6): | ||||
| 		Soustredeni_Ucastnici.objects.create(resitel=res, soustredeni=sous) | ||||
| 	sous.save() | ||||
| 
 | ||||
| 	nastaveni = Nastaveni.objects.create(aktualni_rocnik = Rocnik.objects.last(), | ||||
| 			aktualni_cislo = Cislo.objects.all()[1]) | ||||
| 
 | ||||
| @transaction.atomic | ||||
| def create_test_data(size = 6, rnd = None): | ||||
|  | @ -202,15 +213,15 @@ def create_test_data(size = 6, rnd = None): | |||
| 	skoly = gen_skoly() | ||||
| 
 | ||||
| 	# osoby | ||||
| 	osoby = gen_osoby() | ||||
| 	osoby = gen_osoby(rnd, size) | ||||
| 
 | ||||
| 	# resitele a organizatori	 | ||||
| 	last_rocnik = 25 | ||||
| 	resitele = gen_resitele(osoby) | ||||
| 	organizatori = gen_organizatori(osoby) | ||||
| 	resitele = gen_resitele(rnd, osoby, skoly) | ||||
| 	organizatori = gen_organizatori(rnd, osoby, last_rocnik) | ||||
| 
 | ||||
| 	# prijemci | ||||
| 	prijemci = gen_prijemci() | ||||
| 	prijemci = gen_prijemci(rnd) | ||||
| 
 | ||||
| 	zlinska.kontaktni_osoba=rnd.choice(osoby) | ||||
| 	zlinska.save() | ||||
|  | @ -240,7 +251,7 @@ def create_test_data(size = 6, rnd = None): | |||
| 			slovnik_cisel[ci] = cislo | ||||
| 
 | ||||
| 			# generovani uloh | ||||
| 			gen_ulohy_do_cisla(ci, organizatori, resitele, size) | ||||
| 			gen_ulohy_do_cisla(rnd, ci, organizatori, resitele, slovnik_cisel, size) | ||||
| 			 | ||||
| 			# generovani temat | ||||
| 			if ci <= 3: | ||||
|  | @ -299,16 +310,5 @@ def create_test_data(size = 6, rnd = None): | |||
| 	# TODO: nahodne nagenerovat problemum reseni a prilohy reseni, hodnoceni | ||||
| 
 | ||||
| 
 | ||||
| 	# TODO: vice soustredeni a k nim nahodne podmnoziny organizatoru a ucastniku | ||||
| 	sous = Soustredeni.objects.create(rocnik=Rocnik.objects.first(), verejne_db=True,  | ||||
| 		misto=u'Někde',	datum_zacatku=datetime.date(2000, 11, 23),  | ||||
| 		datum_konce=datetime.date(2000, 11, 27)) | ||||
| 
 | ||||
| 	for res in rnd.sample(resitele, 6): | ||||
| 		Soustredeni_Ucastnici.objects.create(resitel=res, soustredeni=sous) | ||||
| 	sous.save() | ||||
| 
 | ||||
| 	nastaveni = Nastaveni.objects.create(aktualni_rocnik = Rocnik.objects.last(), | ||||
| 			aktualni_cislo = Cislo.objects.all()[1]) | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue
	
	 Jakub Kuba Růžička
						Jakub Kuba Růžička