Optimizations

This commit is contained in:
Daniel Sheppard 2024-02-12 16:00:19 -06:00
parent c3f1a9601c
commit f81f76f862
2 changed files with 20 additions and 32 deletions

View File

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

View File

@ -59,45 +59,33 @@ def widget_type(field):
# #
@register.inclusion_tag('form_helpers/render_field.html') @register.inclusion_tag('form_helpers/render_field.html')
def render_field(field, bulk_nullable=False, label=None): def render_field(field, bulk_nullable=False, label=None, table=None, request=None):
""" """
Render a single form field from template 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_filter_field(field, bulk_nullable=False, table=None, request=None):
"""
Render a single form field from template for use in column headers
"""
url = "" url = ""
# Build kwargs for querystring function # Handle filter forms
kwargs = { if table:
field.name: None # Build kwargs for querystring function
} kwargs = {field.name: None}
# Build request url
if request and table.htmx_url:
url = table.htmx_url + querystring(request, **kwargs)
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'
})
# Build request url
if request and table.htmx_url:
url = table.htmx_url + querystring(request, **kwargs)
elif request:
url = querystring(request, **kwargs)
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'
})
return { return {
'field': field, 'field': field,
'label': None, 'label': label or field.label if not table else None,
'bulk_nullable': bulk_nullable, 'bulk_nullable': bulk_nullable,
} }