Monday, April 13, 2026
13 changes · 18.0
Enhancements to existing features
This update enhances the reliability of order updates within the German Point of Sale certification module. Specifically, a new system ensures order changes (like line items) are processed sequentially, maintaining data accuracy. Additionally, unnecessary UI validation for ZIP codes and addresses has been removed as the backend handles default assignments.
Original PR description
In this commit: ------------------- - We have added logic to execute API calls using a mutex for order updates (such as line updates and removals). This ensures that each update is processed (sequentially), allowing us to properly track and maintain order consistency. - We removed the ZIP and address validation on the UI since the backend already assigns default values if they are missing. So, there’s no need to restrict the user on the UI. task:5941742
Resolved issues and error corrections
This update fixes an issue where draft journal entries in the payroll accounting module were incorrectly using the end of the month instead of the payslip pay period date. This ensures accurate accounting records and proper financial reporting for employee payroll.
Original PR description
Steps to Reproduce: - install payroll accounting module - create or update existing employee contract - change schedule pay to semi-monthly - create a payslip and validate it. - create draft entry and open the journal entry Issue: - The accounting date of the draft entry is the last date of the month. - It should be the end date of payslip pay period. Reason: - While creating draft entry it takes the last date of the month instead of the end date of the payslip Solution: - assign end date of payslip pay period instead of last date of the month task-5419465 Forward-Port-Of: odoo/enterprise#104909
This update resolves an issue where document sorting in the Documents app wasn't honoring the 'Sort by Name' setting configured within Odoo Studio. The fix removes a technical override that was causing documents to default to creation date sorting. Now, users can accurately set and maintain document sorting preferences through Studio.
Original PR description
Steps To Reproduce ------------------ 1- Navigate to the Documents app. 2- Open Studio and enter customization mode. 3- Set the "Sort by" field to "Name" in the Kanban or List view. 4- Save and close Studio. Issue ----- The documents remain sorted by creation date instead of alphabetically by name. The Studio "Sort by" configuration is ignored. Cause ----- https://github.com/odoo/enterprise/blob/7fb7b3168039f00b6d815202bc19ac35aa1d9b5e/documents/static/src/views/search/documents_search_model.js#L329-L331 This forces a fallback sort of create_date desc when super.orderBy is empty. This overrides the view's default_order attribute set by Studio. Solution -------- Remove the forced create_date desc fallback. Update the model's _order from 'id desc' to 'create_date desc, id desc' to preserve existing default behavior. This allows Studio's default_order customization to take precedence while keeping the default sorting logic in one place. opw-5382403
This update fixes a misleading warning that appeared when employee contracts partially overlapped with payslip periods. The change ensures that contracts with even a single overlapping day are now processed without the warning, improving user experience. This resolves a potential source of confusion and allows for more flexible contract scheduling.
Original PR description
[FIX] hr_payroll: fix payslip warning bug Bug reproduction: 1 - Select Hong Kong (actually there is nothing about Hong Kong, you can select other companies as well) 2 - Create an employee and make…
[FIX] hr_payroll: fix payslip warning bug
Bug reproduction:
1 - Select Hong Kong (actually there is nothing about Hong Kong, you can select other companies as well)
2 - Create an employee and make its contract from 01-01-2025 to 05-03-2026 (DD/MM/YYYY) format.
3 - Generate payslip for March, the warning of "The period selected does not match the contract validity period" popups.
4 - But we do not want that, even though there is 1 overlapping day in contract with payslip we can continue.
Bug cause:
1 - In >= v.17 (not in v.19), there was a warning, when the contract dates do not fully contains the payslip dates, the warning was appearing.
2 - In v.19 it is not the case, when there is a contract that overlaps at least one dat of the payslip then we are fine, if no overlap then no contract on payslip warning should appear
Bug solution:
1 - I replaced old warning "The period selected does not match the contract validity period" with the one in v.19 "No running contract over payslip period"
Tests:
1 - There was a unit test about old warning (test_payslip_warnings), I changed that parts.
2 - I added further steps to the existing test about the new warning that should appear (No running contract over payslip period)
Note: Implemented feature: need to check what happens after v.17, should be removed in v.19 latest, maybe before as well.
task - 6006693
Forward-Port-Of: odoo/enterprise#109791This update corrects a display issue where quotation dates weren't updating in the list view. The fix ensures that when a user changes the order date, the list view accurately reflects the new date, improving data accuracy and reporting.
Original PR description
Steps: - Install sale, sign and studio - Sales > Quotations - Add Order date(`date_order`) field in the list view using studio(use debug mode) - Select the widget `datetime_no_seconds` for `date_order` field from the studio left panel Issue: - Even after updating `date_order`, the Quotations list view continues to display the creation date for all quotations. Cause: - The formatting logic always defaults to the creation date when rendering `date_order`. - This happens because the date formatting function ignores incoming updated value and falls back to the creation date by default. Fix: - Update the code to accept the incoming `date_order` value when provided. - This ensures that when a user updates the date, the list view now correctly reflects the updated value. opw-5043343
This update corrects a technical issue related to date formatting on rental listings within the Enterprise version of Odoo. Previously, dates were displayed with an incorrect timezone, which has now been resolved to ensure accurate display for users. This ensures consistent and reliable rental information.
Original PR description
should be converted from website tz as they're going to be converted back by the front-end to that specific timezone. Runbot issue: 234756
This update corrects payroll calculations in the Belgian HR module to reflect the latest Federal Fiscal Exemptions (FFE) rates for 2026. This ensures accurate tax and social security deductions are processed for employees in Belgium, aligning with current regulations. The change is a technical fix to maintain compliance.
This update fixes a misleading warning message displayed during payslip generation. The change ensures that a warning only appears when a contract overlaps with the payslip period, aligning with the behavior in version 19. This improves the user experience and prevents unnecessary alerts.
Original PR description
Bug reproduction: 1 - Select Hong Kong (actually there is nothing about Hong Kong, you can select other companies as well) 2 - Create an employee and make its contract from 01-01-2025 to 05-03-2026…
Bug reproduction:
1 - Select Hong Kong (actually there is nothing about Hong Kong, you can select other companies as well)
2 - Create an employee and make its contract from 01-01-2025 to 05-03-2026 (DD/MM/YYYY) format.
3 - Generate payslip for March, the warning of "The period selected does not match the contract validity period" popups.
4 - But we do not want that, even though there is 1 overlapping day in contract with payslip we can continue.
Bug cause:
1 - In >= v.17 (not in v.19), there was a warning, when the contract dates do not fully contains the payslip dates, the warning was appearing.
2 - In v.19 it is not the case, when there is a contract that overlaps at least one dat of the payslip then we are fine, if no overlap then no contract on payslip warning should appear
Bug solution:
1 - I replaced old warning "The period selected does not match the contract validity period" with the one in v.19 "No running contract over payslip period"
Tests:
1 - There was a unit test about old warning (test_payslip_warnings), I changed that parts.
2 - I added further steps to the existing test about the new warning that should appear (No running contract over payslip period)
Last Test Update:
1 - I noticed that contract date changes was not affecting the warning appearance directly
2 - Unit test is expanded with contract date change and observing the warning appearance
Note: Implemented feature: need to check what happens after v.17, should be removed in v.19 latest, maybe before as well.
task - 6006693
Forward-Port-Of: odoo/enterprise#112758Currently, customers report errors when connecting or refreshing a Shopee account through the `sale_shopee` module. **Steps to reproduce:** - Install and configure the `sale_shopee` module - Attempt to connect a Shopee account via the onboarding flow - Complete the authorization process **Observed behavior:** An error is raised during the authorization callback, preventing the Shopee account from being connected or refreshed. **Root cause:** In `onboarding.py`, the `shopee_return
Original PR description
Currently, customers report errors when connecting or refreshing a Shopee account through the `sale_shopee` module. **Steps to reproduce:** - Install and configure the `sale_shopee` module - Attempt…
Currently, customers report errors when connecting or refreshing a Shopee account through the `sale_shopee` module. **Steps to reproduce:** - Install and configure the `sale_shopee` module - Attempt to connect a Shopee account via the onboarding flow - Complete the authorization process **Observed behavior:** An error is raised during the authorization callback, preventing the Shopee account from being connected or refreshed. **Root cause:** In `onboarding.py`, the `shopee_return_from_authorization` controller incorrectly uses `utils.with_context(authorization_code=code)`. Since `utils` is an imported Python module, calling `with_context` on it attempts to set the context on the module itself rather than on a model instance, which raises an error. **Solution:** Move the `with_context` call from the `utils` module to the `temp_shop` record, which is the appropriate model instance that needs the context. Additionally, this commit adds regression tests for the controller to prevent future regressions, as this functionality was previously untested. opw-6092524
This update corrects a technical issue where the PEPPOL endpoint information was being unintentionally overwritten during VAT creation. Now, the PEPPOL endpoint details from the imported file are correctly retained, ensuring accurate integration with PEPPOL services for VAT processing. This prevents data loss and improves the reliability of VAT handling.
Original PR description
Previously, even if the peppol eas and endpoint were found in the imported file, they would be overwritten when writing the vat on the created partner (due to computed fields).
This update resolves an issue where hidden fields within masonry blocks in the website editor were still visible. The fix involves applying a higher priority CSS rule to ensure the 'display: none' style is consistently applied, preventing it from being overridden. This ensures hidden fields truly disappear as intended.
Original PR description
# How to reproduce - Go to the website editor - Add a Masonry block - Add a Form inner block in the Masonry block - Select any fields of the form - Set it's visibility to Hidden - Save # The problem…
# How to reproduce - Go to the website editor - Add a Masonry block - Add a Form inner block in the Masonry block - Select any fields of the form - Set it's visibility to Hidden - Save # The problem The field is still visible. # Cause When a field has its visibility set to hidden, it is applied the `.s_website_form_field_hidden` CSS class which applies `display: none`. https://github.com/odoo/odoo/blob/995629db3231de944710751c3184bf1b8b1355c7/addons/website/static/src/snippets/s_website_form/001.scss#L26-L28 But that CSS rule is overriden by the masonry's `.s_masonry_block[data-vcss='001'] .row > div` CSS class. https://github.com/odoo/odoo/blob/995629db3231de944710751c3184bf1b8b1355c7/addons/website/static/src/snippets/s_masonry_block/001.scss#L1-L3 https://github.com/odoo/odoo/blob/995629db3231de944710751c3184bf1b8b1355c7/addons/website/static/src/scss/website.scss#L3246 # Proposed solution We set `display: none` with `!important` to prevent it from being overidden. We also need to add `!important` to its edit mode counter-part so that the field is still visible in that mode. opw-6038955 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
A previous error caused a blank page when users clicked the 'Check the sample button' in the sales module. This was due to a change in the link to the sample quotation PDF. This update provides a valid link, resolving the issue and ensuring users can access the sample quote.
Original PR description
Currently, a 404 error is occurring when the user clicks on the Check the sample button. **Steps to produce:** - Install sales module without demo data. - Click on the check a sample. its clean! button. **Issue:** - A 404 error occurs with a blank page. **Cause:** - This issue is occurring because the link to open the sample quotation pdf was changed in the Odoo documentation. **Solution:** - Give a valid link to open the sample quotation pdf. - similar fix already did [here1] & [here2]. [here1]: https://github.com/odoo/odoo/commit/38431f3aef57c5b91644b4c5241f226beb917b12 [here2]: https://github.com/odoo/odoo/commit/610cea89c37454a4ddb68939333b4b363f2f81a2 opw-6099641 opw-6074953
This update resolves an issue where images weren't displaying correctly on deeper website pages. The commit added missing forward slashes to image source URLs, ensuring the browser correctly interprets them. This ensures all website content, including product pages, displays properly.
Original PR description
This commit fixes two missing leading slashes in the "src" attribute of two "img" tags in `s_cta_mockups`. The browser resolves links differently based on leading slashes. Before this commit, the lack of leading slahses caused the snippet to not display properly on deeper pages (for example, "/shop/product-name"). task-6103616