Cascade remove inventory source links when a custom script is removed

This commit is contained in:
Matthew Jones
2014-12-15 11:10:39 -05:00
parent eaee8d76c4
commit a487257789

View File

@@ -909,6 +909,16 @@ class InventoryScriptDetail(RetrieveUpdateDestroyAPIView):
model = CustomInventoryScript
serializer_class = CustomInventoryScriptSerializer
def destroy(self, request, *args, **kwargs):
obj = self.get_object()
can_delete = request.user.can_access(self.model, 'delete', obj)
if not can_delete:
raise PermissionDenied("Cannot delete inventory script")
for inv_src in InventorySource.objects.filter(source_script=obj):
inv_src.source_script = None
inv_src.save()
return super(InventoryScriptDetail, self).destroy(request, *args, **kwargs)
class InventoryList(ListCreateAPIView):
model = Inventory