diff --git a/apps/rpm/views.py b/apps/rpm/views.py index 661d9cba..bff2db07 100644 --- a/apps/rpm/views.py +++ b/apps/rpm/views.py @@ -208,8 +208,9 @@ class RpjViewSet(CustomModelViewSet): def update(self, request, *args, **kwargs): obj = self.get_object() - if obj.state != Rpj.RPJ_CREATE: - raise ParseError('项目非创建状态不可更改') + ticket = obj.ticket + if ticket and ticket.state.type != 1: + raise ParseError('项目工单审批中不可更改') return super().update(request, *args, **kwargs) @transaction.atomic @@ -237,7 +238,8 @@ class RpjmemberViewSet(CustomModelViewSet): def destroy(self, request, *args, **kwargs): obj = self.get_object() - if obj.rpj.state != Rpj.RPJ_CREATE: + ticket = obj.rpj.ticket + if ticket and ticket.state.type != 1: raise ParseError('成员在该状态不可删除') return super().destroy(request, *args, **kwargs) @@ -280,14 +282,16 @@ class RpjfileViewSet(UpdateModelMixin, DestroyModelMixin, ListModelMixin, Custom def update(self, request, *args, **kwargs): obj = self.get_object() - if obj.rpj.state != Rpj.RPJ_CREATE: - raise ParseError('项目非创建状态不可修改') + ticket = obj.rpj.ticket + if ticket and ticket.state.type != 1: + raise ParseError('项目工单审批中不可更改') return super().update(request, *args, **kwargs) def destroy(self, request, *args, **kwargs): obj = self.get_object() - if obj.rpj.state != Rpj.RPJ_CREATE: - raise ParseError('项目非创建状态不可删除') + ticket = obj.rpj.ticket + if ticket and ticket.state.type != 1: + raise ParseError('项目工单审批中不可删除') return super().destroy(request, *args, **kwargs) diff --git a/apps/vm/views.py b/apps/vm/views.py index a7773a84..ab399d80 100644 --- a/apps/vm/views.py +++ b/apps/vm/views.py @@ -47,8 +47,9 @@ class VisitViewSet(CustomModelViewSet): def update(self, request, *args, **kwargs): obj = self.get_object() - if obj.state != Visit.V_CREATE: - raise ParseError('项目非创建状态不可更改') + ticket = obj.ticket + if ticket and ticket.state.type != 1: + raise ParseError('项目在该状态不可更改') return super().update(request, *args, **kwargs) @transaction.atomic @@ -142,6 +143,7 @@ class VpeopleViewSet(ListModelMixin, RetrieveModelMixin, CreateModelMixin, Destr def destroy(self, request, *args, **kwargs): obj = self.get_object() - if obj.visit.state != Visit.V_CREATE: - raise ParseError('项目非创建状态不可新增成员') + ticket = obj.visit.ticket + if ticket and ticket.state.type != 1: + raise ParseError('项目在该状态不可新增成员') return super().destroy(request, *args, **kwargs)