diff --git a/netbox_custom_objects/templates/netbox_custom_objects/customobjecttype.html b/netbox_custom_objects/templates/netbox_custom_objects/customobjecttype.html index 8f78943..0b7eeb3 100644 --- a/netbox_custom_objects/templates/netbox_custom_objects/customobjecttype.html +++ b/netbox_custom_objects/templates/netbox_custom_objects/customobjecttype.html @@ -50,55 +50,62 @@
{% trans "Custom Object Type" %}

Fields

- {% for field in object.fields.all %} - - - - - - - - - + {% for group_name, group_fields in field_groups.items %} + {% if group_name %} + + + + {% endif %} + {% for field in group_fields %} + + + + + + + + + + {% endfor %} {% endfor %}
{{ field }}{{ field|get_field_type_verbose_name }}{% if field.type == "object" or field.type == "multiobject" %}{{ field|get_field_object_type }}{% endif %} - {% if field.required %} - - {% endif %} - - {% if field.unique %} - - {% endif %} - - {% if field.primary %} - - {% endif %} - - - - - {toggle_text} - - -
{{ group_name }}
{{ field }}{{ field|get_field_type_verbose_name }}{% if field.type == "object" or field.type == "multiobject" %}{{ field|get_field_object_type }}{% endif %} + {% if field.required %} + + {% endif %} + + {% if field.unique %} + + {% endif %} + + {% if field.primary %} + + {% endif %} + + + + + {toggle_text} + + +
diff --git a/netbox_custom_objects/views.py b/netbox_custom_objects/views.py index 29ae044..c181908 100644 --- a/netbox_custom_objects/views.py +++ b/netbox_custom_objects/views.py @@ -160,9 +160,22 @@ def get_table(self, data, request, bulk_actions=True): def get_extra_context(self, request, instance): model = instance.get_model() + + # Get fields and group them by group_name + fields = instance.fields.all().order_by("group_name", "weight", "name") + + # Group fields by group_name + field_groups = {} + for field in fields: + group_name = field.group_name or None # Use None for ungrouped fields + if group_name not in field_groups: + field_groups[group_name] = [] + field_groups[group_name].append(field) + return { "custom_objects": model.objects.all(), "table": self.get_table(self.queryset, request), + "field_groups": field_groups, }