# 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',
        ),
    ]