Odoo Help

Welcome!

This community is for beginners and experts willing to share their Odoo knowledge. It's not a forum to discuss ideas, but a knowledge base of questions and their answers.

3

on_change issue? More precise modules preference?

By
Dhinesh - Technical Consultant, Sodexis Inc
on 7/2/14, 1:42 AM 964 views

I have two modules.
Both inheriting sale module.
Both have same field demo in py and xml.
Both having same on_change method in it with same parameter.

Question is if both modules are installed which module on_change will trigger.

How Odoo/Openerp Modules will take preference?? By module name or Installation time or any other factor??

1

Bole

--Bole--
2385
| 5 4 6
Zagreb | Karlovac, Croatia
--Bole--

there is only 10 kind of people the ones that understand binary ... and others

Bole
On 7/2/14, 4:44 AM

if you are asking for debug purposes.. probably the last installed will be triggered.. 
but that is bad practice and confusing code.. try to avoid it.. because if you install both modules you will probably get fields in your views shown twice wich is very bad... OE does not handle well if same field is shown twice on one view...
if you have two modules using(and needing)  the same attribute probably the best solution is to make third module which will contain that attribute (also methods and views for it) and the two original modules can depend on new one.. so you will avoid double adding fields..

I can handle the twice field issue by fields_view_get using lxml properties. But i want to know the module preferences. And no, it wont get triggered on the basis of installation while debugging.

Dhinesh - Technical Consultant, Sodexis Inc
on 7/2/14, 11:00 AM
0

René Schuster

--René Schuster--
1560
| 5 5 8
Weinheim, Germany
--René Schuster--

Challenge Everything!

René Schuster
On 7/2/14, 2:46 AM

It depends on your your type of inheritance for your custom modules.

If both modules use class inheritance ( _inherit = 'parent.model', _name = 'parent.model'), the both fields will be exactly the same.

if you use prototype inheritance ( _inherit = 'parent.model', _name = 'new.name'), the database will contain different tables for your new custom modules. This will result in no conflict, since the fields (although they have the same name) are part of different database tables.

EDIT:

I'm not sure, which on_change method will be used in your case. Maybe the last installed module will determine it. Maybe the sequence/order of the views will play a role.

You should think about your design and maybe try to change the inheritance.

Why not using one custom module instead of two?
Or let module A inherit from Sales and module B from module A?

 

Regards.

Okay. I forgot to add this. I use class inheritance (_inherit = 'parent.model', _name = 'parent.model') on both modules. Module A, Module B.

Dhinesh - Technical Consultant, Sodexis Inc
on 7/2/14, 3:27 AM

Your Answer

Please try to give a substantial answer. If you wanted to comment on the question or answer, just use the commenting tool. Please remember that you can always revise your answers - no need to answer the same question twice. Also, please don't forget to vote - it really helps to select the best questions and answers!

About This Community

This community is for professionals and enthusiasts of our products and services. Read Guidelines

Question tools

1 follower(s)

Stats

Asked: 7/2/14, 1:42 AM
Seen: 964 times
Last updated: 6/4/15, 5:59 AM