|
|
@@ -197,11 +197,15 @@ class CustomFieldsMixin(models.Model):
|
|
|
data = {}
|
|
|
|
|
|
for field in CustomField.objects.get_for_model(self):
|
|
|
+ value = self.custom_field_data.get(field.name)
|
|
|
+
|
|
|
# Skip fields that are hidden if 'omit_hidden' is set
|
|
|
- if omit_hidden and field.ui_visibility == CustomFieldVisibilityChoices.VISIBILITY_HIDDEN:
|
|
|
- continue
|
|
|
+ if omit_hidden:
|
|
|
+ if field.ui_visibility == CustomFieldVisibilityChoices.VISIBILITY_HIDDEN:
|
|
|
+ continue
|
|
|
+ if field.ui_visibility == CustomFieldVisibilityChoices.VISIBILITY_HIDDEN_IFUNSET and not value:
|
|
|
+ continue
|
|
|
|
|
|
- value = self.custom_field_data.get(field.name)
|
|
|
data[field] = field.deserialize(value)
|
|
|
|
|
|
return data
|
|
|
@@ -227,6 +231,8 @@ class CustomFieldsMixin(models.Model):
|
|
|
|
|
|
for cf in visible_custom_fields:
|
|
|
value = self.custom_field_data.get(cf.name)
|
|
|
+ if value in (None, []) and cf.ui_visibility == CustomFieldVisibilityChoices.VISIBILITY_HIDDEN_IFUNSET:
|
|
|
+ continue
|
|
|
value = cf.deserialize(value)
|
|
|
groups[cf.group_name][cf] = value
|
|
|
|