gpt4 book ai didi

odoo - 在 Odoo 中,如何强制覆盖在基本模块中定义的记录规则并且数据设置为 noupdate ='1' ?

转载 作者:行者123 更新时间:2023-12-03 15:38:39 25 4
gpt4 key购买 nike

以下记录规则在产品模块中定义

<data noupdate="1">
<record id="product_comp_rule" model="ir.rule">
<field name="name" >Product multi-company</field>
<field name="model_id" ref="model_product_template"/>
<field name="global" eval="True"/>
<field name="domain_force"> ['|',('company_id','=',user.company_id.id),('company_id','=',False)]</field>
</record>
</data>

我想在我的自定义模块中编辑它

<record id="product.product_comp_rule" model="ir.rule">
<field name="name" >All Products (Parent Company)</field>
<field name="model_id" ref="product.model_product_template"/>
<field name="global" eval="True"/>
<field name="domain_force">['|','|',('company_id','=',user.company_id.id),('company_id','=','False'),('company_id','child_of',[user.company_id.id])] </field>
</record>

最佳答案

您可以使用 :

<function name="fix_er_role" model="ir.rule"/>
之后将方法添加到 ir.rule 并修复您的数据
class IRRule(models.Model):
_inherit = 'ir.rule'

def fix_er_role(self):
rol_id = self.env.ref('product.product_comp_rule')
rol_id = self.env['ir.rule'].search([('id','=',rol_id)])
rol_id.write({'domain_force':['|','|',('company_id','=',user.company_id.id),('company_id','=','False'),('company_id','child_of',[user.company_id.id])]})
编辑 : 这个要求的另一个很好的解决方案。
    <function name="write" model="ir.model.data">
<!-- get the record if from data base -->
<function name="search" model="ir.model.data">
<value
eval="[('module', '=', 'product'), ('name', '=', 'product_comp_rule')]"
/>
</function>
<!-- remove noupdate -->
<value eval="{'noupdate': False}" />
</function>


<record id="product.product_comp_rule" model="ir.rule">
<field name="name" >All Products (Parent Company)</field>
<field name="model_id" ref="product.model_product_template"/>
<field name="global" eval="True"/>
<field name="domain_force">['|','|',('company_id','=',user.company_id.id),('company_id','=','False'),('company_id','child_of',[user.company_id.id])] </field>
</record>

<!-- reset noupdate -->
<function name="write" model="ir.model.data">
<function name="search" model="ir.model.data">
<value
eval="[('module', '=', 'product'), ('name', '=', 'product_comp_rule')]"
/>
</function>
<value eval="{'noupdate': True}" />
</function>

关于odoo - 在 Odoo 中,如何强制覆盖在基本模块中定义的记录规则并且数据设置为 noupdate ='1' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38995280/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com