Browse Source

Added bulk import view for secret roles

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

+ 11 - 0
netbox/secrets/forms.py

@@ -43,6 +43,17 @@ class SecretRoleForm(BootstrapMixin, forms.ModelForm):
         fields = ['name', 'slug', 'users', 'groups']
         fields = ['name', 'slug', 'users', 'groups']
 
 
 
 
+class SecretRoleCSVForm(forms.ModelForm):
+    slug = SlugField()
+
+    class Meta:
+        model = SecretRole
+        fields = ['name', 'slug']
+        help_texts = {
+            'name': 'Name of secret role',
+        }
+
+
 #
 #
 # Secrets
 # Secrets
 #
 #

+ 1 - 0
netbox/secrets/urls.py

@@ -11,6 +11,7 @@ urlpatterns = [
     # Secret roles
     # Secret roles
     url(r'^secret-roles/$', views.SecretRoleListView.as_view(), name='secretrole_list'),
     url(r'^secret-roles/$', views.SecretRoleListView.as_view(), name='secretrole_list'),
     url(r'^secret-roles/add/$', views.SecretRoleCreateView.as_view(), name='secretrole_add'),
     url(r'^secret-roles/add/$', views.SecretRoleCreateView.as_view(), name='secretrole_add'),
+    url(r'^secret-roles/import/$', views.SecretRoleBulkImportView.as_view(), name='secretrole_import'),
     url(r'^secret-roles/delete/$', views.SecretRoleBulkDeleteView.as_view(), name='secretrole_bulk_delete'),
     url(r'^secret-roles/delete/$', views.SecretRoleBulkDeleteView.as_view(), name='secretrole_bulk_delete'),
     url(r'^secret-roles/(?P<slug>[\w-]+)/edit/$', views.SecretRoleEditView.as_view(), name='secretrole_edit'),
     url(r'^secret-roles/(?P<slug>[\w-]+)/edit/$', views.SecretRoleEditView.as_view(), name='secretrole_edit'),
 
 

+ 7 - 0
netbox/secrets/views.py

@@ -52,6 +52,13 @@ class SecretRoleEditView(SecretRoleCreateView):
     permission_required = 'secrets.change_secretrole'
     permission_required = 'secrets.change_secretrole'
 
 
 
 
+class SecretRoleBulkImportView(PermissionRequiredMixin, BulkImportView):
+    permission_required = 'secrets.add_secretrole'
+    model_form = forms.SecretRoleCSVForm
+    table = tables.SecretRoleTable
+    default_return_url = 'secrets:secretrole_list'
+
+
 class SecretRoleBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
 class SecretRoleBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
     permission_required = 'secrets.delete_secretrole'
     permission_required = 'secrets.delete_secretrole'
     cls = SecretRole
     cls = SecretRole

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

@@ -356,7 +356,6 @@
                             <li>
                             <li>
                                 {% if perms.secrets.add_secret %}
                                 {% if perms.secrets.add_secret %}
                                     <div class="buttons pull-right">
                                     <div class="buttons pull-right">
-                                        <a class="btn btn-xs btn-success disabled" title="Add"><i class="fa fa-plus"></i></a>
                                         <a href="{% url 'secrets:secret_import' %}" class="btn btn-xs btn-info" title="Import"><i class="fa fa-download"></i></a>
                                         <a href="{% url 'secrets:secret_import' %}" class="btn btn-xs btn-info" title="Import"><i class="fa fa-download"></i></a>
                                     </div>
                                     </div>
                                 {% endif %}
                                 {% endif %}
@@ -366,7 +365,7 @@
                                 {% if perms.secrets.add_secretrole %}
                                 {% if perms.secrets.add_secretrole %}
                                     <div class="buttons pull-right">
                                     <div class="buttons pull-right">
                                         <a href="{% url 'secrets:secretrole_add' %}" class="btn btn-xs btn-success" title="Add"><i class="fa fa-plus"></i></a>
                                         <a href="{% url 'secrets:secretrole_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 'secrets:secretrole_import' %}" class="btn btn-xs btn-info" title="Import"><i class="fa fa-download"></i></a>
                                     </div>
                                     </div>
                                 {% endif %}
                                 {% endif %}
                                 <a href="{% url 'secrets:secretrole_list' %}">Secret Roles</a>
                                 <a href="{% url 'secrets:secretrole_list' %}">Secret Roles</a>