From 8a67e16a0b3ffb75b992ffa1c24f524266a088d4 Mon Sep 17 00:00:00 2001 From: Tobias Kunze Date: Wed, 21 May 2025 09:15:19 +0200 Subject: [PATCH] =?UTF-8?q?Do=20not=20allow=20the=20instance=E2=80=99s=20n?= =?UTF-8?q?ame=20to=20change?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/servala/core/crd.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/servala/core/crd.py b/src/servala/core/crd.py index 173b26c..f356c7b 100644 --- a/src/servala/core/crd.py +++ b/src/servala/core/crd.py @@ -173,6 +173,11 @@ class CrdModelFormMixin: for field in ("organization", "context"): self.fields[field].widget = forms.HiddenInput() + if self.instance and self.instance.pk: + self.fields["name"].disabled = True + self.fields["name"].help_text = _("Name cannot be changed after creation.") + self.fields["name"].widget = forms.HiddenInput() + def strip_title(self, field_name, label): field = self.fields[field_name] if field and field.label.startswith(label): @@ -183,7 +188,10 @@ class CrdModelFormMixin: # General fieldset for non-spec fields general_fields = [ - field for field in self.fields if not field.startswith("spec.") + field_name + for field_name, field in self.fields.items() + if not field_name.startswith("spec.") + and not isinstance(field.widget, forms.HiddenInput) ] if general_fields: fieldsets.append(