Add mixin to pass extra argument during object deletion. Used for logging the user performing an action.

This commit is contained in:
Roberto Rosario
2015-08-23 22:33:22 -04:00
parent 307941ef64
commit 95cb49bfcb
2 changed files with 14 additions and 2 deletions

View File

@@ -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):

View File

@@ -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 = {}