mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-22 20:12:00 -06:00
Correct issue with filter_form not passing through render_table from django_tables2
This commit is contained in:
parent
8d65973c82
commit
92c3bbc9db
@ -180,8 +180,10 @@ class ObjectListView(BaseMultiObjectView, ActionsMixin, TableMixin):
|
||||
# * Otherwise set to None
|
||||
if self.filterset_form:
|
||||
filterset_form = self.filterset_form(request.GET)
|
||||
table.filterset_form = self.filterset_form(request.GET)
|
||||
else:
|
||||
filterset_form = None
|
||||
table.filterset_form = None
|
||||
|
||||
# If this is an HTMX request, return only the rendered table HTML
|
||||
if htmx_partial(request):
|
||||
@ -196,7 +198,6 @@ class ObjectListView(BaseMultiObjectView, ActionsMixin, TableMixin):
|
||||
'model': model,
|
||||
'actions': actions,
|
||||
})
|
||||
|
||||
context = {
|
||||
'model': model,
|
||||
'table': table,
|
||||
|
@ -68,7 +68,7 @@ Context:
|
||||
<div class="tab-pane show active" id="object-list" role="tabpanel" aria-labelledby="object-list-tab">
|
||||
|
||||
{# Applied filters #}
|
||||
{% applied_filters model form_filter request.GET %}
|
||||
{% applied_filters model filter_form request.GET %}
|
||||
|
||||
{# Object table controls #}
|
||||
{% include 'inc/table_controls_htmx.html' with table_modal="ObjectTable_config" %}
|
||||
|
@ -4,7 +4,7 @@
|
||||
{% load render_table from django_tables2 %}
|
||||
|
||||
{# OOB Swaps to update various components #}
|
||||
{% applied_filters model form_filter request.GET %}
|
||||
{% applied_filters model filter_form request.GET %}
|
||||
|
||||
<div class="htmx-container table-responsive">
|
||||
{% with preferences|get_key:"pagination.placement" as paginator_placement %}
|
||||
|
@ -21,7 +21,7 @@
|
||||
><i class="mdi mdi-close"></i></a>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% render_table_filter_field form_field=filter_form|get_filter_field:column.name table=table request=request%}
|
||||
{% render_table_filter_field column.name table 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 %}
|
||||
|
@ -1,5 +1,5 @@
|
||||
{% load form_helpers %}
|
||||
{% if form_field %}
|
||||
{% if field %}
|
||||
<div class="column-filter dropdown">
|
||||
<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">
|
||||
|
@ -34,7 +34,6 @@ def getfield(form, fieldname):
|
||||
|
||||
@register.filter()
|
||||
def get_filter_field(form, fieldname):
|
||||
|
||||
return getfield(form, f'{fieldname}') or getfield(form, f'{fieldname}_id')
|
||||
|
||||
|
||||
@ -127,11 +126,21 @@ def render_field(field, bulk_nullable=False, label=None):
|
||||
|
||||
|
||||
@register.inclusion_tag('form_helpers/render_table_filter_field.html')
|
||||
def render_table_filter_field(field, table, request):
|
||||
def render_table_filter_field(fieldname, table, request):
|
||||
"""
|
||||
Render a single form field for table column filters from template
|
||||
"""
|
||||
url = ""
|
||||
field = None
|
||||
|
||||
# Does this table have a filterset form?
|
||||
if table.filterset_form is not None:
|
||||
# Get the filterset field
|
||||
field = get_filter_field(table.filterset_form, fieldname)
|
||||
|
||||
# Return if no filterset field
|
||||
if field is None:
|
||||
return {}
|
||||
|
||||
# Handle filter forms
|
||||
if table:
|
||||
|
Loading…
Reference in New Issue
Block a user