diff --git a/netbox/users/forms/bulk_edit.py b/netbox/users/forms/bulk_edit.py index c444b4cf6..9fe16db7b 100644 --- a/netbox/users/forms/bulk_edit.py +++ b/netbox/users/forms/bulk_edit.py @@ -16,6 +16,10 @@ __all__ = ( class UserBulkEditForm(BootstrapMixin, forms.Form): + pk = forms.ModelMultipleChoiceField( + queryset=None, # Set from self.model on init + widget=forms.MultipleHiddenInput + ) first_name = forms.CharField( max_length=150, required=False @@ -43,8 +47,16 @@ class UserBulkEditForm(BootstrapMixin, forms.Form): ) nullable_fields = () + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self.fields['pk'].queryset = self.model.objects.all() -class GroupBulkEditForm(NetBoxModelBulkEditForm): + +class GroupBulkEditForm(BootstrapMixin, forms.Form): + pk = forms.ModelMultipleChoiceField( + queryset=None, # Set from self.model on init + widget=forms.MultipleHiddenInput + ) first_name = forms.CharField( max_length=150, required=False @@ -58,6 +70,10 @@ class GroupBulkEditForm(NetBoxModelBulkEditForm): 'asns', 'description', 'comments', ) + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self.fields['pk'].queryset = self.model.objects.all() + class ObjectPermissionBulkEditForm(NetBoxModelBulkEditForm): model = ObjectPermission diff --git a/netbox/users/forms/filtersets.py b/netbox/users/forms/filtersets.py index cef567230..0746b42a3 100644 --- a/netbox/users/forms/filtersets.py +++ b/netbox/users/forms/filtersets.py @@ -8,6 +8,7 @@ from ipam.models import ASN from netbox.forms import NetBoxModelFilterSetForm from tenancy.forms import TenancyFilterForm, ContactModelFilterForm from users.models import NetBoxUser +from utilities.forms import BOOLEAN_WITH_BLANK_CHOICES, FilterForm, add_blank_choice from utilities.forms.fields import DynamicModelMultipleChoiceField, TagFilterField from utilities.forms.widgets import DatePicker, NumberWithOptions @@ -34,16 +35,25 @@ class UserFilterForm(ContactModelFilterForm, NetBoxModelFilterSetForm): last_name = forms.CharField( required=False ) - is_superuser = forms.BooleanField( + is_superuser = forms.NullBooleanField( required=False, + widget=forms.Select( + choices=BOOLEAN_WITH_BLANK_CHOICES + ), label='Is Superuser', ) - is_staff = forms.BooleanField( + is_staff = forms.NullBooleanField( required=False, + widget=forms.Select( + choices=BOOLEAN_WITH_BLANK_CHOICES + ), label='Is Staff', ) - is_active = forms.BooleanField( + is_active = forms.NullBooleanField( required=False, + widget=forms.Select( + choices=BOOLEAN_WITH_BLANK_CHOICES + ), label='Is Active', ) @@ -52,57 +62,22 @@ class GroupFilterForm(ContactModelFilterForm, NetBoxModelFilterSetForm): model = NetBoxUser fieldsets = ( (None, ('q', 'filter_id',)), - ('Name', ('username', 'first_name', 'last_name')), - ('Security', ('is_superuser', 'is_staff', 'is_active')), + ('Name', ('name',)), ) - username = forms.CharField( + name = forms.CharField( required=False ) - first_name = forms.CharField( - required=False - ) - last_name = forms.CharField( - required=False - ) - is_superuser = forms.BooleanField( - required=False, - label='Is Superuser', - ) - is_staff = forms.BooleanField( - required=False, - label='Is Staff', - ) - is_active = forms.BooleanField( - required=False, - label='Is Active', - ) class ObjectPermissionFilterForm(ContactModelFilterForm, NetBoxModelFilterSetForm): model = NetBoxUser fieldsets = ( (None, ('q', 'filter_id',)), - ('Name', ('username', 'first_name', 'last_name')), - ('Security', ('is_superuser', 'is_staff', 'is_active')), + ('Name', ('enabled',)), ) - username = forms.CharField( - required=False - ) - first_name = forms.CharField( - required=False - ) - last_name = forms.CharField( - required=False - ) - is_superuser = forms.BooleanField( + enabled = forms.NullBooleanField( required=False, - label='Is Superuser', - ) - is_staff = forms.BooleanField( - required=False, - label='Is Staff', - ) - is_active = forms.BooleanField( - required=False, - label='Is Active', + widget=forms.Select( + choices=BOOLEAN_WITH_BLANK_CHOICES + ) )