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:
@ -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 #}
|
||||
|
@ -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 #}
|
||||
|
@ -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 #}
|
||||
|
@ -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),
|
||||
}
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user