Friday, March 27, 2026
43 changes · saas-19.2
New functionality added to Odoo
This update adds comprehensive tests to ensure the seamless synchronization of Gelato products between our systems and the Odoo platform. These tests cover both the process of importing Gelato products and the ability to purchase them through Odoo. This improves reliability and accuracy in our Gelato product offerings.
Original PR description
Tests for synchronizing Gelato products with Odoo and buying Gelato products are added. task-4527206 Forward-Port-Of: odoo/odoo#252642 Forward-Port-Of: odoo/odoo#244752
Enhancements to existing features
This update adjusts how Odoo handles Indonesian NPWP (tax identification numbers) to accurately reflect whether a business is an individual or a company. The change ensures correct classification based on the NPWP prefix, improving data accuracy for Indonesian accounting and tax reporting. This update aligns with evolving Indonesian regulations regarding company identification.
Original PR description
For Indonesia, NPWP is distinguishable between an individual and company by prefix If an NPWP starts with 001, 002, or 003, treat it as a Company. Anything else is likely an Individual (local or foreign). For Indonesia, NPWP is distinguishable between an individual and company by prefix An NPWP must consist 16 digits How to distinguish between individual and company details: - Individual (Local) -> first two digit is province code start from 11 to 92 - Individual (Expat/Foreign) -> first digit = 0, second and third digit 07-09 - Company (Local or Foreign) -> first digit = 0, second and third digit 01-03 Task [#5915988](https://www.odoo.com/web#model=project.task&id=5915988) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#250840
Resolved issues and error corrections
This update resolves an error that occurred when users removed the interval setting from expense cards. The fix ensures the system defaults to 'all_time' when no interval is specified, preventing a KeyError and ensuring the expense card functionality continues to work correctly. This improves the user experience and data integrity.
Original PR description
Currently, an error occurs when the user removes the interval from the expense card. **Steps to Reproduce:** - Install the `hr_expense_stripe` module. - Go to `Expenses` > `Cards`. - Click `New` and remove the `interval value (All Time)`. `KeyError: False` When the user removes the interval, the system attempts to access the interval from `interval_multiplier_map`. However, since the interval becomes False, it raises a KeyError at [1]. This commit ensures that when no interval is set, the system defaults to `all_time` as the interval, since `all_time` is ignored as the default value. [1]:- https://github.com/odoo/enterprise/blob/06be616bb4d74f0a089e8e318d25c2424594f813/hr_expense_stripe/models/hr_expense_stripe_card.py#L287 Forward-Port-Of: odoo/enterprise#110639
Features or functions removed from Odoo
This update removes a redundant service related to PEPPOL document registration within the Odoo accounting module. The service was generating warnings because government bodies were responsible for receiving these documents, not Odoo. This change streamlines the system and resolves a technical issue without impacting core functionality.
Original PR description
Remove the service as we're only supposed to send. It's the government bodies who need to receive these kinds of document. It got archived on IAP side, so they're not really added, but asking this services logs a warning. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#255923
This change adds a small amount of spacing between employee images and names in the HR module. Previously, the images and names were visually close together, which has now been improved for a cleaner and more professional look. This is a minor cosmetic update.
Original PR description
Before this PR, a spacing was missing between the employee image and the employee name. It was added by switching the noSpacing to false. | Before | After | |--------|--------| | <img width="567" height="142" alt="Screenshot 2026-03-25 at 13 35 42" src="https://github.com/user-attachments/assets/e513600c-7019-490d-bc2f-da9819ccce89" /> | <img width="567" height="142" alt="Screenshot 2026-03-25 at 13 35 31" src="https://github.com/user-attachments/assets/744f36f6-52e3-4ad3-91cc-135071c9e0c9" /> | task-5960515 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#255812
This update removes a redundant icon path from the l10n_tw_reports module. This streamlining simplifies the module's configuration and improves its performance. The change ensures a cleaner and more efficient reporting experience for users in Taiwan.
Original PR description
Remove the hardcoded icon path from the manifest. Task-6007589 CE PR: https://github.com/odoo/odoo/pull/254826 Forward-Port-Of: odoo/enterprise#112207 Forward-Port-Of: odoo/enterprise#111264
This update resolves a technical problem in the Odoo Enterprise payroll accounting module. A test was failing due to relying on non-existent data records, which has now been corrected by directly defining the necessary account information within the test itself. This ensures the test runs reliably and accurately.
Original PR description
The test that was introduced in the following PR (https://github.com/odoo/enterprise/pull/111140), under some circumstances, was causing problems due to some records not being present. Indeed it was bad practice to use records not defined in the test, so we fix it here by defining the analytic accounts and their plan directly in the test instead of searching for them. Runbot Error: 242151 Forward-Port-Of: odoo/enterprise#112134
A recent test was failing intermittently because the system wasn't consistently loading all relevant partner data due to a limit on the number of users loaded. This fix increases the loading limit to ensure the correct partner is always available during testing, preventing test failures. This improves the reliability of our POS settlement testing process.
Original PR description
In the test, test_pos_settle_due_with_rounding, the partner that we want to check was sometimes not loaded in the frontend due to the default limit of 100 users loaded. Those users are loaded by priority of number of orders and then name. In the test, no order has been made before so we only check the alphabetical order of the names and the partner we want to check is not always in the first 100. In the fix, we change the limits to a very big number to be sure that the partner is loaded. runbot-error: 241039 Forward-Port-Of: odoo/enterprise#110130
This update resolves an issue where discounts weren't correctly applied in the self-order point-of-sale flow. The fix ensures that discount information is properly passed through the system, preventing errors and guaranteeing accurate discount calculations. This improves the reliability of the self-order functionality.
Original PR description
In the pos self-order flow, `_check_pos_order_lines` does not forward the `discount` field when sanitizing order lines. This caused `_merge_order_lines` to raise a `KeyError` when using `itemgetter('discount')` on lines that lack the key.
opw-6052719
Forward-Port-Of: odoo/enterprise#111591This update fixes a display issue in the external value pop-up, ensuring it uses the correct decimal separator based on the user's language settings. Previously, the pop-up always used a dot, which could cause confusion for users in regions that use a comma as a decimal separator. This change improves the user experience and data accuracy.
Original PR description
Description of the issue this commit addresses: The external value pop up doesn't take into account the locale to chose which decimal separator to use. --- Desired behavior after this commit is merged: The decimal separator is the one determined by the language of the user rather than always a dot. --- task-6010533 Forward-Port-Of: odoo/enterprise#111997 Forward-Port-Of: odoo/enterprise#109948
This update fixes a minor issue that prevented users from successfully updating timesheet entries while a timer was running. The fix ensures that the system handles urgent saves properly, preventing an error that would disrupt the timesheet update process. This improves the reliability of timesheet management.
Original PR description
Steps to reproduce: 1. Install `timesheet_grid` 2. Open timesheet and start timer 3. Update any cell by clicking on seach icon. 4. Now after updating go back by clicking "My Timesheet" breadcrumb Issue: - Tracback: `Uncaught Promise > Cannot convert undefined or null to object` Cause: : - The error was occurring because the updateTimerState function in timesheet_timer_service.js was trying to iterate over timerState.data when it was undefined or null. This happens when the list view's urgent save is triggered. Solution: - added a safeguard to updateTimerState so that it simply returns early if timerState.data is empty opw-6018970 Forward-Port-Of: odoo/enterprise#110637
This update resolves an issue where the Customer Ratings form in the Helpdesk reporting module displayed a duplicate 'Comment' field. The fix made the redundant 'publisher_comment' field invisible, streamlining the user experience and ensuring data consistency. This improves the clarity and accuracy of customer feedback reporting.
Original PR description
**Steps to reproduce:** - Go to helpdesk > Reporting > Customer Ratings. - Open any rating record. - Observe that the 'Comment' field is displayed twice. **Issue:** - The form view contains a two different field with same string i.e feedback and publisher_comment **Fix:** - Made the publisher_comment field invisible in helpdesk's customer rating **Task-id: 5359052** Forward-Port-Of: odoo/enterprise#100823
This update fixes a problem where users with limited accounting access couldn't validate invoices when audit reports were active. The change ensures invoices can be validated correctly without requiring additional user permissions, improving usability for standard users. This resolves an access error preventing a key business function.
Original PR description
An issue occurs when an Invoicing User tries to validate a bill while an audit report exists, resulting in an access error because the user does not have permission to access account.report. Steps to reproduce: - Create an audit report for the current year - Create a user with only the “Accounting / Invoicing” access - Log in with this user and attempt to validate a bill, the access error appears on account.report since only Bookkeeper, Invoicing & Banks and Read-only accounting group has access to return. This fix ensures the validation works correctly without requiring extra access. opw-6049259 Forward-Port-Of: odoo/enterprise#111782
This update addresses a potential issue where automated email verification systems (Mail Defender) could inadvertently cancel or reschedule appointments. To prevent this, the system now uses a form instead of a direct link for cancellation/rescheduling, ensuring these actions are handled correctly. This improves the stability and reliability of our appointment scheduling feature.
Original PR description
…ointments Mail defender services may click URLs in emails to verify their contents. Additionally they may sometimes interact with the page and visit related pages. For this reason URLs sent in emails should not trigger any action directly nor contain any simple link that could trigger an action. The "cancel/reschedule" anchor URL is replaced with a form which bots should not click. We also port the fix done in appointment to the view in appointment as it replaces the original view in this module. task-4555579 Forward-Port-Of: odoo/enterprise#112085 Forward-Port-Of: odoo/enterprise#79831
This update resolves a minor issue in the Belgian payroll module (l10n_be_hr_payroll) related to how termination holiday reports are generated. Specifically, a fallback value was incorrectly handled when certain property settings were missing, preventing accurate reporting. This ensures all termination holiday reports are generated correctly.
Original PR description
Forward-Port-Of: odoo/enterprise#112200
This update resolves a bug where report date filters were not correctly applied, particularly when using custom date ranges. Users could experience reports defaulting to previous periods. The fix simplifies date selection by removing the requirement for a 'custom' period type.
Original PR description
original pr: https://github.com/odoo/enterprise/commit/40484f985f511edd7ba2ae759ce63ef564bcf1f7 The The original pr forgot to change some values in the options of reports concerning the filter date. This is an issue for example when the report opens by default on previous period. Another way to reproduce is for example to create a working file with very custom dates, for example 1st February to 14 March, then exporting it. Then the date of the options won't be correct. To simplify the process, we don't require the key 'period_type': 'custom' when specifying dates on the options.
This update aligns the user interface of the Sign Now wizard to provide a more consistent experience, regardless of whether the user initiates a signature request through the 'Sign Now' flow or the 'Send Request' option. This enhances usability and reduces confusion for users completing the sign process.
Original PR description
in this commit i alligned the UI of sign send request wizard to look similar for both cases when the user click sign now and when the user click send request (self sign and send request) Task: 5942397
This update fixes an issue where manufacturing order notes with only images were being hidden in the Shop Floor view. The change ensures that notes containing images or text are now correctly displayed, improving the clarity of information for users.
Original PR description
In the Shop Floor view, manufacturing order notes containing only images were being hidden. The logic was stripping all HTML tags to check for text content; if no text was found, the entire note was treated as empty and returned false. This commit: - Updates `logNote` in `MRPDisplayRecord` to ensure the note is returned if it contains either visible text or an `<img>` tag. task-6048473
This update streamlines the timesheet process by adapting the user tour after a recent change. Now, users won't see validation errors when adding timesheets, and an empty grid view will display a few default lines. This improves usability and prevents tour interruptions.
Original PR description
In this commit: - Timesheet tour was adapted after the timer removal - To avoid blocking the tour: - An employee is automatically generated for the current user when trying to add a timesheet instead of displaying a validation error - My timesheets > few empty lines are displayed when the Grid view is empty task-5925597
This update corrects a technical issue impacting the accuracy of timesheet suggestions. Previously, the system incorrectly used a field for frequency calculations, leading to inaccurate event matching. This fix ensures timesheet suggestions are calculated correctly, improving the overall efficiency of time tracking.
Original PR description
This PR fixes two bugs related to the timesheets assistant, and its recently introduced feature that allows counting event project matching frequency separately from their label. - When saving timesheets from suggestions, we were taking its "Description" field for frequency calculations instead of the "Template" field, which was introduced in this purpose. - The "Template" field was added in the wrong place in the code, causing it to be sent to the back end as a field value when creating timesheets and causing a traceback.
This update resolves a technical issue where the signing dialog wasn't consistently sending necessary information. The fix ensures that all required data is correctly transmitted, improving the reliability of the signing process. This prevents potential errors and ensures a smoother experience for users completing the signing workflow.
Original PR description
Before this commit, the `this.signInfo.get("signRequestToken")` variable could be undefined in some cases. This commit ensure the correct values are always sent to the controller in the propagation.
task-6064181
Forward-Port-Of: odoo/enterprise#111786This update fixes an issue where duplicating a product template automatically published it. The change ensures that duplicated products remain unpublished by default, aligning with expected behavior. This prevents accidental product listings and maintains data consistency.
Original PR description
Issue: --- Duplicate product template creates a published product which is not expected. Duplicated products should be unpublished by default. #### Steps to reproduce: 1- Create a product and add a…
Issue: --- Duplicate product template creates a published product which is not expected. Duplicated products should be unpublished by default. #### Steps to reproduce: 1- Create a product and add a eCommerce category. 2- Without publishing the product duplicate it. Even though the original product is not published, the duplicated one is published. Expected: Regardless of published state of original product, the duplicated product should not be published. Cause: --- This regression is introduced in https://github.com/odoo/enterprise/pull/66218 to create a `is_published` product if `public_categ_ids` is set. However this was only supposed to be when creating a new product using form. It makes the create to ignore `is_published` default value even in copy. Fix: --- We can make sure if `is_published` is in create vals, don't force `is_published` to be set True. However, as `copy=False` in `is_published` field definition, it won't be in vals in copy. By overriding `copy_data`, we can ensure vals is present in copy. #### Note: `product_barcodelookup` doesn't depend on `website_sale`. However, `product_categ_ids` is used in this module. In the test for the same case we only run the test if the module is installed. This would be fine as this is a post-install test. opw-6014789 Forward-Port-Of: odoo/enterprise#112063 Forward-Port-Of: odoo/enterprise#111340
This update resolves a technical issue where Web Studio exports were incorrectly formatting property data. The fix ensures that property data is now exported in the correct XML format, improving the reliability of exported configurations. This ensures consistent and accurate exports for users of the Web Studio tool.
Original PR description
Since this commit*, properties are exported as an orm field object, while this method is meant to export the fields into xml records. This commit fixes this by converting the value before exporting it (using hidden _values). *https://github.com/odoo/odoo/commit/6f5e7aa783b336941f95c66ae70cb4ee160c00f4 Forward-Port-Of: odoo/enterprise#110336
This update corrects a technical issue preventing a key onboarding tour from running correctly. The fix involved adjusting the company referenced within the tour, resolving a previously unreplicable access rights problem. This ensures new users can successfully complete the referral onboarding process.
Original PR description
Before this commit, the tour `hr_referral_utm_campaign_tour` was failing because of some weird access rights issues. The issue did not seem to be reproducible in local with similar condition. This commit changes the company used in that tour runbot issue 239152 Forward-Port-Of: odoo/enterprise#111805
This update optimizes the testing process by pre-generating a key asset bundle used by the bus system. Previously, this bundle was rebuilt repeatedly during tests, causing delays. This change significantly speeds up test execution times, improving overall development efficiency.
Original PR description
This commit sets the `bus.websocket_worker_assets` bundle to be pregenerated while running tests to avoid rebuilding it at runtime (i.e. +900 times with a db "all"). Forward-Port-Of: odoo/odoo#255843
This update optimizes the testing process for the Live Chat module by pre-generating a key asset bundle. Previously, this bundle was rebuilt repeatedly during tests, causing performance slowdowns. This change significantly reduces test execution time and improves overall system stability.
Original PR description
This commit sets the `im_livechat.assets_embed_external` bundle to be pregenerated while running tests to avoid rebuilding it at runtime (i.e. +280 times with a db "all"). Forward-Port-Of: odoo/odoo#256149 Forward-Port-Of: odoo/odoo#255847
This update fixes an issue where receipts were displaying company information twice. This change was triggered by a previous update and ensures a consistent and accurate representation of company details on all receipts. It improves the user experience and data accuracy for point-of-sale transactions.
Original PR description
Before this commit, the receipt was showing the company information twice. It happened after the commit https://github.com/odoo/odoo/commit/dca40d16481ba504d608cc65d82e7821e01c5932. opw-6053013 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#255368
This update resolves an issue where the Chrome debug log file wasn't always created, potentially causing problems with Odoo's internal debugging. The change ensures Odoo correctly handles situations where the log file might be missing, improving stability and troubleshooting capabilities. This primarily impacts developers and support teams.
Original PR description
Follow up to #255054 [Apparently][] on old versions of chrome `chrome_debug.log` may not exist if the verbosity is not at least 1 (or chrome otherwise has had things to write to the log). Thus handle the possibility of the file being missing instead of assuming it's present just because we've told chrome to generate one. [Apparently]: https://github.com/odoo/odoo/pull/255054#pullrequestreview-4001460518 Forward-Port-Of: odoo/odoo#255846 Forward-Port-Of: odoo/odoo#255736
A recent update incorrectly reversed the product descriptions displayed in the shopping cart. This fix prevents this reversal, ensuring product details are shown in the correct order. While the change avoids the reversed display, it may slightly alter the order of variant and rental date information.
Original PR description
Issue: --- Due to this issue, the description following lines are inversed. Steps to reproduce: --- 1- In product page in backend, add a multiline "Short Description" to a product. 2- Navigate to website and add the product to the cart. 3- Open the cart. Outcome: The description after lines are shown inversed. Cause: --- This is introduced by https://github.com/odoo/odoo/pull/223433. It was done to ensure some information such as rental date and variant description are shown at the beginning. However, it didn't consider that the product description itself might have multilines. Fix: --- There is no clean way to reliably extract structured information from the computed name. To avoid reversing the product description lines, we no longer reverse the description. As a limitation, variant descriptions and rental dates may no longer always appear first. opw-5976614 Forward-Port-Of: odoo/odoo#252259
This update resolves an issue where the undo function didn't work correctly when replacing an image with a caption in the HTML editor. The fix removes a redundant history step, ensuring that the initial image replacement is properly reverted when the undo button is pressed. This improves the user experience and reliability of the editor.
Original PR description
Problem: Undo does not work as expected when an image has a caption. Cause: When replacing an image that has a caption, two history steps are added. As a result, the first undo does not revert the image replacement. Solution: Remove the unnecessary history step so the image replacement is correctly reverted on the first undo. Steps to reproduce: - Go to To-do → Create New. - Upload an image and add a caption. - Replace the image with another one. - Press Undo (Ctrl + Z). - Observe that nothing happens on the first undo. task-6014046 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#255786 Forward-Port-Of: odoo/odoo#252786
This update fixes inaccuracies in the tax exemption codes and reasons used for certain taxes within the Odoo accounting module for Belgium (l10n_be). Ensuring correct tax settings is crucial for accurate financial reporting and compliance with Belgian tax regulations. This change improves the reliability of tax calculations.
Original PR description
Some taxes had a wrong tax exemption code and tax exemption reason. This commit corrects them. task-4976471 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#254746 Forward-Port-Of: odoo/odoo#253309
This update resolves an issue where the customer rating form displayed a duplicate 'Comment' field, causing confusion for users. The fix makes the redundant 'publisher_comment' field invisible, streamlining the form and improving the user experience. This ensures consistent and accurate customer feedback reporting.
Original PR description
**Steps to reproduce:** - Enable the customer rating from project's setting. - Go to project > Reporting > Customer Ratings. - Open any rating record. - Observe that the 'Comment' field is displayed twice. **Issue:** - The form view contains a two different field with same string i.e feedback and publisher_comment **Fix:** - Made the publisher_comment field invisible in project's customer rating **Task-id: 5359052** Forward-Port-Of: odoo/odoo#237687
This update corrects a visual issue in Odoo invoices where information about hidden product sections within PDFs was misaligned. Previously, sections with hidden compositions didn't align properly with other invoice lines. This change ensures invoices are presented consistently and professionally.
Original PR description
Two fixes were r+ at the same time to correct the alignment Issue: Information displayed about sections with hidden composition are not align with the other lines. Steps to reproduce: - Create an invoice - Add a product - Add a section with any product. - Hide the composition of the section (with the 3 dots on the right) - Download the invoice PDF Current behavior: - Information on the hidden section compo are not align with other lines opw-6017276 opw-6030372 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#256411
This update resolves an issue where batch transfers would fail if the sequence prefix contained multiple forward slashes. The fix ensures the system correctly parses sequence prefixes, regardless of their structure, preventing crashes and allowing users to create and save batch transfers smoothly. This improves the reliability of the batch transfer process.
Original PR description
next_by_code() can return a sequence with multiple '/' in the prefix (e.g. "BATCH/test/00002" or "batch/test/2026/00002"). Using split('/') causes a ValueError: too many values to unpack.
Use rsplit('/', 1) to always split on the last '/' and correctly extract the sequence prefix and number.
Steps to reproduce the bug:
- Go to settings > technical > sequences & identifiers > sequence:
- batch transfer: - prefix: BATCH/test/
- Create a new batch:
- operation type: delivery orders
- Try to save
Problem:
a traceback is triggered:
```ValueError: too many values to unpack (expected 2)```
opw-6043880
Forward-Port-Of: odoo/odoo#255862
Forward-Port-Of: odoo/odoo#255761This update resolves a bug where pressing the spacebar in certain HTML content could unintentionally create symbols. The fix adjusts how the HTML editor calculates text offsets, ensuring it correctly handles content within 'file box' elements and preventing incorrect symbol generation.
Original PR description
Problem: Sometimes pressing space in content containing a symbol pattern creates the symbol even when the space is not placed directly before it. Cause: `leftLeafOnlyNotBlockPath` sums the…
Problem: Sometimes pressing space in content containing a symbol pattern creates the symbol even when the space is not placed directly before it. Cause: `leftLeafOnlyNotBlockPath` sums the `spaceOffset` of all non-block leaf nodes, then performs a substring on the whole block containing those leafs. In this case, the file box contains a `span` with `d-flex`, which is considered a block. Therefore, the file box text content length is not included in the `spaceOffset` calculation. However, we later call `substring` on the `textContent` of the `closestBlock`, which includes the file box content. This leads to an incorrect `spaceOffset`, effectively skipping the file box text. This can happen by chance when the `substring` returns the file box text content with `"-->"` immediately after it, making it the last character and triggering symbol creation. Solution: When computing the `substring`, consider only the `textContent` of the leaf nodes traversed while calculating `spaceOffset`. This ensures the offset matches the actual traversed content and prevents accidental symbol generation. Steps to reproduce: - Use the same HTML structure as in the test. - Place the selection as in the test case. - Press space. - Observe that a symbol is incorrectly created. task-6004954 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#252400
This update allows users to easily re-upload files within the link popover without needing to manually delete the previous URL. Previously, users were required to remove the old URL before adding a new file, which was a cumbersome process. This change streamlines the file upload experience for greater efficiency.
Original PR description
Specification: - When a user uploads a file in the link popover, user can not re-upload another file without manually removing previous URL. <img width="320" height="231" alt="image" src="https://github.com/user-attachments/assets/9e67535a-22a1-4d41-808d-a91d07593251" /> <img width="320" height="231" alt="image" src="https://github.com/user-attachments/assets/92a33d8c-a325-4979-9956-42e81b369bd7" /> After this commit: - This commit allows user to re-upload a file without removing previously generated URL first. - TL;DR : upload button won't disappear. task-5470111 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#247552
This pull request updates the core spreadsheet component to version 19.2.5, addressing several technical issues related to its functionality and performance. These fixes improve the spreadsheet's reliability and ensure it continues to operate smoothly within the Odoo platform. Multiple developers collaborated on this update.
Original PR description
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/f3beabc758 [REL] 19.2.5 [Task: 0](https://www.odoo.com/odoo/2328/tasks/0)…
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/f3beabc758 [REL] 19.2.5 [Task: 0](https://www.odoo.com/odoo/2328/tasks/0) https://github.com/odoo/o-spreadsheet/commit/d5c6bc0a1b [FIX] grid_renderer_store: keep wrapping width with explicit align [Task: 6032407](https://www.odoo.com/odoo/2328/tasks/6032407) https://github.com/odoo/o-spreadsheet/commit/49c9574a44 [FIX] functions: stop debugging context [Task: 6052128](https://www.odoo.com/odoo/2328/tasks/6052128) https://github.com/odoo/o-spreadsheet/commit/f809d67a5c [FIX] config: fix release flow [Task: 0](https://www.odoo.com/odoo/2328/tasks/0) https://github.com/odoo/o-spreadsheet/commit/a962b50527 [FIX] SheetView: dirtify sheet viewport at UPDATE_CELL [Task: 5953775](https://www.odoo.com/odoo/2328/tasks/5953775) https://github.com/odoo/o-spreadsheet/commit/f915568943 [FIX] xlsx: do not export dynamic tables to excel [Task: 5214240](https://www.odoo.com/odoo/2328/tasks/5214240) Co-authored-by: Florian Damhaut (flda) <flda@odoo.com> 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: Adrien Minne (adrm) <adrm@odoo.com> Co-authored-by: Ronak Mukeshbhai Bharadiya (rmbh) <rmbh@odoo.com> Co-authored-by: Dhrutik Patel (dhrp) <dhrp@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> Co-authored-by: Marceline Thomas (matho) <matho@odoo.com>
This update fixes an issue where users couldn't download files linked from Website Events pages, even if they could view the page itself. The change ensures that files uploaded via link URLs are publicly accessible by default, removing unnecessary security restrictions and simplifying the download process for all users.
Original PR description
Problem: On Website Events, when uploading a file as a URL in a link on a public page, portal users cannot download the file. Cause: The upload process attaches the current `res_model` to the file. As a result, access to the file depends on model permissions. Even if users can view the page, they may not have the rights required to download the attachment. Solution: Files uploaded through link URLs should be public by default, without `access_token`, `res_model`, or `res_id`, similar to the behavior in `web_editor`. Steps to reproduce: - Go to Website > Events. - Upload a file as a URL in a link. - Save the page. - Open the page in a new unauthenticated session. - The page and link are visible, but the file cannot be downloaded. opw-5993708 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#256047 Forward-Port-Of: odoo/odoo#253501
This update resolves a technical error that prevented accurate product cost calculations when multiple companies were involved. The issue stemmed from incorrectly accessing BOMs across different companies, leading to access errors. This fix ensures correct product costing is calculated regardless of the number of companies a user is working with.
Original PR description
When computing the product cost in `_get_product_cost_with_moves`, iterating over `product.bom_ids` would include BOMs from all companies, causing an `AccessError` when the current user lacked read access to a BOM belonging to another company. opw-6060735 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#255859
This update resolves a visual glitch that appeared when formatting tables in the To-Do module. Specifically, applying formatting like bold would create unexpected blank lines above the table. The fix prevents styling of system nodes, ensuring the table layout remains consistent.
Original PR description
Steps to Reproduce - Go to To-Do - Add a table - Type content inside the table - Select all using Ctrl + A - Apply formatting (e.g., Bold) Description of the issue: An empty line appears above the table and the layout shifts unexpectedly after applying formatting. Cause: `data-selection-placeholder` nodes exist before and after the table. These nodes normally have zero height. When selecting all content, these placeholder nodes are also included in the selection. Applying formatting styles them as well, which changes their height from zero. As a result, they become visible and appear as newly added blank lines, even though no new line was actually inserted. Solution Exclude system nodes, such as selection placeholder elements, from formatting operations. This prevents them from being styled and avoids unintended layout shifts. task-5976361 Forward-Port-Of: odoo/odoo#252416
This update fixes an issue where older databases continued to prevent users from selecting pick-up options for addresses outside of supported states. The change adds an explicit check to ensure the pick-up option is available, regardless of the database version, enhancing the user experience and preventing errors.
Original PR description
The Availability fields are no longer available for pick up in store as they were removed from the view. However, old databases that were upgraded might still have those fields filled, quietly preventing the option from showing up but also not allowing those fields being changed from the UI. To prevent that and allow some extra robustness, the availability is also checked explicitly. To reproduce: - In 18, create a pick up carrier and add some countries and states. - Upgrade to 19. - Try to use pick up with an address not belonging to those states, it won't be possible but it also won't be possible to modify the carrier. Forward-Port-Of: odoo/odoo#253354
This update fixes an error that prevented users from creating backorders when using batch transfers with specific picking configurations. The issue stemmed from an incompatibility between the batch validation process and backorder creation. Now, users can successfully create backorders after validating batch transfers, improving the reliability of this key workflow.
Original PR description
Scenario: - Create two pickings with same partner with at least two moves each, the picking type should have auto_group and auto_confirm - Add to a batch transfer - Change the quantity on a move line, unlink the other - Validate the batch ### Before this PR - Clicking "create backorder" the "incompatible types" error appear because tries to assign the batch currently validating to the backorder picking ### After this PR - No error appear --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#254492 Forward-Port-Of: odoo/odoo#251952
This update fixes an issue where invoices sent via Peppol were creating duplicate documents in the system. The change ensures attachments are synchronized only once during the dedicated document linking phase, streamlining the Peppol invoice process and improving data accuracy.
Original PR description
When sending an invoice via Peppol, the PDF and XML attachments are logged in the chatter. This automatically triggers a synchronization with the Documents app. However, the Peppol sending flow also includes a dedicated document linking step later in the process. This caused the same attachments to be registered as documents twice. This commit skips the document synchronization during the initial chatter logging step. The attachments will now only be synchronized once during the dedicated linking phase. Note: ec6e559 prevented duplicate attachments in the chatter with some cleanup code, but this cleanup code runs after the document has already been created and does not remove the document, resulting in duplicate documents, which this commit fixes. Task-6030468 Forward-Port-Of: odoo/odoo#256212 Forward-Port-Of: odoo/odoo#254893