mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-25 01:48:38 -06:00
Standardized naming of return_url for all object views
This commit is contained in:
parent
b70eca7661
commit
52420945b2
@ -47,7 +47,7 @@ class ProviderEditView(PermissionRequiredMixin, ObjectEditView):
|
|||||||
model = Provider
|
model = Provider
|
||||||
form_class = forms.ProviderForm
|
form_class = forms.ProviderForm
|
||||||
template_name = 'circuits/provider_edit.html'
|
template_name = 'circuits/provider_edit.html'
|
||||||
obj_list_url = 'circuits:provider_list'
|
default_return_url = 'circuits:provider_list'
|
||||||
|
|
||||||
|
|
||||||
class ProviderDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
class ProviderDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
||||||
@ -61,7 +61,7 @@ class ProviderBulkImportView(PermissionRequiredMixin, BulkImportView):
|
|||||||
form = forms.ProviderImportForm
|
form = forms.ProviderImportForm
|
||||||
table = tables.ProviderTable
|
table = tables.ProviderTable
|
||||||
template_name = 'circuits/provider_import.html'
|
template_name = 'circuits/provider_import.html'
|
||||||
obj_list_url = 'circuits:provider_list'
|
default_return_url = 'circuits:provider_list'
|
||||||
|
|
||||||
|
|
||||||
class ProviderBulkEditView(PermissionRequiredMixin, BulkEditView):
|
class ProviderBulkEditView(PermissionRequiredMixin, BulkEditView):
|
||||||
@ -70,14 +70,14 @@ class ProviderBulkEditView(PermissionRequiredMixin, BulkEditView):
|
|||||||
filter = filters.ProviderFilter
|
filter = filters.ProviderFilter
|
||||||
form = forms.ProviderBulkEditForm
|
form = forms.ProviderBulkEditForm
|
||||||
template_name = 'circuits/provider_bulk_edit.html'
|
template_name = 'circuits/provider_bulk_edit.html'
|
||||||
default_redirect_url = 'circuits:provider_list'
|
default_return_url = 'circuits:provider_list'
|
||||||
|
|
||||||
|
|
||||||
class ProviderBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
class ProviderBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||||
permission_required = 'circuits.delete_provider'
|
permission_required = 'circuits.delete_provider'
|
||||||
cls = Provider
|
cls = Provider
|
||||||
filter = filters.ProviderFilter
|
filter = filters.ProviderFilter
|
||||||
default_redirect_url = 'circuits:provider_list'
|
default_return_url = 'circuits:provider_list'
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -103,7 +103,7 @@ class CircuitTypeEditView(PermissionRequiredMixin, ObjectEditView):
|
|||||||
class CircuitTypeBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
class CircuitTypeBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||||
permission_required = 'circuits.delete_circuittype'
|
permission_required = 'circuits.delete_circuittype'
|
||||||
cls = CircuitType
|
cls = CircuitType
|
||||||
default_redirect_url = 'circuits:circuittype_list'
|
default_return_url = 'circuits:circuittype_list'
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -138,7 +138,7 @@ class CircuitEditView(PermissionRequiredMixin, ObjectEditView):
|
|||||||
form_class = forms.CircuitForm
|
form_class = forms.CircuitForm
|
||||||
fields_initial = ['provider']
|
fields_initial = ['provider']
|
||||||
template_name = 'circuits/circuit_edit.html'
|
template_name = 'circuits/circuit_edit.html'
|
||||||
obj_list_url = 'circuits:circuit_list'
|
default_return_url = 'circuits:circuit_list'
|
||||||
|
|
||||||
|
|
||||||
class CircuitDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
class CircuitDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
||||||
@ -152,7 +152,7 @@ class CircuitBulkImportView(PermissionRequiredMixin, BulkImportView):
|
|||||||
form = forms.CircuitImportForm
|
form = forms.CircuitImportForm
|
||||||
table = tables.CircuitTable
|
table = tables.CircuitTable
|
||||||
template_name = 'circuits/circuit_import.html'
|
template_name = 'circuits/circuit_import.html'
|
||||||
obj_list_url = 'circuits:circuit_list'
|
default_return_url = 'circuits:circuit_list'
|
||||||
|
|
||||||
|
|
||||||
class CircuitBulkEditView(PermissionRequiredMixin, BulkEditView):
|
class CircuitBulkEditView(PermissionRequiredMixin, BulkEditView):
|
||||||
@ -161,14 +161,14 @@ class CircuitBulkEditView(PermissionRequiredMixin, BulkEditView):
|
|||||||
filter = filters.CircuitFilter
|
filter = filters.CircuitFilter
|
||||||
form = forms.CircuitBulkEditForm
|
form = forms.CircuitBulkEditForm
|
||||||
template_name = 'circuits/circuit_bulk_edit.html'
|
template_name = 'circuits/circuit_bulk_edit.html'
|
||||||
default_redirect_url = 'circuits:circuit_list'
|
default_return_url = 'circuits:circuit_list'
|
||||||
|
|
||||||
|
|
||||||
class CircuitBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
class CircuitBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||||
permission_required = 'circuits.delete_circuit'
|
permission_required = 'circuits.delete_circuit'
|
||||||
cls = Circuit
|
cls = Circuit
|
||||||
filter = filters.CircuitFilter
|
filter = filters.CircuitFilter
|
||||||
default_redirect_url = 'circuits:circuit_list'
|
default_return_url = 'circuits:circuit_list'
|
||||||
|
|
||||||
|
|
||||||
@permission_required('circuits.change_circuittermination')
|
@permission_required('circuits.change_circuittermination')
|
||||||
@ -212,7 +212,7 @@ def circuit_terminations_swap(request, pk):
|
|||||||
'form': form,
|
'form': form,
|
||||||
'panel_class': 'default',
|
'panel_class': 'default',
|
||||||
'button_class': 'primary',
|
'button_class': 'primary',
|
||||||
'cancel_url': circuit.get_absolute_url(),
|
'return_url': circuit.get_absolute_url(),
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
|
@ -71,7 +71,7 @@ class ComponentCreateView(View):
|
|||||||
'parent': parent,
|
'parent': parent,
|
||||||
'component_type': self.model._meta.verbose_name,
|
'component_type': self.model._meta.verbose_name,
|
||||||
'form': self.form(initial=request.GET),
|
'form': self.form(initial=request.GET),
|
||||||
'cancel_url': parent.get_absolute_url(),
|
'return_url': parent.get_absolute_url(),
|
||||||
})
|
})
|
||||||
|
|
||||||
def post(self, request, pk):
|
def post(self, request, pk):
|
||||||
@ -112,7 +112,7 @@ class ComponentCreateView(View):
|
|||||||
'parent': parent,
|
'parent': parent,
|
||||||
'component_type': self.model._meta.verbose_name,
|
'component_type': self.model._meta.verbose_name,
|
||||||
'form': form,
|
'form': form,
|
||||||
'cancel_url': parent.get_absolute_url(),
|
'return_url': parent.get_absolute_url(),
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
@ -122,6 +122,12 @@ class ComponentEditView(ObjectEditView):
|
|||||||
return obj.device.get_absolute_url()
|
return obj.device.get_absolute_url()
|
||||||
|
|
||||||
|
|
||||||
|
class ComponentDeleteView(ObjectDeleteView):
|
||||||
|
|
||||||
|
def get_return_url(self, obj):
|
||||||
|
return obj.device.get_absolute_url()
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Sites
|
# Sites
|
||||||
#
|
#
|
||||||
@ -163,7 +169,7 @@ class SiteEditView(PermissionRequiredMixin, ObjectEditView):
|
|||||||
model = Site
|
model = Site
|
||||||
form_class = forms.SiteForm
|
form_class = forms.SiteForm
|
||||||
template_name = 'dcim/site_edit.html'
|
template_name = 'dcim/site_edit.html'
|
||||||
obj_list_url = 'dcim:site_list'
|
default_return_url = 'dcim:site_list'
|
||||||
|
|
||||||
|
|
||||||
class SiteDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
class SiteDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
||||||
@ -177,7 +183,7 @@ class SiteBulkImportView(PermissionRequiredMixin, BulkImportView):
|
|||||||
form = forms.SiteImportForm
|
form = forms.SiteImportForm
|
||||||
table = tables.SiteTable
|
table = tables.SiteTable
|
||||||
template_name = 'dcim/site_import.html'
|
template_name = 'dcim/site_import.html'
|
||||||
obj_list_url = 'dcim:site_list'
|
default_return_url = 'dcim:site_list'
|
||||||
|
|
||||||
|
|
||||||
class SiteBulkEditView(PermissionRequiredMixin, BulkEditView):
|
class SiteBulkEditView(PermissionRequiredMixin, BulkEditView):
|
||||||
@ -186,7 +192,7 @@ class SiteBulkEditView(PermissionRequiredMixin, BulkEditView):
|
|||||||
filter = filters.SiteFilter
|
filter = filters.SiteFilter
|
||||||
form = forms.SiteBulkEditForm
|
form = forms.SiteBulkEditForm
|
||||||
template_name = 'dcim/site_bulk_edit.html'
|
template_name = 'dcim/site_bulk_edit.html'
|
||||||
default_redirect_url = 'dcim:site_list'
|
default_return_url = 'dcim:site_list'
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -215,7 +221,7 @@ class RackGroupBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
|||||||
permission_required = 'dcim.delete_rackgroup'
|
permission_required = 'dcim.delete_rackgroup'
|
||||||
cls = RackGroup
|
cls = RackGroup
|
||||||
filter = filters.RackGroupFilter
|
filter = filters.RackGroupFilter
|
||||||
default_redirect_url = 'dcim:rackgroup_list'
|
default_return_url = 'dcim:rackgroup_list'
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -241,7 +247,7 @@ class RackRoleEditView(PermissionRequiredMixin, ObjectEditView):
|
|||||||
class RackRoleBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
class RackRoleBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||||
permission_required = 'dcim.delete_rackrole'
|
permission_required = 'dcim.delete_rackrole'
|
||||||
cls = RackRole
|
cls = RackRole
|
||||||
default_redirect_url = 'dcim:rackrole_list'
|
default_return_url = 'dcim:rackrole_list'
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -282,7 +288,7 @@ class RackEditView(PermissionRequiredMixin, ObjectEditView):
|
|||||||
model = Rack
|
model = Rack
|
||||||
form_class = forms.RackForm
|
form_class = forms.RackForm
|
||||||
template_name = 'dcim/rack_edit.html'
|
template_name = 'dcim/rack_edit.html'
|
||||||
obj_list_url = 'dcim:rack_list'
|
default_return_url = 'dcim:rack_list'
|
||||||
|
|
||||||
|
|
||||||
class RackDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
class RackDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
||||||
@ -296,7 +302,7 @@ class RackBulkImportView(PermissionRequiredMixin, BulkImportView):
|
|||||||
form = forms.RackImportForm
|
form = forms.RackImportForm
|
||||||
table = tables.RackImportTable
|
table = tables.RackImportTable
|
||||||
template_name = 'dcim/rack_import.html'
|
template_name = 'dcim/rack_import.html'
|
||||||
obj_list_url = 'dcim:rack_list'
|
default_return_url = 'dcim:rack_list'
|
||||||
|
|
||||||
|
|
||||||
class RackBulkEditView(PermissionRequiredMixin, BulkEditView):
|
class RackBulkEditView(PermissionRequiredMixin, BulkEditView):
|
||||||
@ -305,14 +311,14 @@ class RackBulkEditView(PermissionRequiredMixin, BulkEditView):
|
|||||||
filter = filters.RackFilter
|
filter = filters.RackFilter
|
||||||
form = forms.RackBulkEditForm
|
form = forms.RackBulkEditForm
|
||||||
template_name = 'dcim/rack_bulk_edit.html'
|
template_name = 'dcim/rack_bulk_edit.html'
|
||||||
default_redirect_url = 'dcim:rack_list'
|
default_return_url = 'dcim:rack_list'
|
||||||
|
|
||||||
|
|
||||||
class RackBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
class RackBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||||
permission_required = 'dcim.delete_rack'
|
permission_required = 'dcim.delete_rack'
|
||||||
cls = Rack
|
cls = Rack
|
||||||
filter = filters.RackFilter
|
filter = filters.RackFilter
|
||||||
default_redirect_url = 'dcim:rack_list'
|
default_return_url = 'dcim:rack_list'
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -338,7 +344,7 @@ class ManufacturerEditView(PermissionRequiredMixin, ObjectEditView):
|
|||||||
class ManufacturerBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
class ManufacturerBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||||
permission_required = 'dcim.delete_manufacturer'
|
permission_required = 'dcim.delete_manufacturer'
|
||||||
cls = Manufacturer
|
cls = Manufacturer
|
||||||
default_redirect_url = 'dcim:manufacturer_list'
|
default_return_url = 'dcim:manufacturer_list'
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -408,7 +414,7 @@ class DeviceTypeEditView(PermissionRequiredMixin, ObjectEditView):
|
|||||||
model = DeviceType
|
model = DeviceType
|
||||||
form_class = forms.DeviceTypeForm
|
form_class = forms.DeviceTypeForm
|
||||||
template_name = 'dcim/devicetype_edit.html'
|
template_name = 'dcim/devicetype_edit.html'
|
||||||
obj_list_url = 'dcim:devicetype_list'
|
default_return_url = 'dcim:devicetype_list'
|
||||||
|
|
||||||
|
|
||||||
class DeviceTypeDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
class DeviceTypeDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
||||||
@ -423,14 +429,14 @@ class DeviceTypeBulkEditView(PermissionRequiredMixin, BulkEditView):
|
|||||||
filter = filters.DeviceTypeFilter
|
filter = filters.DeviceTypeFilter
|
||||||
form = forms.DeviceTypeBulkEditForm
|
form = forms.DeviceTypeBulkEditForm
|
||||||
template_name = 'dcim/devicetype_bulk_edit.html'
|
template_name = 'dcim/devicetype_bulk_edit.html'
|
||||||
default_redirect_url = 'dcim:devicetype_list'
|
default_return_url = 'dcim:devicetype_list'
|
||||||
|
|
||||||
|
|
||||||
class DeviceTypeBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
class DeviceTypeBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||||
permission_required = 'dcim.delete_devicetype'
|
permission_required = 'dcim.delete_devicetype'
|
||||||
cls = DeviceType
|
cls = DeviceType
|
||||||
filter = filters.DeviceTypeFilter
|
filter = filters.DeviceTypeFilter
|
||||||
default_redirect_url = 'dcim:devicetype_list'
|
default_return_url = 'dcim:devicetype_list'
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -560,7 +566,7 @@ class DeviceRoleEditView(PermissionRequiredMixin, ObjectEditView):
|
|||||||
class DeviceRoleBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
class DeviceRoleBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||||
permission_required = 'dcim.delete_devicerole'
|
permission_required = 'dcim.delete_devicerole'
|
||||||
cls = DeviceRole
|
cls = DeviceRole
|
||||||
default_redirect_url = 'dcim:devicerole_list'
|
default_return_url = 'dcim:devicerole_list'
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -586,7 +592,7 @@ class PlatformEditView(PermissionRequiredMixin, ObjectEditView):
|
|||||||
class PlatformBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
class PlatformBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||||
permission_required = 'dcim.delete_platform'
|
permission_required = 'dcim.delete_platform'
|
||||||
cls = Platform
|
cls = Platform
|
||||||
default_redirect_url = 'dcim:platform_list'
|
default_return_url = 'dcim:platform_list'
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -678,7 +684,7 @@ class DeviceEditView(PermissionRequiredMixin, ObjectEditView):
|
|||||||
form_class = forms.DeviceForm
|
form_class = forms.DeviceForm
|
||||||
fields_initial = ['site', 'rack', 'position', 'face', 'device_bay']
|
fields_initial = ['site', 'rack', 'position', 'face', 'device_bay']
|
||||||
template_name = 'dcim/device_edit.html'
|
template_name = 'dcim/device_edit.html'
|
||||||
obj_list_url = 'dcim:device_list'
|
default_return_url = 'dcim:device_list'
|
||||||
|
|
||||||
|
|
||||||
class DeviceDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
class DeviceDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
||||||
@ -692,7 +698,7 @@ class DeviceBulkImportView(PermissionRequiredMixin, BulkImportView):
|
|||||||
form = forms.DeviceImportForm
|
form = forms.DeviceImportForm
|
||||||
table = tables.DeviceImportTable
|
table = tables.DeviceImportTable
|
||||||
template_name = 'dcim/device_import.html'
|
template_name = 'dcim/device_import.html'
|
||||||
obj_list_url = 'dcim:device_list'
|
default_return_url = 'dcim:device_list'
|
||||||
|
|
||||||
|
|
||||||
class ChildDeviceBulkImportView(PermissionRequiredMixin, BulkImportView):
|
class ChildDeviceBulkImportView(PermissionRequiredMixin, BulkImportView):
|
||||||
@ -700,7 +706,7 @@ class ChildDeviceBulkImportView(PermissionRequiredMixin, BulkImportView):
|
|||||||
form = forms.ChildDeviceImportForm
|
form = forms.ChildDeviceImportForm
|
||||||
table = tables.DeviceImportTable
|
table = tables.DeviceImportTable
|
||||||
template_name = 'dcim/device_import_child.html'
|
template_name = 'dcim/device_import_child.html'
|
||||||
obj_list_url = 'dcim:device_list'
|
default_return_url = 'dcim:device_list'
|
||||||
|
|
||||||
def save_obj(self, obj):
|
def save_obj(self, obj):
|
||||||
# Inherent rack from parent device
|
# Inherent rack from parent device
|
||||||
@ -718,14 +724,14 @@ class DeviceBulkEditView(PermissionRequiredMixin, BulkEditView):
|
|||||||
filter = filters.DeviceFilter
|
filter = filters.DeviceFilter
|
||||||
form = forms.DeviceBulkEditForm
|
form = forms.DeviceBulkEditForm
|
||||||
template_name = 'dcim/device_bulk_edit.html'
|
template_name = 'dcim/device_bulk_edit.html'
|
||||||
default_redirect_url = 'dcim:device_list'
|
default_return_url = 'dcim:device_list'
|
||||||
|
|
||||||
|
|
||||||
class DeviceBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
class DeviceBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||||
permission_required = 'dcim.delete_device'
|
permission_required = 'dcim.delete_device'
|
||||||
cls = Device
|
cls = Device
|
||||||
filter = filters.DeviceFilter
|
filter = filters.DeviceFilter
|
||||||
default_redirect_url = 'dcim:device_list'
|
default_return_url = 'dcim:device_list'
|
||||||
|
|
||||||
|
|
||||||
def device_inventory(request, pk):
|
def device_inventory(request, pk):
|
||||||
@ -790,7 +796,7 @@ def consoleport_connect(request, pk):
|
|||||||
return render(request, 'dcim/consoleport_connect.html', {
|
return render(request, 'dcim/consoleport_connect.html', {
|
||||||
'consoleport': consoleport,
|
'consoleport': consoleport,
|
||||||
'form': form,
|
'form': form,
|
||||||
'cancel_url': reverse('dcim:device', kwargs={'pk': consoleport.device.pk}),
|
'return_url': reverse('dcim:device', kwargs={'pk': consoleport.device.pk}),
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
@ -819,7 +825,7 @@ def consoleport_disconnect(request, pk):
|
|||||||
return render(request, 'dcim/consoleport_disconnect.html', {
|
return render(request, 'dcim/consoleport_disconnect.html', {
|
||||||
'consoleport': consoleport,
|
'consoleport': consoleport,
|
||||||
'form': form,
|
'form': form,
|
||||||
'cancel_url': reverse('dcim:device', kwargs={'pk': consoleport.device.pk}),
|
'return_url': reverse('dcim:device', kwargs={'pk': consoleport.device.pk}),
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
@ -829,7 +835,7 @@ class ConsolePortEditView(PermissionRequiredMixin, ComponentEditView):
|
|||||||
form_class = forms.ConsolePortForm
|
form_class = forms.ConsolePortForm
|
||||||
|
|
||||||
|
|
||||||
class ConsolePortDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
class ConsolePortDeleteView(PermissionRequiredMixin, ComponentDeleteView):
|
||||||
permission_required = 'dcim.delete_consoleport'
|
permission_required = 'dcim.delete_consoleport'
|
||||||
model = ConsolePort
|
model = ConsolePort
|
||||||
|
|
||||||
@ -886,7 +892,7 @@ def consoleserverport_connect(request, pk):
|
|||||||
return render(request, 'dcim/consoleserverport_connect.html', {
|
return render(request, 'dcim/consoleserverport_connect.html', {
|
||||||
'consoleserverport': consoleserverport,
|
'consoleserverport': consoleserverport,
|
||||||
'form': form,
|
'form': form,
|
||||||
'cancel_url': reverse('dcim:device', kwargs={'pk': consoleserverport.device.pk}),
|
'return_url': reverse('dcim:device', kwargs={'pk': consoleserverport.device.pk}),
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
@ -916,7 +922,7 @@ def consoleserverport_disconnect(request, pk):
|
|||||||
return render(request, 'dcim/consoleserverport_disconnect.html', {
|
return render(request, 'dcim/consoleserverport_disconnect.html', {
|
||||||
'consoleserverport': consoleserverport,
|
'consoleserverport': consoleserverport,
|
||||||
'form': form,
|
'form': form,
|
||||||
'cancel_url': reverse('dcim:device', kwargs={'pk': consoleserverport.device.pk}),
|
'return_url': reverse('dcim:device', kwargs={'pk': consoleserverport.device.pk}),
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
@ -926,7 +932,7 @@ class ConsoleServerPortEditView(PermissionRequiredMixin, ComponentEditView):
|
|||||||
form_class = forms.ConsoleServerPortForm
|
form_class = forms.ConsoleServerPortForm
|
||||||
|
|
||||||
|
|
||||||
class ConsoleServerPortDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
class ConsoleServerPortDeleteView(PermissionRequiredMixin, ComponentDeleteView):
|
||||||
permission_required = 'dcim.delete_consoleserverport'
|
permission_required = 'dcim.delete_consoleserverport'
|
||||||
model = ConsoleServerPort
|
model = ConsoleServerPort
|
||||||
|
|
||||||
@ -976,7 +982,7 @@ def powerport_connect(request, pk):
|
|||||||
return render(request, 'dcim/powerport_connect.html', {
|
return render(request, 'dcim/powerport_connect.html', {
|
||||||
'powerport': powerport,
|
'powerport': powerport,
|
||||||
'form': form,
|
'form': form,
|
||||||
'cancel_url': reverse('dcim:device', kwargs={'pk': powerport.device.pk}),
|
'return_url': reverse('dcim:device', kwargs={'pk': powerport.device.pk}),
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
@ -1005,7 +1011,7 @@ def powerport_disconnect(request, pk):
|
|||||||
return render(request, 'dcim/powerport_disconnect.html', {
|
return render(request, 'dcim/powerport_disconnect.html', {
|
||||||
'powerport': powerport,
|
'powerport': powerport,
|
||||||
'form': form,
|
'form': form,
|
||||||
'cancel_url': reverse('dcim:device', kwargs={'pk': powerport.device.pk}),
|
'return_url': reverse('dcim:device', kwargs={'pk': powerport.device.pk}),
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
@ -1015,7 +1021,7 @@ class PowerPortEditView(PermissionRequiredMixin, ComponentEditView):
|
|||||||
form_class = forms.PowerPortForm
|
form_class = forms.PowerPortForm
|
||||||
|
|
||||||
|
|
||||||
class PowerPortDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
class PowerPortDeleteView(PermissionRequiredMixin, ComponentDeleteView):
|
||||||
permission_required = 'dcim.delete_powerport'
|
permission_required = 'dcim.delete_powerport'
|
||||||
model = PowerPort
|
model = PowerPort
|
||||||
|
|
||||||
@ -1072,7 +1078,7 @@ def poweroutlet_connect(request, pk):
|
|||||||
return render(request, 'dcim/poweroutlet_connect.html', {
|
return render(request, 'dcim/poweroutlet_connect.html', {
|
||||||
'poweroutlet': poweroutlet,
|
'poweroutlet': poweroutlet,
|
||||||
'form': form,
|
'form': form,
|
||||||
'cancel_url': reverse('dcim:device', kwargs={'pk': poweroutlet.device.pk}),
|
'return_url': reverse('dcim:device', kwargs={'pk': poweroutlet.device.pk}),
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
@ -1101,7 +1107,7 @@ def poweroutlet_disconnect(request, pk):
|
|||||||
return render(request, 'dcim/poweroutlet_disconnect.html', {
|
return render(request, 'dcim/poweroutlet_disconnect.html', {
|
||||||
'poweroutlet': poweroutlet,
|
'poweroutlet': poweroutlet,
|
||||||
'form': form,
|
'form': form,
|
||||||
'cancel_url': reverse('dcim:device', kwargs={'pk': poweroutlet.device.pk}),
|
'return_url': reverse('dcim:device', kwargs={'pk': poweroutlet.device.pk}),
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
@ -1111,7 +1117,7 @@ class PowerOutletEditView(PermissionRequiredMixin, ComponentEditView):
|
|||||||
form_class = forms.PowerOutletForm
|
form_class = forms.PowerOutletForm
|
||||||
|
|
||||||
|
|
||||||
class PowerOutletDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
class PowerOutletDeleteView(PermissionRequiredMixin, ComponentDeleteView):
|
||||||
permission_required = 'dcim.delete_poweroutlet'
|
permission_required = 'dcim.delete_poweroutlet'
|
||||||
model = PowerOutlet
|
model = PowerOutlet
|
||||||
|
|
||||||
@ -1141,7 +1147,7 @@ class InterfaceEditView(PermissionRequiredMixin, ComponentEditView):
|
|||||||
form_class = forms.InterfaceForm
|
form_class = forms.InterfaceForm
|
||||||
|
|
||||||
|
|
||||||
class InterfaceDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
class InterfaceDeleteView(PermissionRequiredMixin, ComponentDeleteView):
|
||||||
permission_required = 'dcim.delete_interface'
|
permission_required = 'dcim.delete_interface'
|
||||||
model = Interface
|
model = Interface
|
||||||
|
|
||||||
@ -1179,7 +1185,7 @@ class DeviceBayEditView(PermissionRequiredMixin, ComponentEditView):
|
|||||||
form_class = forms.DeviceBayForm
|
form_class = forms.DeviceBayForm
|
||||||
|
|
||||||
|
|
||||||
class DeviceBayDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
class DeviceBayDeleteView(PermissionRequiredMixin, ComponentDeleteView):
|
||||||
permission_required = 'dcim.delete_devicebay'
|
permission_required = 'dcim.delete_devicebay'
|
||||||
model = DeviceBay
|
model = DeviceBay
|
||||||
|
|
||||||
@ -1206,7 +1212,7 @@ def devicebay_populate(request, pk):
|
|||||||
return render(request, 'dcim/devicebay_populate.html', {
|
return render(request, 'dcim/devicebay_populate.html', {
|
||||||
'device_bay': device_bay,
|
'device_bay': device_bay,
|
||||||
'form': form,
|
'form': form,
|
||||||
'cancel_url': reverse('dcim:device', kwargs={'pk': device_bay.device.pk}),
|
'return_url': reverse('dcim:device', kwargs={'pk': device_bay.device.pk}),
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
@ -1230,7 +1236,7 @@ def devicebay_depopulate(request, pk):
|
|||||||
return render(request, 'dcim/devicebay_depopulate.html', {
|
return render(request, 'dcim/devicebay_depopulate.html', {
|
||||||
'device_bay': device_bay,
|
'device_bay': device_bay,
|
||||||
'form': form,
|
'form': form,
|
||||||
'cancel_url': reverse('dcim:device', kwargs={'pk': device_bay.device.pk}),
|
'return_url': reverse('dcim:device', kwargs={'pk': device_bay.device.pk}),
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
@ -1305,7 +1311,7 @@ class DeviceBulkAddComponentView(View):
|
|||||||
'form': form,
|
'form': form,
|
||||||
'component_name': self.model._meta.verbose_name_plural,
|
'component_name': self.model._meta.verbose_name_plural,
|
||||||
'selected_devices': selected_devices,
|
'selected_devices': selected_devices,
|
||||||
'cancel_url': reverse('dcim:device_list'),
|
'return_url': reverse('dcim:device_list'),
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
@ -1387,7 +1393,7 @@ def interfaceconnection_add(request, pk):
|
|||||||
return render(request, 'dcim/interfaceconnection_edit.html', {
|
return render(request, 'dcim/interfaceconnection_edit.html', {
|
||||||
'device': device,
|
'device': device,
|
||||||
'form': form,
|
'form': form,
|
||||||
'cancel_url': reverse('dcim:device', kwargs={'pk': device.pk}),
|
'return_url': reverse('dcim:device', kwargs={'pk': device.pk}),
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
@ -1419,15 +1425,15 @@ def interfaceconnection_delete(request, pk):
|
|||||||
|
|
||||||
# Determine where to direct user upon cancellation
|
# Determine where to direct user upon cancellation
|
||||||
if device_id:
|
if device_id:
|
||||||
cancel_url = reverse('dcim:device', kwargs={'pk': device_id})
|
return_url = reverse('dcim:device', kwargs={'pk': device_id})
|
||||||
else:
|
else:
|
||||||
cancel_url = reverse('dcim:device_list')
|
return_url = reverse('dcim:device_list')
|
||||||
|
|
||||||
return render(request, 'dcim/interfaceconnection_delete.html', {
|
return render(request, 'dcim/interfaceconnection_delete.html', {
|
||||||
'interfaceconnection': interfaceconnection,
|
'interfaceconnection': interfaceconnection,
|
||||||
'device_id': device_id,
|
'device_id': device_id,
|
||||||
'form': form,
|
'form': form,
|
||||||
'cancel_url': cancel_url,
|
'return_url': return_url,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
@ -1506,7 +1512,7 @@ def ipaddress_assign(request, pk):
|
|||||||
return render(request, 'dcim/ipaddress_assign.html', {
|
return render(request, 'dcim/ipaddress_assign.html', {
|
||||||
'device': device,
|
'device': device,
|
||||||
'form': form,
|
'form': form,
|
||||||
'cancel_url': reverse('dcim:device', kwargs={'pk': device.pk}),
|
'return_url': reverse('dcim:device', kwargs={'pk': device.pk}),
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
@ -1525,6 +1531,6 @@ class ModuleEditView(PermissionRequiredMixin, ComponentEditView):
|
|||||||
return obj
|
return obj
|
||||||
|
|
||||||
|
|
||||||
class ModuleDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
class ModuleDeleteView(PermissionRequiredMixin, ComponentDeleteView):
|
||||||
permission_required = 'dcim.delete_module'
|
permission_required = 'dcim.delete_module'
|
||||||
model = Module
|
model = Module
|
||||||
|
@ -118,7 +118,7 @@ class VRFEditView(PermissionRequiredMixin, ObjectEditView):
|
|||||||
model = VRF
|
model = VRF
|
||||||
form_class = forms.VRFForm
|
form_class = forms.VRFForm
|
||||||
template_name = 'ipam/vrf_edit.html'
|
template_name = 'ipam/vrf_edit.html'
|
||||||
obj_list_url = 'ipam:vrf_list'
|
default_return_url = 'ipam:vrf_list'
|
||||||
|
|
||||||
|
|
||||||
class VRFDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
class VRFDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
||||||
@ -132,7 +132,7 @@ class VRFBulkImportView(PermissionRequiredMixin, BulkImportView):
|
|||||||
form = forms.VRFImportForm
|
form = forms.VRFImportForm
|
||||||
table = tables.VRFTable
|
table = tables.VRFTable
|
||||||
template_name = 'ipam/vrf_import.html'
|
template_name = 'ipam/vrf_import.html'
|
||||||
obj_list_url = 'ipam:vrf_list'
|
default_return_url = 'ipam:vrf_list'
|
||||||
|
|
||||||
|
|
||||||
class VRFBulkEditView(PermissionRequiredMixin, BulkEditView):
|
class VRFBulkEditView(PermissionRequiredMixin, BulkEditView):
|
||||||
@ -141,14 +141,14 @@ class VRFBulkEditView(PermissionRequiredMixin, BulkEditView):
|
|||||||
filter = filters.VRFFilter
|
filter = filters.VRFFilter
|
||||||
form = forms.VRFBulkEditForm
|
form = forms.VRFBulkEditForm
|
||||||
template_name = 'ipam/vrf_bulk_edit.html'
|
template_name = 'ipam/vrf_bulk_edit.html'
|
||||||
default_redirect_url = 'ipam:vrf_list'
|
default_return_url = 'ipam:vrf_list'
|
||||||
|
|
||||||
|
|
||||||
class VRFBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
class VRFBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||||
permission_required = 'ipam.delete_vrf'
|
permission_required = 'ipam.delete_vrf'
|
||||||
cls = VRF
|
cls = VRF
|
||||||
filter = filters.VRFFilter
|
filter = filters.VRFFilter
|
||||||
default_redirect_url = 'ipam:vrf_list'
|
default_return_url = 'ipam:vrf_list'
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -253,7 +253,7 @@ class RIRBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
|||||||
permission_required = 'ipam.delete_rir'
|
permission_required = 'ipam.delete_rir'
|
||||||
cls = RIR
|
cls = RIR
|
||||||
filter = filters.RIRFilter
|
filter = filters.RIRFilter
|
||||||
default_redirect_url = 'ipam:rir_list'
|
default_return_url = 'ipam:rir_list'
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -311,7 +311,7 @@ class AggregateEditView(PermissionRequiredMixin, ObjectEditView):
|
|||||||
model = Aggregate
|
model = Aggregate
|
||||||
form_class = forms.AggregateForm
|
form_class = forms.AggregateForm
|
||||||
template_name = 'ipam/aggregate_edit.html'
|
template_name = 'ipam/aggregate_edit.html'
|
||||||
obj_list_url = 'ipam:aggregate_list'
|
default_return_url = 'ipam:aggregate_list'
|
||||||
|
|
||||||
|
|
||||||
class AggregateDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
class AggregateDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
||||||
@ -325,7 +325,7 @@ class AggregateBulkImportView(PermissionRequiredMixin, BulkImportView):
|
|||||||
form = forms.AggregateImportForm
|
form = forms.AggregateImportForm
|
||||||
table = tables.AggregateTable
|
table = tables.AggregateTable
|
||||||
template_name = 'ipam/aggregate_import.html'
|
template_name = 'ipam/aggregate_import.html'
|
||||||
obj_list_url = 'ipam:aggregate_list'
|
default_return_url = 'ipam:aggregate_list'
|
||||||
|
|
||||||
|
|
||||||
class AggregateBulkEditView(PermissionRequiredMixin, BulkEditView):
|
class AggregateBulkEditView(PermissionRequiredMixin, BulkEditView):
|
||||||
@ -334,14 +334,14 @@ class AggregateBulkEditView(PermissionRequiredMixin, BulkEditView):
|
|||||||
filter = filters.AggregateFilter
|
filter = filters.AggregateFilter
|
||||||
form = forms.AggregateBulkEditForm
|
form = forms.AggregateBulkEditForm
|
||||||
template_name = 'ipam/aggregate_bulk_edit.html'
|
template_name = 'ipam/aggregate_bulk_edit.html'
|
||||||
default_redirect_url = 'ipam:aggregate_list'
|
default_return_url = 'ipam:aggregate_list'
|
||||||
|
|
||||||
|
|
||||||
class AggregateBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
class AggregateBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||||
permission_required = 'ipam.delete_aggregate'
|
permission_required = 'ipam.delete_aggregate'
|
||||||
cls = Aggregate
|
cls = Aggregate
|
||||||
filter = filters.AggregateFilter
|
filter = filters.AggregateFilter
|
||||||
default_redirect_url = 'ipam:aggregate_list'
|
default_return_url = 'ipam:aggregate_list'
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -367,7 +367,7 @@ class RoleEditView(PermissionRequiredMixin, ObjectEditView):
|
|||||||
class RoleBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
class RoleBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||||
permission_required = 'ipam.delete_role'
|
permission_required = 'ipam.delete_role'
|
||||||
cls = Role
|
cls = Role
|
||||||
default_redirect_url = 'ipam:role_list'
|
default_return_url = 'ipam:role_list'
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -444,14 +444,14 @@ class PrefixEditView(PermissionRequiredMixin, ObjectEditView):
|
|||||||
form_class = forms.PrefixForm
|
form_class = forms.PrefixForm
|
||||||
template_name = 'ipam/prefix_edit.html'
|
template_name = 'ipam/prefix_edit.html'
|
||||||
fields_initial = ['vrf', 'tenant', 'site', 'prefix', 'vlan']
|
fields_initial = ['vrf', 'tenant', 'site', 'prefix', 'vlan']
|
||||||
obj_list_url = 'ipam:prefix_list'
|
default_return_url = 'ipam:prefix_list'
|
||||||
|
|
||||||
|
|
||||||
class PrefixDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
class PrefixDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
||||||
permission_required = 'ipam.delete_prefix'
|
permission_required = 'ipam.delete_prefix'
|
||||||
model = Prefix
|
model = Prefix
|
||||||
default_return_url = 'ipam:prefix_list'
|
|
||||||
template_name = 'ipam/prefix_delete.html'
|
template_name = 'ipam/prefix_delete.html'
|
||||||
|
default_return_url = 'ipam:prefix_list'
|
||||||
|
|
||||||
|
|
||||||
class PrefixBulkImportView(PermissionRequiredMixin, BulkImportView):
|
class PrefixBulkImportView(PermissionRequiredMixin, BulkImportView):
|
||||||
@ -459,7 +459,7 @@ class PrefixBulkImportView(PermissionRequiredMixin, BulkImportView):
|
|||||||
form = forms.PrefixImportForm
|
form = forms.PrefixImportForm
|
||||||
table = tables.PrefixTable
|
table = tables.PrefixTable
|
||||||
template_name = 'ipam/prefix_import.html'
|
template_name = 'ipam/prefix_import.html'
|
||||||
obj_list_url = 'ipam:prefix_list'
|
default_return_url = 'ipam:prefix_list'
|
||||||
|
|
||||||
|
|
||||||
class PrefixBulkEditView(PermissionRequiredMixin, BulkEditView):
|
class PrefixBulkEditView(PermissionRequiredMixin, BulkEditView):
|
||||||
@ -468,14 +468,14 @@ class PrefixBulkEditView(PermissionRequiredMixin, BulkEditView):
|
|||||||
filter = filters.PrefixFilter
|
filter = filters.PrefixFilter
|
||||||
form = forms.PrefixBulkEditForm
|
form = forms.PrefixBulkEditForm
|
||||||
template_name = 'ipam/prefix_bulk_edit.html'
|
template_name = 'ipam/prefix_bulk_edit.html'
|
||||||
default_redirect_url = 'ipam:prefix_list'
|
default_return_url = 'ipam:prefix_list'
|
||||||
|
|
||||||
|
|
||||||
class PrefixBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
class PrefixBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||||
permission_required = 'ipam.delete_prefix'
|
permission_required = 'ipam.delete_prefix'
|
||||||
cls = Prefix
|
cls = Prefix
|
||||||
filter = filters.PrefixFilter
|
filter = filters.PrefixFilter
|
||||||
default_redirect_url = 'ipam:prefix_list'
|
default_return_url = 'ipam:prefix_list'
|
||||||
|
|
||||||
|
|
||||||
def prefix_ipaddresses(request, pk):
|
def prefix_ipaddresses(request, pk):
|
||||||
@ -569,7 +569,7 @@ def ipaddress_assign(request, pk):
|
|||||||
return render(request, 'ipam/ipaddress_assign.html', {
|
return render(request, 'ipam/ipaddress_assign.html', {
|
||||||
'ipaddress': ipaddress,
|
'ipaddress': ipaddress,
|
||||||
'form': form,
|
'form': form,
|
||||||
'cancel_url': reverse('ipam:ipaddress', kwargs={'pk': ipaddress.pk}),
|
'return_url': reverse('ipam:ipaddress', kwargs={'pk': ipaddress.pk}),
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
@ -602,7 +602,7 @@ def ipaddress_remove(request, pk):
|
|||||||
return render(request, 'ipam/ipaddress_unassign.html', {
|
return render(request, 'ipam/ipaddress_unassign.html', {
|
||||||
'ipaddress': ipaddress,
|
'ipaddress': ipaddress,
|
||||||
'form': form,
|
'form': form,
|
||||||
'cancel_url': reverse('ipam:ipaddress', kwargs={'pk': ipaddress.pk}),
|
'return_url': reverse('ipam:ipaddress', kwargs={'pk': ipaddress.pk}),
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
@ -612,7 +612,7 @@ class IPAddressEditView(PermissionRequiredMixin, ObjectEditView):
|
|||||||
form_class = forms.IPAddressForm
|
form_class = forms.IPAddressForm
|
||||||
fields_initial = ['address', 'vrf']
|
fields_initial = ['address', 'vrf']
|
||||||
template_name = 'ipam/ipaddress_edit.html'
|
template_name = 'ipam/ipaddress_edit.html'
|
||||||
obj_list_url = 'ipam:ipaddress_list'
|
default_return_url = 'ipam:ipaddress_list'
|
||||||
|
|
||||||
|
|
||||||
class IPAddressDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
class IPAddressDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
||||||
@ -626,7 +626,7 @@ class IPAddressBulkAddView(PermissionRequiredMixin, BulkAddView):
|
|||||||
form = forms.IPAddressBulkAddForm
|
form = forms.IPAddressBulkAddForm
|
||||||
model = IPAddress
|
model = IPAddress
|
||||||
template_name = 'ipam/ipaddress_bulk_add.html'
|
template_name = 'ipam/ipaddress_bulk_add.html'
|
||||||
redirect_url = 'ipam:ipaddress_list'
|
default_return_url = 'ipam:ipaddress_list'
|
||||||
|
|
||||||
|
|
||||||
class IPAddressBulkImportView(PermissionRequiredMixin, BulkImportView):
|
class IPAddressBulkImportView(PermissionRequiredMixin, BulkImportView):
|
||||||
@ -634,7 +634,7 @@ class IPAddressBulkImportView(PermissionRequiredMixin, BulkImportView):
|
|||||||
form = forms.IPAddressImportForm
|
form = forms.IPAddressImportForm
|
||||||
table = tables.IPAddressTable
|
table = tables.IPAddressTable
|
||||||
template_name = 'ipam/ipaddress_import.html'
|
template_name = 'ipam/ipaddress_import.html'
|
||||||
obj_list_url = 'ipam:ipaddress_list'
|
default_return_url = 'ipam:ipaddress_list'
|
||||||
|
|
||||||
def save_obj(self, obj):
|
def save_obj(self, obj):
|
||||||
obj.save()
|
obj.save()
|
||||||
@ -658,14 +658,14 @@ class IPAddressBulkEditView(PermissionRequiredMixin, BulkEditView):
|
|||||||
filter = filters.IPAddressFilter
|
filter = filters.IPAddressFilter
|
||||||
form = forms.IPAddressBulkEditForm
|
form = forms.IPAddressBulkEditForm
|
||||||
template_name = 'ipam/ipaddress_bulk_edit.html'
|
template_name = 'ipam/ipaddress_bulk_edit.html'
|
||||||
default_redirect_url = 'ipam:ipaddress_list'
|
default_return_url = 'ipam:ipaddress_list'
|
||||||
|
|
||||||
|
|
||||||
class IPAddressBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
class IPAddressBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||||
permission_required = 'ipam.delete_ipaddress'
|
permission_required = 'ipam.delete_ipaddress'
|
||||||
cls = IPAddress
|
cls = IPAddress
|
||||||
filter = filters.IPAddressFilter
|
filter = filters.IPAddressFilter
|
||||||
default_redirect_url = 'ipam:ipaddress_list'
|
default_return_url = 'ipam:ipaddress_list'
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -694,7 +694,7 @@ class VLANGroupBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
|||||||
permission_required = 'ipam.delete_vlangroup'
|
permission_required = 'ipam.delete_vlangroup'
|
||||||
cls = VLANGroup
|
cls = VLANGroup
|
||||||
filter = filters.VLANGroupFilter
|
filter = filters.VLANGroupFilter
|
||||||
default_redirect_url = 'ipam:vlangroup_list'
|
default_return_url = 'ipam:vlangroup_list'
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -727,7 +727,7 @@ class VLANEditView(PermissionRequiredMixin, ObjectEditView):
|
|||||||
model = VLAN
|
model = VLAN
|
||||||
form_class = forms.VLANForm
|
form_class = forms.VLANForm
|
||||||
template_name = 'ipam/vlan_edit.html'
|
template_name = 'ipam/vlan_edit.html'
|
||||||
obj_list_url = 'ipam:vlan_list'
|
default_return_url = 'ipam:vlan_list'
|
||||||
|
|
||||||
|
|
||||||
class VLANDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
class VLANDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
||||||
@ -741,7 +741,7 @@ class VLANBulkImportView(PermissionRequiredMixin, BulkImportView):
|
|||||||
form = forms.VLANImportForm
|
form = forms.VLANImportForm
|
||||||
table = tables.VLANTable
|
table = tables.VLANTable
|
||||||
template_name = 'ipam/vlan_import.html'
|
template_name = 'ipam/vlan_import.html'
|
||||||
obj_list_url = 'ipam:vlan_list'
|
default_return_url = 'ipam:vlan_list'
|
||||||
|
|
||||||
|
|
||||||
class VLANBulkEditView(PermissionRequiredMixin, BulkEditView):
|
class VLANBulkEditView(PermissionRequiredMixin, BulkEditView):
|
||||||
@ -750,14 +750,14 @@ class VLANBulkEditView(PermissionRequiredMixin, BulkEditView):
|
|||||||
filter = filters.VLANFilter
|
filter = filters.VLANFilter
|
||||||
form = forms.VLANBulkEditForm
|
form = forms.VLANBulkEditForm
|
||||||
template_name = 'ipam/vlan_bulk_edit.html'
|
template_name = 'ipam/vlan_bulk_edit.html'
|
||||||
default_redirect_url = 'ipam:vlan_list'
|
default_return_url = 'ipam:vlan_list'
|
||||||
|
|
||||||
|
|
||||||
class VLANBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
class VLANBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||||
permission_required = 'ipam.delete_vlan'
|
permission_required = 'ipam.delete_vlan'
|
||||||
cls = VLAN
|
cls = VLAN
|
||||||
filter = filters.VLANFilter
|
filter = filters.VLANFilter
|
||||||
default_redirect_url = 'ipam:vlan_list'
|
default_return_url = 'ipam:vlan_list'
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -38,7 +38,7 @@ class SecretRoleEditView(PermissionRequiredMixin, ObjectEditView):
|
|||||||
class SecretRoleBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
class SecretRoleBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||||
permission_required = 'secrets.delete_secretrole'
|
permission_required = 'secrets.delete_secretrole'
|
||||||
cls = SecretRole
|
cls = SecretRole
|
||||||
default_redirect_url = 'secrets:secretrole_list'
|
default_return_url = 'secrets:secretrole_list'
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -103,7 +103,7 @@ def secret_add(request, pk):
|
|||||||
return render(request, 'secrets/secret_edit.html', {
|
return render(request, 'secrets/secret_edit.html', {
|
||||||
'secret': secret,
|
'secret': secret,
|
||||||
'form': form,
|
'form': form,
|
||||||
'cancel_url': device.get_absolute_url(),
|
'return_url': device.get_absolute_url(),
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
@ -145,7 +145,7 @@ def secret_edit(request, pk):
|
|||||||
return render(request, 'secrets/secret_edit.html', {
|
return render(request, 'secrets/secret_edit.html', {
|
||||||
'secret': secret,
|
'secret': secret,
|
||||||
'form': form,
|
'form': form,
|
||||||
'cancel_url': reverse('secrets:secret', kwargs={'pk': secret.pk}),
|
'return_url': reverse('secrets:secret', kwargs={'pk': secret.pk}),
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
@ -195,7 +195,7 @@ def secret_import(request):
|
|||||||
|
|
||||||
return render(request, 'secrets/secret_import.html', {
|
return render(request, 'secrets/secret_import.html', {
|
||||||
'form': form,
|
'form': form,
|
||||||
'cancel_url': reverse('secrets:secret_list'),
|
'return_url': reverse('secrets:secret_list'),
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
@ -205,11 +205,11 @@ class SecretBulkEditView(PermissionRequiredMixin, BulkEditView):
|
|||||||
filter = filters.SecretFilter
|
filter = filters.SecretFilter
|
||||||
form = forms.SecretBulkEditForm
|
form = forms.SecretBulkEditForm
|
||||||
template_name = 'secrets/secret_bulk_edit.html'
|
template_name = 'secrets/secret_bulk_edit.html'
|
||||||
default_redirect_url = 'secrets:secret_list'
|
default_return_url = 'secrets:secret_list'
|
||||||
|
|
||||||
|
|
||||||
class SecretBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
class SecretBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||||
permission_required = 'secrets.delete_secret'
|
permission_required = 'secrets.delete_secret'
|
||||||
cls = Secret
|
cls = Secret
|
||||||
filter = filters.SecretFilter
|
filter = filters.SecretFilter
|
||||||
default_redirect_url = 'secrets:secret_list'
|
default_return_url = 'secrets:secret_list'
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
{% render_form form %}
|
{% render_form form %}
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<button type="submit" class="btn btn-primary">Submit</button>
|
<button type="submit" class="btn btn-primary">Submit</button>
|
||||||
<a href="{% url obj_list_url %}" class="btn btn-default">Cancel</a>
|
<a href="{% url return_url %}" class="btn btn-default">Cancel</a>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
@ -83,7 +83,7 @@
|
|||||||
{% else %}
|
{% else %}
|
||||||
<button type="submit" name="_create" class="btn btn-primary">Create</button>
|
<button type="submit" name="_create" class="btn btn-primary">Create</button>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<a href="{{ cancel_url }}" class="btn btn-default">Cancel</a>
|
<a href="{{ return_url }}" class="btn btn-default">Cancel</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
{% render_form form %}
|
{% render_form form %}
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<button type="submit" class="btn btn-primary">Submit</button>
|
<button type="submit" class="btn btn-primary">Submit</button>
|
||||||
<a href="{% url obj_list_url %}" class="btn btn-default">Cancel</a>
|
<a href="{% url return_url %}" class="btn btn-default">Cancel</a>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
@ -40,7 +40,7 @@
|
|||||||
<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">
|
||||||
<button type="submit" name="_update" class="btn btn-primary">Connect</button>
|
<button type="submit" name="_update" class="btn btn-primary">Connect</button>
|
||||||
<a href="{{ cancel_url }}" class="btn btn-default">Cancel</a>
|
<a href="{{ return_url }}" class="btn btn-default">Cancel</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -40,7 +40,7 @@
|
|||||||
<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">
|
||||||
<button type="submit" name="_update" class="btn btn-primary">Connect</button>
|
<button type="submit" name="_update" class="btn btn-primary">Connect</button>
|
||||||
<a href="{{ cancel_url }}" class="btn btn-default">Cancel</a>
|
<a href="{{ return_url }}" class="btn btn-default">Cancel</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -5,8 +5,8 @@
|
|||||||
<h1>Add {{ component_name|title }}</h1>
|
<h1>Add {{ component_name|title }}</h1>
|
||||||
<form action="." method="post" class="form form-horizontal">
|
<form action="." method="post" class="form form-horizontal">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
{% if request.POST.redirect_url %}
|
{% if request.POST.return_url %}
|
||||||
<input type="hidden" name="redirect_url" value="{{ request.POST.redirect_url }}" />
|
<input type="hidden" name="return_url" value="{{ request.POST.return_url }}" />
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% for field in form.hidden_fields %}
|
{% for field in form.hidden_fields %}
|
||||||
{{ field }}
|
{{ field }}
|
||||||
@ -51,7 +51,7 @@
|
|||||||
<div class="form-group text-right">
|
<div class="form-group text-right">
|
||||||
<div class="col-md-12">
|
<div class="col-md-12">
|
||||||
<button type="submit" name="_create" class="btn btn-primary">Create</button>
|
<button type="submit" name="_create" class="btn btn-primary">Create</button>
|
||||||
<a href="{{ cancel_url }}" class="btn btn-default">Cancel</a>
|
<a href="{{ return_url }}" class="btn btn-default">Cancel</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -34,7 +34,7 @@
|
|||||||
<div class="col-md-9 col-md-offset-3">
|
<div class="col-md-9 col-md-offset-3">
|
||||||
<button type="submit" name="_create" class="btn btn-primary">Create</button>
|
<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>
|
<button type="submit" name="_addanother" class="btn btn-primary">Create and Add More</button>
|
||||||
<a href="{{ cancel_url }}" class="btn btn-default">Cancel</a>
|
<a href="{{ return_url }}" class="btn btn-default">Cancel</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
{% render_form form %}
|
{% render_form form %}
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<button type="submit" class="btn btn-primary">Submit</button>
|
<button type="submit" class="btn btn-primary">Submit</button>
|
||||||
<a href="{% url obj_list_url %}" class="btn btn-default">Cancel</a>
|
<a href="{% url return_url %}" class="btn btn-default">Cancel</a>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
<h4>CSV Format</h4>
|
<h4>CSV Format</h4>
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
{% render_form form %}
|
{% render_form form %}
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<button type="submit" class="btn btn-primary">Submit</button>
|
<button type="submit" class="btn btn-primary">Submit</button>
|
||||||
<a href="{% url obj_list_url %}" class="btn btn-default">Cancel</a>
|
<a href="{% url return_url %}" class="btn btn-default">Cancel</a>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
<h4>CSV Format</h4>
|
<h4>CSV Format</h4>
|
||||||
|
@ -37,7 +37,7 @@
|
|||||||
<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">
|
||||||
<button type="submit" name="_update" class="btn btn-primary">Save</button>
|
<button type="submit" name="_update" class="btn btn-primary">Save</button>
|
||||||
<a href="{{ cancel_url }}" class="btn btn-default">Cancel</a>
|
<a href="{{ return_url }}" class="btn btn-default">Cancel</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -33,7 +33,7 @@
|
|||||||
<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">
|
||||||
<button type="submit" name="_update" class="btn btn-primary">Save</button>
|
<button type="submit" name="_update" class="btn btn-primary">Save</button>
|
||||||
<a href="{{ cancel_url }}" class="btn btn-default">Cancel</a>
|
<a href="{{ return_url }}" class="btn btn-default">Cancel</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -50,7 +50,7 @@
|
|||||||
<i class="glyphicon glyphicon-trash" aria-hidden="true"></i>
|
<i class="glyphicon glyphicon-trash" aria-hidden="true"></i>
|
||||||
</button>
|
</button>
|
||||||
{% else %}
|
{% else %}
|
||||||
<a href="{% url 'dcim:consoleport_delete' pk=cp.pk %}?return_url={{ device.get_absolute_url }}" class="btn btn-danger btn-xs">
|
<a href="{% url 'dcim:consoleport_delete' pk=cp.pk %}" class="btn btn-danger btn-xs">
|
||||||
<i class="glyphicon glyphicon-trash" aria-hidden="true" title="Delete port"></i>
|
<i class="glyphicon glyphicon-trash" aria-hidden="true" title="Delete port"></i>
|
||||||
</a>
|
</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -49,7 +49,7 @@
|
|||||||
<i class="glyphicon glyphicon-trash" aria-hidden="true"></i>
|
<i class="glyphicon glyphicon-trash" aria-hidden="true"></i>
|
||||||
</button>
|
</button>
|
||||||
{% else %}
|
{% else %}
|
||||||
<a href="{% url 'dcim:consoleserverport_delete' pk=csp.pk %}?return_url={{ device.get_absolute_url }}" class="btn btn-danger btn-xs">
|
<a href="{% url 'dcim:consoleserverport_delete' pk=csp.pk %}" class="btn btn-danger btn-xs">
|
||||||
<i class="glyphicon glyphicon-trash" aria-hidden="true" title="Delete port"></i>
|
<i class="glyphicon glyphicon-trash" aria-hidden="true" title="Delete port"></i>
|
||||||
</a>
|
</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -40,7 +40,7 @@
|
|||||||
<i class="glyphicon glyphicon-trash" aria-hidden="true"></i>
|
<i class="glyphicon glyphicon-trash" aria-hidden="true"></i>
|
||||||
</button>
|
</button>
|
||||||
{% else %}
|
{% else %}
|
||||||
<a href="{% url 'dcim:devicebay_delete' pk=devicebay.pk %}?return_url={{ device.get_absolute_url }}" class="btn btn-danger btn-xs">
|
<a href="{% url 'dcim:devicebay_delete' pk=devicebay.pk %}" class="btn btn-danger btn-xs">
|
||||||
<i class="glyphicon glyphicon-trash" aria-hidden="true" title="Delete device bay"></i>
|
<i class="glyphicon glyphicon-trash" aria-hidden="true" title="Delete device bay"></i>
|
||||||
</a>
|
</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -85,7 +85,7 @@
|
|||||||
<i class="glyphicon glyphicon-trash" aria-hidden="true"></i>
|
<i class="glyphicon glyphicon-trash" aria-hidden="true"></i>
|
||||||
</button>
|
</button>
|
||||||
{% else %}
|
{% else %}
|
||||||
<a href="{% url 'dcim:interface_delete' pk=iface.pk %}?return_url={{ device.get_absolute_url }}" class="btn btn-danger btn-xs" title="Delete interface">
|
<a href="{% url 'dcim:interface_delete' pk=iface.pk %}" class="btn btn-danger btn-xs" title="Delete interface">
|
||||||
<i class="glyphicon glyphicon-trash" aria-hidden="true"></i>
|
<i class="glyphicon glyphicon-trash" aria-hidden="true"></i>
|
||||||
</a>
|
</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -49,7 +49,7 @@
|
|||||||
<i class="glyphicon glyphicon-trash" aria-hidden="true"></i>
|
<i class="glyphicon glyphicon-trash" aria-hidden="true"></i>
|
||||||
</button>
|
</button>
|
||||||
{% else %}
|
{% else %}
|
||||||
<a href="{% url 'dcim:poweroutlet_delete' pk=po.pk %}?return_url={{ device.get_absolute_url }}" class="btn btn-danger btn-xs">
|
<a href="{% url 'dcim:poweroutlet_delete' pk=po.pk %}" class="btn btn-danger btn-xs">
|
||||||
<i class="glyphicon glyphicon-trash" aria-hidden="true" title="Delete outlet"></i>
|
<i class="glyphicon glyphicon-trash" aria-hidden="true" title="Delete outlet"></i>
|
||||||
</a>
|
</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -50,7 +50,7 @@
|
|||||||
<i class="glyphicon glyphicon-trash" aria-hidden="true"></i>
|
<i class="glyphicon glyphicon-trash" aria-hidden="true"></i>
|
||||||
</button>
|
</button>
|
||||||
{% else %}
|
{% else %}
|
||||||
<a href="{% url 'dcim:powerport_delete' pk=pp.pk %}?return_url={{ device.get_absolute_url }}" class="btn btn-danger btn-xs">
|
<a href="{% url 'dcim:powerport_delete' pk=pp.pk %}" class="btn btn-danger btn-xs">
|
||||||
<i class="glyphicon glyphicon-trash" aria-hidden="true" title="Delete port"></i>
|
<i class="glyphicon glyphicon-trash" aria-hidden="true" title="Delete port"></i>
|
||||||
</a>
|
</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -86,7 +86,7 @@
|
|||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<button type="submit" name="_create" class="btn btn-primary">Connect</button>
|
<button type="submit" name="_create" class="btn btn-primary">Connect</button>
|
||||||
<button type="submit" name="_addanother" class="btn btn-primary">Connect and Add Another</button>
|
<button type="submit" name="_addanother" class="btn btn-primary">Connect and Add Another</button>
|
||||||
<a href="{{ cancel_url }}" class="btn btn-default">Cancel</a>
|
<a href="{{ return_url }}" class="btn btn-default">Cancel</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
@ -53,7 +53,7 @@
|
|||||||
<div class="col-md-9 col-md-offset-3">
|
<div class="col-md-9 col-md-offset-3">
|
||||||
<button type="submit" name="_create" class="btn btn-primary">Create</button>
|
<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>
|
<button type="submit" name="_addanother" class="btn btn-primary">Create and Add More</button>
|
||||||
<a href="{{ cancel_url }}" class="btn btn-default">Cancel</a>
|
<a href="{{ return_url }}" class="btn btn-default">Cancel</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -40,7 +40,7 @@
|
|||||||
<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">
|
||||||
<button type="submit" name="_update" class="btn btn-primary">Connect</button>
|
<button type="submit" name="_update" class="btn btn-primary">Connect</button>
|
||||||
<a href="{{ cancel_url }}" class="btn btn-default">Cancel</a>
|
<a href="{{ return_url }}" class="btn btn-default">Cancel</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -40,7 +40,7 @@
|
|||||||
<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">
|
||||||
<button type="submit" name="_update" class="btn btn-primary">Connect</button>
|
<button type="submit" name="_update" class="btn btn-primary">Connect</button>
|
||||||
<a href="{{ cancel_url }}" class="btn btn-default">Cancel</a>
|
<a href="{{ return_url }}" class="btn btn-default">Cancel</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
{% render_form form %}
|
{% render_form form %}
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<button type="submit" class="btn btn-primary">Submit</button>
|
<button type="submit" class="btn btn-primary">Submit</button>
|
||||||
<a href="{% url obj_list_url %}" class="btn btn-default">Cancel</a>
|
<a href="{% url return_url %}" class="btn btn-default">Cancel</a>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
{% render_form form %}
|
{% render_form form %}
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<button type="submit" class="btn btn-primary">Submit</button>
|
<button type="submit" class="btn btn-primary">Submit</button>
|
||||||
<a href="{% url obj_list_url %}" class="btn btn-default">Cancel</a>
|
<a href="{% url return_url %}" class="btn btn-default">Cancel</a>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
{% render_form form %}
|
{% render_form form %}
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<button type="submit" class="btn btn-primary">Submit</button>
|
<button type="submit" class="btn btn-primary">Submit</button>
|
||||||
<a href="{% url obj_list_url %}" class="btn btn-default">Cancel</a>
|
<a href="{% url return_url %}" class="btn btn-default">Cancel</a>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
@ -59,7 +59,7 @@
|
|||||||
<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">
|
||||||
<button type="submit" name="_assign" class="btn btn-primary">Assign</button>
|
<button type="submit" name="_assign" class="btn btn-primary">Assign</button>
|
||||||
<a href="{{ cancel_url }}" class="btn btn-default">Cancel</a>
|
<a href="{{ return_url }}" class="btn btn-default">Cancel</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
{% render_form form %}
|
{% render_form form %}
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<button type="submit" class="btn btn-primary">Submit</button>
|
<button type="submit" class="btn btn-primary">Submit</button>
|
||||||
<a href="{% url obj_list_url %}" class="btn btn-default">Cancel</a>
|
<a href="{% url return_url %}" class="btn btn-default">Cancel</a>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
{% render_form form %}
|
{% render_form form %}
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<button type="submit" class="btn btn-primary">Submit</button>
|
<button type="submit" class="btn btn-primary">Submit</button>
|
||||||
<a href="{% url obj_list_url %}" class="btn btn-default">Cancel</a>
|
<a href="{% url return_url %}" class="btn btn-default">Cancel</a>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
{% render_form form %}
|
{% render_form form %}
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<button type="submit" class="btn btn-primary">Submit</button>
|
<button type="submit" class="btn btn-primary">Submit</button>
|
||||||
<a href="{% url obj_list_url %}" class="btn btn-default">Cancel</a>
|
<a href="{% url return_url %}" class="btn btn-default">Cancel</a>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
{% render_form form %}
|
{% render_form form %}
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<button type="submit" class="btn btn-primary">Submit</button>
|
<button type="submit" class="btn btn-primary">Submit</button>
|
||||||
<a href="{% url obj_list_url %}" class="btn btn-default">Cancel</a>
|
<a href="{% url return_url %}" class="btn btn-default">Cancel</a>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
@ -59,7 +59,7 @@
|
|||||||
{% else %}
|
{% else %}
|
||||||
<button type="submit" name="_create" class="btn btn-primary">Create</button>
|
<button type="submit" name="_create" class="btn btn-primary">Create</button>
|
||||||
<button type="submit" name="_addanother" class="btn btn-primary">Create and Add Another</button>
|
<button type="submit" name="_addanother" class="btn btn-primary">Create and Add Another</button>
|
||||||
<a href="{{ cancel_url }}" class="btn btn-default">Cancel</a>
|
<a href="{{ return_url }}" class="btn btn-default">Cancel</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -22,7 +22,7 @@
|
|||||||
{% render_form form %}
|
{% render_form form %}
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<button type="submit" class="btn btn-primary">Submit</button>
|
<button type="submit" class="btn btn-primary">Submit</button>
|
||||||
<a href="{{ cancel_url }}" class="btn btn-default">Cancel</a>
|
<a href="{{ return_url }}" class="btn btn-default">Cancel</a>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
{% render_form form %}
|
{% render_form form %}
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<button type="submit" class="btn btn-primary">Submit</button>
|
<button type="submit" class="btn btn-primary">Submit</button>
|
||||||
<a href="{% url obj_list_url %}" class="btn btn-default">Cancel</a>
|
<a href="{% url return_url %}" class="btn btn-default">Cancel</a>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
@ -5,8 +5,8 @@
|
|||||||
<h1>{% block title %}{% endblock %}</h1>
|
<h1>{% block title %}{% endblock %}</h1>
|
||||||
<form action="." method="post" class="form form-horizontal">
|
<form action="." method="post" class="form form-horizontal">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
{% if request.POST.redirect_url %}
|
{% if request.POST.return_url %}
|
||||||
<input type="hidden" name="redirect_url" value="{{ request.POST.redirect_url }}" />
|
<input type="hidden" name="return_url" value="{{ request.POST.return_url }}" />
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% for field in form.hidden_fields %}
|
{% for field in form.hidden_fields %}
|
||||||
{{ field }}
|
{{ field }}
|
||||||
@ -44,7 +44,7 @@
|
|||||||
<div class="form-group text-right">
|
<div class="form-group text-right">
|
||||||
<div class="col-md-12">
|
<div class="col-md-12">
|
||||||
<button type="submit" name="_apply" class="btn btn-primary">Apply</button>
|
<button type="submit" name="_apply" class="btn btn-primary">Apply</button>
|
||||||
<a href="{{ cancel_url }}" class="btn btn-default">Cancel</a>
|
<a href="{{ return_url }}" class="btn btn-default">Cancel</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -23,7 +23,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="text-right">
|
<div class="text-right">
|
||||||
<button type="submit" name="_confirm" class="btn btn-{{ button_class|default:"danger" }}">Confirm</button>
|
<button type="submit" name="_confirm" class="btn btn-{{ button_class|default:"danger" }}">Confirm</button>
|
||||||
<a href="{{ cancel_url }}" class="btn btn-default">Cancel</a>
|
<a href="{{ return_url }}" class="btn btn-default">Cancel</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -37,7 +37,7 @@
|
|||||||
<button type="submit" name="_create" class="btn btn-primary">Create</button>
|
<button type="submit" name="_create" class="btn btn-primary">Create</button>
|
||||||
<button type="submit" name="_addanother" class="btn btn-primary">Create and Add Another</button>
|
<button type="submit" name="_addanother" class="btn btn-primary">Create and Add Another</button>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<a href="{{ cancel_url }}" class="btn btn-default">Cancel</a>
|
<a href="{{ return_url }}" class="btn btn-default">Cancel</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
{% if table.model|user_can_change:request.user or table.model|user_can_delete:request.user %}
|
{% if table.model|user_can_change:request.user or table.model|user_can_delete:request.user %}
|
||||||
<form method="post" class="form form-horizontal">
|
<form method="post" class="form form-horizontal">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
<input type="hidden" name="redirect_url" value="{{ request.path }}{% if request.GET %}?{{ request.GET.urlencode }}{% endif %}" />
|
<input type="hidden" name="return_url" value="{{ request.path }}{% if request.GET %}?{{ request.GET.urlencode }}{% endif %}" />
|
||||||
{% if table.paginator.num_pages > 1 %}
|
{% if table.paginator.num_pages > 1 %}
|
||||||
<div id="select_all_box" class="hidden panel panel-default">
|
<div id="select_all_box" class="hidden panel panel-default">
|
||||||
<div class="panel-body">
|
<div class="panel-body">
|
||||||
|
@ -37,7 +37,7 @@ class TenantGroupEditView(PermissionRequiredMixin, ObjectEditView):
|
|||||||
class TenantGroupBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
class TenantGroupBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||||
permission_required = 'tenancy.delete_tenantgroup'
|
permission_required = 'tenancy.delete_tenantgroup'
|
||||||
cls = TenantGroup
|
cls = TenantGroup
|
||||||
default_redirect_url = 'tenancy:tenantgroup_list'
|
default_return_url = 'tenancy:tenantgroup_list'
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -85,7 +85,7 @@ class TenantEditView(PermissionRequiredMixin, ObjectEditView):
|
|||||||
form_class = forms.TenantForm
|
form_class = forms.TenantForm
|
||||||
fields_initial = ['group']
|
fields_initial = ['group']
|
||||||
template_name = 'tenancy/tenant_edit.html'
|
template_name = 'tenancy/tenant_edit.html'
|
||||||
obj_list_url = 'tenancy:tenant_list'
|
default_return_url = 'tenancy:tenant_list'
|
||||||
|
|
||||||
|
|
||||||
class TenantDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
class TenantDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
||||||
@ -99,7 +99,7 @@ class TenantBulkImportView(PermissionRequiredMixin, BulkImportView):
|
|||||||
form = forms.TenantImportForm
|
form = forms.TenantImportForm
|
||||||
table = tables.TenantTable
|
table = tables.TenantTable
|
||||||
template_name = 'tenancy/tenant_import.html'
|
template_name = 'tenancy/tenant_import.html'
|
||||||
obj_list_url = 'tenancy:tenant_list'
|
default_return_url = 'tenancy:tenant_list'
|
||||||
|
|
||||||
|
|
||||||
class TenantBulkEditView(PermissionRequiredMixin, BulkEditView):
|
class TenantBulkEditView(PermissionRequiredMixin, BulkEditView):
|
||||||
@ -108,11 +108,11 @@ class TenantBulkEditView(PermissionRequiredMixin, BulkEditView):
|
|||||||
filter = filters.TenantFilter
|
filter = filters.TenantFilter
|
||||||
form = forms.TenantBulkEditForm
|
form = forms.TenantBulkEditForm
|
||||||
template_name = 'tenancy/tenant_bulk_edit.html'
|
template_name = 'tenancy/tenant_bulk_edit.html'
|
||||||
default_redirect_url = 'tenancy:tenant_list'
|
default_return_url = 'tenancy:tenant_list'
|
||||||
|
|
||||||
|
|
||||||
class TenantBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
class TenantBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||||
permission_required = 'tenancy.delete_tenant'
|
permission_required = 'tenancy.delete_tenant'
|
||||||
cls = Tenant
|
cls = Tenant
|
||||||
filter = filters.TenantFilter
|
filter = filters.TenantFilter
|
||||||
default_redirect_url = 'tenancy:tenant_list'
|
default_return_url = 'tenancy:tenant_list'
|
||||||
|
@ -126,13 +126,13 @@ class ObjectEditView(View):
|
|||||||
form_class: The form used to create or edit the object
|
form_class: The form used to create or edit the object
|
||||||
fields_initial: A set of fields that will be prepopulated in the form from the request parameters
|
fields_initial: A set of fields that will be prepopulated in the form from the request parameters
|
||||||
template_name: The name of the template
|
template_name: The name of the template
|
||||||
obj_list_url: The name of the URL used to display a list of this object type
|
default_return_url: The name of the URL used to display a list of this object type
|
||||||
"""
|
"""
|
||||||
model = None
|
model = None
|
||||||
form_class = None
|
form_class = None
|
||||||
fields_initial = []
|
fields_initial = []
|
||||||
template_name = 'utilities/obj_edit.html'
|
template_name = 'utilities/obj_edit.html'
|
||||||
obj_list_url = None
|
default_return_url = 'home'
|
||||||
|
|
||||||
def get_object(self, kwargs):
|
def get_object(self, kwargs):
|
||||||
# Look up object by slug or PK. Return None if neither was provided.
|
# Look up object by slug or PK. Return None if neither was provided.
|
||||||
@ -151,9 +151,7 @@ class ObjectEditView(View):
|
|||||||
# Determine where to redirect the user after updating an object (or aborting an update).
|
# Determine where to redirect the user after updating an object (or aborting an update).
|
||||||
if obj.pk and hasattr(obj, 'get_absolute_url'):
|
if obj.pk and hasattr(obj, 'get_absolute_url'):
|
||||||
return obj.get_absolute_url()
|
return obj.get_absolute_url()
|
||||||
if self.obj_list_url is not None:
|
return reverse(self.default_return_url)
|
||||||
return reverse(self.obj_list_url)
|
|
||||||
return reverse('home')
|
|
||||||
|
|
||||||
def get(self, request, *args, **kwargs):
|
def get(self, request, *args, **kwargs):
|
||||||
|
|
||||||
@ -166,7 +164,7 @@ class ObjectEditView(View):
|
|||||||
'obj': obj,
|
'obj': obj,
|
||||||
'obj_type': self.model._meta.verbose_name,
|
'obj_type': self.model._meta.verbose_name,
|
||||||
'form': form,
|
'form': form,
|
||||||
'cancel_url': self.get_return_url(obj),
|
'return_url': self.get_return_url(obj),
|
||||||
})
|
})
|
||||||
|
|
||||||
def post(self, request, *args, **kwargs):
|
def post(self, request, *args, **kwargs):
|
||||||
@ -203,7 +201,7 @@ class ObjectEditView(View):
|
|||||||
'obj': obj,
|
'obj': obj,
|
||||||
'obj_type': self.model._meta.verbose_name,
|
'obj_type': self.model._meta.verbose_name,
|
||||||
'form': form,
|
'form': form,
|
||||||
'cancel_url': self.get_return_url(obj),
|
'return_url': self.get_return_url(obj),
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
@ -226,10 +224,10 @@ class ObjectDeleteView(View):
|
|||||||
else:
|
else:
|
||||||
return get_object_or_404(self.model, pk=kwargs['pk'])
|
return get_object_or_404(self.model, pk=kwargs['pk'])
|
||||||
|
|
||||||
def get_cancel_url(self, obj):
|
def get_return_url(self, obj):
|
||||||
if hasattr(obj, 'get_absolute_url'):
|
if hasattr(obj, 'get_absolute_url'):
|
||||||
return obj.get_absolute_url()
|
return obj.get_absolute_url()
|
||||||
return reverse('home')
|
return reverse(self.default_return_url)
|
||||||
|
|
||||||
def get(self, request, **kwargs):
|
def get(self, request, **kwargs):
|
||||||
|
|
||||||
@ -243,7 +241,7 @@ class ObjectDeleteView(View):
|
|||||||
'obj': obj,
|
'obj': obj,
|
||||||
'form': form,
|
'form': form,
|
||||||
'obj_type': self.model._meta.verbose_name,
|
'obj_type': self.model._meta.verbose_name,
|
||||||
'cancel_url': request.GET.get('return_url') or self.get_cancel_url(obj),
|
'return_url': request.GET.get('return_url') or self.get_return_url(obj),
|
||||||
})
|
})
|
||||||
|
|
||||||
def post(self, request, **kwargs):
|
def post(self, request, **kwargs):
|
||||||
@ -272,7 +270,7 @@ class ObjectDeleteView(View):
|
|||||||
'obj': obj,
|
'obj': obj,
|
||||||
'form': form,
|
'form': form,
|
||||||
'obj_type': self.model._meta.verbose_name,
|
'obj_type': self.model._meta.verbose_name,
|
||||||
'cancel_url': request.GET.get('return_url') or self.get_cancel_url(obj),
|
'return_url': request.GET.get('return_url') or self.get_return_url(obj),
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
@ -283,12 +281,12 @@ class BulkAddView(View):
|
|||||||
form: Form class
|
form: Form class
|
||||||
model: The model of the objects being created
|
model: The model of the objects being created
|
||||||
template_name: The name of the template
|
template_name: The name of the template
|
||||||
redirect_url: Name of the URL to which the user is redirected after creating the objects
|
default_return_url: Name of the URL to which the user is redirected after creating the objects
|
||||||
"""
|
"""
|
||||||
form = None
|
form = None
|
||||||
model = None
|
model = None
|
||||||
template_name = None
|
template_name = None
|
||||||
redirect_url = None
|
default_return_url = 'home'
|
||||||
|
|
||||||
def get(self, request):
|
def get(self, request):
|
||||||
|
|
||||||
@ -297,7 +295,7 @@ class BulkAddView(View):
|
|||||||
return render(request, self.template_name, {
|
return render(request, self.template_name, {
|
||||||
'obj_type': self.model._meta.verbose_name,
|
'obj_type': self.model._meta.verbose_name,
|
||||||
'form': form,
|
'form': form,
|
||||||
'cancel_url': reverse(self.redirect_url),
|
'return_url': reverse(self.default_return_url),
|
||||||
})
|
})
|
||||||
|
|
||||||
def post(self, request):
|
def post(self, request):
|
||||||
@ -328,12 +326,12 @@ class BulkAddView(View):
|
|||||||
messages.success(request, u"Added {} {}.".format(len(new_objs), self.model._meta.verbose_name_plural))
|
messages.success(request, u"Added {} {}.".format(len(new_objs), self.model._meta.verbose_name_plural))
|
||||||
if '_addanother' in request.POST:
|
if '_addanother' in request.POST:
|
||||||
return redirect(request.path)
|
return redirect(request.path)
|
||||||
return redirect(self.redirect_url)
|
return redirect(self.default_return_url)
|
||||||
|
|
||||||
return render(request, self.template_name, {
|
return render(request, self.template_name, {
|
||||||
'form': form,
|
'form': form,
|
||||||
'obj_type': self.model._meta.verbose_name,
|
'obj_type': self.model._meta.verbose_name,
|
||||||
'cancel_url': reverse(self.redirect_url),
|
'return_url': reverse(self.default_return_url),
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
@ -344,18 +342,18 @@ class BulkImportView(View):
|
|||||||
form: Form class
|
form: Form class
|
||||||
table: The django-tables2 Table used to render the list of imported objects
|
table: The django-tables2 Table used to render the list of imported objects
|
||||||
template_name: The name of the template
|
template_name: The name of the template
|
||||||
obj_list_url: The name of the URL to use for the cancel button
|
default_return_url: The name of the URL to use for the cancel button
|
||||||
"""
|
"""
|
||||||
form = None
|
form = None
|
||||||
table = None
|
table = None
|
||||||
template_name = None
|
template_name = None
|
||||||
obj_list_url = None
|
default_return_url = None
|
||||||
|
|
||||||
def get(self, request):
|
def get(self, request):
|
||||||
|
|
||||||
return render(request, self.template_name, {
|
return render(request, self.template_name, {
|
||||||
'form': self.form(),
|
'form': self.form(),
|
||||||
'obj_list_url': self.obj_list_url,
|
'return_url': self.default_return_url,
|
||||||
})
|
})
|
||||||
|
|
||||||
def post(self, request):
|
def post(self, request):
|
||||||
@ -384,7 +382,7 @@ class BulkImportView(View):
|
|||||||
|
|
||||||
return render(request, self.template_name, {
|
return render(request, self.template_name, {
|
||||||
'form': form,
|
'form': form,
|
||||||
'obj_list_url': self.obj_list_url,
|
'return_url': self.default_return_url,
|
||||||
})
|
})
|
||||||
|
|
||||||
def save_obj(self, obj):
|
def save_obj(self, obj):
|
||||||
@ -400,17 +398,18 @@ class BulkEditView(View):
|
|||||||
filter: FilterSet to apply when deleting by QuerySet
|
filter: FilterSet to apply when deleting by QuerySet
|
||||||
form: The form class used to edit objects in bulk
|
form: The form class used to edit objects in bulk
|
||||||
template_name: The name of the template
|
template_name: The name of the template
|
||||||
default_redirect_url: Name of the URL to which the user is redirected after editing the objects
|
default_return_url: Name of the URL to which the user is redirected after editing the objects (can be overriden by
|
||||||
|
POSTing return_url)
|
||||||
"""
|
"""
|
||||||
cls = None
|
cls = None
|
||||||
parent_cls = None
|
parent_cls = None
|
||||||
filter = None
|
filter = None
|
||||||
form = None
|
form = None
|
||||||
template_name = None
|
template_name = None
|
||||||
default_redirect_url = None
|
default_return_url = 'home'
|
||||||
|
|
||||||
def get(self):
|
def get(self):
|
||||||
return redirect(self.default_redirect_url)
|
return redirect(self.default_return_url)
|
||||||
|
|
||||||
def post(self, request, **kwargs):
|
def post(self, request, **kwargs):
|
||||||
|
|
||||||
@ -421,15 +420,13 @@ class BulkEditView(View):
|
|||||||
parent_obj = None
|
parent_obj = None
|
||||||
|
|
||||||
# Determine URL to redirect users upon modification of objects
|
# Determine URL to redirect users upon modification of objects
|
||||||
posted_redirect_url = request.POST.get('redirect_url')
|
posted_return_url = request.POST.get('return_url')
|
||||||
if posted_redirect_url and is_safe_url(url=posted_redirect_url, host=request.get_host()):
|
if posted_return_url and is_safe_url(url=posted_return_url, host=request.get_host()):
|
||||||
redirect_url = posted_redirect_url
|
return_url = posted_return_url
|
||||||
elif parent_obj:
|
elif parent_obj:
|
||||||
redirect_url = parent_obj.get_absolute_url()
|
return_url = parent_obj.get_absolute_url()
|
||||||
elif self.default_redirect_url:
|
|
||||||
redirect_url = reverse(self.default_redirect_url)
|
|
||||||
else:
|
else:
|
||||||
raise ImproperlyConfigured('No redirect URL has been provided.')
|
return_url = reverse(self.default_return_url)
|
||||||
|
|
||||||
# Are we editing *all* objects in the queryset or just a selected subset?
|
# Are we editing *all* objects in the queryset or just a selected subset?
|
||||||
if request.POST.get('_all') and self.filter is not None:
|
if request.POST.get('_all') and self.filter is not None:
|
||||||
@ -467,7 +464,7 @@ class BulkEditView(View):
|
|||||||
msg = u'Updated {} {}'.format(updated_count, self.cls._meta.verbose_name_plural)
|
msg = u'Updated {} {}'.format(updated_count, self.cls._meta.verbose_name_plural)
|
||||||
messages.success(self.request, msg)
|
messages.success(self.request, msg)
|
||||||
UserAction.objects.log_bulk_edit(request.user, ContentType.objects.get_for_model(self.cls), msg)
|
UserAction.objects.log_bulk_edit(request.user, ContentType.objects.get_for_model(self.cls), msg)
|
||||||
return redirect(redirect_url)
|
return redirect(return_url)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
form = self.form(self.cls, initial={'pk': pk_list})
|
form = self.form(self.cls, initial={'pk': pk_list})
|
||||||
@ -475,12 +472,12 @@ class BulkEditView(View):
|
|||||||
selected_objects = self.cls.objects.filter(pk__in=pk_list)
|
selected_objects = self.cls.objects.filter(pk__in=pk_list)
|
||||||
if not selected_objects:
|
if not selected_objects:
|
||||||
messages.warning(request, u"No {} were selected.".format(self.cls._meta.verbose_name_plural))
|
messages.warning(request, u"No {} were selected.".format(self.cls._meta.verbose_name_plural))
|
||||||
return redirect(redirect_url)
|
return redirect(return_url)
|
||||||
|
|
||||||
return render(request, self.template_name, {
|
return render(request, self.template_name, {
|
||||||
'form': form,
|
'form': form,
|
||||||
'selected_objects': selected_objects,
|
'selected_objects': selected_objects,
|
||||||
'cancel_url': redirect_url,
|
'return_url': return_url,
|
||||||
})
|
})
|
||||||
|
|
||||||
def update_custom_fields(self, pk_list, form, fields, nullified_fields):
|
def update_custom_fields(self, pk_list, form, fields, nullified_fields):
|
||||||
@ -540,14 +537,15 @@ class BulkDeleteView(View):
|
|||||||
filter: FilterSet to apply when deleting by QuerySet
|
filter: FilterSet to apply when deleting by QuerySet
|
||||||
form: The form class used to delete objects in bulk
|
form: The form class used to delete objects in bulk
|
||||||
template_name: The name of the template
|
template_name: The name of the template
|
||||||
default_redirect_url: Name of the URL to which the user is redirected after deleting the objects
|
default_return_url: Name of the URL to which the user is redirected after deleting the objects (can be overriden by
|
||||||
|
POSTing return_url)
|
||||||
"""
|
"""
|
||||||
cls = None
|
cls = None
|
||||||
parent_cls = None
|
parent_cls = None
|
||||||
filter = None
|
filter = None
|
||||||
form = None
|
form = None
|
||||||
template_name = 'utilities/confirm_bulk_delete.html'
|
template_name = 'utilities/confirm_bulk_delete.html'
|
||||||
default_redirect_url = None
|
default_return_url = 'home'
|
||||||
|
|
||||||
def post(self, request, **kwargs):
|
def post(self, request, **kwargs):
|
||||||
|
|
||||||
@ -558,15 +556,13 @@ class BulkDeleteView(View):
|
|||||||
parent_obj = None
|
parent_obj = None
|
||||||
|
|
||||||
# Determine URL to redirect users upon deletion of objects
|
# Determine URL to redirect users upon deletion of objects
|
||||||
posted_redirect_url = request.POST.get('redirect_url')
|
posted_return_url = request.POST.get('return_url')
|
||||||
if posted_redirect_url and is_safe_url(url=posted_redirect_url, host=request.get_host()):
|
if posted_return_url and is_safe_url(url=posted_return_url, host=request.get_host()):
|
||||||
redirect_url = posted_redirect_url
|
return_url = posted_return_url
|
||||||
elif parent_obj:
|
elif parent_obj:
|
||||||
redirect_url = parent_obj.get_absolute_url()
|
return_url = parent_obj.get_absolute_url()
|
||||||
elif self.default_redirect_url:
|
|
||||||
redirect_url = reverse(self.default_redirect_url)
|
|
||||||
else:
|
else:
|
||||||
raise ImproperlyConfigured('No redirect URL has been provided.')
|
return_url = reverse(self.default_return_url)
|
||||||
|
|
||||||
# Are we deleting *all* objects in the queryset or just a selected subset?
|
# Are we deleting *all* objects in the queryset or just a selected subset?
|
||||||
if request.POST.get('_all') and self.filter is not None:
|
if request.POST.get('_all') and self.filter is not None:
|
||||||
@ -586,12 +582,12 @@ class BulkDeleteView(View):
|
|||||||
deleted_count = queryset.delete()[1][self.cls._meta.label]
|
deleted_count = queryset.delete()[1][self.cls._meta.label]
|
||||||
except ProtectedError as e:
|
except ProtectedError as e:
|
||||||
handle_protectederror(list(queryset), request, e)
|
handle_protectederror(list(queryset), request, e)
|
||||||
return redirect(redirect_url)
|
return redirect(return_url)
|
||||||
|
|
||||||
msg = u'Deleted {} {}'.format(deleted_count, self.cls._meta.verbose_name_plural)
|
msg = u'Deleted {} {}'.format(deleted_count, self.cls._meta.verbose_name_plural)
|
||||||
messages.success(request, msg)
|
messages.success(request, msg)
|
||||||
UserAction.objects.log_bulk_delete(request.user, ContentType.objects.get_for_model(self.cls), msg)
|
UserAction.objects.log_bulk_delete(request.user, ContentType.objects.get_for_model(self.cls), msg)
|
||||||
return redirect(redirect_url)
|
return redirect(return_url)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
form = form_cls(initial={'pk': pk_list})
|
form = form_cls(initial={'pk': pk_list})
|
||||||
@ -599,14 +595,14 @@ class BulkDeleteView(View):
|
|||||||
selected_objects = self.cls.objects.filter(pk__in=pk_list)
|
selected_objects = self.cls.objects.filter(pk__in=pk_list)
|
||||||
if not selected_objects:
|
if not selected_objects:
|
||||||
messages.warning(request, u"No {} were selected for deletion.".format(self.cls._meta.verbose_name_plural))
|
messages.warning(request, u"No {} were selected for deletion.".format(self.cls._meta.verbose_name_plural))
|
||||||
return redirect(redirect_url)
|
return redirect(return_url)
|
||||||
|
|
||||||
return render(request, self.template_name, {
|
return render(request, self.template_name, {
|
||||||
'form': form,
|
'form': form,
|
||||||
'parent_obj': parent_obj,
|
'parent_obj': parent_obj,
|
||||||
'obj_type_plural': self.cls._meta.verbose_name_plural,
|
'obj_type_plural': self.cls._meta.verbose_name_plural,
|
||||||
'selected_objects': selected_objects,
|
'selected_objects': selected_objects,
|
||||||
'cancel_url': redirect_url,
|
'return_url': return_url,
|
||||||
})
|
})
|
||||||
|
|
||||||
def get_form(self):
|
def get_form(self):
|
||||||
|
Loading…
Reference in New Issue
Block a user