What is Odoo Developer Mode and why do you need it?

Odoo Developer Mode

The Developer Mode is a powerful tool in Odoo that provides access to a range of settings and options for both developers and admin users. This feature is crucial for configuring and maintaining the system properly. In this article, we will explore the Developer Mode from an admin user’s perspective and highlight the various features and settings it enables.

Activation

There are multiple ways to activate the Developer Mode in Odoo:

  1. The first option is from the Developer Tools section which is located at the bottom of the main Settings page. This section provides several Developer Mode options. The first option is most suitable for non-technical users, while the other two are aimed more towards developers.
  2. Another way to activate the Developer Mode is by adding the attribute “debug=1” to the URL.
  3. Also, there are browser extensions for Chrome and Firefox that can be used to activate the Developer Mode.

Personally, I prefer the last option as it is the most convenient and efficient for me.

Features

The features that the Developer Mode provides for admin users can be divided into two main groups:

  • Configuration settings and
  • Data overview and modification

Configuration Settings

When the Developer Mode is activated in Odoo, the user gains access to a range of system configuration options. These settings are located under the Configuration menu in each module or in the general configuration options available in the Technical menu within the main settings page.

To provide a better understanding of the types of configuration options available in this mode, let’s review a few examples:

  • In the Sales module, the configuration for Activity Types is only accessible in Developer Mode.
  • Setting up Tax Groups in the Invoicing/Accounting module can be done only in Developer Mode.
  • In the Technical menu, which is only available in this mode, there are multiple configuration options such as: 
    • Setting up Outgoing and Incoming email servers
    • Creating or modifying email and SMS templates
    • Creating or updating scheduled actions that will be executed on a predefined period of time
    • Configuring the System Parameters, some of these parameters are available for editing in a more user-friendly format from other parts of the system, while some of them can only be set from this section.
  • The Translation settings are also only available under Developer Mode. Within this menu, users can activate/deactivate different languages in the system, import new translations, and export existing ones.
  • Also in the User page, the Technical groups can only be set when Developer Mode is activated.

Data overview and modification

Another significant benefit of this mode is the access and overview of important data in the system. This contributes to an easier understanding of the whole system and a more manageable system directly from the user interface. To make it easier to comprehend, the data available through the Developer Mode, can be divided into two main categories:

  • Technical data
  • Functional data

Technical data

Technical data refers to the data that is crucial for the proper functioning of the system, and it can be accessed under the Technical menu. Some of the most important technical data that can be accessed are:

  • Models: It provides an overview of the data models defined in the system. For each model can be found information about its attributes, related fields, access rights, record rules, and views.
  • Fields: This view lists all the fields defined in the system. It is particularly helpful when the name of the field is known, but the model is not. For each field can be found information about its related attributes.
  • Views: It contains all the available XML views. For each view, can be found information about its attributes as well as the full definition of it. Under the view definition, are defined all the fields that need to be shown in the view, their placement in the view as well as some additional attributes, which introduce different rules for the elements in the view, for example, they can make a field required, visible or hidden, read-only or editable, etc.
  • Actions: They define the behavior of the system in response to the user’s actions. In Odoo there are a few different types of actions: Window Actions, Server Actions, Client Actions, URL Actions, Report Actions, and Automated Actions
  • Menus: All the menus defined in the system can be found in this view.
  • Access Rights and Record rules: These are an essential part of the security system in Odoo and ensure that each user can only see the data that corresponds to their profile.

It is important to note that the Models and Fields cannot be edited from the user interface, while the changes done to the Views, Actions, and Menus might be overridden when the module is updated. However, the Access Rights and Record Rules can be edited, and their updates will be permanent in most cases.

Additionally, technical data is also available for each field in the view. This means that users can examine each field directly in the view and review its basic information. This feature is useful when working on changes in the view and requiring information for a field, such as its technical name, type, model, relational model, context, and more. Users can access this information for each field by hovering over the small question mark symbols displayed on each of the fields.

Functional Data

The functional data available in the Developer Mode includes data created by the users and the system as a result of user actions. Admin users can access multiple views to review important data in the system. Here are some examples of such data:

  • Messages: This view lists all messages created in the system.
  • Followers: This view provides a complete overview of all followers related to all models in the system.
  • Emails: All sent and scheduled emails can be found here. However, it should be noted that if the email template used for the email is marked with the Auto Delete option, the email will be auto-deleted once sent.
  • Activities: This view lists all activities created by the users in the system.
  • Attachments: This view provides a list of all attachments in the system.
  • Payment Transactions: This view can be found under the Configuration menu in the Invoicing/Accounting module and lists all online transactions in the system.

Furthermore, Developer Mode can also reveal different view elements, such as fields, tabs, and sections that are not normally visible in the user interface. For instance, the Signature tab in the sales menu is only visible in Developer Mode. This is usually the case with sensitive data that is not necessary for regular users to see, but it can be useful to have an overview of it for special cases.

Developer Mode Menu

In Developer Mode, a small bug icon appears at the right corner of the main menu, just before the Conversations icon. This menu contains various options, some of which are more technical and mainly used by developers, we will focus only on the options which are useful for admin users.

Most of these options display technical or functional data for a particular view, model or record. For example:

  • Edit Action displays actions related to the particular view,
  • View Fields lists all fields related to the view,
  • View Access Rights and View Record Rules display access rights and security rules related to the particular model,
  • Get View shows the full view in XML format,
  • Edit View and Edit Search View display the views with all their attributes. The views can be edited from here, but the changes are usually overwritten when the module is updated.

Some of the functional data related to the particular record can be managed using this menu. Most of these options are available when the form view of the record is opened:

  • Managed Filters shows all custom filters for the model and allows the creation or modification of existing ones.
  • Set Defaults allows setting a default value for the model. For instance, if some values on the current record should be present on all future records, they can be set as default values, and the value will be automatically set whenever a new record is created.
  • View Metadata displays basic system information for the record, such as its ID in the database, the date it was created, and who created it. It also displays who last edited the record and when. Additionally, if the record has an external XML ID attached to it, it will be shown here. No Update indicates if this record is protected from updates from external XML data, meaning that if the record is edited and the module is updated, the changes will not be overwritten.
  • Managed Messages lists all messages related to the record. Each message can be edited or removed.
  • Managed Attachments displays all attachments added to the record. Similar to messages, they can be edited or removed from here.

The final two options in the Developer Mode menu are Become Superuser and Leave Developer Mode.
The first option, as the name implies, grants the user Superuser status in the system. This means that all access and record rules are ignored for that user. This option is useful when troubleshooting access rights issues.
The second option, Leave Developer Mode, disables the Developer Mode. This can be achieved in a few different ways, such as using the button Deactivate Developer Mode in the Developer Tools section or by clicking on the browser extension while Developer Mode is activated or simply by setting the “debug” attribute to 0 or removing it from the URL.

Conclusion

Despite its technical-sounding name, developer mode in Odoo is a valuable tool for both developers and admin users. It is an essential feature to properly configure the system and later maintain it.

While this article covers only a brief overview of the many options available in Developer Mode, the intention was not to provide all options but to highlight the type of configuration options and data that are accessible through this mode. In order to create a general understanding of the data and options available with it and where they can be found.