diff --git a/src/servala/core/crd/data.py b/src/servala/core/crd/data.py index bbd6b54..d77907d 100644 --- a/src/servala/core/crd/data.py +++ b/src/servala/core/crd/data.py @@ -139,13 +139,11 @@ def get_nested_data(instance): """ if not instance.spec: return [] - if ( - instance.context - and instance.context.service_definition - and instance.context.service_definition.form_config - ): + if instance.context and instance.context.use_custom_form: return get_form_config_fieldsets( - instance.spec, instance.context.service_defintion.form_config, instance.name + instance.spec, + instance.context.service_definition.form_config, + instance.name, ) return get_auto_generated_fieldsets(instance.spec) diff --git a/src/servala/core/models/service.py b/src/servala/core/models/service.py index 64505a7..138c8ba 100644 --- a/src/servala/core/models/service.py +++ b/src/servala/core/models/service.py @@ -546,6 +546,14 @@ class ControlPlaneCRD(ServalaModelMixin, models.Model): return return generate_model_form_class(self.django_model) + @cached_property + def use_custom_form(self): + return ( + self.service_definition + and self.service_definition.form_config + and self.service_definition.form_config.get("fieldsets") + ) + @cached_property def custom_model_form_class(self): from servala.core.crd import generate_custom_form_class @@ -1251,7 +1259,8 @@ class ServiceInstance(ServalaModelMixin, models.Model): def calculate_pricing(self): """Calculate hourly and monthly pricing.""" - from servala.core.crd.utils import get_value_from_path, parse_disk_size_gib + from servala.core.crd.data import get_value_from_path + from servala.core.crd.utils import parse_disk_size_gib pricing = { "compute_hourly": None, diff --git a/src/servala/frontend/views/service.py b/src/servala/frontend/views/service.py index edf22a6..77821f2 100644 --- a/src/servala/frontend/views/service.py +++ b/src/servala/frontend/views/service.py @@ -359,7 +359,7 @@ class ServiceInstanceDetailView( context = super().get_context_data(**kwargs) if self.object.kubernetes_object and self.object.spec: - context["spec_fieldsets"] = get_nested_data(self.object.spec) + context["spec_fieldsets"] = get_nested_data(self.object) context["has_change_permission"] = self.request.user.has_perm( ServiceInstance.get_perm("change"), self.object )