繁体   English   中英

Odoo条件不同的工作流程

[英]Odoo different workflow on condition

在我的模块中,我有以下状态:

_STATES = [
    ('draft', 'Draft'),
    ('to_approve_first', 'Waiting for approval'),
    ('approved', 'Approved'),
    ('purchase_conditions','Purchase conditions'),
    ('create_order','Creating Order'),
    ('to_approve_second','Approved'),
    ('in_stock','Products in stock'),
    ('rejected', 'Rejected')
]

根据表单视图中草稿状态的条件,我可以有2个不同的工作流程吗? 例如, if field iam_in boolean in draft state is true worklow为:

                <header>
                    <button name="%(action_sale_order_reset)d" attrs="{'invisible': [('state','not in', ('to_approve_first'))]}" string="Reset" type="action" groups="purchase_request.group_purchase_request_manager"/>
                    <button name="button_to_approve_first" states="draft" string="Request approval" type="object" class="oe_highlight"/>
                    <button name="button_approved" states="to_approve_first" string="Approve" type="object" class="oe_highlight" groups="purchase_request.group_purchase_request_manager"/>
                    <button name="button_purchase_conditions" states="approved" string="Return Request" type="object" class="oe_highlight" groups="purchase_request.group_purchase_request_manager"/>
                    <button name="button_create_order" states="purchase_conditions" string="Create Order" type="object" class="oe_highlight" groups="purchase_request.group_purchase_request_user"/>
                    <button name="button_to_approve_second" states="create_order" string="Approve" type="object" class="oe_highlight" groups="purchase_request.group_purchase_request_manager"/>
                    <button name="button_in_stock" states="to_approve_second" string="Done" type="object" class="oe_highlight" groups="purchase_request.group_purchase_request_manager"/>
                    <button name="button_rejected" states="draft,purchase_conditions" string="Reject" type="object" groups="purchase_request.group_purchase_request_user"/>
                    <button name="%(action_sale_order_cancel)d" attrs="{'invisible': [('state','not in', ('to_approve_first', 'approved', 'create_order'))]}" string="Cancel with feedback" type="action" groups="purchase_request.group_purchase_request_manager"/>
<field name="state" widget="statusbar" statusbar_visible="draft,to_approve_first,approved,rejected" statusbar_colors="{&quot;approved&quot;:&quot;green&quot;}"/>
            </header>

而且,如果iam_in boolean in draft is false则工作流程将更短:

draft -> to_approve_first -> in_stock

我怎样才能做到这一点? 我在考虑两种不同的观点。 因为在视图中我不能使用if .. else条件。

您可以只在attrs (不可见)中使用字段iam_in来显示或隐藏按钮。 它可能有点复杂,但是应该可以工作,例如在您的按钮button_approved

<button name="button_approved" states="to_approve_first"
    string="Approve" type="object" class="oe_highlight"
    groups="purchase_request.group_purchase_request_manager"
    attrs="{'invisible': [('iam_in', '=', True)]}" />

如果状态为to_approve_firstiam_in=True则仅显示按钮。 要求:字段iam_in也必须在模型上并在视图中定义(不可见就足够了)。

注意将statesattrs (不可见)结合使用,因为这两种状态都会自动组合。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM