Daily updates from Odoo
Wednesday, March 19, 2025
15 changes
5 changes
Enhancements to existing features
Users can now view planning schedules and project timelines by quarter in Gantt views. This makes it easier to review longer-term workload, task, and project plans without switching between shorter time scales.
Original PR description
This commit adds the `quarter` scale in gantt view of - `planning.slot` model, - `project.task` model, - `project.project` model. task-4630200
Point of Sale order updates are now coordinated in the main POS flow rather than the preparation display. This helps preparation screens stay aligned when multiple updates happen at the same time, reducing the chance of stale or conflicting order information.
Original PR description
The introduction of concurrential update of orders in the POS makes the usage of the update of last_order_prepartion_change needed in the POS. This commit removes the update of last_order_prepartion_change from the pos_preparation_display to add it in the POS. Community PR: odoo/odoo#146300
Unit prices now stay consistent whether a fiscal position is selected before or after adding products to sales orders or invoices. This avoids unexpected price changes and makes tax-related pricing behavior easier to predict for users.
Original PR description
### Before Different behavior when: 1. Adding a product to an invoice/sale order -> adding a fiscal position and refreshing taxes: unit price (price_unit) stays the same while tax and price_subtotal adjust depending on other settings. 2. Adding a fiscal position -> adding a product: unit price (price_unit) changes and keeps the same un-taxed price which is based on the original sales price minus the tax set on the product. ### Now Scenario 2 behaves the same as 1, therefore keeping the same unit price when setting a fiscal position before adding a product to an invoice/sale order. odoo/odoo/pull/201181 task-4430319
The IoT app now has separate user and administrator roles, so companies can grant access without making people full Odoo administrators. IoT users can view the app without changing settings, while IoT administrators can manage it fully.
Original PR description
Before this commit, the IoT app had no access control other than needing to be an admin. This meant that the only way to manage IoT was to be an admin for all of Odoo. After this commit, IoT user and IoT admin groups have been added. IoT users can access the IoT app but not modify anything, whereas IoT admins have full access. In order to add these groups, the IoT module had to be moved to one of the predefined categories, in this case 'Administration'. task-4643403
Users can now re-engage WhatsApp contacts after Meta's 24-hour messaging window closes by sending an approved template directly from the Discuss conversation. This helps teams continue conversations with leads or customers without leaving Odoo, reducing missed follow-ups.
Original PR description
PURPOSE Allow users to revive a conversation locked by META (> 24 hours) by sending a new approved template. SPECIFICATION A new button is added in the discuss channel whenever a WhatsApp channel is deactivated, allowing users to send a new approved template. This button will open a WhatsApp composer enabling users to select and send an approved WhatsApp template that applies to the `discuss.channel`. This template will help notify users that we are here to assist them, ensuring we don't miss our leads. Task-3525549
10 changes
New functionality added to Odoo
Adds a test covering barcode scans that include many serial numbers at once. This helps ensure slow mobile connections do not cause excessive delays when warehouse teams scan large batches in the Barcode app.
Original PR description
### To test the flow: Run the test with debug = True and in the network tab of the browser set throtlling to 3G while the debugger of the first step of the tour is on. ### Steps to reproduce: 1.…
### To test the flow: Run the test with debug = True and in the network tab of the browser set throtlling to 3G while the debugger of the first step of the tour is on. ### Steps to reproduce: 1. Create a storable product tracked by SN. 2. Create a delivery order of 1000 units. 3. In Inventory > Operations Types, for the Delivery Orders type, check "Create New" under Lot/Serial Number. 4. Open the barcode app 5. Scan a QR code containing 100 serial numbers. > makes far too many rpc calls taking ages to resolve in 3G or slow 4G ### Cause of the perf issue: You will observe that the barcode scanned is treated by the `processBarcode`, generates a list of 100 valid barcodes and that each of these is then processed individually here: https://github.com/odoo/enterprise/blob/b429e4da99edc73b5cf451c05dba120dde5b3895/stock_barcode/static/src/models/barcode_model.js#L650-L674 However, each individual `this._processBarcode` will lead to two rpc calls, one during the `_getMissingRecord` of the `prefilled_owner_package_stock_barcode`. GL Steve <3 opw-4410797
Enhancements to existing features
This change lets accounting chart updates skip creating new accounts, taxes, or fiscal positions when they are not wanted. It mainly helps Netherlands localization migrations update existing chart data more safely and with less manual precision.
Original PR description
The goal is that we do not need to be more accurate on what we need to update when updating the CoA so I have added force_create to be false if wo do not want to create new accounts, new taxes, new fiscal positions in the Netherlands task-4556250 Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Point of Sale users can now use the existing product color setting more directly when managing products and viewing them in the terminal. This makes product tiles easier to distinguish during sales and gives staff a simpler way to adjust product presentation from the interface.
Original PR description
Following this commit : - Used color field in product form view that already existed. - Added color field in Edit product view from UI. task-4423837
This update adds support for Estonia's new 13% tax rate, valid from January 1, 2025. It helps businesses using the Estonia localization keep tax setup and reporting aligned with the upcoming legal requirements.
Original PR description
Description of the issue/feature this PR addresses: This adds 13% tax logic to Estonia Localization. 13% is valid from 01.01.2025 Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Estonian reporting now supports the 13% tax logic that applies from 1 January 2025. This helps businesses keep their tax reports aligned with upcoming Estonian compliance requirements.
Original PR description
Made new pull request as old one https://github.com/odoo/enterprise/pull/79702 was not with correct name. Now Odoo and enterprise pull requests repo has same branch name.
Resolved issues and error corrections
This update brings Odoo's spreadsheet component to the latest version and fixes several everyday issues. Users should see more reliable copy/paste between sheets, better pivot value search, improved cell resizing, and smoother editing behavior.
Original PR description
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/3f48d8b72 [REL] 18.0.20 [Task: 0](https://www.odoo.com/odoo/2328/tasks/0)…
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/3f48d8b72 [REL] 18.0.20 [Task: 0](https://www.odoo.com/odoo/2328/tasks/0) https://github.com/odoo/o-spreadsheet/commit/34150250d [FIX] clipboard: cross-sheet cut/paste is broken for tables/cfs [Task: 3905618](https://www.odoo.com/odoo/2328/tasks/3905618) https://github.com/odoo/o-spreadsheet/commit/4977c01f5 [FIX] css: put `h-100` in o-spreadsheet [Task: 4652289](https://www.odoo.com/odoo/2328/tasks/4652289) https://github.com/odoo/o-spreadsheet/commit/258cd42f3 [FIX] auto_complete: search pivot value with quotes [Task: 4061068](https://www.odoo.com/odoo/2328/tasks/4061068) https://github.com/odoo/o-spreadsheet/commit/b694f2c27 [FIX] edition: escape closes the composer [Task: 4646699](https://www.odoo.com/odoo/2328/tasks/4646699) https://github.com/odoo/o-spreadsheet/commit/a539775a7 [FIX] sheet: autoresize doesn't work on evaluated multiline cell [Task: 4609545](https://www.odoo.com/odoo/2328/tasks/4609545) https://github.com/odoo/o-spreadsheet/commit/d45269f88 [FIX] Tests: Fix `simulateClick` helper [Task: 4646342](https://www.odoo.com/odoo/2328/tasks/4646342) https://github.com/odoo/o-spreadsheet/commit/b9127d7d3 [FIX] RemoveDuplicate: fix component initialization [Task: 4646342](https://www.odoo.com/odoo/2328/tasks/4646342) Co-authored-by: Anthony Hendrickx (anhe) <anhe@odoo.com> Co-authored-by: Alexis Lacroix (laa) <laa@odoo.com> Co-authored-by: Lucas Lefèvre (lul) <lul@odoo.com> Co-authored-by: Dhrutik Patel (dhrp) <dhrp@odoo.com> Co-authored-by: Adrien Minne (adrm) <adrm@odoo.com> Co-authored-by: Mehdi Rachico (mera) <mera@odoo.com> Co-authored-by: Florian Damhaut (flda) <flda@odoo.com> Co-authored-by: Rémi Rahir (rar) <rar@odoo.com> Co-authored-by: Pierre Rousseau (pro) <pro@odoo.com> Co-authored-by: Vincent Schippefilt (vsc) <vsc@odoo.com>
This fix corrects how project task allocations are calculated, addressing an issue introduced by earlier changes. It helps ensure project planning and workload figures are more reliable for teams using project management features.
Original PR description
Partial fix of changes applied in: https://github.com/odoo/enterprise/pull/78465 rb-145524 rb-145525
Asset models are now kept properly separate between sibling branches of the same company. This prevents duplicate assets from being created and ensures each branch uses only the asset model intended for it.
Original PR description
…bling companies Steps to reproduce: 1. Create a company with two branches. 2. Create an asset model in each branch. 3. Go to the main company's chart of accounts. 4. Select the 'Fixed Asset' account and enable 'Automate Asset'. 5. Assign both branches' asset models to 'Asset Model'. 6. Create a vendor bill in one of the branches using the parent company's 'Fixed Asset' account. Observed behavior: - Two assets are created—one for each model assigned to the 'Fixed Asset' account. Expected behavior: - Only one asset should be created, using the asset model corresponding to the branch. - Sibling companies should only access their parent's resources (asset models) and not each other's. This fix ensures that asset models are correctly scoped within their respective branches. opw-4494439
Validated deliveries for subscription products are now counted immediately when invoicing is based on delivered quantities. This prevents subscriptions from getting blocked before their first invoice because the system still showed nothing delivered.
Original PR description
Issue: Validating deliveries of storable products linked to a subscription will not update the delivered_qty untill the subscription has been invoiced and hence wont allow you to invoice it at all if…
Issue: Validating deliveries of storable products linked to a subscription will not update the delivered_qty untill the subscription has been invoiced and hence wont allow you to invoice it at all if the invoicing is based on delivered qty. ### Steps to reproduce: - Create a recurring product which inventory is tacked by quantity and which invoicing policy is based on delivered quantity. - Put 10 units in stock. - Create a monthly subscription for 1 unit of that product. - Confirm the subscription - Validate the associated delivery #### > The qty_delivered of the sol is still at 0 and the subscription can't be invoiced. ### Cause of the issue: Starting from Commit b3ed4416f9b8e37604a9aa38a1f38c3504e22fdf (18.0) we will create the first delivery linked to a subscription rather than waiting for the cron to be triggered. These delivery moves are correctly linked to the related sale order lines of the subscription. However, since future deliveries will also be created and linked to that same sol we need to consider only the outgoing and incoming moves related to the current billing period to determine the qty_delivered. This step is achieved with an override of the `_get_out_going_incoming_moves`: https://github.com/odoo/odoo/blob/a6280b2a5173fad65e62af0ba72cb8721939d709/addons/sale_stock/models/sale_order_line.py#L193-L200 https://github.com/odoo/enterprise/blob/dde492541aa253771f905d0a77650aa35fea0e8c/sale_subscription_stock/models/sale_order_line.py#L27-L34 but this always leads to an empty record set since the order was never invoiced making the`next_invoice_date` and hence the `period_end` coincide with the `start_date` of the order. opw-4628212
The Helpdesk return action now avoids opening the return process when there is no completed delivery to return. This prevents users from hitting an error on tickets linked to customers with sales activity but no relevant stock transfer.
Original PR description
To reproduce the issue: 1. Confirm a SO with partner P 2. Create/Edit an helpdesk team - Returns: True 3. Create a ticket for P 4. Open its form view 5. Click on return Error: a traceback appears…
To reproduce the issue: 1. Confirm a SO with partner P 2. Create/Edit an helpdesk team - Returns: True 3. Create a ticket for P 4. Open its form view 5. Click on return Error: a traceback appears "ValueError: Expected singleton: stock. picking()" The return button loads the wizard `stock.return.picking`. In this model, we try to find a related done picking: https://github.com/odoo/enterprise/blob/7215e4abd904ebdff3bd85c2c2f3002b1f5593b1/helpdesk_stock/wizard/stock_picking_return.py#L24-L31 Which, in the above case, does not exist. Later, we call a method on that picking: https://github.com/odoo/odoo/blob/8f527e93de2d64111904f1fcc5813e8b8ea0e4ba/addons/stock/wizard/stock_picking_return.py#L100-L104 Where `_can_return` is a `ensure_one` method, hence the error. The return button is only displayed in some conditions: https://github.com/odoo/enterprise/blob/3d8bb40fcad00068e12f21b623390c959d3fd19c/helpdesk_stock/views/helpdesk_ticket_views.xml#L35 Here is the problem: `has_partner_picking` can be `True` if we find some related SOL, which is useless, the only thing that matters are the related pickings. OPW-4591280