diff --git a/pyproject.toml b/pyproject.toml index 52b536a..27d42c7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -43,6 +43,7 @@ known_first_party = "servala" [tool.flake8] max-line-length = 160 exclude = ".venv" +ignore = "E203" [tool.djlint] extend_exclude = "src/servala/static/mazer" diff --git a/src/servala/core/crd.py b/src/servala/core/crd.py index 48df661..2793d75 100644 --- a/src/servala/core/crd.py +++ b/src/servala/core/crd.py @@ -147,6 +147,11 @@ class CrdModelFormMixin: for field in ("organization", "context"): self.fields[field].widget = forms.HiddenInput() + def strip_title(self, field_name, label): + field = self.fields[field_name] + if field and field.label.startswith(label): + field.label = field.label[len(label) :] + def get_fieldsets(self): fieldsets = [] @@ -174,7 +179,7 @@ class CrdModelFormMixin: nested_fieldsets[parent_key] = { "fields": [], "fieldsets": {}, - "title": parent_key.title(), + "title": deslugify(parent_key), } parent = nested_fieldsets[parent_key] if len(parts) == 3: # Top-level within fieldset @@ -183,7 +188,7 @@ class CrdModelFormMixin: sub_key = parts[2] if not parent["fieldsets"].get(sub_key): parent["fieldsets"][sub_key] = { - "title": sub_key.title(), + "title": deslugify(sub_key), "fields": [], } parent["fieldsets"][sub_key]["fields"].append(field_name) @@ -194,12 +199,18 @@ class CrdModelFormMixin: for fieldset in group["fieldsets"].values(): if (field_count := len(fieldset["fields"])) == 1: group["fields"].append(fieldset["fields"][0]) + fieldset["fields"] = [] else: + title = f"{group['title']}: {fieldset['title']}: " + for field in fieldset["fields"]: + self.strip_title(field, title) total_fields += field_count - total_fields += len(group["fields"]) - if total_fields == 1: + if (total_fields + len(group["fields"])) == 1: others.append(group["fields"][0]) else: + title = f"{group['title']}: " + for field in group["fields"]: + self.strip_title(field, title) fieldsets.append(group) # Add 'others' tab if there are any fields diff --git a/src/servala/frontend/templates/includes/tabbed_fieldset_form.html b/src/servala/frontend/templates/includes/tabbed_fieldset_form.html index 6c69bc3..387f7a6 100644 --- a/src/servala/frontend/templates/includes/tabbed_fieldset_form.html +++ b/src/servala/frontend/templates/includes/tabbed_fieldset_form.html @@ -30,10 +30,12 @@ {% with field=form|get_field:field %}{{ field.as_field_group }}{% endwith %} {% endfor %} {% for subfieldset in fieldset.fieldsets.values %} -