diff --git a/netbox/templates/inc/nav_menu.html b/netbox/templates/inc/nav_menu.html index c61e99394..c260eeec3 100644 --- a/netbox/templates/inc/nav_menu.html +++ b/netbox/templates/inc/nav_menu.html @@ -53,7 +53,7 @@ {% if perms.tenancy.add_tenantgroup %}
- +
{% endif %} Tenant Groups diff --git a/netbox/tenancy/forms.py b/netbox/tenancy/forms.py index 969050841..5eb3bda61 100644 --- a/netbox/tenancy/forms.py +++ b/netbox/tenancy/forms.py @@ -22,6 +22,17 @@ class TenantGroupForm(BootstrapMixin, forms.ModelForm): fields = ['name', 'slug'] +class TenantGroupCSVForm(forms.ModelForm): + slug = SlugField() + + class Meta: + model = TenantGroup + fields = ['name', 'slug'] + help_texts = { + 'name': 'Group name', + } + + # # Tenants # diff --git a/netbox/tenancy/urls.py b/netbox/tenancy/urls.py index 76d800344..a0337a938 100644 --- a/netbox/tenancy/urls.py +++ b/netbox/tenancy/urls.py @@ -11,6 +11,7 @@ urlpatterns = [ # Tenant groups url(r'^tenant-groups/$', views.TenantGroupListView.as_view(), name='tenantgroup_list'), url(r'^tenant-groups/add/$', views.TenantGroupCreateView.as_view(), name='tenantgroup_add'), + url(r'^tenant-groups/import/$', views.TenantGroupBulkImportView.as_view(), name='tenantgroup_import'), url(r'^tenant-groups/delete/$', views.TenantGroupBulkDeleteView.as_view(), name='tenantgroup_bulk_delete'), url(r'^tenant-groups/(?P[\w-]+)/edit/$', views.TenantGroupEditView.as_view(), name='tenantgroup_edit'), diff --git a/netbox/tenancy/views.py b/netbox/tenancy/views.py index 9bcfee82d..32709dfb7 100644 --- a/netbox/tenancy/views.py +++ b/netbox/tenancy/views.py @@ -40,6 +40,13 @@ class TenantGroupEditView(TenantGroupCreateView): permission_required = 'tenancy.change_tenantgroup' +class TenantGroupBulkImportView(PermissionRequiredMixin, BulkImportView): + permission_required = 'tenancy.add_tenantgroup' + model_form = forms.TenantGroupCSVForm + table = tables.TenantGroupTable + default_return_url = 'tenancy:tenantgroup_list' + + class TenantGroupBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): permission_required = 'tenancy.delete_tenantgroup' cls = TenantGroup