继承并替换ir.rule odoo 11

时间:2018-10-28 10:43:13

标签: xml security odoo-11

我想更改域力“ res_partner_rule_private_employee” 如何继承并替换为我的新代码

此为base / security / base_security.xml中的来源

  <!-- Security restriction for private addresses -->
        <record id="res_partner_rule_private_employee" model="ir.rule">
            <field name="name">res.partner.rule.private.employee</field>
            <field name="model_id" ref="base.model_res_partner"/>
            <field name="domain_force">
                 ['|', ('type', '!=', 'private'), ('type', '=', False)]

            </field>
            <field name="groups" eval="[
                (4, ref('base.group_user')),
            ]"/>
            <field name="perm_read" eval="True"/>
            <field name="perm_write" eval="False"/>
            <field name="perm_create" eval="False"/>
            <field name="perm_unlink" eval="False"/>
        </record>

我想在/ security新模块中替换为

<record id="rule_private_employee" model="ir.rule">
        <field name="name">res.partner.manager</field>
        <field name="model_id" ref="base.model_res_partner"/>
        <field name="domain_force"> 


          ['|','&', ('type', '!=', 'private'), ('type', '=', False),('is_student', '!=', True)]
        </field>
        <field name="groups" eval="[
            (4, ref('base.group_user')),
        ]"/>
        <field name="perm_read" eval="True"/>
        <field name="perm_write" eval="False"/>
        <field name="perm_create" eval="False"/>
        <field name="perm_unlink" eval="False"/>
</record> 

但是'&'字符在版本11中不起作用,如果正确,它不会加载我的修改!

2 个答案:

答案 0 :(得分:1)

如果要更改现有记录值,则需要使用相同的ID(在您的情况下为base.res_partner_rule_private_employee)定义一条记录。

无需定义所有已定义的值,只需定义要添加/更改的值即可。喜欢:

<record id="base.res_partner_rule_private_employee" model="ir.rule">
    <field name="domain_force">
        ['|','&amp;', ('type', '!=', 'private'), ('type', '=', False),('is_student', '!=', True)]
    </field>
</record>

我还认为在这种情况下不需要&&amp;,因为当您不指定它时,它是元组之间的默认运算符,但可以尝试

答案 1 :(得分:0)

&是XML中的特殊字符。您需要将其编码为&amp;。 xml中的字段为:

    <field name="domain_force"> 
      ['|','&amp;', ('type', '!=', 'private'), ('type', '=', False),('is_student', '!=', True)]
    </field>

有关XML编码的更多信息,请参见答案What characters do I need to escape in XML documents?