Fix tom-select errors related to field id. Break out render_field function for column filters

This commit is contained in:
Daniel Sheppard 2024-02-13 15:23:14 -06:00
parent 0309796bbb
commit 84151cbc1a
2 changed files with 26 additions and 11 deletions

View File

@ -5,7 +5,7 @@
<i class="mdi mdi-filter-settings" style="font-size: 1.25rem;"> </i>
</a>
<div class="dropdown-menu">
{% render_field form_field table=table request=request %}
{% render_table_filter_field form_field table=table request=request %}
</div>
</div>
{% endif %}

View File

@ -58,10 +58,23 @@ def widget_type(field):
#
@register.inclusion_tag('form_helpers/render_field.html')
def render_field(field, bulk_nullable=False, label=None, table=None, request=None):
def render_field(field, bulk_nullable=False, label=None):
"""
Render a single form field from template
"""
return {
'field': field,
'label': label or field.label,
'bulk_nullable': bulk_nullable,
}
@register.inclusion_tag('form_helpers/render_field.html')
def render_table_filter_field(field, table=None, request=None):
"""
Render a single form field for table column filters from template
"""
url = ""
# Handle filter forms
@ -74,18 +87,20 @@ def render_field(field, bulk_nullable=False, label=None, table=None, request=Non
elif request:
url = querystring(request, **kwargs)
# Set HTMX args
if hasattr(field.field, 'widget'):
field.field.widget.attrs.update({
'hx-get': url if url else '#',
'hx-push-url': "true",
'hx-target': '#object_list',
'hx-trigger': 'hidden.bs.dropdown from:closest .dropdown'
})
if hasattr(field.field, 'widget'):
field.field.widget.attrs.update({
'id': f'table_filter_id_{field.name}',
'hx-get': url if url else '#',
'hx-push-url': "true",
'hx-target': '#object_list',
'hx-trigger': 'hidden.bs.dropdown from:closest .dropdown'
})
return {
'field': field,
'label': label or field.label if not table else None,
'bulk_nullable': bulk_nullable,
'label': None,
'bulk_nullable': False,
}