diff --git a/docs/release-notes/version-2.6.md b/docs/release-notes/version-2.6.md index c6e3934e7..9f9702f62 100644 --- a/docs/release-notes/version-2.6.md +++ b/docs/release-notes/version-2.6.md @@ -1,3 +1,11 @@ +# v2.6.11 (FUTURE) + +## Bug Fixes + +* [#3831](https://github.com/netbox-community/netbox/issues/3831) - Fix API-driven filter field rendering (#3812 regression) + +--- + # v2.6.10 (2020-01-02) ## Enhancements diff --git a/netbox/circuits/forms.py b/netbox/circuits/forms.py index 8ff6a0718..49c023299 100644 --- a/netbox/circuits/forms.py +++ b/netbox/circuits/forms.py @@ -302,6 +302,9 @@ class CircuitFilterForm(BootstrapMixin, TenancyFilterForm, CustomFieldFilterForm widget=APISelectMultiple( api_url="/api/dcim/regions/", value_field="slug", + filter_for={ + 'site': 'region' + } ) ) site = FilterChoiceField( diff --git a/netbox/dcim/forms.py b/netbox/dcim/forms.py index c34c750c5..429d26c60 100644 --- a/netbox/dcim/forms.py +++ b/netbox/dcim/forms.py @@ -651,16 +651,15 @@ class RackFilterForm(BootstrapMixin, TenancyFilterForm, CustomFieldFilterForm): } ) ) - group_id = ChainedModelChoiceField( - label='Rack group', - queryset=RackGroup.objects.prefetch_related('site'), - chains=( - ('site', 'site'), + group_id = FilterChoiceField( + queryset=RackGroup.objects.prefetch_related( + 'site' ), - required=False, + label='Rack group', + null_label='-- None --', widget=APISelectMultiple( api_url="/api/dcim/rack-groups/", - null_option=True, + null_option=True ) ) status = forms.MultipleChoiceField( diff --git a/netbox/utilities/templates/widgets/select_api.html b/netbox/utilities/templates/widgets/select_api.html index 0146a31ff..d9516086b 100644 --- a/netbox/utilities/templates/widgets/select_api.html +++ b/netbox/utilities/templates/widgets/select_api.html @@ -1,5 +1,9 @@ - +{% for group_name, group_choices, group_index in widget.optgroups %} + {% if group_name %}{% endif %} + {% for option in group_choices %} + {% if option.attrs.selected or option.value == "null" %}{% include option.template_name with widget=option %}{% endif %} + {% endfor %} + {% if group_name %}{% endif %} +{% endfor %} diff --git a/netbox/virtualization/forms.py b/netbox/virtualization/forms.py index 2cf55fcde..48b370dc1 100644 --- a/netbox/virtualization/forms.py +++ b/netbox/virtualization/forms.py @@ -563,7 +563,9 @@ class VirtualMachineFilterForm(BootstrapMixin, TenancyFilterForm, CustomFieldFil widget=APISelectMultiple( api_url='/api/dcim/regions/', value_field="slug", - null_option=True, + filter_for={ + 'site': 'region' + } ) ) site = FilterChoiceField(