|
@@ -1,6 +1,5 @@
|
|
|
from __future__ import unicode_literals
|
|
|
from copy import deepcopy
|
|
|
-from difflib import SequenceMatcher
|
|
|
import re
|
|
|
from natsort import natsorted
|
|
|
from operator import attrgetter
|
|
@@ -152,8 +151,8 @@ class RegionListView(ObjectListView):
|
|
|
template_name = 'dcim/region_list.html'
|
|
|
|
|
|
|
|
|
-class RegionEditView(PermissionRequiredMixin, ObjectEditView):
|
|
|
- permission_required = 'dcim.change_region'
|
|
|
+class RegionCreateView(PermissionRequiredMixin, ObjectEditView):
|
|
|
+ permission_required = 'dcim.add_region'
|
|
|
model = Region
|
|
|
form_class = forms.RegionForm
|
|
|
|
|
@@ -161,6 +160,10 @@ class RegionEditView(PermissionRequiredMixin, ObjectEditView):
|
|
|
return reverse('dcim:region_list')
|
|
|
|
|
|
|
|
|
+class RegionEditView(RegionCreateView):
|
|
|
+ permission_required = 'dcim.change_region'
|
|
|
+
|
|
|
+
|
|
|
class RegionBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
|
|
permission_required = 'dcim.delete_region'
|
|
|
cls = Region
|
|
@@ -204,14 +207,18 @@ class SiteView(View):
|
|
|
})
|
|
|
|
|
|
|
|
|
-class SiteEditView(PermissionRequiredMixin, ObjectEditView):
|
|
|
- permission_required = 'dcim.change_site'
|
|
|
+class SiteCreateView(PermissionRequiredMixin, ObjectEditView):
|
|
|
+ permission_required = 'dcim.add_site'
|
|
|
model = Site
|
|
|
form_class = forms.SiteForm
|
|
|
template_name = 'dcim/site_edit.html'
|
|
|
default_return_url = 'dcim:site_list'
|
|
|
|
|
|
|
|
|
+class SiteEditView(SiteCreateView):
|
|
|
+ permission_required = 'dcim.change_site'
|
|
|
+
|
|
|
+
|
|
|
class SiteDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
|
|
permission_required = 'dcim.delete_site'
|
|
|
model = Site
|
|
@@ -246,8 +253,8 @@ class RackGroupListView(ObjectListView):
|
|
|
template_name = 'dcim/rackgroup_list.html'
|
|
|
|
|
|
|
|
|
-class RackGroupEditView(PermissionRequiredMixin, ObjectEditView):
|
|
|
- permission_required = 'dcim.change_rackgroup'
|
|
|
+class RackGroupCreateView(PermissionRequiredMixin, ObjectEditView):
|
|
|
+ permission_required = 'dcim.add_rackgroup'
|
|
|
model = RackGroup
|
|
|
form_class = forms.RackGroupForm
|
|
|
|
|
@@ -255,6 +262,10 @@ class RackGroupEditView(PermissionRequiredMixin, ObjectEditView):
|
|
|
return reverse('dcim:rackgroup_list')
|
|
|
|
|
|
|
|
|
+class RackGroupEditView(RackGroupCreateView):
|
|
|
+ permission_required = 'dcim.change_rackgroup'
|
|
|
+
|
|
|
+
|
|
|
class RackGroupBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
|
|
permission_required = 'dcim.delete_rackgroup'
|
|
|
cls = RackGroup
|
|
@@ -272,8 +283,8 @@ class RackRoleListView(ObjectListView):
|
|
|
template_name = 'dcim/rackrole_list.html'
|
|
|
|
|
|
|
|
|
-class RackRoleEditView(PermissionRequiredMixin, ObjectEditView):
|
|
|
- permission_required = 'dcim.change_rackrole'
|
|
|
+class RackRoleCreateView(PermissionRequiredMixin, ObjectEditView):
|
|
|
+ permission_required = 'dcim.add_rackrole'
|
|
|
model = RackRole
|
|
|
form_class = forms.RackRoleForm
|
|
|
|
|
@@ -281,6 +292,10 @@ class RackRoleEditView(PermissionRequiredMixin, ObjectEditView):
|
|
|
return reverse('dcim:rackrole_list')
|
|
|
|
|
|
|
|
|
+class RackRoleEditView(RackRoleCreateView):
|
|
|
+ permission_required = 'dcim.change_rackrole'
|
|
|
+
|
|
|
+
|
|
|
class RackRoleBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
|
|
permission_required = 'dcim.delete_rackrole'
|
|
|
cls = RackRole
|
|
@@ -374,14 +389,18 @@ class RackView(View):
|
|
|
})
|
|
|
|
|
|
|
|
|
-class RackEditView(PermissionRequiredMixin, ObjectEditView):
|
|
|
- permission_required = 'dcim.change_rack'
|
|
|
+class RackCreateView(PermissionRequiredMixin, ObjectEditView):
|
|
|
+ permission_required = 'dcim.add_rack'
|
|
|
model = Rack
|
|
|
form_class = forms.RackForm
|
|
|
template_name = 'dcim/rack_edit.html'
|
|
|
default_return_url = 'dcim:rack_list'
|
|
|
|
|
|
|
|
|
+class RackEditView(RackCreateView):
|
|
|
+ permission_required = 'dcim.change_rack'
|
|
|
+
|
|
|
+
|
|
|
class RackDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
|
|
permission_required = 'dcim.delete_rack'
|
|
|
model = Rack
|
|
@@ -423,8 +442,8 @@ class RackReservationListView(ObjectListView):
|
|
|
template_name = 'dcim/rackreservation_list.html'
|
|
|
|
|
|
|
|
|
-class RackReservationEditView(PermissionRequiredMixin, ObjectEditView):
|
|
|
- permission_required = 'dcim.change_rackreservation'
|
|
|
+class RackReservationCreateView(PermissionRequiredMixin, ObjectEditView):
|
|
|
+ permission_required = 'dcim.add_rackreservation'
|
|
|
model = RackReservation
|
|
|
form_class = forms.RackReservationForm
|
|
|
|
|
@@ -438,6 +457,10 @@ class RackReservationEditView(PermissionRequiredMixin, ObjectEditView):
|
|
|
return obj.rack.get_absolute_url()
|
|
|
|
|
|
|
|
|
+class RackReservationEditView(RackReservationCreateView):
|
|
|
+ permission_required = 'dcim.change_rackreservation'
|
|
|
+
|
|
|
+
|
|
|
class RackReservationDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
|
|
permission_required = 'dcim.delete_rackreservation'
|
|
|
model = RackReservation
|
|
@@ -462,8 +485,8 @@ class ManufacturerListView(ObjectListView):
|
|
|
template_name = 'dcim/manufacturer_list.html'
|
|
|
|
|
|
|
|
|
-class ManufacturerEditView(PermissionRequiredMixin, ObjectEditView):
|
|
|
- permission_required = 'dcim.change_manufacturer'
|
|
|
+class ManufacturerCreateView(PermissionRequiredMixin, ObjectEditView):
|
|
|
+ permission_required = 'dcim.add_manufacturer'
|
|
|
model = Manufacturer
|
|
|
form_class = forms.ManufacturerForm
|
|
|
|
|
@@ -471,6 +494,10 @@ class ManufacturerEditView(PermissionRequiredMixin, ObjectEditView):
|
|
|
return reverse('dcim:manufacturer_list')
|
|
|
|
|
|
|
|
|
+class ManufacturerEditView(ManufacturerCreateView):
|
|
|
+ permission_required = 'dcim.change_manufacturer'
|
|
|
+
|
|
|
+
|
|
|
class ManufacturerBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
|
|
permission_required = 'dcim.delete_manufacturer'
|
|
|
cls = Manufacturer
|
|
@@ -542,14 +569,18 @@ class DeviceTypeView(View):
|
|
|
})
|
|
|
|
|
|
|
|
|
-class DeviceTypeEditView(PermissionRequiredMixin, ObjectEditView):
|
|
|
- permission_required = 'dcim.change_devicetype'
|
|
|
+class DeviceTypeCreateView(PermissionRequiredMixin, ObjectEditView):
|
|
|
+ permission_required = 'dcim.add_devicetype'
|
|
|
model = DeviceType
|
|
|
form_class = forms.DeviceTypeForm
|
|
|
template_name = 'dcim/devicetype_edit.html'
|
|
|
default_return_url = 'dcim:devicetype_list'
|
|
|
|
|
|
|
|
|
+class DeviceTypeEditView(DeviceTypeCreateView):
|
|
|
+ permission_required = 'dcim.change_devicetype'
|
|
|
+
|
|
|
+
|
|
|
class DeviceTypeDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
|
|
permission_required = 'dcim.delete_devicetype'
|
|
|
model = DeviceType
|
|
@@ -686,8 +717,8 @@ class DeviceRoleListView(ObjectListView):
|
|
|
template_name = 'dcim/devicerole_list.html'
|
|
|
|
|
|
|
|
|
-class DeviceRoleEditView(PermissionRequiredMixin, ObjectEditView):
|
|
|
- permission_required = 'dcim.change_devicerole'
|
|
|
+class DeviceRoleCreateView(PermissionRequiredMixin, ObjectEditView):
|
|
|
+ permission_required = 'dcim.add_devicerole'
|
|
|
model = DeviceRole
|
|
|
form_class = forms.DeviceRoleForm
|
|
|
|
|
@@ -695,6 +726,10 @@ class DeviceRoleEditView(PermissionRequiredMixin, ObjectEditView):
|
|
|
return reverse('dcim:devicerole_list')
|
|
|
|
|
|
|
|
|
+class DeviceRoleEditView(DeviceRoleCreateView):
|
|
|
+ permission_required = 'dcim.change_devicerole'
|
|
|
+
|
|
|
+
|
|
|
class DeviceRoleBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
|
|
permission_required = 'dcim.delete_devicerole'
|
|
|
cls = DeviceRole
|
|
@@ -711,8 +746,8 @@ class PlatformListView(ObjectListView):
|
|
|
template_name = 'dcim/platform_list.html'
|
|
|
|
|
|
|
|
|
-class PlatformEditView(PermissionRequiredMixin, ObjectEditView):
|
|
|
- permission_required = 'dcim.change_platform'
|
|
|
+class PlatformCreateView(PermissionRequiredMixin, ObjectEditView):
|
|
|
+ permission_required = 'dcim.add_platform'
|
|
|
model = Platform
|
|
|
form_class = forms.PlatformForm
|
|
|
|
|
@@ -720,6 +755,10 @@ class PlatformEditView(PermissionRequiredMixin, ObjectEditView):
|
|
|
return reverse('dcim:platform_list')
|
|
|
|
|
|
|
|
|
+class PlatformEditView(PlatformCreateView):
|
|
|
+ permission_required = 'dcim.change_platform'
|
|
|
+
|
|
|
+
|
|
|
class PlatformBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
|
|
permission_required = 'dcim.delete_platform'
|
|
|
cls = Platform
|
|
@@ -843,14 +882,18 @@ class DeviceLLDPNeighborsView(View):
|
|
|
})
|
|
|
|
|
|
|
|
|
-class DeviceEditView(PermissionRequiredMixin, ObjectEditView):
|
|
|
- permission_required = 'dcim.change_device'
|
|
|
+class DeviceCreateView(PermissionRequiredMixin, ObjectEditView):
|
|
|
+ permission_required = 'dcim.add_device'
|
|
|
model = Device
|
|
|
form_class = forms.DeviceForm
|
|
|
template_name = 'dcim/device_edit.html'
|
|
|
default_return_url = 'dcim:device_list'
|
|
|
|
|
|
|
|
|
+class DeviceEditView(DeviceCreateView):
|
|
|
+ permission_required = 'dcim.change_device'
|
|
|
+
|
|
|
+
|
|
|
class DeviceDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
|
|
permission_required = 'dcim.delete_device'
|
|
|
model = Device
|