工作流查询优化
This commit is contained in:
parent
6c04d161f8
commit
ab880ae8ad
|
@ -189,6 +189,7 @@ class TransitionViewSet(CreateModelMixin, UpdateModelMixin, RetrieveModelMixin,
|
|||
'put': 'workflow.update', 'delete': 'workflow.update'}
|
||||
queryset = Transition.objects.all()
|
||||
serializer_class = TransitionSerializer
|
||||
select_related_fields = ['source_state', 'destination_state']
|
||||
search_fields = ['name']
|
||||
filterset_fields = ['workflow']
|
||||
ordering = ['id']
|
||||
|
@ -214,6 +215,7 @@ class TicketViewSet(CreateUpdateCustomMixin, CreateModelMixin, ListModelMixin, R
|
|||
queryset = Ticket.objects.all()
|
||||
serializer_class = TicketSerializer
|
||||
search_fields = ['title']
|
||||
select_related_fields = ['workflow', 'state']
|
||||
filterset_class = TicketFilterSet
|
||||
ordering = ['-create_time']
|
||||
|
||||
|
@ -341,7 +343,11 @@ class TicketViewSet(CreateUpdateCustomMixin, CreateModelMixin, ListModelMixin, R
|
|||
"""
|
||||
ticket = self.get_object()
|
||||
steps = WfService.get_ticket_steps(ticket)
|
||||
return Response(StateSerializer(instance=steps, many=True).data)
|
||||
data = StateSerializer(instance=steps, many=True).data
|
||||
for i in data:
|
||||
if i['id'] == ticket.state.id:
|
||||
i['checked'] = True
|
||||
return Response(data)
|
||||
|
||||
@action(methods=['get'], detail=True, perms_map={'get': '*'})
|
||||
def flowlogs(self, request, pk=None):
|
||||
|
@ -350,7 +356,7 @@ class TicketViewSet(CreateUpdateCustomMixin, CreateModelMixin, ListModelMixin, R
|
|||
"""
|
||||
ticket = self.get_object()
|
||||
flowlogs = TicketFlow.objects.filter(ticket=ticket).order_by('-create_time')
|
||||
serializer = TicketFlowSerializer(instance=flowlogs, many=True)
|
||||
serializer = TicketFlowSerializer(instance=flowlogs.select_related('participant', 'state', 'transition'), many=True)
|
||||
return Response(serializer.data)
|
||||
|
||||
@action(methods=['get'], detail=True, perms_map={'get': '*'})
|
||||
|
@ -360,7 +366,7 @@ class TicketViewSet(CreateUpdateCustomMixin, CreateModelMixin, ListModelMixin, R
|
|||
"""
|
||||
ticket = self.get_object()
|
||||
transitions = WfService.get_ticket_transitions(ticket)
|
||||
return Response(TransitionSerializer(instance=transitions, many=True).data)
|
||||
return Response(TransitionSerializer(instance=transitions.select_related('source_state', 'destination_state'), many=True).data)
|
||||
|
||||
@action(methods=['post'], detail=True, perms_map={'post': '*'})
|
||||
def accpet(self, request, pk=None):
|
||||
|
@ -521,5 +527,6 @@ class TicketFlowViewSet(ListModelMixin, RetrieveModelMixin, CustomGenericViewSet
|
|||
queryset = TicketFlow.objects.all()
|
||||
serializer_class = TicketFlowSerializer
|
||||
search_fields = ['suggestion']
|
||||
select_related_fields = ['participant', 'state', 'transition']
|
||||
filterset_fields = ['ticket']
|
||||
ordering = ['-create_time']
|
||||
|
|
Loading…
Reference in New Issue