From b7fe220860b0dc30d78b9072701a90700f782f62 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Fri, 16 Dec 2016 12:12:42 -0500 Subject: [PATCH] Converted module_add to ObjectEditView --- netbox/dcim/urls.py | 2 +- netbox/dcim/views.py | 34 ++++----------------- netbox/templates/dcim/device_inventory.html | 2 +- 3 files changed, 8 insertions(+), 30 deletions(-) diff --git a/netbox/dcim/urls.py b/netbox/dcim/urls.py index 13038710a..a7c29a8af 100644 --- a/netbox/dcim/urls.py +++ b/netbox/dcim/urls.py @@ -166,7 +166,7 @@ urlpatterns = [ url(r'^interfaces/(?P\d+)/delete/$', views.InterfaceDeleteView.as_view(), name='interface_delete'), # Modules - url(r'^devices/(?P\d+)/modules/add/$', views.module_add, name='module_add'), + url(r'^devices/(?P\d+)/modules/add/$', views.ModuleEditView.as_view(), name='module_add'), url(r'^modules/(?P\d+)/edit/$', views.ModuleEditView.as_view(), name='module_edit'), url(r'^modules/(?P\d+)/delete/$', views.ModuleDeleteView.as_view(), name='module_delete'), diff --git a/netbox/dcim/views.py b/netbox/dcim/views.py index 6b955e8da..e7337ad3b 100644 --- a/netbox/dcim/views.py +++ b/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' diff --git a/netbox/templates/dcim/device_inventory.html b/netbox/templates/dcim/device_inventory.html index 48e29f7cb..b2c94c1dd 100644 --- a/netbox/templates/dcim/device_inventory.html +++ b/netbox/templates/dcim/device_inventory.html @@ -127,7 +127,7 @@ {% if perms.dcim.add_module %} - + Add a Module