Просмотр исходного кода

Simplify table header filter rendering

Daniel Sheppard 1 год назад
Родитель
Сommit
8d65973c82

+ 1 - 3
netbox/templates/inc/table_htmx.html

@@ -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 %}

+ 1 - 1
netbox/templates/inc/table_header_filter_dropdown.html → netbox/utilities/templates/form_helpers/render_table_filter_field.html

@@ -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>

+ 3 - 5
netbox/utilities/templatetags/form_helpers.py

@@ -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