Parcourir la source

Converted module_add to ObjectEditView

Jeremy Stretch il y a 8 ans
Parent
commit
b7fe220860
3 fichiers modifiés avec 8 ajouts et 30 suppressions
  1. 1 1
      netbox/dcim/urls.py
  2. 6 28
      netbox/dcim/views.py
  3. 1 1
      netbox/templates/dcim/device_inventory.html

+ 1 - 1
netbox/dcim/urls.py

@@ -166,7 +166,7 @@ urlpatterns = [
     url(r'^interfaces/(?P<pk>\d+)/delete/$', views.InterfaceDeleteView.as_view(), name='interface_delete'),
 
     # Modules
-    url(r'^devices/(?P<pk>\d+)/modules/add/$', views.module_add, name='module_add'),
+    url(r'^devices/(?P<device>\d+)/modules/add/$', views.ModuleEditView.as_view(), name='module_add'),
     url(r'^modules/(?P<pk>\d+)/edit/$', views.ModuleEditView.as_view(), name='module_edit'),
     url(r'^modules/(?P<pk>\d+)/delete/$', views.ModuleDeleteView.as_view(), name='module_delete'),
 

+ 6 - 28
netbox/dcim/views.py

@@ -1605,39 +1605,17 @@ def ipaddress_assign(request, pk):
 # Modules
 #
 
-@permission_required('dcim.add_module')
-def module_add(request, pk):
-
-    device = get_object_or_404(Device, pk=pk)
-
-    if request.method == 'POST':
-        form = forms.ModuleForm(request.POST)
-        if form.is_valid():
-            module = form.save(commit=False)
-            module.device = device
-            module.save()
-            messages.success(request, u"Added module {} to {}".format(module.name, module.device.name))
-            if '_addanother' in request.POST:
-                return redirect('dcim:module_add', pk=module.device.pk)
-            else:
-                return redirect('dcim:device_inventory', pk=module.device.pk)
-
-    else:
-        form = forms.ModuleForm()
-
-    return render(request, 'dcim/device_component_add.html', {
-        'device': device,
-        'component_type': 'Module',
-        'form': form,
-        'cancel_url': reverse('dcim:device_inventory', kwargs={'pk': device.pk}),
-    })
-
-
 class ModuleEditView(PermissionRequiredMixin, ObjectEditView):
     permission_required = 'dcim.change_module'
     model = Module
     form_class = forms.ModuleForm
 
+    def alter_obj(self, obj, args, kwargs):
+        if 'device' in kwargs:
+            device = get_object_or_404(Device, pk=kwargs['device'])
+            obj.device = device
+        return obj
+
 
 class ModuleDeleteView(PermissionRequiredMixin, ObjectDeleteView):
     permission_required = 'dcim.delete_module'

+ 1 - 1
netbox/templates/dcim/device_inventory.html

@@ -127,7 +127,7 @@
             </table>
         </div>
         {% if perms.dcim.add_module %}
-            <a href="{% url 'dcim:module_add' pk=device.pk %}" class="btn btn-success">
+            <a href="{% url 'dcim:module_add' device=device.pk %}" class="btn btn-success">
                 <span class="fa fa-plus" aria-hidden="true"></span>
                 Add a Module
             </a>