From 2a517cde9f929846f7bb806dbe0ee37fb17f0832 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Thu, 25 Feb 2021 13:08:02 -0500 Subject: [PATCH] Add support for form fieldsets --- netbox/templates/generic/object_edit.html | 49 +++++++++++++++++-- netbox/utilities/templatetags/form_helpers.py | 8 +++ 2 files changed, 52 insertions(+), 5 deletions(-) diff --git a/netbox/templates/generic/object_edit.html b/netbox/templates/generic/object_edit.html index 965749a6d..7056256ec 100644 --- a/netbox/templates/generic/object_edit.html +++ b/netbox/templates/generic/object_edit.html @@ -30,14 +30,53 @@ {% endif %} {% block form %} -
-
{{ obj_type|capfirst }}
+ {% if form.Meta.fieldsets %} + {# Render grouped fields accoring to Form #} + {% for group, fields in form.Meta.fieldsets %} +
+
{{ group }}
+
+ {% for name in fields %} + {% render_field form|getfield:name %} + {% endfor %} +
+
+ {% endfor %} + {% if form.custom_fields %} +
+
Custom Fields
- {% block form_fields %} - {% render_form form %} - {% endblock %} + {% render_custom_fields form %}
+
+ {% endif %} + {% if form.tags %} +
+
Tags
+
+ {% render_field form.tags %} +
+
+ {% endif %} + {% if form.comments %} +
+
Comments
+
+ {% render_field form.comments %} +
+
+ {% endif %} + {% else %} + {# Render all fields in a single group #} +
+
{{ obj_type|capfirst }}
+
+ {% block form_fields %} + {% render_form form %} + {% endblock %} +
+ {% endif %} {% endblock %}
diff --git a/netbox/utilities/templatetags/form_helpers.py b/netbox/utilities/templatetags/form_helpers.py index d3451ce86..9d46e8c37 100644 --- a/netbox/utilities/templatetags/form_helpers.py +++ b/netbox/utilities/templatetags/form_helpers.py @@ -4,6 +4,14 @@ from django import template register = template.Library() +@register.filter() +def getfield(form, fieldname): + """ + Return the specified field of a Form. + """ + return form[fieldname] + + @register.inclusion_tag('utilities/render_field.html') def render_field(field, bulk_nullable=False): """