Add name, org and context to all crd forms

This commit is contained in:
Tobias Kunze 2025-03-28 12:23:03 +01:00
parent 57945c8e51
commit 8a1f72b317

View file

@ -1,10 +1,13 @@
import re import re
from django import forms
from django.core.validators import MaxValueValidator, MinValueValidator, RegexValidator from django.core.validators import MaxValueValidator, MinValueValidator, RegexValidator
from django.db import models from django.db import models
from django.forms.models import ModelForm, ModelFormMetaclass from django.forms.models import ModelForm, ModelFormMetaclass
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
from servala.core.models import ServiceInstance
def generate_django_model(schema, group, version, kind): def generate_django_model(schema, group, version, kind):
""" """
@ -14,6 +17,8 @@ def generate_django_model(schema, group, version, kind):
# defaults = {"apiVersion": f"{group}/{version}", "kind": kind} # defaults = {"apiVersion": f"{group}/{version}", "kind": kind}
model_fields = {"__module__": "crd_models"} model_fields = {"__module__": "crd_models"}
for field in ("name", "organization", "context"):
model_fields[field] = ServiceInstance._meta.get_field(field)
model_fields.update(build_object_fields(spec, "spec")) model_fields.update(build_object_fields(spec, "spec"))
meta_class = type("Meta", (), {"app_label": "crd_models"}) meta_class = type("Meta", (), {"app_label": "crd_models"})
@ -110,6 +115,9 @@ def get_django_field(
class CrdModelFormMixin: class CrdModelFormMixin:
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs) super().__init__(*args, **kwargs)
for field in ("organization", "context"):
self.fields[field].widget = forms.HiddenInput()
# self.fields["apiVersion"].disabled = True # self.fields["apiVersion"].disabled = True
# self.fields["kind"].disabled = True # self.fields["kind"].disabled = True