Daily updates from Odoo
Friday, August 2, 2024
23 changes · master
New functionality added to Odoo
Several Odoo apps can now be installed as Progressive Web Apps, giving users quicker device access to focused workflows like Barcode, Field Service, Shop Floor, and Frontdesk kiosks. This improves convenience for teams using tablets, kiosks, or mobile devices by making these apps feel more like dedicated standalone applications.
Original PR description
*: industry_fsm, web_studio - This commit brings the possibility to install Barcode as a PWA, using the common installation page. - This commit brings a few shortcuts to the dedicated Field Service PWA. This can be used as an example of how any installable app can customize and give its own shortcuts when installed on a device. - Tests of navbar in studio have been adapted to mock the PWA service. task-3953694
Enhancements to existing features
The timesheet timer is now preserved when users move between timesheet views, reducing the risk of losing tracked work time. If a timer starts without a default project, the system keeps it temporarily and automatically saves it once a project is selected.
Original PR description
Remove unnecessary code from `timesheet_timer_hooks.js`. Add a hook `onRecordChanged` to the timesheet controllers to manage the usecase where we start a timer, but no "default" project is found. In that case, we create a "fake" record in the view (we don't save it because without project, it is not qualified as a timesheet but as an analytic line). As soon as a project is set on it however, we want to save it, and that is what the hook does. related: https://github.com/odoo/odoo/pull/154134 task-3594778
Knowledge articles now use Odoo’s standard message posting flow instead of the older portal-specific approach. This helps keep article discussions aligned with the main messaging system and should make future maintenance and consistency easier.
Original PR description
Part of task-2828744 [Related Odoo PR](https://github.com/odoo/odoo/pull/172475)
This update refreshes the spreadsheet component so pivot tables keep their table type aligned with the underlying pivot structure. It helps ensure spreadsheet pivot views behave consistently and reduces the risk of mismatched reporting layouts.
Original PR description
adapt test for https://github.com/odoo/o-spreadsheet/commit/0f46e97b5 [IMP] pivots: table type synced with pivot structure Task: 4039655
The event website navigation has been adjusted so social wall options are grouped under the Community menu. This makes the event site structure clearer and helps visitors find community-related content more naturally.
Original PR description
- regroup Social Menu under Community Task-3661323
New spreadsheet dashboards created from the Documents app are now published by default, so users can find them immediately on the main Dashboards page. This reduces confusion and removes the extra step that previously kept newly created dashboards hidden.
Original PR description
Purpose ------- When users create a spreadsheet in the Documents app, then convert it to a dashboard (File > Add to dashboards), they don't understand why the spreadsheet doesn't appear in the main Dahsboards landing action. The reason is that the dashboard is not publised by default Spec ---- Set dashboard to published by default to avoid not finding your dashboard Task: 4077300
Barcode lookup now only runs for products using recognized EAN or UPC barcode formats. This helps avoid unnecessary lookups and prevents invalid barcode lengths from being accepted during product creation.
Original PR description
Previously, the barcode lookup was triggered for barcodes of any length, and the product creation form accepted barcodes of any length. With this commit ================= The barcode lookup will now be restricted to only those barcodes encoded in EAN or UPC formats. Additionally, the product creation wizard will only accept barcodes in the specified formats. [3974067](https://www.odoo.com/odoo/my-tasks/3974067?cids=2)
Resolved issues and error corrections
Operation type names in the Brazilian AvaTax localization can now appear in the user's language. This fixes a missing translation setting, improving clarity for Portuguese and multilingual users without changing tax behavior.
Original PR description
translate=True was forgotten when the l10n_br.operation.type model was added. Since it requires a database change it can only be done in master. Thanks to TIC for notifying us. task-3803424
This fixes an issue in Point of Sale where connected weighing scales could reference the wrong IoT device address. It helps ensure scale integrations connect reliably during checkout, reducing disruption for stores using IoT hardware.
This update fixes time selection and display issues for locales that use 12-hour clocks with AM/PM. It helps users avoid incorrect shift or rental times when working in affected regional settings.
Code cleanup and technical improvements
This update standardizes how several Odoo Enterprise apps send real-time messages to users. It is an internal cleanup that should make notifications more consistent and easier to maintain without changing day-to-day workflows.
Original PR description
\* = account_online_synchronization, delivery_iot, l10n_uk_reports, spreadsheet_edition, voip, website_helpdesk_livechat, whatsapp Enterprise counter-part. https://github.com/odoo/odoo/pull/175205
This update removes an older behind-the-scenes dependency from the backend interface, including areas such as Studio report editing and related tests. It helps modernize the codebase and reduce reliance on legacy technology without changing expected business workflows.
Original PR description
Task ID: 3981226
This update removes an older shared web component from backend assets and adjusts Studio report editing and navigation tests accordingly. The change is mainly internal, helping keep the system lighter and easier to maintain without changing day-to-day user workflows.
Original PR description
Task ID: 3981226
Miscellaneous changes
Steps to reproduce the bug: - Log in as Mitchell Admin. - Go to Work Centers > Assembly Line 1 > Select Mark Demo in the allowed employees. - Create a storable product P1 with BoM: - Components: Select any product. - Operation: OP1 in Assembly Line 1. - Create a manufacturing order to produce one unit of P1. - Try to start the work order with Mitchell from the form view. Problem: No user error is triggered when it should be. opw-4045726 Forward-Port-Of: odoo/enterprise#671
Original PR description
Steps to reproduce the bug:
- Log in as Mitchell Admin.
- Go to Work Centers > Assembly Line 1 > Select Mark Demo in the allowed employees.
- Create a storable product P1 with BoM:
- Components: Select any product.
- Operation: OP1 in Assembly Line 1.
- Create a manufacturing order to produce one unit of P1.
- Try to start the work order with Mitchell from the form view.
Problem:
No user error is triggered when it should be.
opw-4045726
Forward-Port-Of: odoo/enterprise#67194Resolving a field path to a usable string is globally useful for dynamic messages that cannot rely on qweb to format their output. The Model method introduced in whatsapp to do this is moved to mail so it can be used in other modules. task-3495279 Forward-Port-Of: odoo/enterprise#65046
Original PR description
Resolving a field path to a usable string is globally useful for dynamic messages that cannot rely on qweb to format their output. The Model method introduced in whatsapp to do this is moved to mail so it can be used in other modules. task-3495279 Forward-Port-Of: odoo/enterprise#65046
Steps to reproduce ================== - Go to Accounting > Customer Invoices - Open studio - Switch to the Reports tab - Open the Invoices report - Click on "Reset Report" a few times => Eventually, OdooEditor will crash with an error like `Cannot read properties of undefined (reading 'innerHTML')` Cause of the issue ================== `onIframeLoaded` was called before the default report has been loaded. Solution ======== only update the render key after the report
Original PR description
Steps to reproduce ================== - Go to Accounting > Customer Invoices - Open studio - Switch to the Reports tab - Open the Invoices report - Click on "Reset Report" a few times => Eventually, OdooEditor will crash with an error like `Cannot read properties of undefined (reading 'innerHTML')` Cause of the issue ================== `onIframeLoaded` was called before the default report has been loaded. Solution ======== only update the render key after the report has been reset opw-3821992 Forward-Port-Of: odoo/enterprise#67191
The product_pricing_ids didn't exclude archived pricelist which could lead to wrong price. While also displaying unnecessary data. opw-4053690 Forward-Port-Of: odoo/enterprise#67535
Original PR description
The product_pricing_ids didn't exclude archived pricelist which could lead to wrong price. While also displaying unnecessary data. opw-4053690 Forward-Port-Of: odoo/enterprise#67535
Currently, when printing reports using the iot, if we don't select a device when the wizard prompts ut to do so, nothing will be printed and it will be saved in the browser storage that no printer should print this report. Steps to reproduce: ------------------- * Connect the IOT to the db * In developper mode go to: **Settings** > **Technical** > **Actions** > **Reports** * Select `PDF Quote` for example and associate a printer * Go to the **Sale** App and select any quotation * Select
Original PR description
Currently, when printing reports using the iot, if we don't select a device when the wizard prompts ut to do so, nothing will be printed and it will be saved in the browser storage that no printer…
Currently, when printing reports using the iot, if we don't select a device when the wizard prompts ut to do so, nothing will be printed and it will be saved in the browser storage that no printer should print this report. Steps to reproduce: ------------------- * Connect the IOT to the db * In developper mode go to: **Settings** > **Technical** > **Actions** > **Reports** * Select `PDF Quote` for example and associate a printer * Go to the **Sale** App and select any quotation * Select the gear icon * Select **Print** > `PDF Quote` * Select `Print` without selecting a printer > Observation: Nothing is printed * Select **Print** > `PDF Quote` > Observation: Nothing is printed and the prompt does not appear Why the fix: ------------ The idea behind this fix is to make it mandatory to choose at least one of the devices on the wizard prompt. If at least one printer is selected we continue with the printing. If not, we put a notification on screen and don't do anything else. opw-4019575 Current behavior with the fix: --------------------------------------  Forward-Port-Of: odoo/enterprise#67579
Currently we just check whether the company has 'BE' fiscal country code. But this can be incorrect: We may want to create a report for a foreign VAT fiscal position. This situation can lead to a traceback (see below). After this commit we use the dedicated helper function `_get_report_country_code` to determine the right country code. Reproduce: 1. Install `l10n_be_reports` and `l10n_fr_reports` 2. On the Belgian company create a fiscal position with country 'France' and a 'Foreign Tax
Original PR description
Currently we just check whether the company has 'BE' fiscal country code. But this can be incorrect: We may want to create a report for a foreign VAT fiscal position. This situation can lead to a traceback (see below). After this commit we use the dedicated helper function `_get_report_country_code` to determine the right country code. Reproduce: 1. Install `l10n_be_reports` and `l10n_fr_reports` 2. On the Belgian company create a fiscal position with country 'France' and a 'Foreign Tax ID' 3. On the Belgian company open the tax report and select the French tax report 4. Click on the "Closing Entry" button to create a draft closing entry move 5. Try to post the move 6. Traceback (in which `l10n_be_reports_post_wizard` appears) task-4063968 Forward-Port-Of: odoo/enterprise#67548 Forward-Port-Of: odoo/enterprise#67122
When a user deletes buttons with sequences 0, 1, or 2, and buttons with sequences greater than 2 still exist, the template preview does not display any buttons as expected. Steps to produce: - Create a template with 5 buttons. - Delete the first 3 buttons (sequences 0, 1, and 2). - Preview the template. - No buttons will be shown in the preview. Problem: The template preview shows buttons based on their sequence field (0, 1, 2, etc.). When buttons with sequences 0, 1, and 2 are de
Original PR description
When a user deletes buttons with sequences 0, 1, or 2, and buttons with sequences greater than 2 still exist, the template preview does not display any buttons as expected. Steps to produce: - Create a template with 5 buttons. - Delete the first 3 buttons (sequences 0, 1, and 2). - Preview the template. - No buttons will be shown in the preview. Problem: The template preview shows buttons based on their sequence field (0, 1, 2, etc.). When buttons with sequences 0, 1, and 2 are deleted, and only buttons with higher sequences remain, none of the remaining buttons are displayed. Solution: Rather than rendering all buttons and displaying buttons based on sequence, render limited buttons based on the button length to achieve the same preview as Meta. This ensures that when buttons with lower sequences are deleted, the remaining buttons are still shown correctly in the preview. Forward-Port-Of: odoo/enterprise#66978
This commit fixes an issue with locked/readonly empty articles. If a user opens an article which is locked/readonly for them, when switching articles the browser will try to update the article's name. This operation is of course not possible, but this leads to the user not able to leave said article. This is caused by the update method on the record which sets it as dirty so that it can be saved when possible. In order to fix, this when the user has no write access on the article or if it is
Original PR description
This commit fixes an issue with locked/readonly empty articles. If a user opens an article which is locked/readonly for them, when switching articles the browser will try to update the article's name. This operation is of course not possible, but this leads to the user not able to leave said article. This is caused by the update method on the record which sets it as dirty so that it can be saved when possible. In order to fix, this when the user has no write access on the article or if it is locked, we return early so that the record doesn't set itself as dirty. task-4047722 Forward-Port-Of: odoo/enterprise#66589
Before this commit: --------------------------- - The booking information was displayed below the table, sometimes overlapping with other tables and not clearly indicating which table the booking was for. - The text color change based on the booking timings exceed and still not ordered. After this commit: ----------------------- - The booking information is shown directly on the table, replacing the customer count, making it clearer and easier to understand. - Now, making it more better
Original PR description
Before this commit: --------------------------- - The booking information was displayed below the table, sometimes overlapping with other tables and not clearly indicating which table the booking was for. - The text color change based on the booking timings exceed and still not ordered. After this commit: ----------------------- - The booking information is shown directly on the table, replacing the customer count, making it clearer and easier to understand. - Now, making it more better and text color will be red based on booking timing starts and still customer is not checked in. Related PR --------------- Community PR: https://github.com/odoo/odoo/pull/174210 Upgrade PR: https://github.com/odoo/upgrade/pull/6304 task: 4014060 Forward-Port-Of: odoo/enterprise#67160
Steps: ------- 1. go to any operations of th barcorde app 2. go to a specific line 3. change the quantity thanks to the +1 / -1 4. try to erase using backspace or the erase button Current behavior before PR: ------ We need several backspaces to erase the value Desired behavior after PR is merged: ------- If the value is '3' for example, only 1 backspace should be needed. Explanation: ----- Incrementing will set the precision to the value specified, which mean 3 is actually st
Original PR description
Steps: ------- 1. go to any operations of th barcorde app 2. go to a specific line 3. change the quantity thanks to the +1 / -1 4. try to erase using backspace or the erase button Current behavior…
Steps: ------- 1. go to any operations of th barcorde app 2. go to a specific line 3. change the quantity thanks to the +1 / -1 4. try to erase using backspace or the erase button Current behavior before PR: ------ We need several backspaces to erase the value Desired behavior after PR is merged: ------- If the value is '3' for example, only 1 backspace should be needed. Explanation: ----- Incrementing will set the precision to the value specified, which mean 3 is actually stored as 3.00 on the Digipad, but parsing it as a Number in `_notifyChanges` will remove these trailing zeros. One solution would be to pass the string to the ORM instead of passing it a number, but this has the disadvantages to set the value as 3.00 visually (so the user still need to delete multiple zeros). The solution adopted removes the trailing zeros. Side note: This does not fix the inconsitency where the value displayed is "3" when the Digipad value id "3.". opw-4061351 Forward-Port-Of: odoo/enterprise#67459 Forward-Port-Of: odoo/enterprise#67279