mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-22 03:56:53 -06:00
Standardized device component edit views to use ObjectEditView()
This commit is contained in:
parent
28b4f6b8fd
commit
fd38daf0c5
@ -991,6 +991,9 @@ class ConsolePort(models.Model):
|
|||||||
def __unicode__(self):
|
def __unicode__(self):
|
||||||
return self.name
|
return self.name
|
||||||
|
|
||||||
|
def get_absolute_url(self):
|
||||||
|
return self.device.get_absolute_url()
|
||||||
|
|
||||||
# Used for connections export
|
# Used for connections export
|
||||||
def to_csv(self):
|
def to_csv(self):
|
||||||
return ','.join([
|
return ','.join([
|
||||||
@ -1032,6 +1035,9 @@ class ConsoleServerPort(models.Model):
|
|||||||
def __unicode__(self):
|
def __unicode__(self):
|
||||||
return self.name
|
return self.name
|
||||||
|
|
||||||
|
def get_absolute_url(self):
|
||||||
|
return self.device.get_absolute_url()
|
||||||
|
|
||||||
|
|
||||||
class PowerPort(models.Model):
|
class PowerPort(models.Model):
|
||||||
"""
|
"""
|
||||||
@ -1050,6 +1056,9 @@ class PowerPort(models.Model):
|
|||||||
def __unicode__(self):
|
def __unicode__(self):
|
||||||
return self.name
|
return self.name
|
||||||
|
|
||||||
|
def get_absolute_url(self):
|
||||||
|
return self.device.get_absolute_url()
|
||||||
|
|
||||||
# Used for connections export
|
# Used for connections export
|
||||||
def to_csv(self):
|
def to_csv(self):
|
||||||
return ','.join([
|
return ','.join([
|
||||||
@ -1085,6 +1094,9 @@ class PowerOutlet(models.Model):
|
|||||||
def __unicode__(self):
|
def __unicode__(self):
|
||||||
return self.name
|
return self.name
|
||||||
|
|
||||||
|
def get_absolute_url(self):
|
||||||
|
return self.device.get_absolute_url()
|
||||||
|
|
||||||
|
|
||||||
class InterfaceManager(models.Manager):
|
class InterfaceManager(models.Manager):
|
||||||
|
|
||||||
@ -1121,6 +1133,9 @@ class Interface(models.Model):
|
|||||||
def __unicode__(self):
|
def __unicode__(self):
|
||||||
return self.name
|
return self.name
|
||||||
|
|
||||||
|
def get_absolute_url(self):
|
||||||
|
return self.device.get_absolute_url()
|
||||||
|
|
||||||
def clean(self):
|
def clean(self):
|
||||||
|
|
||||||
if self.form_factor == IFACE_FF_VIRTUAL and self.is_connected:
|
if self.form_factor == IFACE_FF_VIRTUAL and self.is_connected:
|
||||||
@ -1209,6 +1224,9 @@ class DeviceBay(models.Model):
|
|||||||
def __unicode__(self):
|
def __unicode__(self):
|
||||||
return u'{} - {}'.format(self.device.name, self.name)
|
return u'{} - {}'.format(self.device.name, self.name)
|
||||||
|
|
||||||
|
def get_absolute_url(self):
|
||||||
|
return self.device.get_absolute_url()
|
||||||
|
|
||||||
def clean(self):
|
def clean(self):
|
||||||
|
|
||||||
# Validate that the parent Device can have DeviceBays
|
# Validate that the parent Device can have DeviceBays
|
||||||
@ -1242,3 +1260,6 @@ class Module(models.Model):
|
|||||||
|
|
||||||
def __unicode__(self):
|
def __unicode__(self):
|
||||||
return self.name
|
return self.name
|
||||||
|
|
||||||
|
def get_absolute_url(self):
|
||||||
|
return reverse('dcim:device_inventory', args=[self.device.pk])
|
||||||
|
@ -110,7 +110,7 @@ urlpatterns = [
|
|||||||
url(r'^devices/(?P<pk>\d+)/console-ports/delete/$', views.ConsolePortBulkDeleteView.as_view(), name='consoleport_bulk_delete'),
|
url(r'^devices/(?P<pk>\d+)/console-ports/delete/$', views.ConsolePortBulkDeleteView.as_view(), name='consoleport_bulk_delete'),
|
||||||
url(r'^console-ports/(?P<pk>\d+)/connect/$', views.consoleport_connect, name='consoleport_connect'),
|
url(r'^console-ports/(?P<pk>\d+)/connect/$', views.consoleport_connect, name='consoleport_connect'),
|
||||||
url(r'^console-ports/(?P<pk>\d+)/disconnect/$', views.consoleport_disconnect, name='consoleport_disconnect'),
|
url(r'^console-ports/(?P<pk>\d+)/disconnect/$', views.consoleport_disconnect, name='consoleport_disconnect'),
|
||||||
url(r'^console-ports/(?P<pk>\d+)/edit/$', views.consoleport_edit, name='consoleport_edit'),
|
url(r'^console-ports/(?P<pk>\d+)/edit/$', views.ConsolePortEditView.as_view(), name='consoleport_edit'),
|
||||||
url(r'^console-ports/(?P<pk>\d+)/delete/$', views.consoleport_delete, name='consoleport_delete'),
|
url(r'^console-ports/(?P<pk>\d+)/delete/$', views.consoleport_delete, name='consoleport_delete'),
|
||||||
|
|
||||||
# Console server ports
|
# Console server ports
|
||||||
@ -118,7 +118,7 @@ urlpatterns = [
|
|||||||
url(r'^devices/(?P<pk>\d+)/console-server-ports/delete/$', views.ConsoleServerPortBulkDeleteView.as_view(), name='consoleserverport_bulk_delete'),
|
url(r'^devices/(?P<pk>\d+)/console-server-ports/delete/$', views.ConsoleServerPortBulkDeleteView.as_view(), name='consoleserverport_bulk_delete'),
|
||||||
url(r'^console-server-ports/(?P<pk>\d+)/connect/$', views.consoleserverport_connect, name='consoleserverport_connect'),
|
url(r'^console-server-ports/(?P<pk>\d+)/connect/$', views.consoleserverport_connect, name='consoleserverport_connect'),
|
||||||
url(r'^console-server-ports/(?P<pk>\d+)/disconnect/$', views.consoleserverport_disconnect, name='consoleserverport_disconnect'),
|
url(r'^console-server-ports/(?P<pk>\d+)/disconnect/$', views.consoleserverport_disconnect, name='consoleserverport_disconnect'),
|
||||||
url(r'^console-server-ports/(?P<pk>\d+)/edit/$', views.consoleserverport_edit, name='consoleserverport_edit'),
|
url(r'^console-server-ports/(?P<pk>\d+)/edit/$', views.ConsoleServerPortEditView.as_view(), name='consoleserverport_edit'),
|
||||||
url(r'^console-server-ports/(?P<pk>\d+)/delete/$', views.consoleserverport_delete, name='consoleserverport_delete'),
|
url(r'^console-server-ports/(?P<pk>\d+)/delete/$', views.consoleserverport_delete, name='consoleserverport_delete'),
|
||||||
|
|
||||||
# Power ports
|
# Power ports
|
||||||
@ -126,7 +126,7 @@ urlpatterns = [
|
|||||||
url(r'^devices/(?P<pk>\d+)/power-ports/delete/$', views.PowerPortBulkDeleteView.as_view(), name='powerport_bulk_delete'),
|
url(r'^devices/(?P<pk>\d+)/power-ports/delete/$', views.PowerPortBulkDeleteView.as_view(), name='powerport_bulk_delete'),
|
||||||
url(r'^power-ports/(?P<pk>\d+)/connect/$', views.powerport_connect, name='powerport_connect'),
|
url(r'^power-ports/(?P<pk>\d+)/connect/$', views.powerport_connect, name='powerport_connect'),
|
||||||
url(r'^power-ports/(?P<pk>\d+)/disconnect/$', views.powerport_disconnect, name='powerport_disconnect'),
|
url(r'^power-ports/(?P<pk>\d+)/disconnect/$', views.powerport_disconnect, name='powerport_disconnect'),
|
||||||
url(r'^power-ports/(?P<pk>\d+)/edit/$', views.powerport_edit, name='powerport_edit'),
|
url(r'^power-ports/(?P<pk>\d+)/edit/$', views.PowerPortEditView.as_view(), name='powerport_edit'),
|
||||||
url(r'^power-ports/(?P<pk>\d+)/delete/$', views.powerport_delete, name='powerport_delete'),
|
url(r'^power-ports/(?P<pk>\d+)/delete/$', views.powerport_delete, name='powerport_delete'),
|
||||||
|
|
||||||
# Power outlets
|
# Power outlets
|
||||||
@ -134,13 +134,13 @@ urlpatterns = [
|
|||||||
url(r'^devices/(?P<pk>\d+)/power-outlets/delete/$', views.PowerOutletBulkDeleteView.as_view(), name='poweroutlet_bulk_delete'),
|
url(r'^devices/(?P<pk>\d+)/power-outlets/delete/$', views.PowerOutletBulkDeleteView.as_view(), name='poweroutlet_bulk_delete'),
|
||||||
url(r'^power-outlets/(?P<pk>\d+)/connect/$', views.poweroutlet_connect, name='poweroutlet_connect'),
|
url(r'^power-outlets/(?P<pk>\d+)/connect/$', views.poweroutlet_connect, name='poweroutlet_connect'),
|
||||||
url(r'^power-outlets/(?P<pk>\d+)/disconnect/$', views.poweroutlet_disconnect, name='poweroutlet_disconnect'),
|
url(r'^power-outlets/(?P<pk>\d+)/disconnect/$', views.poweroutlet_disconnect, name='poweroutlet_disconnect'),
|
||||||
url(r'^power-outlets/(?P<pk>\d+)/edit/$', views.poweroutlet_edit, name='poweroutlet_edit'),
|
url(r'^power-outlets/(?P<pk>\d+)/edit/$', views.PowerOutletEditView.as_view(), name='poweroutlet_edit'),
|
||||||
url(r'^power-outlets/(?P<pk>\d+)/delete/$', views.poweroutlet_delete, name='poweroutlet_delete'),
|
url(r'^power-outlets/(?P<pk>\d+)/delete/$', views.poweroutlet_delete, name='poweroutlet_delete'),
|
||||||
|
|
||||||
# Device bays
|
# Device bays
|
||||||
url(r'^devices/(?P<pk>\d+)/bays/add/$', views.devicebay_add, name='devicebay_add'),
|
url(r'^devices/(?P<pk>\d+)/bays/add/$', views.devicebay_add, name='devicebay_add'),
|
||||||
url(r'^devices/(?P<pk>\d+)/bays/delete/$', views.DeviceBayBulkDeleteView.as_view(), name='devicebay_bulk_delete'),
|
url(r'^devices/(?P<pk>\d+)/bays/delete/$', views.DeviceBayBulkDeleteView.as_view(), name='devicebay_bulk_delete'),
|
||||||
url(r'^device-bays/(?P<pk>\d+)/edit/$', views.devicebay_edit, name='devicebay_edit'),
|
url(r'^device-bays/(?P<pk>\d+)/edit/$', views.DeviceBayEditView.as_view(), name='devicebay_edit'),
|
||||||
url(r'^device-bays/(?P<pk>\d+)/delete/$', views.devicebay_delete, name='devicebay_delete'),
|
url(r'^device-bays/(?P<pk>\d+)/delete/$', views.devicebay_delete, name='devicebay_delete'),
|
||||||
url(r'^device-bays/(?P<pk>\d+)/populate/$', views.devicebay_populate, name='devicebay_populate'),
|
url(r'^device-bays/(?P<pk>\d+)/populate/$', views.devicebay_populate, name='devicebay_populate'),
|
||||||
url(r'^device-bays/(?P<pk>\d+)/depopulate/$', views.devicebay_depopulate, name='devicebay_depopulate'),
|
url(r'^device-bays/(?P<pk>\d+)/depopulate/$', views.devicebay_depopulate, name='devicebay_depopulate'),
|
||||||
@ -160,12 +160,12 @@ urlpatterns = [
|
|||||||
url(r'^devices/(?P<pk>\d+)/interfaces/delete/$', views.InterfaceBulkDeleteView.as_view(), name='interface_bulk_delete'),
|
url(r'^devices/(?P<pk>\d+)/interfaces/delete/$', views.InterfaceBulkDeleteView.as_view(), name='interface_bulk_delete'),
|
||||||
url(r'^devices/(?P<pk>\d+)/interface-connections/add/$', views.interfaceconnection_add, name='interfaceconnection_add'),
|
url(r'^devices/(?P<pk>\d+)/interface-connections/add/$', views.interfaceconnection_add, name='interfaceconnection_add'),
|
||||||
url(r'^interface-connections/(?P<pk>\d+)/delete/$', views.interfaceconnection_delete, name='interfaceconnection_delete'),
|
url(r'^interface-connections/(?P<pk>\d+)/delete/$', views.interfaceconnection_delete, name='interfaceconnection_delete'),
|
||||||
url(r'^interfaces/(?P<pk>\d+)/edit/$', views.interface_edit, name='interface_edit'),
|
url(r'^interfaces/(?P<pk>\d+)/edit/$', views.InterfaceEditView.as_view(), name='interface_edit'),
|
||||||
url(r'^interfaces/(?P<pk>\d+)/delete/$', views.interface_delete, name='interface_delete'),
|
url(r'^interfaces/(?P<pk>\d+)/delete/$', views.interface_delete, name='interface_delete'),
|
||||||
|
|
||||||
# Modules
|
# Modules
|
||||||
url(r'^devices/(?P<pk>\d+)/modules/add/$', views.module_add, name='module_add'),
|
url(r'^devices/(?P<pk>\d+)/modules/add/$', views.module_add, name='module_add'),
|
||||||
url(r'^modules/(?P<pk>\d+)/edit/$', views.module_edit, name='module_edit'),
|
url(r'^modules/(?P<pk>\d+)/edit/$', views.ModuleEditView.as_view(), name='module_edit'),
|
||||||
url(r'^modules/(?P<pk>\d+)/delete/$', views.module_delete, name='module_delete'),
|
url(r'^modules/(?P<pk>\d+)/delete/$', views.module_delete, name='module_delete'),
|
||||||
|
|
||||||
]
|
]
|
||||||
|
@ -722,8 +722,9 @@ def consoleport_add(request, pk):
|
|||||||
else:
|
else:
|
||||||
form = forms.ConsolePortCreateForm()
|
form = forms.ConsolePortCreateForm()
|
||||||
|
|
||||||
return render(request, 'dcim/consoleport_edit.html', {
|
return render(request, 'dcim/device_component_add.html', {
|
||||||
'device': device,
|
'device': device,
|
||||||
|
'component_type': 'Console Port',
|
||||||
'form': form,
|
'form': form,
|
||||||
'cancel_url': reverse('dcim:device', kwargs={'pk': device.pk}),
|
'cancel_url': reverse('dcim:device', kwargs={'pk': device.pk}),
|
||||||
})
|
})
|
||||||
@ -788,26 +789,10 @@ def consoleport_disconnect(request, pk):
|
|||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
@permission_required('dcim.change_consoleport')
|
class ConsolePortEditView(PermissionRequiredMixin, ObjectEditView):
|
||||||
def consoleport_edit(request, pk):
|
permission_required = 'dcim.change_consoleport'
|
||||||
|
model = ConsolePort
|
||||||
consoleport = get_object_or_404(ConsolePort, pk=pk)
|
form_class = forms.ConsolePortForm
|
||||||
|
|
||||||
if request.method == 'POST':
|
|
||||||
form = forms.ConsolePortForm(request.POST, instance=consoleport)
|
|
||||||
if form.is_valid():
|
|
||||||
consoleport = form.save()
|
|
||||||
messages.success(request, "Modified {0} {1}".format(consoleport.device.name, consoleport.name))
|
|
||||||
return redirect('dcim:device', pk=consoleport.device.pk)
|
|
||||||
|
|
||||||
else:
|
|
||||||
form = forms.ConsolePortForm(instance=consoleport)
|
|
||||||
|
|
||||||
return render(request, 'dcim/consoleport_edit.html', {
|
|
||||||
'consoleport': consoleport,
|
|
||||||
'form': form,
|
|
||||||
'cancel_url': reverse('dcim:device', kwargs={'pk': consoleport.device.pk}),
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
@permission_required('dcim.delete_consoleport')
|
@permission_required('dcim.delete_consoleport')
|
||||||
@ -882,8 +867,9 @@ def consoleserverport_add(request, pk):
|
|||||||
else:
|
else:
|
||||||
form = forms.ConsoleServerPortCreateForm()
|
form = forms.ConsoleServerPortCreateForm()
|
||||||
|
|
||||||
return render(request, 'dcim/consoleserverport_edit.html', {
|
return render(request, 'dcim/device_component_add.html', {
|
||||||
'device': device,
|
'device': device,
|
||||||
|
'component_type': 'Console Server Port',
|
||||||
'form': form,
|
'form': form,
|
||||||
'cancel_url': reverse('dcim:device', kwargs={'pk': device.pk}),
|
'cancel_url': reverse('dcim:device', kwargs={'pk': device.pk}),
|
||||||
})
|
})
|
||||||
@ -949,26 +935,10 @@ def consoleserverport_disconnect(request, pk):
|
|||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
@permission_required('dcim.change_consoleserverport')
|
class ConsoleServerPortEditView(PermissionRequiredMixin, ObjectEditView):
|
||||||
def consoleserverport_edit(request, pk):
|
permission_required = 'dcim.change_consoleserverport'
|
||||||
|
model = ConsoleServerPort
|
||||||
consoleserverport = get_object_or_404(ConsoleServerPort, pk=pk)
|
form_class = forms.ConsoleServerPortForm
|
||||||
|
|
||||||
if request.method == 'POST':
|
|
||||||
form = forms.ConsoleServerPortForm(request.POST, instance=consoleserverport)
|
|
||||||
if form.is_valid():
|
|
||||||
consoleserverport = form.save()
|
|
||||||
messages.success(request, "Modified {0} {1}".format(consoleserverport.device.name, consoleserverport.name))
|
|
||||||
return redirect('dcim:device', pk=consoleserverport.device.pk)
|
|
||||||
|
|
||||||
else:
|
|
||||||
form = forms.ConsoleServerPortForm(instance=consoleserverport)
|
|
||||||
|
|
||||||
return render(request, 'dcim/consoleserverport_edit.html', {
|
|
||||||
'consoleserverport': consoleserverport,
|
|
||||||
'form': form,
|
|
||||||
'cancel_url': reverse('dcim:device', kwargs={'pk': consoleserverport.device.pk}),
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
@permission_required('dcim.delete_consoleserverport')
|
@permission_required('dcim.delete_consoleserverport')
|
||||||
@ -1035,8 +1005,9 @@ def powerport_add(request, pk):
|
|||||||
else:
|
else:
|
||||||
form = forms.PowerPortCreateForm()
|
form = forms.PowerPortCreateForm()
|
||||||
|
|
||||||
return render(request, 'dcim/powerport_edit.html', {
|
return render(request, 'dcim/device_component_add.html', {
|
||||||
'device': device,
|
'device': device,
|
||||||
|
'component_type': 'Power Port',
|
||||||
'form': form,
|
'form': form,
|
||||||
'cancel_url': reverse('dcim:device', kwargs={'pk': device.pk}),
|
'cancel_url': reverse('dcim:device', kwargs={'pk': device.pk}),
|
||||||
})
|
})
|
||||||
@ -1101,26 +1072,10 @@ def powerport_disconnect(request, pk):
|
|||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
@permission_required('dcim.change_powerport')
|
class PowerPortEditView(PermissionRequiredMixin, ObjectEditView):
|
||||||
def powerport_edit(request, pk):
|
permission_required = 'dcim.change_powerport'
|
||||||
|
model = PowerPort
|
||||||
powerport = get_object_or_404(PowerPort, pk=pk)
|
form_class = forms.PowerPortForm
|
||||||
|
|
||||||
if request.method == 'POST':
|
|
||||||
form = forms.PowerPortForm(request.POST, instance=powerport)
|
|
||||||
if form.is_valid():
|
|
||||||
powerport = form.save()
|
|
||||||
messages.success(request, "Modified {0} power port {1}".format(powerport.device.name, powerport.name))
|
|
||||||
return redirect('dcim:device', pk=powerport.device.pk)
|
|
||||||
|
|
||||||
else:
|
|
||||||
form = forms.PowerPortForm(instance=powerport)
|
|
||||||
|
|
||||||
return render(request, 'dcim/powerport_edit.html', {
|
|
||||||
'powerport': powerport,
|
|
||||||
'form': form,
|
|
||||||
'cancel_url': reverse('dcim:device', kwargs={'pk': powerport.device.pk}),
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
@permission_required('dcim.delete_powerport')
|
@permission_required('dcim.delete_powerport')
|
||||||
@ -1193,8 +1148,9 @@ def poweroutlet_add(request, pk):
|
|||||||
else:
|
else:
|
||||||
form = forms.PowerOutletCreateForm()
|
form = forms.PowerOutletCreateForm()
|
||||||
|
|
||||||
return render(request, 'dcim/poweroutlet_edit.html', {
|
return render(request, 'dcim/device_component_add.html', {
|
||||||
'device': device,
|
'device': device,
|
||||||
|
'component_type': 'Power Outlet',
|
||||||
'form': form,
|
'form': form,
|
||||||
'cancel_url': reverse('dcim:device', kwargs={'pk': device.pk}),
|
'cancel_url': reverse('dcim:device', kwargs={'pk': device.pk}),
|
||||||
})
|
})
|
||||||
@ -1259,26 +1215,10 @@ def poweroutlet_disconnect(request, pk):
|
|||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
@permission_required('dcim.change_poweroutlet')
|
class PowerOutletEditView(PermissionRequiredMixin, ObjectEditView):
|
||||||
def poweroutlet_edit(request, pk):
|
permission_required = 'dcim.change_poweroutlet'
|
||||||
|
model = PowerOutlet
|
||||||
poweroutlet = get_object_or_404(PowerOutlet, pk=pk)
|
form_class = forms.PowerOutletForm
|
||||||
|
|
||||||
if request.method == 'POST':
|
|
||||||
form = forms.PowerOutletForm(request.POST, instance=poweroutlet)
|
|
||||||
if form.is_valid():
|
|
||||||
poweroutlet = form.save()
|
|
||||||
messages.success(request, "Modified {0} power outlet {1}".format(poweroutlet.device.name, poweroutlet.name))
|
|
||||||
return redirect('dcim:device', pk=poweroutlet.device.pk)
|
|
||||||
|
|
||||||
else:
|
|
||||||
form = forms.PowerOutletForm(instance=poweroutlet)
|
|
||||||
|
|
||||||
return render(request, 'dcim/poweroutlet_edit.html', {
|
|
||||||
'poweroutlet': poweroutlet,
|
|
||||||
'form': form,
|
|
||||||
'cancel_url': reverse('dcim:device', kwargs={'pk': poweroutlet.device.pk}),
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
@permission_required('dcim.delete_poweroutlet')
|
@permission_required('dcim.delete_poweroutlet')
|
||||||
@ -1347,35 +1287,20 @@ def interface_add(request, pk):
|
|||||||
return redirect('dcim:device', pk=device.pk)
|
return redirect('dcim:device', pk=device.pk)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
form = forms.InterfaceCreateForm()
|
form = forms.InterfaceCreateForm(initial={'mgmt_only': request.GET.get('mgmt_only')})
|
||||||
|
|
||||||
return render(request, 'dcim/interface_edit.html', {
|
return render(request, 'dcim/device_component_add.html', {
|
||||||
'device': device,
|
'device': device,
|
||||||
|
'component_type': 'Interface',
|
||||||
'form': form,
|
'form': form,
|
||||||
'cancel_url': reverse('dcim:device', kwargs={'pk': device.pk}),
|
'cancel_url': reverse('dcim:device', kwargs={'pk': device.pk}),
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
@permission_required('dcim.change_interface')
|
class InterfaceEditView(PermissionRequiredMixin, ObjectEditView):
|
||||||
def interface_edit(request, pk):
|
permission_required = 'dcim.change_interface'
|
||||||
|
model = Interface
|
||||||
interface = get_object_or_404(Interface, pk=pk)
|
form_class = forms.InterfaceForm
|
||||||
|
|
||||||
if request.method == 'POST':
|
|
||||||
form = forms.InterfaceForm(request.POST, instance=interface)
|
|
||||||
if form.is_valid():
|
|
||||||
interface = form.save()
|
|
||||||
messages.success(request, "Modified {0} interface {1}".format(interface.device.name, interface.name))
|
|
||||||
return redirect('dcim:device', pk=interface.device.pk)
|
|
||||||
|
|
||||||
else:
|
|
||||||
form = forms.InterfaceForm(instance=interface)
|
|
||||||
|
|
||||||
return render(request, 'dcim/interface_edit.html', {
|
|
||||||
'interface': interface,
|
|
||||||
'form': form,
|
|
||||||
'cancel_url': reverse('dcim:device', kwargs={'pk': interface.device.pk}),
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
@permission_required('dcim.delete_interface')
|
@permission_required('dcim.delete_interface')
|
||||||
@ -1483,33 +1408,18 @@ def devicebay_add(request, pk):
|
|||||||
else:
|
else:
|
||||||
form = forms.DeviceBayCreateForm()
|
form = forms.DeviceBayCreateForm()
|
||||||
|
|
||||||
return render(request, 'dcim/devicebay_edit.html', {
|
return render(request, 'dcim/device_component_add.html', {
|
||||||
'device': device,
|
'device': device,
|
||||||
|
'component_type': 'Device Bay',
|
||||||
'form': form,
|
'form': form,
|
||||||
'cancel_url': reverse('dcim:device', kwargs={'pk': device.pk}),
|
'cancel_url': reverse('dcim:device', kwargs={'pk': device.pk}),
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
@permission_required('dcim.change_devicebay')
|
class DeviceBayEditView(PermissionRequiredMixin, ObjectEditView):
|
||||||
def devicebay_edit(request, pk):
|
permission_required = 'dcim.change_devicebay'
|
||||||
|
model = DeviceBay
|
||||||
devicebay = get_object_or_404(DeviceBay, pk=pk)
|
form_class = forms.DeviceBayForm
|
||||||
|
|
||||||
if request.method == 'POST':
|
|
||||||
form = forms.DeviceBayForm(request.POST, instance=devicebay)
|
|
||||||
if form.is_valid():
|
|
||||||
devicebay = form.save()
|
|
||||||
messages.success(request, "Modified {} bay {}".format(devicebay.device.name, devicebay.name))
|
|
||||||
return redirect('dcim:device', pk=devicebay.device.pk)
|
|
||||||
|
|
||||||
else:
|
|
||||||
form = forms.DeviceBayForm(instance=devicebay)
|
|
||||||
|
|
||||||
return render(request, 'dcim/devicebay_edit.html', {
|
|
||||||
'devicebay': devicebay,
|
|
||||||
'form': form,
|
|
||||||
'cancel_url': reverse('dcim:device', kwargs={'pk': devicebay.device.pk}),
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
@permission_required('dcim.delete_devicebay')
|
@permission_required('dcim.delete_devicebay')
|
||||||
@ -1775,33 +1685,18 @@ def module_add(request, pk):
|
|||||||
else:
|
else:
|
||||||
form = forms.ModuleForm()
|
form = forms.ModuleForm()
|
||||||
|
|
||||||
return render(request, 'dcim/module_edit.html', {
|
return render(request, 'dcim/device_component_add.html', {
|
||||||
'device': device,
|
'device': device,
|
||||||
|
'component_type': 'Module',
|
||||||
'form': form,
|
'form': form,
|
||||||
'cancel_url': reverse('dcim:device_inventory', kwargs={'pk': device.pk}),
|
'cancel_url': reverse('dcim:device_inventory', kwargs={'pk': device.pk}),
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
@permission_required('dcim.change_module')
|
class ModuleEditView(PermissionRequiredMixin, ObjectEditView):
|
||||||
def module_edit(request, pk):
|
permission_required = 'dcim.change_module'
|
||||||
|
model = Module
|
||||||
module = get_object_or_404(Module, pk=pk)
|
form_class = forms.ModuleForm
|
||||||
|
|
||||||
if request.method == 'POST':
|
|
||||||
form = forms.ModuleForm(request.POST, instance=module)
|
|
||||||
if form.is_valid():
|
|
||||||
module = form.save()
|
|
||||||
messages.success(request, "Modified {} module {}".format(module.device.name, module.name))
|
|
||||||
return redirect('dcim:device_inventory', pk=module.device.pk)
|
|
||||||
|
|
||||||
else:
|
|
||||||
form = forms.ModuleForm(instance=module)
|
|
||||||
|
|
||||||
return render(request, 'dcim/module_edit.html', {
|
|
||||||
'module': module,
|
|
||||||
'form': form,
|
|
||||||
'cancel_url': reverse('dcim:device_inventory', kwargs={'pk': module.device.pk}),
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
@permission_required('dcim.delete_module')
|
@permission_required('dcim.delete_module')
|
||||||
|
@ -1,51 +0,0 @@
|
|||||||
{% extends '_base.html' %}
|
|
||||||
{% load form_helpers %}
|
|
||||||
|
|
||||||
{% block title %}{% if consoleport.pk %}Editing {{ consoleport.device }} {{ consoleport }}{% else %}Add a Console Port ({{ device }}){% endif %}{% endblock %}
|
|
||||||
|
|
||||||
{% block content %}
|
|
||||||
<form action="." method="post" class="form form-horizontal">
|
|
||||||
{% csrf_token %}
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-md-6 col-md-offset-3">
|
|
||||||
{% if form.non_field_errors %}
|
|
||||||
<div class="panel panel-danger">
|
|
||||||
<div class="panel-heading"><strong>Errors</strong></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{{ form.non_field_errors }}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading">
|
|
||||||
{% if consoleport.pk %}
|
|
||||||
<strong>Editing {{ consoleport }}</strong>
|
|
||||||
{% else %}
|
|
||||||
<strong>Add a Console Port</strong>
|
|
||||||
{% endif %}
|
|
||||||
</div>
|
|
||||||
<div class="panel-body">
|
|
||||||
<div class="form-group">
|
|
||||||
<label class="col-md-3 control-label required">Device</label>
|
|
||||||
<div class="col-md-9">
|
|
||||||
<p class="form-control-static">{% if consoleport %}{{ consoleport.device }}{% else %}{{ device }}{% endif %}</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% render_form form %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="form-group">
|
|
||||||
<div class="col-md-9 col-md-offset-3">
|
|
||||||
{% if consoleport.pk %}
|
|
||||||
<button type="submit" name="_update" class="btn btn-primary">Save</button>
|
|
||||||
{% else %}
|
|
||||||
<button type="submit" name="_create" class="btn btn-primary">Create</button>
|
|
||||||
<button type="submit" name="_addanother" class="btn btn-primary">Create and Add More</button>
|
|
||||||
{% endif %}
|
|
||||||
<a href="{{ cancel_url }}" class="btn btn-default">Cancel</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
{% endblock %}
|
|
@ -1,51 +0,0 @@
|
|||||||
{% extends '_base.html' %}
|
|
||||||
{% load form_helpers %}
|
|
||||||
|
|
||||||
{% block title %}{% if consoleserverport.pk %}Editing {{ consoleserverport.device }} {{ consoleserverport }}{% else %}Add a Console Server Port ({{ device }}){% endif %}{% endblock %}
|
|
||||||
|
|
||||||
{% block content %}
|
|
||||||
<form action="." method="post" class="form form-horizontal">
|
|
||||||
{% csrf_token %}
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-md-6 col-md-offset-3">
|
|
||||||
{% if form.non_field_errors %}
|
|
||||||
<div class="panel panel-danger">
|
|
||||||
<div class="panel-heading"><strong>Errors</strong></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{{ form.non_field_errors }}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading">
|
|
||||||
{% if consoleserverport.pk %}
|
|
||||||
<strong>Editing {{ consoleserverport }}</strong>
|
|
||||||
{% else %}
|
|
||||||
<strong>Add a Console Server Port</strong>
|
|
||||||
{% endif %}
|
|
||||||
</div>
|
|
||||||
<div class="panel-body">
|
|
||||||
<div class="form-group">
|
|
||||||
<label class="col-md-3 control-label required">Device</label>
|
|
||||||
<div class="col-md-9">
|
|
||||||
<p class="form-control-static">{% if consoleserverport %}{{ consoleserverport.device }}{% else %}{{ device }}{% endif %}</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% render_form form %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="form-group">
|
|
||||||
<div class="col-md-9 col-md-offset-3">
|
|
||||||
{% if consoleserverport.pk %}
|
|
||||||
<button type="submit" name="_update" class="btn btn-primary">Save</button>
|
|
||||||
{% else %}
|
|
||||||
<button type="submit" name="_create" class="btn btn-primary">Create</button>
|
|
||||||
<button type="submit" name="_addanother" class="btn btn-primary">Create and Add More</button>
|
|
||||||
{% endif %}
|
|
||||||
<a href="{{ cancel_url }}" class="btn btn-default">Cancel</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
{% endblock %}
|
|
@ -1,7 +1,7 @@
|
|||||||
{% extends '_base.html' %}
|
{% extends '_base.html' %}
|
||||||
{% load form_helpers %}
|
{% load form_helpers %}
|
||||||
|
|
||||||
{% block title %}{% if module %}Editing {{ module.device }} {{ module }}{% else %}Add a Module to {{ device }}{% endif %}{% endblock %}
|
{% block title %}Create {{ component_type }} ({{ device }}){% endblock %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<form action="." method="post" class="form form-horizontal">
|
<form action="." method="post" class="form form-horizontal">
|
||||||
@ -18,13 +18,13 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
<div class="panel panel-default">
|
<div class="panel panel-default">
|
||||||
<div class="panel-heading">
|
<div class="panel-heading">
|
||||||
<strong>{% if module %}Editing {{ module.device }} {{ module }}{% else %}Add a Module to {{ device }}{% endif %}</strong>
|
<strong>{{ component_type }}</strong>
|
||||||
</div>
|
</div>
|
||||||
<div class="panel-body">
|
<div class="panel-body">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="col-md-3 control-label required">Device</label>
|
<label class="col-md-3 control-label required">Device</label>
|
||||||
<div class="col-md-9">
|
<div class="col-md-9">
|
||||||
<p class="form-control-static">{% if module %}{{ module.device }}{% else %}{{ device }}{% endif %}</p>
|
<p class="form-control-static">{{ device }}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% render_form form %}
|
{% render_form form %}
|
||||||
@ -32,12 +32,8 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<div class="col-md-9 col-md-offset-3">
|
<div class="col-md-9 col-md-offset-3">
|
||||||
{% if module.pk %}
|
<button type="submit" name="_create" class="btn btn-primary">Create</button>
|
||||||
<button type="submit" name="_update" class="btn btn-primary">Save</button>
|
<button type="submit" name="_addanother" class="btn btn-primary">Create and Add More</button>
|
||||||
{% else %}
|
|
||||||
<button type="submit" name="_create" class="btn btn-primary">Create</button>
|
|
||||||
<button type="submit" name="_addanother" class="btn btn-primary">Create and Add More</button>
|
|
||||||
{% endif %}
|
|
||||||
<a href="{{ cancel_url }}" class="btn btn-default">Cancel</a>
|
<a href="{{ cancel_url }}" class="btn btn-default">Cancel</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
@ -1,51 +0,0 @@
|
|||||||
{% extends '_base.html' %}
|
|
||||||
{% load form_helpers %}
|
|
||||||
|
|
||||||
{% block title %}{% if devicebay.pk %}Editing {{ devicebay.device }} {{ devicebay }}{% else %}Add a Device Bay ({{ device }}){% endif %}{% endblock %}
|
|
||||||
|
|
||||||
{% block content %}
|
|
||||||
<form action="." method="post" class="form form-horizontal">
|
|
||||||
{% csrf_token %}
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-md-6 col-md-offset-3">
|
|
||||||
{% if form.non_field_errors %}
|
|
||||||
<div class="panel panel-danger">
|
|
||||||
<div class="panel-heading"><strong>Errors</strong></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{{ form.non_field_errors }}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading">
|
|
||||||
{% if poweroutlet.pk %}
|
|
||||||
<strong>Editing {{ devicebay }}</strong>
|
|
||||||
{% else %}
|
|
||||||
<strong>Add a Device Bay</strong>
|
|
||||||
{% endif %}
|
|
||||||
</div>
|
|
||||||
<div class="panel-body">
|
|
||||||
<div class="form-group">
|
|
||||||
<label class="col-md-3 control-label required">Device</label>
|
|
||||||
<div class="col-md-9">
|
|
||||||
<p class="form-control-static">{% if devicebay %}{{ devicebay.device }}{% else %}{{ device }}{% endif %}</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% render_form form %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="form-group">
|
|
||||||
<div class="col-md-9 col-md-offset-3">
|
|
||||||
{% if devicebay.pk %}
|
|
||||||
<button type="submit" name="_update" class="btn btn-primary">Save</button>
|
|
||||||
{% else %}
|
|
||||||
<button type="submit" name="_create" class="btn btn-primary">Create</button>
|
|
||||||
<button type="submit" name="_addanother" class="btn btn-primary">Create and Add More</button>
|
|
||||||
{% endif %}
|
|
||||||
<a href="{{ cancel_url }}" class="btn btn-default">Cancel</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
{% endblock %}
|
|
@ -1,51 +0,0 @@
|
|||||||
{% extends '_base.html' %}
|
|
||||||
{% load form_helpers %}
|
|
||||||
|
|
||||||
{% block title %}{% if interface.pk %}Editing {{ interface.device }} {{ interface }}{% else %}Add an Interface ({{ device }}){% endif %}{% endblock %}
|
|
||||||
|
|
||||||
{% block content %}
|
|
||||||
<form action="." method="post" class="form form-horizontal">
|
|
||||||
{% csrf_token %}
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-md-6 col-md-offset-3">
|
|
||||||
{% if form.non_field_errors %}
|
|
||||||
<div class="panel panel-danger">
|
|
||||||
<div class="panel-heading"><strong>Errors</strong></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{{ form.non_field_errors }}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading">
|
|
||||||
{% if interface.pk %}
|
|
||||||
<strong>Editing {{ interface }}</strong>
|
|
||||||
{% else %}
|
|
||||||
<strong>Add an Interface</strong>
|
|
||||||
{% endif %}
|
|
||||||
</div>
|
|
||||||
<div class="panel-body">
|
|
||||||
<div class="form-group">
|
|
||||||
<label class="col-md-3 control-label required">Device</label>
|
|
||||||
<div class="col-md-9">
|
|
||||||
<p class="form-control-static">{% if interface %}{{ interface.device }}{% else %}{{ device }}{% endif %}</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% render_form form %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="form-group">
|
|
||||||
<div class="col-md-9 col-md-offset-3">
|
|
||||||
{% if interface.pk %}
|
|
||||||
<button type="submit" name="_update" class="btn btn-primary">Save</button>
|
|
||||||
{% else %}
|
|
||||||
<button type="submit" name="_create" class="btn btn-primary">Create</button>
|
|
||||||
<button type="submit" name="_addanother" class="btn btn-primary">Create and Add More</button>
|
|
||||||
{% endif %}
|
|
||||||
<a href="{{ cancel_url }}" class="btn btn-default">Cancel</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
{% endblock %}
|
|
@ -1,51 +0,0 @@
|
|||||||
{% extends '_base.html' %}
|
|
||||||
{% load form_helpers %}
|
|
||||||
|
|
||||||
{% block title %}{% if poweroutlet.pk %}Editing {{ poweroutlet.device }} {{ poweroutlet }}{% else %}Add a Power Outlet ({{ device }}){% endif %}{% endblock %}
|
|
||||||
|
|
||||||
{% block content %}
|
|
||||||
<form action="." method="post" class="form form-horizontal">
|
|
||||||
{% csrf_token %}
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-md-6 col-md-offset-3">
|
|
||||||
{% if form.non_field_errors %}
|
|
||||||
<div class="panel panel-danger">
|
|
||||||
<div class="panel-heading"><strong>Errors</strong></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{{ form.non_field_errors }}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading">
|
|
||||||
{% if poweroutlet.pk %}
|
|
||||||
<strong>Editing {{ poweroutlet }}</strong>
|
|
||||||
{% else %}
|
|
||||||
<strong>Add a Power Outlet</strong>
|
|
||||||
{% endif %}
|
|
||||||
</div>
|
|
||||||
<div class="panel-body">
|
|
||||||
<div class="form-group">
|
|
||||||
<label class="col-md-3 control-label required">Device</label>
|
|
||||||
<div class="col-md-9">
|
|
||||||
<p class="form-control-static">{% if poweroutlet %}{{ poweroutlet.device }}{% else %}{{ device }}{% endif %}</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% render_form form %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="form-group">
|
|
||||||
<div class="col-md-9 col-md-offset-3">
|
|
||||||
{% if poweroutlet.pk %}
|
|
||||||
<button type="submit" name="_update" class="btn btn-primary">Save</button>
|
|
||||||
{% else %}
|
|
||||||
<button type="submit" name="_create" class="btn btn-primary">Create</button>
|
|
||||||
<button type="submit" name="_addanother" class="btn btn-primary">Create and Add More</button>
|
|
||||||
{% endif %}
|
|
||||||
<a href="{{ cancel_url }}" class="btn btn-default">Cancel</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
{% endblock %}
|
|
@ -1,51 +0,0 @@
|
|||||||
{% extends '_base.html' %}
|
|
||||||
{% load form_helpers %}
|
|
||||||
|
|
||||||
{% block title %}{% if powerport.pk %}Editing {{ powerport.device }} {{ powerport }}{% else %}Add a Power Port ({{ device }}){% endif %}{% endblock %}
|
|
||||||
|
|
||||||
{% block content %}
|
|
||||||
<form action="." method="post" class="form form-horizontal">
|
|
||||||
{% csrf_token %}
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-md-6 col-md-offset-3">
|
|
||||||
{% if form.non_field_errors %}
|
|
||||||
<div class="panel panel-danger">
|
|
||||||
<div class="panel-heading"><strong>Errors</strong></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{{ form.non_field_errors }}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading">
|
|
||||||
{% if powerport.pk %}
|
|
||||||
<strong>Editing {{ powerport }}</strong>
|
|
||||||
{% else %}
|
|
||||||
<strong>Add a Power Port</strong>
|
|
||||||
{% endif %}
|
|
||||||
</div>
|
|
||||||
<div class="panel-body">
|
|
||||||
<div class="form-group">
|
|
||||||
<label class="col-md-3 control-label required">Device</label>
|
|
||||||
<div class="col-md-9">
|
|
||||||
<p class="form-control-static">{% if powerport %}{{ powerport.device }}{% else %}{{ device }}{% endif %}</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% render_form form %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="form-group">
|
|
||||||
<div class="col-md-9 col-md-offset-3">
|
|
||||||
{% if powerport.pk %}
|
|
||||||
<button type="submit" name="_update" class="btn btn-primary">Save</button>
|
|
||||||
{% else %}
|
|
||||||
<button type="submit" name="_create" class="btn btn-primary">Create</button>
|
|
||||||
<button type="submit" name="_addanother" class="btn btn-primary">Create and Add More</button>
|
|
||||||
{% endif %}
|
|
||||||
<a href="{{ cancel_url }}" class="btn btn-default">Cancel</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
{% endblock %}
|
|
Loading…
Reference in New Issue
Block a user