工单流转记录
This commit is contained in:
parent
e1ddd7f9e7
commit
bbba12ed6c
|
|
@ -115,6 +115,13 @@ class TicketFlowSerializer(serializers.ModelSerializer):
|
||||||
model = TicketFlow
|
model = TicketFlow
|
||||||
fields = '__all__'
|
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):
|
class TicketHandleSerializer(serializers.Serializer):
|
||||||
transition = serializers.IntegerField(label="流转id")
|
transition = serializers.IntegerField(label="流转id")
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
from django.db.models import base
|
from django.db.models import base
|
||||||
from rest_framework import urlpatterns
|
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 django.urls import path, include
|
||||||
from rest_framework.routers import DefaultRouter
|
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('transition', TransitionViewSet, basename='wf_transitions')
|
||||||
router.register('customfield', CustomFieldViewSet, basename='wf_customfield')
|
router.register('customfield', CustomFieldViewSet, basename='wf_customfield')
|
||||||
router.register('ticket', TicketViewSet, basename='wf_ticket')
|
router.register('ticket', TicketViewSet, basename='wf_ticket')
|
||||||
|
router.register('ticketflow', TicketFlowViewSet, basename='wf_ticketflow')
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
path('', include(router.urls)),
|
path('', include(router.urls)),
|
||||||
]
|
]
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ from django.core.exceptions import AppRegistryNotReady
|
||||||
from rest_framework.response import Response
|
from rest_framework.response import Response
|
||||||
from rest_framework import serializers
|
from rest_framework import serializers
|
||||||
from rest_framework.mixins import CreateModelMixin, DestroyModelMixin, ListModelMixin, RetrieveModelMixin, UpdateModelMixin
|
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 django.shortcuts import get_object_or_404, render
|
||||||
from rest_framework.viewsets import GenericViewSet, ModelViewSet
|
from rest_framework.viewsets import GenericViewSet, ModelViewSet
|
||||||
from rest_framework.decorators import action, api_view
|
from rest_framework.decorators import action, api_view
|
||||||
|
|
@ -248,6 +248,16 @@ class TicketViewSet(OptimizationMixin, CreateUpdateCustomMixin, CreateModelMixin
|
||||||
steps = WfService.get_ticket_steps(ticket)
|
steps = WfService.get_ticket_steps(ticket)
|
||||||
return Response(StateSerializer(instance=steps, many=True).data)
|
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':'*'})
|
@action(methods=['get'], detail=True, perms_map={'get':'*'})
|
||||||
def transitions(self, request, pk=None):
|
def transitions(self, request, pk=None):
|
||||||
"""
|
"""
|
||||||
|
|
@ -292,5 +302,5 @@ class TicketFlowViewSet(ListModelMixin, RetrieveModelMixin, GenericViewSet):
|
||||||
queryset = TicketFlow.objects.all()
|
queryset = TicketFlow.objects.all()
|
||||||
serializer_class = TicketFlowSerializer
|
serializer_class = TicketFlowSerializer
|
||||||
search_fields = ['suggestion']
|
search_fields = ['suggestion']
|
||||||
filterset_fields = ['paticipant', 'state', 'ticket']
|
filterset_fields = ['ticket']
|
||||||
ordering = ['-create_time']
|
ordering = ['-create_time']
|
||||||
Loading…
Reference in New Issue