Skip to Content
Menu
This question has been flagged
7 Replies
11370 Zobrazenia

Hello,

I want to update odoo default rule (portal rule), but the update seems never works

So, the rule I want to update is:

.....

<record id="portal_sale_order_line_rule" model="ir.rule">

    <field name="name">Portal Sales Orders Line</field>

    <field name="model_id" ref="sale.model_sale_order_line"/>

    <field name="domain_force">[('order_id.message_follower_ids','child_of',[user.commercial_partner_id.id])]</field>

    <field name="groups" eval="[(4, ref('base.group_portal'))]"/>

</record>

....


and in my custom module:

<data noupdate="0">

     <record id="portal_sale.portal_sale_order_line_rule" model="ir.rule">

         <field name="domain_force">['|',

             ('order_id.partner_id','child_of',[user.commercial_partner_id.id]),

             ('order_id.message_follower_ids','child_of',[user.commercial_partner_id.id])

        ]</field>

    </record>

<data>


On default rules, it's defined as <data noupdate="1">

That modification works when install the custom modules on a new db, but it's doesn't works when updating existing db.  


 Thank you

 

Avatar
Zrušiť
Best Answer

Try to use record attribute

forcecreate="True"

for example:

<record forcecreate=True id="portal_sale.portal_sale_order_line_rule" model="ir.rule">


Example:

 <record forcecreate="True" model="ir.rule" id="sale.sale_order_comp_rule">
    <field name="name">Sales Order multi-company TEST</field>
    <field name="model_id" ref="sale.model_sale_order"/>
    <field name="global" eval="True"/>
    <field name="domain_force">['|',('company_id','=','TEST'),('company_id','child_of',[user.company_id.id])]</field>
</record>



Avatar
Zrušiť
Autor

Hi Zbik, thanks for the answer :) I've also tried that attribute, nothing happen. I've delete those rules and then updating the modules (both module, portal_sale and my custom module), the update re-create those rules, but the modification does nothing (I mean, there is no impact of the modification expected)

Answer updated. Example works without any problem in my system.

Autor

hi Zbik, with your example, is it works when you change the 'domain_force' value and then update odoo server?

In example domain_force is changed (see string 'TEST'). Yes, this works when I update my custom module. Your 'depends' are set correctly?

Autor Best Answer

I think, I found the solution (someone already posted the same problem)

https://www.odoo.com/forum/help-1/question/how-can-i-update-a-record-stored-with-the-attribute-noupdate-1-78133


Thank you zbik for your answer :)

Avatar
Zrušiť
Best Answer

The first answer in this web page works well for me:

https://stackoverflow.com/questions/38995280/in-odoo-how-to-force-overwriting-of-a-record-rule-which-is-defined-in-a-base-mod

Avatar
Zrušiť
Related Posts Replies Zobrazenia Aktivita
2
máj 24
30878
1
jan 23
2533
3
aug 20
5122
0
feb 18
2674
0
apr 16
4349