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> ><i class="mdi mdi-close"></i></a>
</div> </div>
{% endif %} {% endif %}
{% if table.filterset_form %} {% render_table_filter_field form_field=filter_form|get_filter_field:column.name table=table request=request%}
{% include 'inc/table_header_filter_dropdown.html' with form_field=table.filterset_form|get_filter_field:column.name %}
{% endif %}
<a href="#" <a href="#"
hx-get="{{ table.htmx_url }}{% querystring table.prefixed_order_by_field=column.order_by_alias.next %}" 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 %} {% 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> <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="dropdown-menu">
<div class="px-3 py-3"> <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> </div>
</div> </div>

View File

@ -4,10 +4,10 @@ from utilities.forms.rendering import InlineFields, ObjectAttribute, TabbedGroup
__all__ = ( __all__ = (
'getfield', 'getfield',
'get_filter_field',
'render_custom_fields', 'render_custom_fields',
'render_errors', 'render_errors',
'render_field', 'render_field',
'render_table_filter_field',
'render_form', 'render_form',
'widget_type', 'widget_type',
) )
@ -34,9 +34,7 @@ def getfield(form, fieldname):
@register.filter() @register.filter()
def get_filter_field(form, fieldname): 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') 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): def render_table_filter_field(field, table, request):
""" """
Render a single form field for table column filters from template Render a single form field for table column filters from template