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