diff --git a/netbox/users/forms/bulk_import.py b/netbox/users/forms/bulk_import.py index fd0307062..6a7de6499 100644 --- a/netbox/users/forms/bulk_import.py +++ b/netbox/users/forms/bulk_import.py @@ -37,5 +37,5 @@ class UserImportForm(CSVModelForm): class UserTokenImportForm(CSVModelForm): class Meta: - model = Token - fields = ('description', ) + model = UserToken + fields = ('key', 'user', 'expires', 'description',) diff --git a/netbox/users/forms/filtersets.py b/netbox/users/forms/filtersets.py index 1f2b276e8..121a7ab0b 100644 --- a/netbox/users/forms/filtersets.py +++ b/netbox/users/forms/filtersets.py @@ -10,6 +10,7 @@ from netbox.forms import NetBoxModelFilterSetForm from users.models import NetBoxGroup, NetBoxUser, ObjectPermission from utilities.forms import BOOLEAN_WITH_BLANK_CHOICES from utilities.forms.fields import DynamicModelMultipleChoiceField +from utilities.forms.widgets import DateTimePicker __all__ = ( 'GroupFilterForm', @@ -117,3 +118,22 @@ class ObjectPermissionFilterForm(NetBoxModelFilterSetForm): class UserTokenFilterForm(SavedFiltersMixin, FilterForm): model = Token + fieldsets = ( + (None, ('q', 'filter_id',)), + (_('Data'), ('user_id', 'expires', 'last_used')), + ) + user_id = DynamicModelMultipleChoiceField( + queryset=get_user_model().objects.all(), + required=False, + label=_('User') + ) + expires = forms.DateTimeField( + required=False, + label=_('Expires'), + widget=DateTimePicker() + ) + last_used = forms.DateTimeField( + required=False, + label=_('Last Used'), + widget=DateTimePicker() + ) diff --git a/netbox/users/models.py b/netbox/users/models.py index 75d7a515b..7b0e16965 100644 --- a/netbox/users/models.py +++ b/netbox/users/models.py @@ -26,6 +26,7 @@ __all__ = ( 'ObjectPermission', 'Token', 'UserConfig', + 'UserToken', )