Add mixin to pass extra argument during object deletion. Used for logging the user performing an action.
This commit is contained in:
@@ -281,7 +281,7 @@ class SingleObjectCreateView(InstanceExtraDataMixin, ViewPermissionCheckMixin, E
|
||||
return result
|
||||
|
||||
|
||||
class SingleObjectDeleteView(ViewPermissionCheckMixin, ObjectPermissionCheckMixin, ExtraContextMixin, RedirectionMixin, DeleteView):
|
||||
class SingleObjectDeleteView(DeleteExtraDataMixin, ViewPermissionCheckMixin, ObjectPermissionCheckMixin, ExtraContextMixin, RedirectionMixin, DeleteView):
|
||||
template_name = 'appearance/generic_confirm.html'
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
|
||||
@@ -10,12 +10,24 @@ from acls.models import AccessControlList
|
||||
from permissions import Permission
|
||||
|
||||
__all__ = (
|
||||
'ExtraContextMixin', 'InstanceExtraDataMixin',
|
||||
'DeleteExtraDataMixin', 'ExtraContextMixin', 'InstanceExtraDataMixin',
|
||||
'ObjectListPermissionFilterMixin', 'ObjectPermissionCheckMixin',
|
||||
'RedirectionMixin', 'ViewPermissionCheckMixin'
|
||||
)
|
||||
|
||||
|
||||
class DeleteExtraDataMixin(object):
|
||||
def delete(self, request, *args, **kwargs):
|
||||
self.object = self.get_object()
|
||||
success_url = self.get_success_url()
|
||||
if hasattr(self, 'get_delete_extra_data'):
|
||||
self.object.delete(**self.get_delete_extra_data())
|
||||
else:
|
||||
self.object.delete()
|
||||
|
||||
return HttpResponseRedirect(success_url)
|
||||
|
||||
|
||||
class ExtraContextMixin(object):
|
||||
extra_context = {}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user