from django.db import migrations, models def update_ui_attrs(apps, schema_editor): """ Replicate legacy ui_visibility values to the new ui_visible and ui_editable fields. """ CustomField = apps.get_model('extras', 'CustomField') CustomField.objects.filter(ui_visibility='read-write').update(ui_visible='always', ui_editable='yes') CustomField.objects.filter(ui_visibility='read-only').update(ui_visible='always', ui_editable='no') CustomField.objects.filter(ui_visibility='hidden').update(ui_visible='hidden', ui_editable='hidden') CustomField.objects.filter(ui_visibility='hidden-ifunset').update(ui_visible='if-set', ui_editable='yes') class Migration(migrations.Migration): dependencies = [ ('extras', '0099_cachedvalue_ordering'), ] operations = [ migrations.AddField( model_name='customfield', name='ui_editable', field=models.CharField(default='yes', max_length=50), ), migrations.AddField( model_name='customfield', name='ui_visible', field=models.CharField(default='always', max_length=50), ), migrations.RunPython( code=update_ui_attrs, reverse_code=migrations.RunPython.noop ), migrations.RemoveField( model_name='customfield', name='ui_visibility', ), ]