Simplify table header filter rendering

This commit is contained in:
Daniel Sheppard 2025-01-20 13:13:19 -06:00
parent 882aa30043
commit 8d65973c82
3 changed files with 5 additions and 9 deletions

View File

@ -21,9 +21,7 @@
><i class="mdi mdi-close"></i></a>
</div>
{% endif %}
{% if table.filterset_form %}
{% include 'inc/table_header_filter_dropdown.html' with form_field=table.filterset_form|get_filter_field:column.name %}
{% endif %}
{% render_table_filter_field form_field=filter_form|get_filter_field:column.name table=table request=request%}
<a href="#"
hx-get="{{ table.htmx_url }}{% querystring table.prefixed_order_by_field=column.order_by_alias.next %}"
{% if not table.embedded %}hx-push-url="true"{% endif %}

View File

@ -4,7 +4,7 @@
<a href="#" class="dropdown-toggle" data-bs-toggle="dropdown" data-bs-auto-close="outside"><i class="mdi mdi-filter-settings"></i></a>
<div class="dropdown-menu">
<div class="px-3 py-3">
{% render_table_filter_field form_field table=table request=request %}
{% include "form_helpers/render_field.html" %}
</div>
</div>
</div>

View File

@ -4,10 +4,10 @@ from utilities.forms.rendering import InlineFields, ObjectAttribute, TabbedGroup
__all__ = (
'getfield',
'get_filter_field',
'render_custom_fields',
'render_errors',
'render_field',
'render_table_filter_field',
'render_form',
'widget_type',
)
@ -34,9 +34,7 @@ def getfield(form, fieldname):
@register.filter()
def get_filter_field(form, fieldname):
# Check for a table form column map attribute and use that to map form fields if set
if hasattr(form, '_table_form_column_map') and form._table_form_column_map.get(fieldname):
return getfield(form, form._table_form_column_map.get(fieldname))
return getfield(form, f'{fieldname}') or getfield(form, f'{fieldname}_id')
@ -128,7 +126,7 @@ def render_field(field, bulk_nullable=False, label=None):
}
@register.inclusion_tag('form_helpers/render_field.html')
@register.inclusion_tag('form_helpers/render_table_filter_field.html')
def render_table_filter_field(field, table, request):
"""
Render a single form field for table column filters from template