工单流转记录
This commit is contained in:
parent
e1ddd7f9e7
commit
bbba12ed6c
|
|
@ -115,6 +115,13 @@ class TicketFlowSerializer(serializers.ModelSerializer):
|
|||
model = TicketFlow
|
||||
fields = '__all__'
|
||||
|
||||
class TicketFlowSimpleSerializer(serializers.ModelSerializer):
|
||||
participant_ = UserSimpleSerializer(source='participant', read_only=True)
|
||||
state_ = StateSimpleSerializer(source='state', read_only=True)
|
||||
class Meta:
|
||||
model = TicketFlow
|
||||
exclude = ['ticket_data']
|
||||
|
||||
|
||||
class TicketHandleSerializer(serializers.Serializer):
|
||||
transition = serializers.IntegerField(label="流转id")
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
from django.db.models import base
|
||||
from rest_framework import urlpatterns
|
||||
from apps.wf.views import CustomFieldViewSet, StateViewSet, TicketViewSet, TransitionViewSet, WorkflowViewSet
|
||||
from apps.wf.views import CustomFieldViewSet, StateViewSet, TicketFlowViewSet, TicketViewSet, TransitionViewSet, WorkflowViewSet
|
||||
from django.urls import path, include
|
||||
from rest_framework.routers import DefaultRouter
|
||||
|
||||
|
|
@ -10,6 +10,7 @@ router.register('state', StateViewSet, basename='wf_state')
|
|||
router.register('transition', TransitionViewSet, basename='wf_transitions')
|
||||
router.register('customfield', CustomFieldViewSet, basename='wf_customfield')
|
||||
router.register('ticket', TicketViewSet, basename='wf_ticket')
|
||||
router.register('ticketflow', TicketFlowViewSet, basename='wf_ticketflow')
|
||||
urlpatterns = [
|
||||
path('', include(router.urls)),
|
||||
]
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ from django.core.exceptions import AppRegistryNotReady
|
|||
from rest_framework.response import Response
|
||||
from rest_framework import serializers
|
||||
from rest_framework.mixins import CreateModelMixin, DestroyModelMixin, ListModelMixin, RetrieveModelMixin, UpdateModelMixin
|
||||
from apps.wf.serializers import CustomFieldSerializer, StateSerializer, TicketCreateSerializer, TicketFlowSerializer, TicketHandleSerializer, TicketSerializer, TransitionSerializer, WorkflowSerializer, TicketListSerializer, TicketDetailSerializer
|
||||
from apps.wf.serializers import CustomFieldSerializer, StateSerializer, TicketCreateSerializer, TicketFlowSerializer, TicketFlowSimpleSerializer, TicketHandleSerializer, TicketSerializer, TransitionSerializer, WorkflowSerializer, TicketListSerializer, TicketDetailSerializer
|
||||
from django.shortcuts import get_object_or_404, render
|
||||
from rest_framework.viewsets import GenericViewSet, ModelViewSet
|
||||
from rest_framework.decorators import action, api_view
|
||||
|
|
@ -247,6 +247,16 @@ class TicketViewSet(OptimizationMixin, CreateUpdateCustomMixin, CreateModelMixin
|
|||
ticket = self.get_object()
|
||||
steps = WfService.get_ticket_steps(ticket)
|
||||
return Response(StateSerializer(instance=steps, many=True).data)
|
||||
|
||||
@action(methods=['get'], detail=True, perms_map={'get':'*'})
|
||||
def flowlogs(self, request, pk=None):
|
||||
"""
|
||||
工单流转记录
|
||||
"""
|
||||
ticket = self.get_object()
|
||||
flowlogs = TicketFlow.objects.filter(ticket=ticket).order_by('-create_time')
|
||||
serializer = TicketFlowSerializer(instance=flowlogs, many=True)
|
||||
return Response(serializer.data)
|
||||
|
||||
@action(methods=['get'], detail=True, perms_map={'get':'*'})
|
||||
def transitions(self, request, pk=None):
|
||||
|
|
@ -292,5 +302,5 @@ class TicketFlowViewSet(ListModelMixin, RetrieveModelMixin, GenericViewSet):
|
|||
queryset = TicketFlow.objects.all()
|
||||
serializer_class = TicketFlowSerializer
|
||||
search_fields = ['suggestion']
|
||||
filterset_fields = ['paticipant', 'state', 'ticket']
|
||||
filterset_fields = ['ticket']
|
||||
ordering = ['-create_time']
|
||||
Loading…
Reference in New Issue