diff --git a/contracts/admin.py b/contracts/admin.py index 6f56ad0c276af9381c577d45d72bf423bc5c6e2b..c12e8285262b1afe2c63bf96361dbf55f8d4ec87 100644 --- a/contracts/admin.py +++ b/contracts/admin.py @@ -71,21 +71,18 @@ def permissions_mixin_factory( get_obj_contract = lambda obj: obj.contract -OwnPermissionsMixin = permissions_mixin_factory( - "contracts.edit_others", - "contracts.delete_others", - lambda request, obj: obj.created_by != request.user, -) - - -def own_permissions_mixin_save_model(self, request, obj, form, change): - if obj.created_by is None: - obj.created_by = request.user - - return super().save_model(request, obj, form, change) - +class OwnPermissionsMixin( + permissions_mixin_factory( + "contracts.edit_others", + "contracts.delete_others", + lambda request, obj: obj.created_by != request.user, + ) +): + def own_permissions_mixin_save_model(self, request, obj, form, change): + if obj.created_by is None: + obj.created_by = request.user -OwnPermissionsMixin.save_model = own_permissions_mixin_save_model + return super().save_model(request, obj, form, change) ParentContractApprovedPermissionsMixin = permissions_mixin_factory(