From ffed6139cd78797da2aaa78efa3a94559b24e205 Mon Sep 17 00:00:00 2001 From: Tobias Kunze Date: Mon, 10 Nov 2025 14:53:23 +0100 Subject: [PATCH] Do not save empty form_config entries --- src/servala/core/forms.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/servala/core/forms.py b/src/servala/core/forms.py index 69132fc..090abba 100644 --- a/src/servala/core/forms.py +++ b/src/servala/core/forms.py @@ -101,6 +101,12 @@ class ControlPlaneAdminForm(forms.ModelForm): return super().save(*args, **kwargs) +def fields_empty(fields): + if not fields: + return True + return all(not field.get("controlplane_field_mapping") for field in fields) + + class ServiceDefinitionAdminForm(forms.ModelForm): api_group = forms.CharField( required=False, @@ -161,6 +167,16 @@ class ServiceDefinitionAdminForm(forms.ModelForm): cleaned_data["api_definition"] = api_def form_config = cleaned_data.get("form_config") + + # Convert empty form_config to None (no custom form) + if form_config: + if not form_config.get("fieldsets") or all( + fields_empty(fieldset.get("fields")) + for fieldset in form_config.get("fieldsets") + ): + form_config = None + cleaned_data["form_config"] = None + if form_config: form_config = self._normalize_form_config_types(form_config) cleaned_data["form_config"] = form_config