У меня есть два поля состояния, которые применяются к двум различным рабочим процессам той же модели, и я хотел бы переключаться между ними на основе значения поля.Odoo - Как я могу переключить рабочий процесс на основе поля?
Могу ли я достичь этого?
Заранее спасибо.
[EDIT]
файл .py
branch1 = fields.Selection([
('state1', 'State 1'),
('state2', 'State 2'),
]
)
branch2 = fields.Selection([
('b2_state1', 'State 1'),
('b2_state2', 'State 2'),
]
)
wkf.xml
Я использую те же состояния и переходы методологии для обеих ветвей, очевидно, с соответствующими названиями полей, которые я модифицированными здесь, чтобы опубликовать.
ОПРЕДЕЛЕНИЕ
<record model="workflow" id="wkf_branch1">
<field name="name">Branch 1</field>
<field name="osv">model.name</field>
<field name="on_create">True</field>
</record>
<record model="workflow" id="wkf_branch2">
<field name="name">Branch 2</field>
<field name="osv">model.name</field>
<field name="on_create">True</field>
</record>
ШТАТЫ
<record model="ir.actions.server" id="set_model_to_state2">
<field name="name">Set Model to State2</field>
<field name="model_id" ref="model_name"/>
<field name="code">
model.search([('id', 'in', context['active_ids'])]).function()
</field>
</record>
<record model="workflow.activity" id="state1">
<field name="name">State 1</field>
<field name="wkf_id" ref="wkf_branch1"/>
<field name="flow_start" eval="True"/>
<field name="kind">dummy</field>
<field name="action"></field>
<field name="action_id" ref="set_model_to_state2"/>
</record>
....
и поэтому для branch2
ПЕРЕХОДОВ
<record model="workflow.transition" id="model_state1_to_state2">
<field name="act_from" ref="state1"/>
<field name="act_to" ref="state2"/>
<field name="signal">state2</field>
</record>
....
и поэтому для branch2
view.xml
<header>
<!-- FORWARD BUTTONS -->
<button name="state1" type="workflow"
string="Reset to state1"
states="state2"/>
<button name="state2" type="workflow"
string="State 2" states="state1"/>
<button name="b2_state1" type="workflow"
string="Reset to State1"
states="b2_state2"/>
<button name="b2_state2" type="workflow"
string="State 2"
states="state1"/>
<field name="branch1" widget="statusbar"
attrs="{'invisible': [('type', '=', 'certain_type')]}"/>
<field name="branch2" widget="statusbar"
attrs="{'invisible': [('type', 'in', ['other_type1', 'other_type2'])]}"/>
</header>
Так что проблемы:
- Я могу скрыть статусная строка 'branch1' в view.x ml на основе условия в атрибуте attrs, но он не работает для кнопок (здесь не присутствует в коде, но я пытаюсь использовать оба атрибута «attrs» и «invisible»).
- Я не могу показать строку состояния «branch2» и даже кнопки.
- Я не знаю, как сказать Odoo, чтобы разнообразить два рабочих процесса, поскольку они принадлежат к одной и той же модели.
- Я не думаю, что решение подзаголовка будет хорошо для моего случая, так как я бы использовал поток, если модель одного типа, а другая - в противном случае.
Еще раз спасибо.
Измените свой вопрос и добавьте: 1. Ваш код/ваши попытки 2. Ваш вход, текущий выход и ожидаемый результат –