1
0
mirror of https://github.com/netbox-community/netbox.git synced 2024-05-10 07:54:54 +00:00

Secrets Select2 forms

This commit is contained in:
John Anderson
2019-01-09 23:46:45 -05:00
parent 86bafbb760
commit 951e7a68e9

View File

@@ -6,7 +6,10 @@ from taggit.forms import TagField
from dcim.models import Device from dcim.models import Device
from extras.forms import AddRemoveTagsForm, CustomFieldBulkEditForm, CustomFieldFilterForm, CustomFieldForm 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 from .models import Secret, SecretRole, UserKey
@@ -42,6 +45,10 @@ class SecretRoleForm(BootstrapMixin, forms.ModelForm):
fields = [ fields = [
'name', 'slug', 'users', 'groups', 'name', 'slug', 'users', 'groups',
] ]
widgets = {
'users': StaticSelect2Multiple(),
'groups': StaticSelect2Multiple(),
}
class SecretRoleCSVForm(forms.ModelForm): class SecretRoleCSVForm(forms.ModelForm):
@@ -85,6 +92,11 @@ class SecretForm(BootstrapMixin, CustomFieldForm):
fields = [ fields = [
'role', 'name', 'plaintext', 'plaintext2', 'tags', 'role', 'name', 'plaintext', 'plaintext2', 'tags',
] ]
widgets = {
'role': APISelect(
api_url="/api/secrets/secret-roles/"
)
}
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs) super().__init__(*args, **kwargs)
@@ -143,7 +155,10 @@ class SecretBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldBulkEditF
) )
role = forms.ModelChoiceField( role = forms.ModelChoiceField(
queryset=SecretRole.objects.all(), queryset=SecretRole.objects.all(),
required=False required=False,
widget=APISelect(
api_url="/api/secrets/secret-roles/"
)
) )
name = forms.CharField( name = forms.CharField(
max_length=100, max_length=100,
@@ -166,7 +181,11 @@ class SecretFilterForm(BootstrapMixin, CustomFieldFilterForm):
queryset=SecretRole.objects.annotate( queryset=SecretRole.objects.annotate(
filter_count=Count('secrets') filter_count=Count('secrets')
), ),
to_field_name='slug' to_field_name='slug',
widget=APISelectMultiple(
api_url="/api/secrets/secret-roles/",
value_field="slug",
)
) )