工作流节点视图

This commit is contained in:
caoqianming 2021-08-17 16:29:31 +08:00
parent fb776d2272
commit 331c3ce602
4 changed files with 44 additions and 7 deletions

View File

@ -28,6 +28,17 @@ class State(BaseModel):
(1, '初始状态'),
(2, '结束状态')
)
type2_choices = (
(0, '无处理人'),
(1, '个人'),
(2, '多人'),
(3, '部门'),
(4, '角色'),
(5, '变量'),
(6, '脚本'),
(7, '工单的字段'),
(8, '父工单的字段')
)
name = models.CharField('名称', max_length=50)
workflow = models.ForeignKey(Workflow, on_delete=models.CASCADE, verbose_name='所属工作流')
is_hidden = models.BooleanField('是否隐藏', default=False, help_text='设置为True时,获取工单步骤api中不显示此状态(当前处于此状态时除外)')

View File

@ -1,9 +1,14 @@
from rest_framework.serializers import ModelSerializer
from .models import Workflow
from .models import State, Workflow
class WorkflowSerializer(ModelSerializer):
class Meta:
model = Workflow
fields = '__all__'
class StateSerializer(ModelSerializer):
class Meta:
model = State
fields = '__all__'

View File

@ -1,11 +1,12 @@
from django.db.models import base
from rest_framework import urlpatterns
from apps.wf.views import WorkflowViewSet
from apps.wf.views import StateViewSet, WorkflowViewSet
from django.urls import path, include
from rest_framework.routers import DefaultRouter
router = DefaultRouter()
router.register('workflow', WorkflowViewSet, basename='vendor')
router.register('workflow', WorkflowViewSet, basename='workflow')
router.register('state', StateViewSet, basename='workflowstate')
urlpatterns = [
path('', include(router.urls)),
]

View File

@ -1,7 +1,10 @@
from apps.wf.serializers import WorkflowSerializer
from rest_framework.response import Response
from rest_framework import serializers
from rest_framework.mixins import CreateModelMixin, RetrieveModelMixin, UpdateModelMixin
from apps.wf.serializers import StateSerializer, WorkflowSerializer
from django.shortcuts import render
from rest_framework.viewsets import ModelViewSet
from rest_framework.viewsets import GenericViewSet, ModelViewSet
from rest_framework.decorators import action
from apps.wf.models import Workflow, State, Transition
from apps.system.mixins import CreateUpdateModelAMixin, OptimizationMixin
@ -15,4 +18,21 @@ class WorkflowViewSet(CreateUpdateModelAMixin, ModelViewSet):
search_fields = ['name', 'description']
filterset_fields = []
ordering_fields = ['create_time']
ordering = ['-create_time']
ordering = ['-create_time']
@action(methods=['get'], detail=True, perms_map={'get':'workflow_update'}, pagination_class=None, serializer_class=StateSerializer)
def states(self, request, pk=None):
"""
工作流下的状态节点
"""
wf = self.get_object()
serializer = self.serializer_class(instance=State.objects.filter(workflow=wf), many=True)
return Response(serializer.data)
class StateViewSet(CreateModelMixin, UpdateModelMixin, RetrieveModelMixin, GenericViewSet):
perms_map = {'*':'*'}
queryset = State.objects.all()
serializer_class = StateSerializer
search_fields = ['name']
filterset_fields = ['workflow']
ordering = ['sort']