mirror of
https://github.com/netbox-community/netbox.git
synced 2025-12-18 11:22:25 -06:00
Added bulk import views for cluster types and groups
This commit is contained in:
@@ -38,6 +38,17 @@ class ClusterTypeForm(BootstrapMixin, forms.ModelForm):
|
||||
fields = ['name', 'slug']
|
||||
|
||||
|
||||
class ClusterTypeCSVForm(forms.ModelForm):
|
||||
slug = SlugField()
|
||||
|
||||
class Meta:
|
||||
model = ClusterType
|
||||
fields = ['name', 'slug']
|
||||
help_texts = {
|
||||
'name': 'Name of cluster type',
|
||||
}
|
||||
|
||||
|
||||
#
|
||||
# Cluster groups
|
||||
#
|
||||
@@ -50,6 +61,17 @@ class ClusterGroupForm(BootstrapMixin, forms.ModelForm):
|
||||
fields = ['name', 'slug']
|
||||
|
||||
|
||||
class ClusterGroupCSVForm(forms.ModelForm):
|
||||
slug = SlugField()
|
||||
|
||||
class Meta:
|
||||
model = ClusterGroup
|
||||
fields = ['name', 'slug']
|
||||
help_texts = {
|
||||
'name': 'Name of cluster group',
|
||||
}
|
||||
|
||||
|
||||
#
|
||||
# Clusters
|
||||
#
|
||||
|
||||
@@ -37,6 +37,7 @@ VIRTUALMACHINE_PRIMARY_IP = """
|
||||
|
||||
class ClusterTypeTable(BaseTable):
|
||||
pk = ToggleColumn()
|
||||
name = tables.LinkColumn()
|
||||
cluster_count = tables.Column(verbose_name='Clusters')
|
||||
actions = tables.TemplateColumn(
|
||||
template_code=CLUSTERTYPE_ACTIONS,
|
||||
@@ -55,6 +56,7 @@ class ClusterTypeTable(BaseTable):
|
||||
|
||||
class ClusterGroupTable(BaseTable):
|
||||
pk = ToggleColumn()
|
||||
name = tables.LinkColumn()
|
||||
cluster_count = tables.Column(verbose_name='Clusters')
|
||||
actions = tables.TemplateColumn(
|
||||
template_code=CLUSTERGROUP_ACTIONS,
|
||||
|
||||
@@ -12,12 +12,14 @@ urlpatterns = [
|
||||
# Cluster types
|
||||
url(r'^cluster-types/$', views.ClusterTypeListView.as_view(), name='clustertype_list'),
|
||||
url(r'^cluster-types/add/$', views.ClusterTypeCreateView.as_view(), name='clustertype_add'),
|
||||
url(r'^cluster-types/import/$', views.ClusterTypeBulkImportView.as_view(), name='clustertype_import'),
|
||||
url(r'^cluster-types/delete/$', views.ClusterTypeBulkDeleteView.as_view(), name='clustertype_bulk_delete'),
|
||||
url(r'^cluster-types/(?P<slug>[\w-]+)/edit/$', views.ClusterTypeEditView.as_view(), name='clustertype_edit'),
|
||||
|
||||
# Cluster groups
|
||||
url(r'^cluster-groups/$', views.ClusterGroupListView.as_view(), name='clustergroup_list'),
|
||||
url(r'^cluster-groups/add/$', views.ClusterGroupCreateView.as_view(), name='clustergroup_add'),
|
||||
url(r'^cluster-groups/import/$', views.ClusterGroupBulkImportView.as_view(), name='clustergroup_import'),
|
||||
url(r'^cluster-groups/delete/$', views.ClusterGroupBulkDeleteView.as_view(), name='clustergroup_bulk_delete'),
|
||||
url(r'^cluster-groups/(?P<slug>[\w-]+)/edit/$', views.ClusterGroupEditView.as_view(), name='clustergroup_edit'),
|
||||
|
||||
|
||||
@@ -43,6 +43,13 @@ class ClusterTypeEditView(ClusterTypeCreateView):
|
||||
permission_required = 'virtualization.change_clustertype'
|
||||
|
||||
|
||||
class ClusterTypeBulkImportView(PermissionRequiredMixin, BulkImportView):
|
||||
permission_required = 'virtualization.add_clustertype'
|
||||
model_form = forms.ClusterTypeCSVForm
|
||||
table = tables.ClusterTypeTable
|
||||
default_return_url = 'virtualization:clustertype_list'
|
||||
|
||||
|
||||
class ClusterTypeBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||
permission_required = 'virtualization.delete_clustertype'
|
||||
cls = ClusterType
|
||||
@@ -74,6 +81,13 @@ class ClusterGroupEditView(ClusterGroupCreateView):
|
||||
permission_required = 'virtualization.change_clustergroup'
|
||||
|
||||
|
||||
class ClusterGroupBulkImportView(PermissionRequiredMixin, BulkImportView):
|
||||
permission_required = 'virtualization.add_clustergroup'
|
||||
model_form = forms.ClusterGroupCSVForm
|
||||
table = tables.ClusterGroupTable
|
||||
default_return_url = 'virtualization:clustergroup_list'
|
||||
|
||||
|
||||
class ClusterGroupBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||
permission_required = 'virtualization.delete_clustergroup'
|
||||
cls = ClusterGroup
|
||||
|
||||
Reference in New Issue
Block a user