Remove org field from generated form

This commit is contained in:
Tobias Kunze 2025-11-05 10:15:23 +01:00
parent 63039171c1
commit 2931315b96

View file

@ -6,7 +6,7 @@ from django.db import models
from django.forms.models import ModelForm, ModelFormMetaclass
from django.utils.translation import gettext_lazy as _
from servala.core.models import ServiceInstance
from servala.core.models import ServiceInstance, ControlPlaneCRD
from servala.frontend.forms.widgets import DynamicArrayField, DynamicArrayWidget
@ -37,7 +37,7 @@ def generate_django_model(schema, group, version, kind):
"""
# We always need these three fields to know our own name and our full namespace
model_fields = {"__module__": "crd_models"}
for field_name in ("name", "organization", "context"):
for field_name in ("name", "context"):
model_fields[field_name] = duplicate_field(field_name, ServiceInstance)
# All other fields are generated from the schema, except for the
@ -290,9 +290,10 @@ class FormGeneratorMixin:
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
for field in ("organization", "context"):
if field in self.fields:
self.fields[field].widget = forms.HiddenInput()
if "context" in self.fields:
self.fields["context"].widget = forms.HiddenInput()
if "context" in self.initial:
self.fields["context"].queryset = ControlPlaneCRD.objects.filter(pk=self.initial["context"].pk)
if self.instance and hasattr(self.instance, "name") and self.instance.name:
if "name" in self.fields:
@ -546,7 +547,6 @@ class CustomFormMixin(FormGeneratorMixin):
self.fields["name"].widget = forms.HiddenInput()
self.fields["name"].disabled = True
self.fields.pop("context", None)
self.fields.pop("organization", None)
def _apply_field_config(self):
for fieldset in self.form_config.get("fieldsets", []):
@ -605,7 +605,7 @@ class CustomFormMixin(FormGeneratorMixin):
def get_nested_data(self):
nested = {}
for field_name in self.fields.keys():
if field_name in ("organization", "context"):
if field_name == "context":
value = self.cleaned_data.get(field_name)
if value is not None:
nested[field_name] = value
@ -629,7 +629,7 @@ def generate_custom_form_class(form_config, model):
"""
Generate a custom (user-friendly) form class from form_config JSON.
"""
field_list = ["organization", "context", "name"]
field_list = ["context", "name"]
for fieldset in form_config.get("fieldsets", []):
for field_config in fieldset.get("fields", []):
@ -638,13 +638,8 @@ def generate_custom_form_class(form_config, model):
field_list.append(field_name)
fields = {
"organization": forms.ModelChoiceField(
queryset=None,
required=True,
widget=forms.HiddenInput(),
),
"context": forms.ModelChoiceField(
queryset=None,
queryset=ControlPlaneCRD.objects.none(),
required=True,
widget=forms.HiddenInput(),
),