12589 user bulk import

This commit is contained in:
Arthur 2023-07-17 13:00:35 +07:00
parent 1a33637e08
commit 68cd6efca6
3 changed files with 31 additions and 3 deletions

View File

@ -1,17 +1,39 @@
from django import forms from django import forms
from users.models import NetBoxGroup from users.models import NetBoxGroup, NetBoxUser
from netbox.forms import NetBoxModelImportForm from utilities.forms import CSVModelForm
__all__ = ( __all__ = (
'GroupImportForm', 'GroupImportForm',
'UserImportForm',
) )
class GroupImportForm(NetBoxModelImportForm): class GroupImportForm(CSVModelForm):
class Meta: class Meta:
model = NetBoxGroup model = NetBoxGroup
fields = ( fields = (
'name', 'name',
) )
class UserImportForm(CSVModelForm):
class Meta:
model = NetBoxUser
fields = (
'username', 'first_name', 'last_name', 'email', 'password', 'is_staff',
'is_active', 'is_superuser'
)
def save(self, *args, **kwargs):
edited = getattr(self, 'instance', None)
instance = super().save(*args, **kwargs)
# On edit, check if we have to save the password
if edited and self.cleaned_data.get("password"):
instance.set_password(self.cleaned_data.get("password"))
instance.save()
return instance

View File

@ -16,6 +16,7 @@ urlpatterns = [
path('users/', views.NetBoxUserListView.as_view(), name='netboxuser_list'), path('users/', views.NetBoxUserListView.as_view(), name='netboxuser_list'),
path('users/add/', views.NetBoxUserEditView.as_view(), name='netboxuser_add'), path('users/add/', views.NetBoxUserEditView.as_view(), name='netboxuser_add'),
path('users/edit/', views.NetBoxUserBulkEditView.as_view(), name='netboxuser_bulk_edit'), path('users/edit/', views.NetBoxUserBulkEditView.as_view(), name='netboxuser_bulk_edit'),
path('users/import/', views.NetBoxUserBulkImportView.as_view(), name='netboxuser_import'),
path('users/delete/', views.NetBoxUserBulkDeleteView.as_view(), name='netboxuser_bulk_delete'), path('users/delete/', views.NetBoxUserBulkDeleteView.as_view(), name='netboxuser_bulk_delete'),
path('users/<int:pk>/', include(get_model_urls('users', 'netboxuser'))), path('users/<int:pk>/', include(get_model_urls('users', 'netboxuser'))),

View File

@ -405,6 +405,11 @@ class NetBoxUserBulkEditView(generic.BulkEditView):
form = forms.UserBulkEditForm form = forms.UserBulkEditForm
class NetBoxUserBulkImportView(generic.BulkImportView):
queryset = NetBoxUser.objects.all()
model_form = forms.UserImportForm
class NetBoxUserBulkDeleteView(generic.BulkDeleteView): class NetBoxUserBulkDeleteView(generic.BulkDeleteView):
queryset = NetBoxUser.objects.all() queryset = NetBoxUser.objects.all()
filterset = filtersets.UserFilterSet filterset = filtersets.UserFilterSet