From a707204f98c98759b5e129bad44fce30b52a888f Mon Sep 17 00:00:00 2001 From: Saria Hajjar Date: Thu, 2 Jan 2020 17:46:37 +0000 Subject: [PATCH 1/3] Select2 for device field --- netbox/dcim/forms.py | 35 +++++++++++++++++++++++++---------- 1 file changed, 25 insertions(+), 10 deletions(-) diff --git a/netbox/dcim/forms.py b/netbox/dcim/forms.py index 1774fc986..325ed1b73 100644 --- a/netbox/dcim/forms.py +++ b/netbox/dcim/forms.py @@ -3171,9 +3171,12 @@ class CableFilterForm(BootstrapMixin, forms.Form): required=False, widget=ColorSelect() ) - device = forms.CharField( + device = forms.ChoiceField( required=False, - label='Device name' + widget=APISelect( + api_url='/api/dcim/devices/', + value_field='text', + ) ) @@ -3243,9 +3246,12 @@ class ConsoleConnectionFilterForm(BootstrapMixin, forms.Form): required=False, to_field_name='slug' ) - device = forms.CharField( + device = forms.ChoiceField( required=False, - label='Device name' + widget=APISelect( + api_url='/api/dcim/devices/', + value_field='text', + ) ) @@ -3255,9 +3261,12 @@ class PowerConnectionFilterForm(BootstrapMixin, forms.Form): required=False, to_field_name='slug' ) - device = forms.CharField( + device = forms.ChoiceField( required=False, - label='Device name' + widget=APISelect( + api_url='/api/dcim/devices/', + value_field='text', + ) ) @@ -3267,9 +3276,12 @@ class InterfaceConnectionFilterForm(BootstrapMixin, forms.Form): required=False, to_field_name='slug' ) - device = forms.CharField( + device = forms.ChoiceField( required=False, - label='Device name' + widget=APISelect( + api_url='/api/dcim/devices/', + value_field='text', + ) ) @@ -3349,9 +3361,12 @@ class InventoryItemFilterForm(BootstrapMixin, forms.Form): required=False, label='Search' ) - device = forms.CharField( + device = forms.ChoiceField( required=False, - label='Device name' + widget=APISelect( + api_url='/api/dcim/devices/', + value_field='text', + ) ) manufacturer = FilterChoiceField( queryset=Manufacturer.objects.all(), From a3861ed492c280f5ba965fd8126558822155ea63 Mon Sep 17 00:00:00 2001 From: Saria Hajjar Date: Thu, 2 Jan 2020 21:21:52 +0000 Subject: [PATCH 2/3] Update device filters to use IDs --- netbox/dcim/forms.py | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/netbox/dcim/forms.py b/netbox/dcim/forms.py index 6952bba65..2aab48a1b 100644 --- a/netbox/dcim/forms.py +++ b/netbox/dcim/forms.py @@ -3171,11 +3171,12 @@ class CableFilterForm(BootstrapMixin, forms.Form): required=False, widget=ColorSelect() ) - device = forms.ChoiceField( + device_id = FilterChoiceField( + queryset=Device.objects.all(), required=False, + label='Device', widget=APISelect( api_url='/api/dcim/devices/', - value_field='text', ) ) @@ -3246,11 +3247,12 @@ class ConsoleConnectionFilterForm(BootstrapMixin, forms.Form): required=False, to_field_name='slug' ) - device = forms.ChoiceField( + device_id = FilterChoiceField( + queryset=Device.objects.all(), required=False, + label='Device', widget=APISelect( api_url='/api/dcim/devices/', - value_field='text', ) ) @@ -3261,11 +3263,12 @@ class PowerConnectionFilterForm(BootstrapMixin, forms.Form): required=False, to_field_name='slug' ) - device = forms.ChoiceField( + device_id = FilterChoiceField( + queryset=Device.objects.all(), required=False, + label='Device', widget=APISelect( api_url='/api/dcim/devices/', - value_field='text', ) ) @@ -3276,11 +3279,12 @@ class InterfaceConnectionFilterForm(BootstrapMixin, forms.Form): required=False, to_field_name='slug' ) - device = forms.ChoiceField( + device_id = FilterChoiceField( + queryset=Device.objects.all(), required=False, + label='Device', widget=APISelect( api_url='/api/dcim/devices/', - value_field='text', ) ) @@ -3374,11 +3378,12 @@ class InventoryItemFilterForm(BootstrapMixin, forms.Form): required=False, label='Search' ) - device = forms.ChoiceField( + device_id = FilterChoiceField( + queryset=Device.objects.all(), required=False, + label='Device', widget=APISelect( api_url='/api/dcim/devices/', - value_field='text', ) ) manufacturer = FilterChoiceField( From 240bbc2944a6f934f03dce6f8e672d707a1a26cf Mon Sep 17 00:00:00 2001 From: Saria Hajjar Date: Thu, 2 Jan 2020 21:28:06 +0000 Subject: [PATCH 3/3] Select2 site widget --- netbox/dcim/forms.py | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/netbox/dcim/forms.py b/netbox/dcim/forms.py index 2aab48a1b..5d62201c4 100644 --- a/netbox/dcim/forms.py +++ b/netbox/dcim/forms.py @@ -3242,10 +3242,13 @@ class DeviceBayBulkRenameForm(BulkRenameForm): # class ConsoleConnectionFilterForm(BootstrapMixin, forms.Form): - site = forms.ModelChoiceField( + site = FilterChoiceField( queryset=Site.objects.all(), - required=False, - to_field_name='slug' + to_field_name='slug', + widget=APISelectMultiple( + api_url="/api/dcim/sites/", + value_field="slug", + ) ) device_id = FilterChoiceField( queryset=Device.objects.all(), @@ -3258,10 +3261,13 @@ class ConsoleConnectionFilterForm(BootstrapMixin, forms.Form): class PowerConnectionFilterForm(BootstrapMixin, forms.Form): - site = forms.ModelChoiceField( + site = FilterChoiceField( queryset=Site.objects.all(), - required=False, - to_field_name='slug' + to_field_name='slug', + widget=APISelectMultiple( + api_url="/api/dcim/sites/", + value_field="slug", + ) ) device_id = FilterChoiceField( queryset=Device.objects.all(), @@ -3274,10 +3280,13 @@ class PowerConnectionFilterForm(BootstrapMixin, forms.Form): class InterfaceConnectionFilterForm(BootstrapMixin, forms.Form): - site = forms.ModelChoiceField( + site = FilterChoiceField( queryset=Site.objects.all(), - required=False, - to_field_name='slug' + to_field_name='slug', + widget=APISelectMultiple( + api_url="/api/dcim/sites/", + value_field="slug", + ) ) device_id = FilterChoiceField( queryset=Device.objects.all(),