1
0
mirror of https://github.com/netbox-community/netbox.git synced 2024-05-10 07:54:54 +00:00

Use render_fieldset() for bulk edit & filter forms

This commit is contained in:
Jeremy Stretch
2024-03-18 15:48:17 -04:00
parent 72d3c17b48
commit 708d93c9e0
4 changed files with 10 additions and 41 deletions

View File

@ -10,15 +10,8 @@
{% csrf_token %}
{# Built-in preferences #}
{% for group, fields in form.fieldsets %}
<div class="field-group my-5">
<div class="row">
<h5 class="col-9 offset-3">{{ group }}</h5>
</div>
{% for name in fields %}
{% render_field form|getfield:name %}
{% endfor %}
</div>
{% for fieldset in form.fieldsets %}
{% render_fieldset form fieldset %}
{% endfor %}
{# Plugin preferences #}

View File

@ -50,26 +50,7 @@ Context:
{# Render grouped fields according to declared fieldsets #}
{% for fieldset in form.fieldsets %}
<div class="field-group mb-5">
<div class="row">
<h5 class="col-9 offset-3">
{% if fieldset.name %}
{{ fieldset.name }}
{% else %}
{{ model|meta:"verbose_name"|bettertitle }}
{% endif %}
</h5>
</div>
{% for name in fieldset.fields %}
{% with field=form|getfield:name %}
{% if field.name in form.nullable_fields %}
{% render_field field bulk_nullable=True %}
{% else %}
{% render_field field %}
{% endif %}
{% endwith %}
{% endfor %}
</div>
{% render_fieldset form fieldset %}
{% endfor %}
{# Render tag add/remove fields #}

View File

@ -11,16 +11,7 @@
{# List filters by group #}
{% for fieldset in filter_form.fieldsets %}
<div class="col col-12">
{% if fieldset.name %}
<div class="hr-text">
<span>{{ fieldset.name }}</span>
</div>
{% endif %}
{% for name in fieldset.fields %}
{% with field=filter_form|get_item:name %}
{% render_field field %}
{% endwith %}
{% endfor %}
{% render_fieldset filter_form fieldset %}
</div>
{% empty %}
{# List all non-customfield filters as declared in the form class #}

View File

@ -101,8 +101,12 @@ def render_fieldset(form, fieldset):
# A single form field
elif item in form.fields:
field = form[item]
# Annotate nullability for bulk editing
if field.name in getattr(form, 'nullable_fields', []):
field._nullable = True
rows.append(
('field', None, [form[item]])
('field', None, [field])
)
return {
@ -119,7 +123,7 @@ def render_field(field, bulk_nullable=False, label=None):
return {
'field': field,
'label': label or field.label,
'bulk_nullable': bulk_nullable,
'bulk_nullable': bulk_nullable or getattr(field, '_nullable', False),
}