What this book covers
This books contains 14 chapters, which can be seen to be organized in five parts, roughly, introduction, models, business logic, views, and deployment.
The first part introduces the Odoo framework, explains how to set up your development environment and provides a tutorial with thorough, step-by-step creation of a new Odoo module:
Chapter 1, Quick Start – The Odoo Developer Mode and Concepts, visually introduces the Odoo development concepts, creating a simple Odoo application directly from the user interface. An existing Odoo installation, or an Odoo.com instance, can be used, so no local setup is needed.
Chapter 2, Installing and Organizing the Development Environment, explains how to install Odoo from source and how to set up the development environment to be used throughout the book. We choose to install Odoo in an Ubuntu host, but guidance is given to have a perfectly functioning development environment in a Windows machine with an Ubuntu virtual machine.
Chapter 3, Your First Odoo Application – A Practical Overview, provides a step-by-step guide through the creation of our first Odoo module. While the example is kept simple, it covers all the different layers and components that can be involved in an Odoo application: models, business logic, backend views, and web frontend views.
The second part of the book introduces Models, responsible for the data model structures around which the application is built:
Chapter 4, Models – Structuring the Application Data, discusses the Model layer in detail, introducing the framework's Object-Relational Mapping (ORM), the different types of models available, and the field types, including relational and computed fields.
Chapter 5, Import, Export, and Module Data, covers the most used Odoo data file formats—XML and CSV—the external identifier concept, how use to data file in modules, and data import/export operations.
In the third part, we explain how to write the business logic layer on top of the Models—the "Controller "component of the architecture:
Chapter 6, The ORM API – Handling Application Data, goes further into the ORM, explaining how it can be used to manipulate the data in the Models. The API for social features, such as followers and notifications, is also explained.
Chapter 7, Business Logic – Supporting Business Processes, explains how to program business logic on the server side, leveraging the ORM concepts and features. It also explains how to use wizards for a more sophisticated user interaction.
Chapter 8, External API – Integrating with Other Systems, shows how to implement Odoo external applications by implementing a command-line client that interacts with our Odoo server. There are several alternative client programming libraries available, which are introduced and used to implement our showcase client utility.
The fourth part explores the "View" layer and the several technologies that can be used for that layer:
Chapter 9, Backend Views – Design the User Interface, covers the web client's View layer, explaining the several types of views in detail and all the elements that can be used to create dynamic and intuitive user interfaces.
Chapter 10, Kanban Views and Client-Side QWeb, keeps working with the web client, but introduces Kanban views and explains the QWeb templates used to design the Kanban board elements.
Chapter 11, Reports and Server-Side QWeb, discusses using the QWeb-based report engine and everything needed to generate printer-friendly PDF reports.
Chapter 12, Creating Website Frontend Features, introduces Odoo website development, including web controller implementations and using QWeb templates to build frontend web pages.
Finally, the fifth part covers deployment and maintenance practices. Some special considerations, not relevant for development environments, need to be taken into account when deploying for production use.
Chapter 13, Debugging and Automated Tests, shares some debugging techniques to be used when developing Odoo modules. How to implement automated tests is also explained, since this is an essential practice to produce reliable code.
Chapter 14, Deploying and Maintaining Production Instances, shows us how to prepare a server for production prime time, explaining what configuration should be taken care of and how to configure an Nginx reverse proxy for improved security and scalability.
At the end of the book, the reader should have a solid understanding of all the steps and components involved in the Odoo application development cycle, from the drawing board to production deployment and maintenance of these applications.