From 951e7a68e977c99c2170fe2a147eb4b40105fc86 Mon Sep 17 00:00:00 2001 From: John Anderson Date: Wed, 9 Jan 2019 23:46:45 -0500 Subject: [PATCH] Secrets Select2 forms --- netbox/secrets/forms.py | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/netbox/secrets/forms.py b/netbox/secrets/forms.py index 4e84ff78d..7e6f6b4b4 100644 --- a/netbox/secrets/forms.py +++ b/netbox/secrets/forms.py @@ -6,7 +6,10 @@ from taggit.forms import TagField from dcim.models import Device from extras.forms import AddRemoveTagsForm, CustomFieldBulkEditForm, CustomFieldFilterForm, CustomFieldForm -from utilities.forms import BootstrapMixin, FilterChoiceField, FlexibleModelChoiceField, SlugField +from utilities.forms import ( + APISelect, APISelectMultiple, BootstrapMixin, FilterChoiceField, FlexibleModelChoiceField, SlugField, + StaticSelect2Multiple +) from .models import Secret, SecretRole, UserKey @@ -42,6 +45,10 @@ class SecretRoleForm(BootstrapMixin, forms.ModelForm): fields = [ 'name', 'slug', 'users', 'groups', ] + widgets = { + 'users': StaticSelect2Multiple(), + 'groups': StaticSelect2Multiple(), + } class SecretRoleCSVForm(forms.ModelForm): @@ -85,6 +92,11 @@ class SecretForm(BootstrapMixin, CustomFieldForm): fields = [ 'role', 'name', 'plaintext', 'plaintext2', 'tags', ] + widgets = { + 'role': APISelect( + api_url="/api/secrets/secret-roles/" + ) + } def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) @@ -143,7 +155,10 @@ class SecretBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldBulkEditF ) role = forms.ModelChoiceField( queryset=SecretRole.objects.all(), - required=False + required=False, + widget=APISelect( + api_url="/api/secrets/secret-roles/" + ) ) name = forms.CharField( max_length=100, @@ -166,7 +181,11 @@ class SecretFilterForm(BootstrapMixin, CustomFieldFilterForm): queryset=SecretRole.objects.annotate( filter_count=Count('secrets') ), - to_field_name='slug' + to_field_name='slug', + widget=APISelectMultiple( + api_url="/api/secrets/secret-roles/", + value_field="slug", + ) )