Book Image

Odoo 11 Development Essentials - Third Edition

By : Daniel Reis
Book Image

Odoo 11 Development Essentials - Third Edition

By: Daniel Reis

Overview of this book

Odoo continues to gain worldwide momentum as the best platform for open source ERP installations. Now, with Odoo 11, you have access to an improved GUI, performance optimization, integrated in-app purchase features, and a fast-growing community to help transform and modernize your business. With this practical guide, you will cover all the new features that Odoo 11 has to offer to build and customize business applications, focusing on the publicly available community edition. We begin with setting up a development environment, and as you make your way through the chapters, you will learn to build feature-rich business applications. With the aim of jump-starting your Odoo proficiency level, from no specific knowledge to application development readiness, you will develop your first Odoo application. We then move on to topics such as models and views, and understand how to use server APIs to add business logic, helping to lay a solid foundation for advanced topics. The book concludes with Odoo interactions and how to use the Odoo API from other programs, all of which will enable you to efficiently integrate applications with other external systems.
Table of Contents (20 chapters)
Title Page
Packt Upsell
Contributors
Preface
Index

Extending models


To extend an existing model, we use a Python class with an _inherit attribute, identifying the model to be extended. The new class inherits all the features of the parent Odoo model, and we only need to declare the modifications we want to introduce. These modifications will also be available everywhere else this model is used. We can think about this type of inheritance as getting a reference for the existing model and making in-place changes to it.

Adding fields to a model

We will extend the todo.task model to add some fields to it. As an example, we will now add the effort_estimate field, to be used for the amount of time expected to be spent on the task.

We will do this in a models/todo_task_model.py file, so we should also import it in the todo_stage/models/__init__.py file to have this content:

from . import todo_task_tag_model
from . import todo_task_stage_model
from . import todo_task_model

Now, create the todo_stage/models/todo_task_model.py file,  extending the original...