унаследовать и заменить ir.rule odoo 11 - PullRequest
0 голосов
/ 28 октября 2018

Я хочу изменить в домене силу "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 голосов
/ 28 октября 2018

Если вы хотите изменить существующие значения записи, вам нужно определить запись с тем же идентификатором, в вашем случае 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; в этом случае не требуется, так как это оператор по умолчанию между кортежами, когда вы его не определяете, но стоит попробовать

0 голосов
/ 28 октября 2018

& - это специальный символ в XML.Вы должны закодировать это как &.Поле в xml будет:

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

Подробнее о кодировке XML можно найти в ответе Какие символы мне нужно экранировать в документах XML? .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...