Browse Source

Added bulk import view for tenant groups

Jeremy Stretch 7 years ago
parent
commit
42e557bd3f
4 changed files with 20 additions and 1 deletions
  1. 1 1
      netbox/templates/inc/nav_menu.html
  2. 11 0
      netbox/tenancy/forms.py
  3. 1 0
      netbox/tenancy/urls.py
  4. 7 0
      netbox/tenancy/views.py

+ 1 - 1
netbox/templates/inc/nav_menu.html

@@ -53,7 +53,7 @@
                             {% if perms.tenancy.add_tenantgroup %}
                                 <div class="buttons pull-right">
                                     <a href="{% url 'tenancy:tenantgroup_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 'tenancy:tenantgroup_import' %}" class="btn btn-xs btn-info" title="Import"><i class="fa fa-download"></i></a>
                                 </div>
                             {% endif %}
                             <a href="{% url 'tenancy:tenantgroup_list' %}">Tenant Groups</a>

+ 11 - 0
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
 #

+ 1 - 0
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<slug>[\w-]+)/edit/$', views.TenantGroupEditView.as_view(), name='tenantgroup_edit'),
 

+ 7 - 0
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