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

Added bulk import views for cluster types and groups

This commit is contained in:
Jeremy Stretch
2017-10-09 15:49:48 -04:00
parent 977cad3830
commit a38cd449c5
5 changed files with 42 additions and 2 deletions

View File

@ -297,7 +297,7 @@
{% if perms.virtualization.add_clustertype %} {% if perms.virtualization.add_clustertype %}
<div class="buttons pull-right"> <div class="buttons pull-right">
<a href="{% url 'virtualization:clustertype_add' %}" class="btn btn-xs btn-success" title="Add"><i class="fa fa-plus"></i></a> <a href="{% url 'virtualization:clustertype_add' %}" class="btn btn-xs btn-success" title="Add"><i class="fa fa-plus"></i></a>
<a class="btn btn-xs btn-info disabled" title="Import"><i class="fa fa-download"></i></a> <a href="{% url 'virtualization:clustertype_import' %}" class="btn btn-xs btn-info" title="Import"><i class="fa fa-download"></i></a>
</div> </div>
{% endif %} {% endif %}
<a href="{% url 'virtualization:clustertype_list' %}">Cluster Types</a> <a href="{% url 'virtualization:clustertype_list' %}">Cluster Types</a>
@ -306,7 +306,7 @@
{% if perms.virtualization.add_clustergroup %} {% if perms.virtualization.add_clustergroup %}
<div class="buttons pull-right"> <div class="buttons pull-right">
<a href="{% url 'virtualization:clustergroup_add' %}" class="btn btn-xs btn-success" title="Add"><i class="fa fa-plus"></i></a> <a href="{% url 'virtualization:clustergroup_add' %}" class="btn btn-xs btn-success" title="Add"><i class="fa fa-plus"></i></a>
<a class="btn btn-xs btn-info disabled" title="Import"><i class="fa fa-download"></i></a> <a href="{% url 'virtualization:clustergroup_import' %}" class="btn btn-xs btn-info" title="Import"><i class="fa fa-download"></i></a>
</div> </div>
{% endif %} {% endif %}
<a href="{% url 'virtualization:clustergroup_list' %}">Cluster Groups</a> <a href="{% url 'virtualization:clustergroup_list' %}">Cluster Groups</a>

View File

@ -38,6 +38,17 @@ class ClusterTypeForm(BootstrapMixin, forms.ModelForm):
fields = ['name', 'slug'] 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 # Cluster groups
# #
@ -50,6 +61,17 @@ class ClusterGroupForm(BootstrapMixin, forms.ModelForm):
fields = ['name', 'slug'] fields = ['name', 'slug']
class ClusterGroupCSVForm(forms.ModelForm):
slug = SlugField()
class Meta:
model = ClusterGroup
fields = ['name', 'slug']
help_texts = {
'name': 'Name of cluster group',
}
# #
# Clusters # Clusters
# #

View File

@ -37,6 +37,7 @@ VIRTUALMACHINE_PRIMARY_IP = """
class ClusterTypeTable(BaseTable): class ClusterTypeTable(BaseTable):
pk = ToggleColumn() pk = ToggleColumn()
name = tables.LinkColumn()
cluster_count = tables.Column(verbose_name='Clusters') cluster_count = tables.Column(verbose_name='Clusters')
actions = tables.TemplateColumn( actions = tables.TemplateColumn(
template_code=CLUSTERTYPE_ACTIONS, template_code=CLUSTERTYPE_ACTIONS,
@ -55,6 +56,7 @@ class ClusterTypeTable(BaseTable):
class ClusterGroupTable(BaseTable): class ClusterGroupTable(BaseTable):
pk = ToggleColumn() pk = ToggleColumn()
name = tables.LinkColumn()
cluster_count = tables.Column(verbose_name='Clusters') cluster_count = tables.Column(verbose_name='Clusters')
actions = tables.TemplateColumn( actions = tables.TemplateColumn(
template_code=CLUSTERGROUP_ACTIONS, template_code=CLUSTERGROUP_ACTIONS,

View File

@ -12,12 +12,14 @@ urlpatterns = [
# Cluster types # Cluster types
url(r'^cluster-types/$', views.ClusterTypeListView.as_view(), name='clustertype_list'), 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/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/delete/$', views.ClusterTypeBulkDeleteView.as_view(), name='clustertype_bulk_delete'),
url(r'^cluster-types/(?P<slug>[\w-]+)/edit/$', views.ClusterTypeEditView.as_view(), name='clustertype_edit'), url(r'^cluster-types/(?P<slug>[\w-]+)/edit/$', views.ClusterTypeEditView.as_view(), name='clustertype_edit'),
# Cluster groups # Cluster groups
url(r'^cluster-groups/$', views.ClusterGroupListView.as_view(), name='clustergroup_list'), 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/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/delete/$', views.ClusterGroupBulkDeleteView.as_view(), name='clustergroup_bulk_delete'),
url(r'^cluster-groups/(?P<slug>[\w-]+)/edit/$', views.ClusterGroupEditView.as_view(), name='clustergroup_edit'), url(r'^cluster-groups/(?P<slug>[\w-]+)/edit/$', views.ClusterGroupEditView.as_view(), name='clustergroup_edit'),

View File

@ -43,6 +43,13 @@ class ClusterTypeEditView(ClusterTypeCreateView):
permission_required = 'virtualization.change_clustertype' 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): class ClusterTypeBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
permission_required = 'virtualization.delete_clustertype' permission_required = 'virtualization.delete_clustertype'
cls = ClusterType cls = ClusterType
@ -74,6 +81,13 @@ class ClusterGroupEditView(ClusterGroupCreateView):
permission_required = 'virtualization.change_clustergroup' 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): class ClusterGroupBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
permission_required = 'virtualization.delete_clustergroup' permission_required = 'virtualization.delete_clustergroup'
cls = ClusterGroup cls = ClusterGroup