From e6c94750dfffbeda7f4f3ad325e99c2c853902f4 Mon Sep 17 00:00:00 2001 From: shaohuzhang1 Date: Tue, 18 Jun 2024 16:20:19 +0800 Subject: [PATCH] =?UTF-8?q?=20feat:=20=E6=B7=BB=E5=8A=A0=E5=8F=91=E5=B8=83?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../flow/step_node/direct_reply_node/i_reply_node.py | 3 ++- apps/application/flow/workflow_manage.py | 6 +++--- apps/application/urls.py | 1 + 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/apps/application/flow/step_node/direct_reply_node/i_reply_node.py b/apps/application/flow/step_node/direct_reply_node/i_reply_node.py index 268ee295c..1d5256ac5 100644 --- a/apps/application/flow/step_node/direct_reply_node/i_reply_node.py +++ b/apps/application/flow/step_node/direct_reply_node/i_reply_node.py @@ -18,7 +18,8 @@ from common.util.field_message import ErrMessage class ReplyNodeParamsSerializer(serializers.Serializer): reply_type = serializers.CharField(required=True, error_messages=ErrMessage.char("回复类型")) fields = serializers.ListField(required=False, error_messages=ErrMessage.list("引用字段")) - content = serializers.CharField(required=False, error_messages=ErrMessage.char("直接回答内容")) + content = serializers.CharField(required=False, allow_blank=True, allow_null=True, + error_messages=ErrMessage.char("直接回答内容")) def is_valid(self, *, raise_exception=False): super().is_valid(raise_exception=True) diff --git a/apps/application/flow/workflow_manage.py b/apps/application/flow/workflow_manage.py index e820268f2..82647c41b 100644 --- a/apps/application/flow/workflow_manage.py +++ b/apps/application/flow/workflow_manage.py @@ -60,12 +60,12 @@ class Flow: @staticmethod def is_valid_node_params(node: Node): - get_node(node.type)(node, Node) + get_node(node.type)(node, None, None) def is_valid_node(self, node: Node): self.is_valid_node_params(node) if node.type == 'condition-node': - branch_list = node.properties.get('branch') + branch_list = node.properties.get('node_data').get('branch') for branch in branch_list: source_anchor_id = f"{node.id}_{branch.get('id')}_right" edge_list = [edge for edge in self.edges if edge.sourceAnchorId == source_anchor_id] @@ -89,7 +89,7 @@ class Flow: node_list = reduce(lambda x, y: [*x, *y], [[node for node in self.nodes if node.id == edge.targetNodeId] for edge in edge_list], []) - if len(node_list) == 0: + if len(node_list) == 0 and not end_nodes.__contains__(node.type): raise AppApiException(500, f'不存在的下一个节点') return node_list diff --git a/apps/application/urls.py b/apps/application/urls.py index 4fcbbbf0c..a39f0d47e 100644 --- a/apps/application/urls.py +++ b/apps/application/urls.py @@ -8,6 +8,7 @@ urlpatterns = [ path('application/profile', views.Application.Profile.as_view(), name='application/profile'), path('application/embed', views.Application.Embed.as_view()), path('application/authentication', views.Application.Authentication.as_view()), + path('application//publish', views.Application.Publish.as_view()), path('application//edit_icon', views.Application.EditIcon.as_view()), path('application//statistics/customer_count', views.ApplicationStatistics.CustomerCount.as_view()),