1414from application .flow .step_node import get_node
1515from common .exception .app_exception import AppApiException
1616from knowledge .models import KnowledgeScope , Knowledge , KnowledgeType , KnowledgeWorkflow
17+ from knowledge .models .knowledge_action import KnowledgeAction , State
1718from knowledge .serializers .knowledge import KnowledgeModelSerializer
1819from system_manage .models import AuthTargetType
1920from system_manage .serializers .user_resource_permission import UserResourcePermissionSerializer
@@ -34,13 +35,30 @@ def action(self, instance: Dict, with_valid=True):
3435 if with_valid :
3536 self .is_valid (raise_exception = True )
3637 knowledge_workflow = QuerySet (KnowledgeWorkflow ).filter (knowledge_id = self .data .get ("knowledge_id" )).first ()
38+ knowledge_action_id = uuid .uuid7 ()
39+ KnowledgeAction (id = knowledge_action_id , knowledge_id = self .data .get ("knowledge_id" ), state = State .STARTED ).save ()
3740 work_flow_manage = KnowledgeWorkflowManage (
3841 Workflow .new_instance (knowledge_workflow .work_flow , WorkflowMode .KNOWLEDGE ),
39- {'knowledge_id' : self .data .get ("knowledge_id" ), 'stream' : True ,
42+ {'knowledge_id' : self .data .get ("knowledge_id" ), 'knowledge_action_id' : knowledge_action_id , ' stream' : True ,
4043 ** instance },
41- KnowledgeWorkflowPostHandler (None ))
42- r = work_flow_manage .run ()
43- return r
44+ KnowledgeWorkflowPostHandler (None , knowledge_action_id ))
45+ work_flow_manage .run ()
46+ return {'id' : knowledge_action_id , 'knowledge_id' : self .data .get ("knowledge_id" ), 'state' : State .STARTED ,
47+ 'details' : {}}
48+
49+ class Operate (serializers .Serializer ):
50+ workspace_id = serializers .CharField (required = True , label = _ ('workspace id' ))
51+ knowledge_id = serializers .UUIDField (required = True , label = _ ('knowledge id' ))
52+ id = serializers .UUIDField (required = True , label = _ ('knowledge action id' ))
53+
54+ def one (self , is_valid = True ):
55+ if is_valid :
56+ self .is_valid (raise_exception = True )
57+ knowledge_action_id = self .data .get ("id" )
58+ knowledge_action = QuerySet (KnowledgeAction ).filter (id = knowledge_action_id ).first ()
59+ return {'id' : knowledge_action_id , 'knowledge_id' : knowledge_action .knowledge_id ,
60+ 'state' : knowledge_action .state ,
61+ 'details' : knowledge_action .details }
4462
4563
4664class KnowledgeWorkflowSerializer (serializers .Serializer ):
0 commit comments