Apply suggestions from code review

This commit is contained in:
shamoon 2024-12-01 09:52:05 -08:00
parent 65bc65ac02
commit 7756d49e5c
2 changed files with 16 additions and 15 deletions

View File

@ -15,21 +15,22 @@ def migrate_customfield_selects(apps, schema_editor):
CustomField = apps.get_model("documents", "CustomField") CustomField = apps.get_model("documents", "CustomField")
with transaction.atomic(): with transaction.atomic():
for custom_field in CustomField.objects.all(): for custom_field in CustomField.objects.filter(
if custom_field.data_type == "select": # CustomField.FieldDataType.SELECT data_type="select",
old_select_options = custom_field.extra_data["select_options"] ): # CustomField.FieldDataType.SELECT
custom_field.extra_data["select_options"] = [ old_select_options = custom_field.extra_data["select_options"]
{"id": get_random_string(16), "label": value} custom_field.extra_data["select_options"] = [
for value in old_select_options {"id": get_random_string(16), "label": value}
] for value in old_select_options
custom_field.save() ]
custom_field.save()
for instance in CustomFieldInstance.objects.filter(field=custom_field): for instance in CustomFieldInstance.objects.filter(field=custom_field):
if instance.value_select: if instance.value_select:
instance.value_select = custom_field.extra_data[ instance.value_select = custom_field.extra_data["select_options"][
"select_options" int(instance.value_select)
][int(instance.value_select)]["id"] ]["id"]
instance.save() instance.save()
def reverse_migrate_customfield_selects(apps, schema_editor): def reverse_migrate_customfield_selects(apps, schema_editor):

View File

@ -552,7 +552,7 @@ class CustomFieldSerializer(serializers.ModelSerializer):
) )
# labels are valid, generate ids if not present # labels are valid, generate ids if not present
for option in attrs["extra_data"]["select_options"]: for option in attrs["extra_data"]["select_options"]:
if "id" not in option or option["id"] is None: if option.get("id") is None:
option["id"] = get_random_string(length=16) option["id"] = get_random_string(length=16)
elif ( elif (
"data_type" in attrs "data_type" in attrs