-
Notifications
You must be signed in to change notification settings - Fork 2.8k
Expand file tree
/
Copy pathi_condition_node.py
More file actions
41 lines (29 loc) · 1.33 KB
/
i_condition_node.py
File metadata and controls
41 lines (29 loc) · 1.33 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# coding=utf-8
"""
@project: maxkb
@Author:虎
@file: i_condition_node.py
@date:2024/6/7 9:54
@desc:
"""
from typing import Type
from django.utils.translation import gettext_lazy as _
from rest_framework import serializers
from application.flow.common import WorkflowMode
from application.flow.i_step_node import INode
class ConditionSerializer(serializers.Serializer):
compare = serializers.CharField(required=True, label=_("Comparator"))
value = serializers.CharField(required=True, label=_("value"))
field = serializers.ListField(required=True, label=_("Fields"))
class ConditionBranchSerializer(serializers.Serializer):
id = serializers.CharField(required=True, label=_("Branch id"))
type = serializers.CharField(required=True, label=_("Branch Type"))
condition = serializers.CharField(required=True, label=_("Condition or|and"))
conditions = ConditionSerializer(many=True)
class ConditionNodeParamsSerializer(serializers.Serializer):
branch = ConditionBranchSerializer(many=True)
class IConditionNode(INode):
def get_node_params_serializer_class(self) -> Type[serializers.Serializer]:
return ConditionNodeParamsSerializer
type = 'condition-node'
support = [WorkflowMode.APPLICATION, WorkflowMode.APPLICATION_LOOP, WorkflowMode.KNOWLEDGE, WorkflowMode.KNOWLEDGE_LOOP]