40 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| # Generated by Django 4.2.11 on 2024-04-12 14:03
 | |
| 
 | |
| from django.db import migrations, models
 | |
| 
 | |
| # V migracích nemáme Osoba.OSLOVENI_*, tak si to sem nakopíruji.
 | |
| OSLOVENI_MUZSKE = 'resitel'
 | |
| OSLOVENI_ZENSKE = 'resitelka'
 | |
| OSLOVENI_ZADNE = ''
 | |
| 
 | |
| def pohlavi_to_osloveni(apps, schema_editor):
 | |
|     Osoba = apps.get_model('personalni', 'Osoba')
 | |
|     Osoba.objects.filter(pohlavi_muz=True).update(osloveni=OSLOVENI_MUZSKE)
 | |
|     Osoba.objects.filter(pohlavi_muz=False).update(osloveni=OSLOVENI_ZENSKE)
 | |
| 
 | |
| def osloveni_to_pohlavi(apps, schema_editor):
 | |
|     Osoba = apps.get_model('personalni', 'Osoba')
 | |
|     nebinarni = Osoba.objects.filter(osloveni=OSLOVENI_ZADNE)
 | |
|     if nebinarni.count() > 0:
 | |
|         raise Exception("Nelze odmigrovat: v databázi jsou nebinární osoby, které starý model nereprezentuje správně.")
 | |
|     Osoba.objects.filter(osloveni=OSLOVENI_MUZSKE).update(pohlavi_muz=True)
 | |
|     Osoba.objects.filter(osloveni=OSLOVENI_MUZSKE).update(pohlavi_muz=False)
 | |
| 
 | |
| class Migration(migrations.Migration):
 | |
| 
 | |
|     dependencies = [
 | |
|         ('personalni', '0007_post_split_soustredeni'),
 | |
|     ]
 | |
| 
 | |
|     operations = [
 | |
|         migrations.AddField(
 | |
|             model_name='osoba',
 | |
|             name='osloveni',
 | |
|             field=models.CharField(blank=True, choices=[('resitel', 'Řešitel'), ('resitelka', 'Řešitelka')], max_length=32, verbose_name='Oslovení'),
 | |
|         ),
 | |
|         migrations.RunPython(pohlavi_to_osloveni, osloveni_to_pohlavi),
 | |
|         migrations.RemoveField(
 | |
|             model_name='osoba',
 | |
|             name='pohlavi_muz',
 | |
|         ),
 | |
|     ]
 | 
