Summary

Extensibility is a key feature of the Odoo framework. We can build add-on modules that change or add features to other existing add-ons at the several layers needed to implement features in Odoo.

At the Model layer, we use the _inherit Model attribute to get a reference to an existing Model and then perform in-place modifications on  it. The field objects inside the Model also support incremental definitions so that we can re-declare an existing field, providing only the attributes to change.

Additional Model inheritance mechanisms allow you to reuse data structures and business logic. The Delegation inheritance, activated with a delegate=True attribute on a many-to-one relation field (or the old style inherits Model attribute), makes all the fields from the related Model available, and reuses its data structure. The Prototype inheritance, using _inherit with additional Models, allows you to copy features (data structure definition and methods) from other Models, and enable the use of abstract mixin classes, providing a set of reusable features, such as document discussion messages and followers.

At the View layer, the View structures are defined using XML, and extensions can be made by locating an XML element (using XPath or the Odoo simplified syntax) and providing the XML fragment to add. Other data records created by a module can also be modified by extension modules by simply referencing the corresponding complete XML ID and performing a write operation on the intended fields.

At the Business Logic layer, extensions can be made with the same mechanism that's used for Model extension, and re-declaring the methods to extend. Inside them, the super() Python function is used to call the code of the inherited method, and our additional code can run before or after that.

For the frontend web pages, the presentation logic in Controllers can be extended in a similar way to Model methods, and the web templates are also Views with an XML structure, so these can be extended in the same way as the other View types.

In the next chapter, we will go deeper into Models, and explore everything they can offer us.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.147.83.8