Bỏ qua để đến Nội dung
Menu
Câu hỏi này đã bị gắn cờ
2 Trả lời
5017 Lượt xem

I'm trying to create a workflow which transitions to the next step when answer_count > 5. Answers are in a separate model

class Question(models.Model):
    answer_ids = fields.One2many(comodel_name="module.answer", string="Answer", inverse_name="question_id")
    answer_count = fields.Integer(string="Answer Count", compute="_count_answers")
    
    @api.depends('answer_ids')
    def _count_answers(self):
      for rec in self:
          rec.answer_count = len(self.answer_ids)


I have tried:

<record model="workflow.transition" id="answers_received">
    <field name="act_from" ref="waiting"/>
<field name="act_to" ref="done"/>
    <field name="condition">answer_count &gt;= 5</field>
</record>


But it seems like it doesn't re-evaluate when a new answer is received.

What would be the right way to re-test the transition condition? 

Does it require a trigger? If so, how would I re-install the triggers on every try that the condition is not met? The documentation says: triggers are not re-installed whenever the transition is re-tried.



Ảnh đại diện
Huỷ bỏ

Interesting question, could you provide more info about the whole scenario so we could get the big picture here? Seems that you wanna build an automaton with Odoo workflows

Tác giả

I'm not sure what more info to provide - basically when a new record is inserted into the related model (one2many) it should re-evaluate the transition condition. Does this make sense?

Tác giả

Let me give an example which is related to the code above: visitors to the site are allowed to post answers to questions. When a question has 5 answers, the state should change to "answered". The answers are stored in a separate model related using a one2many field

Bài viết liên quan Trả lời Lượt xem Hoạt động
0
thg 1 20
5182
4
thg 10 18
4570
0
thg 11 17
6237
1
thg 6 16
4681
0
thg 6 16
4170