fix: 工单回到创建中的相应操作
This commit is contained in:
parent
50749cd10d
commit
df1b0c6b20
|
@ -95,7 +95,7 @@ class OplWorkerCreateSerializer(CustomModelSerializer):
|
|||
def create(self, validated_data):
|
||||
opl = validated_data['opl']
|
||||
ticket = opl.ticket
|
||||
if ticket and ticket.act_state not in [Ticket.TICKET_ACT_STATE_DRAFT, Ticket.TICKET_ACT_STATE_BACK, Ticket.TICKET_ACT_STATE_RETREAT]:
|
||||
if ticket and ticket.state.type != 1:
|
||||
raise ParseError('许可证已处理不可新增')
|
||||
certificates = validated_data.pop('certificates')
|
||||
if OplWorker.objects.filter(worker=validated_data['worker'], opl=validated_data['opl']).exists():
|
||||
|
@ -171,12 +171,6 @@ class GasCheckCreateUpdateSerializer(CustomModelSerializer):
|
|||
model = GasCheck
|
||||
exclude = EXCLUDE_FIELDS
|
||||
|
||||
def create(self, validated_data):
|
||||
opl = validated_data['opl']
|
||||
if opl.ticket:
|
||||
raise ParseError('许可证已处理不可新增')
|
||||
return super().create(validated_data)
|
||||
|
||||
|
||||
class GasCheckSerializer(CustomModelSerializer):
|
||||
checker_ = UserSimpleSerializer(source='checker', read_only=True)
|
||||
|
|
|
@ -81,7 +81,7 @@ def correct_operation_state(ticket: Ticket):
|
|||
if op.state == Operation.OP_AUDIT:
|
||||
need_backs = []
|
||||
for opl in Opl.objects.filter(operation=op):
|
||||
if (opl.ticket is None) or (opl.ticket and opl.ticket.state.type == 1 and opl.ticket.act_state in [2, 3]): # 如果在初始状态且是撤回或退回
|
||||
if (opl.ticket is None) or (opl.ticket and opl.ticket.state.type == 1): # 如果在初始状态
|
||||
need_backs.append(True)
|
||||
else:
|
||||
need_backs.append(False)
|
||||
|
|
|
@ -14,7 +14,7 @@ def correct_operation_state():
|
|||
for op in Operation.objects.filter(state=Operation.OP_AUDIT):
|
||||
need_backs = []
|
||||
for opl in Opl.objects.filter(operation=op):
|
||||
if (opl.ticket is None) or (opl.ticket and opl.ticket.state.type == 1 and opl.ticket.act_state in [2, 3]): # 如果在初始状态且是撤回或退回
|
||||
if (opl.ticket is None) or (opl.ticket and opl.ticket.state.type == 1): # 如果在初始状态
|
||||
need_backs.append(True)
|
||||
else:
|
||||
need_backs.append(False)
|
||||
|
|
|
@ -87,7 +87,7 @@ class OplViewSet(CustomModelViewSet):
|
|||
@transaction.atomic
|
||||
def destroy(self, request, *args, **kwargs):
|
||||
obj = self.get_object()
|
||||
if obj.ticket and obj.ticket.act_state != Ticket.TICKET_ACT_STATE_DRAFT:
|
||||
if obj.ticket and obj.ticket.state.type !=1:
|
||||
raise ParseError('许可证已处理不可删除')
|
||||
user = request.user
|
||||
if user == obj.create_by or user.is_superuser:
|
||||
|
@ -101,7 +101,7 @@ class OplViewSet(CustomModelViewSet):
|
|||
|
||||
def update(self, request, *args, **kwargs):
|
||||
obj = self.get_object()
|
||||
if obj.ticket and obj.ticket.act_state not in [Ticket.TICKET_ACT_STATE_DRAFT, Ticket.TICKET_ACT_STATE_BACK, Ticket.TICKET_ACT_STATE_RETREAT]:
|
||||
if obj.ticket and obj.ticket.state.type != 1:
|
||||
raise ParseError('许可证已处理不可编辑')
|
||||
user = request.user
|
||||
if user == obj.create_by or user.is_superuser:
|
||||
|
@ -153,14 +153,14 @@ class OplWorkerViewSet(CustomModelViewSet):
|
|||
def destroy(self, request, *args, **kwargs):
|
||||
obj = self.get_object()
|
||||
ticket = obj.opl.ticket
|
||||
if ticket and ticket.act_state not in [Ticket.TICKET_ACT_STATE_DRAFT, Ticket.TICKET_ACT_STATE_BACK, Ticket.TICKET_ACT_STATE_RETREAT]:
|
||||
if ticket and ticket.state.type !=1:
|
||||
raise ParseError('许可证已处理不可删除')
|
||||
return super().destroy(request, *args, **kwargs)
|
||||
|
||||
def update(self, request, *args, **kwargs):
|
||||
obj = self.get_object()
|
||||
ticket = obj.opl.ticket
|
||||
if ticket and ticket.act_state not in [Ticket.TICKET_ACT_STATE_DRAFT, Ticket.TICKET_ACT_STATE_BACK, Ticket.TICKET_ACT_STATE_RETREAT]:
|
||||
if ticket and ticket.state.type !=1:
|
||||
raise ParseError('许可证已处理不可编辑')
|
||||
return super().update(request, *args, **kwargs)
|
||||
|
||||
|
@ -175,7 +175,7 @@ class GasCheckViewSet(CreateModelMixin, ListModelMixin, DestroyModelMixin, Custo
|
|||
def destroy(self, request, *args, **kwargs):
|
||||
obj = self.get_object()
|
||||
ticket = obj.opl.ticket
|
||||
if ticket and ticket.act_state not in [Ticket.TICKET_ACT_STATE_DRAFT, Ticket.TICKET_ACT_STATE_BACK, Ticket.TICKET_ACT_STATE_RETREAT]:
|
||||
if ticket and ticket.state.type != 1:
|
||||
raise ParseError('许可证已处理不可删除')
|
||||
obj.delete()
|
||||
return Response(status=204)
|
||||
|
|
Loading…
Reference in New Issue