Przeglądaj źródła

Fixes #3812: Only preload selected options for API-based select

Saria Hajjar 6 lat temu
rodzic
commit
53625e0dea

+ 1 - 0
docs/release-notes/version-2.6.md

@@ -5,6 +5,7 @@
 * [#3705](https://github.com/netbox-community/netbox/issues/3705) - Provide request context when executing custom scripts
 * [#3762](https://github.com/netbox-community/netbox/issues/3762) - Add date/time picker widgets
 * [#3788](https://github.com/netbox-community/netbox/issues/3788) - Enable partial search for inventory items
+* [#3812](https://github.com/netbox-community/netbox/issues/3812) - Optimize size of pages containing a dynamic selection field
 
 ## Bug Fixes
 

+ 2 - 0
netbox/utilities/forms.py

@@ -285,6 +285,8 @@ class APISelect(SelectWithDisabled):
         name of the query param and the value if the query param's value.
     :param null_option: If true, include the static null option in the selection list.
     """
+    # Only preload the selected option; new options are dynamically displayed and added via the API
+    template_name = 'widgets/select_api.html'
 
     def __init__(
         self,

+ 5 - 0
netbox/utilities/templates/widgets/select_api.html

@@ -0,0 +1,5 @@
+<select name="{{ widget.name }}"{% include "django/forms/widgets/attrs.html" %}>{% for group_name, group_choices, group_index in widget.optgroups %}{% if group_name %}
+  <optgroup label="{{ group_name }}">{% endif %}{% for widget in group_choices %}{% if widget.attrs.selected %}
+  {% include widget.template_name %}{% endif %}{% endfor %}{% if group_name %}
+  </optgroup>{% endif %}{% endfor %}
+</select>