|
|
parent_steps_by_chatbot = {}
for chatbot in self.chatbot_script_id:
parent_steps_by_chatbot[chatbot.id] = chatbot.script_step_ids.filtered(
lambda step: step.step_type in ["forward_operator", "question_selection"]
).sorted(lambda s: s.sequence, reverse=True)
for step in self:
parent_steps = parent_steps_by_chatbot[step.chatbot_script_id.id].filtered(
lambda s: s.sequence < step.sequence
)
parent = step
while True:
parent = parent._get_parent_step(parent_steps)
if not parent or parent.step_type == "forward_operator":
break
step.is_forward_operator_child = parent and parent.step_type == "forward_operator"
|
|