# Generated by Django 6.0.1 on 2026-06-14 19:15 from django.conf import settings from django.db import migrations, models def normalize_invalid_statuses(apps, schema_editor): """Map any observation status not in the valid set to 'open' so the CheckConstraint can be added without failing on legacy/seed rows.""" Observation = apps.get_model('observations', 'Observation') valid = {'open', 'in_progress', 'resolved', 'closed'} qs = Observation.objects.exclude(status__in=list(valid)) for obs in qs: obs.status = 'open' obs.save(update_fields=['status']) class Migration(migrations.Migration): dependencies = [ ('complaints', '0019_add_response_token'), ('observations', '0015_add_response_token'), ('organizations', '0014_remove_department_manager_1st'), ('px_sources', '0001_initial'), migrations.swappable_dependency(settings.AUTH_USER_MODEL), ] operations = [ migrations.RunPython(normalize_invalid_statuses, migrations.RunPython.noop), migrations.AddConstraint( model_name='observation', constraint=models.CheckConstraint(condition=models.Q(('status__in', ['open', 'in_progress', 'resolved', 'closed'])), name='observation_status_valid'), ), ]