Osoba u Organizatorů a Resitelů má být povinná
This commit is contained in:
		
							parent
							
								
									e5c0878c7f
								
							
						
					
					
						commit
						671a049072
					
				
					 2 changed files with 47 additions and 4 deletions
				
			
		
							
								
								
									
										43
									
								
								seminar/migrations/0099_auto_20210916_1509.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								seminar/migrations/0099_auto_20210916_1509.py
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,43 @@ | |||
| # Generated by Django 2.2.24 on 2021-09-16 13:09 | ||||
| 
 | ||||
| from django.db import migrations, models | ||||
| import django.db.models.deletion | ||||
| 
 | ||||
| 
 | ||||
| def force_osoby(apps, schema_editor): | ||||
|     typy_osob = [ | ||||
|         'Resitel', | ||||
|         'Organizator' | ||||
|     ] | ||||
|     for typ in typy_osob: | ||||
|         model = apps.get_model('seminar', typ) | ||||
|         pocet = model.objects.filter(osoba=None).count() | ||||
|         if pocet > 0: | ||||
|             # myslím, že je nejde nijak pořádně identifikovat | ||||
|             raise ValueError(str(pocet) + " " + typ + "ů nemá osobu") | ||||
| 
 | ||||
| 
 | ||||
| class Migration(migrations.Migration): | ||||
|     dependencies = [ | ||||
|         ('seminar', '0001_squashed_0098_auto_20210906_0305'), | ||||
|     ] | ||||
| 
 | ||||
|     operations = [ | ||||
|         migrations.RunPython(force_osoby, migrations.RunPython.noop), | ||||
|         migrations.AlterField( | ||||
|             model_name='organizator', | ||||
|             name='osoba', | ||||
|             field=models.OneToOneField( | ||||
|                 help_text='osobní údaje organizátora', | ||||
|                 on_delete=django.db.models.deletion.PROTECT, | ||||
|                 related_name='org', to='seminar.Osoba', | ||||
|                 verbose_name='osoba'), | ||||
|         ), | ||||
|         migrations.AlterField( | ||||
|             model_name='resitel', | ||||
|             name='osoba', | ||||
|             field=models.OneToOneField( | ||||
|                 on_delete=django.db.models.deletion.PROTECT, | ||||
|                 to='seminar.Osoba', verbose_name='osoba'), | ||||
|         ), | ||||
|     ] | ||||
|  | @ -250,8 +250,8 @@ class Resitel(SeminarModelBase): | |||
| 	# Interní ID | ||||
| 	id = models.AutoField(primary_key = True) | ||||
| 
 | ||||
| 	osoba = models.OneToOneField(Osoba, blank=False, null=True, verbose_name='osoba', | ||||
| 		on_delete=models.SET_NULL) # FIXME opravit po prvni migraci | ||||
| 	osoba = models.OneToOneField(Osoba, blank=False, null=False, verbose_name='osoba', | ||||
| 		on_delete=models.PROTECT) | ||||
| 	 | ||||
| 
 | ||||
| 	skola = models.ForeignKey(Skola, blank=True, null=True, verbose_name='škola', | ||||
|  | @ -704,8 +704,8 @@ class Organizator(SeminarModelBase): | |||
| # zmena dedicnosti z models.Model na SeminarModelBase, potencialni vznik bugu | ||||
| 
 | ||||
| 	osoba = models.OneToOneField(Osoba, verbose_name='osoba', related_name='org', | ||||
| 		help_text='osobní údaje organizátora', null=True, blank=False, | ||||
| 		on_delete=models.SET_NULL) #FIXME opravit po migraci | ||||
| 		help_text='osobní údaje organizátora', null=False, blank=False, | ||||
| 		on_delete=models.PROTECT) | ||||
| 
 | ||||
| 	vytvoreno = models.DateTimeField( | ||||
| 		'Vytvořeno', | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue
	
	 Jonas Havelka
						Jonas Havelka