Tuesday, February 11, 2025
30 changes · master
Enhancements to existing features
Public Knowledge pages can now show the toggle content block correctly. This improves the viewing experience for visitors by ensuring content authored with toggles appears as intended on the website.
Original PR description
This commit adds the new toggle embedded component to the embedding sets for the public version of knowledge. This way the component is correctly displayed on the frontend. task-2796594
Payslips will now automatically recalculate whenever they are saved, reducing the risk of payroll errors after changes to pay structure, period, or other calculation-related fields. This is especially helpful for batch payroll processing, where manually recomputing each payslip can be easy to miss.
Original PR description
There is a very high chance of committing mistake when the payslip is confirmed without re-computing (manually) after changing the Structure/Period or any other field which has impact on computation. This happens especially when dealing with batch payments, where payslips have to be re-computed and confirmed when sent back to the draft stage to change any of the above mentioned fields (like Structure, Period etc.) To address this, auto recomputation is required. This change makes the payslip recompute automatically whenever it is saved. task-4058455
Signed documents can now display a unique certificate reference on every page. This makes it easier to match a downloaded signed PDF with its certificate of completion and verify that they refer to the same final document.
Original PR description
## Before this commit: The final signed PDF documents did not include any reference to the certificate. The certificates' main Signature field is assigned to the creation hash which doesn't represent the final version of the assigned document. ## After this commit: The final signed PDF documents now include the log_hash of the final signature shown on the top of each page. The log_hash serves as a unique identifier for the signed document and links it to the certificate of completion. The certificate's main signature field is also showing the log_hash of the final signature which is now more accurate representing the downloaded signed document. __________________________________________________________________________________________________________ I confirm I have signed the CLA and read the PR guidelines at [www.odoo.com/submit-pr](http://www.odoo.com/submit-pr) task-id: 4423449
This update reorganizes the approval workflow code by moving approver-related logic into its own dedicated file. This makes the module easier to maintain and helps future changes be delivered with lower risk, without changing day-to-day user behavior.
The payroll payslip payment report has been renamed to make its purpose clearer for users. This is a small usability improvement that helps payroll teams identify the correct report more easily without changing core payroll processes.
Original PR description
task-4521806
The Approvals app now uses the term "Approval Categories" instead of "Approval Types" across related screens and settings. This makes the wording clearer and more consistent for users managing different kinds of approval workflows.
Original PR description
Renamed the "Approvals Types" to "Approval Categories". task-4483324
Point of Sale now supports dark mode, making the interface more comfortable to use in low-light environments. Related POS screens and integrations, including restaurant appointments, barcode lookup, and WhatsApp receipts, were updated for a consistent experience.
Original PR description
*: pos_restaurant_appointment, product_barcode, whatsapp_pos This commit adds dark mode support to the POS (Point of Sale) module requires: https://github.com/odoo/odoo/pull/196219 Task-4488031
The preparation display no longer uses the “skip change” order-line status to delay kitchen preparation. This simplifies the restaurant POS flow and prepares it for the newer courses feature, which handles staged preparation in a more standard way.
Original PR description
The “skip_change” status was introduced to ensure that the kitchen prepares order lines only when requested by the waiter. This commit removes that status, as it will be replaced by the courses feature, which manages it more effectively, aligning with standard POS software practices. task-4526151
The salary package resume setup now keeps payroll-specific options inside the payroll integration module. This prevents payroll choices from appearing where Payroll is not installed, making configuration clearer and less error-prone.
Original PR description
…on of resume type Traces of the payslip selection value of value_type was existing in hr_contract_salary where the value was not defined yet. The commit refactors them into the bridge module to show them only when the Payroll is also installed. task-4526851
Thai sales and tax Excel reports now handle credit notes more accurately and include point-of-sale related entries. This gives businesses a more complete and reliable view of sales and tax reporting activity.
Original PR description
Improve these two xlsx export by properly handling credit notes. The report is also no longer build based on the tax total, meaning that it can now display pos-related entries. Task ID: 4113553
Resolved issues and error corrections
This update cleans up and renames internal test helper files so they are handled correctly by the automated test system. It helps improve reliability of quality checks across accounting, planning, signing, localization, and related business workflows without changing day-to-day user features.
Code cleanup and technical improvements
The presence indicator support used by Documents has been moved into the messaging layer so it can be shared and maintained more consistently. This is mainly an internal restructuring that should preserve existing user behavior while preparing related platform updates.
Original PR description
preparation for PR: https://github.com/odoo/odoo/pull/171220 community PR: https://github.com/odoo/odoo/pull/177611 upgrade PR: https://github.com/odoo/upgrade/pull/6460
Miscellaneous changes
[FIX] currency_rate_live: Fix BI service API calls failing. This fix adapts our request to the BI service's "unpublished changes" that require a user agent when making a request to their API. opw-4475353 Forward-Port-Of: odoo/enterprise#78362
Original PR description
[FIX] currency_rate_live: Fix BI service API calls failing. This fix adapts our request to the BI service's "unpublished changes" that require a user agent when making a request to their API. opw-4475353 Forward-Port-Of: odoo/enterprise#78362
Accounting journal names have been updated to better reflect the range of documents they can contain, including invoices, bills, refunds, and credit notes. This makes the labels clearer for users and reduces confusion in accounting workflows and related reports.
Original PR description
The journal have a name that implies that you should only have Customer Invoices or Vendor Bills but you can also get refunds and credit notes. task-4427096
This fix restores missing internal markers on customized behavior so Odoo handles those processes consistently. It helps avoid subtle issues in recruitment referrals, subscription closing, and enterprise web behavior without changing how users work day to day.
Original PR description
Some overrides are missing the decorator from the definition. odoo/odoo#196923
The Sign app's email notification test now works consistently even when demo data is turned off. This helps prevent false test failures and keeps quality checks reliable across different setup configurations.
Original PR description
fixed `test_sign_request_notification` to work when demo data is disabled. - Ensure `self.env.user.email` is set before triggering email-related assertions. - Use `formataddr` for consistency in `assertSentEmail` to match the expected sender format. This ensures the test properly validates email notifications regardless of demo data availability.
Shiprocket delivery methods can only be published when required credentials and sender company details are complete. If credentials change after publication, the method is automatically unpublished and users are warned when related company information is edited, reducing failed Shiprocket integrations.
Original PR description
With this commit : ----------------------------------- - Implemented validation to check all required credentials and company information (street, country, zip code, mobile number, email) before publishing the Shiprocket method. - Added functionality to set the Shiprocket method to automatically 'unpublished' if credentials are updated after publication. - Introduced a warning message for users when shippers' company information is edited. - These changes ensure that all necessary information remains accurate and up-to-date, preventing potential issues with the Shiprocket integration. Task-id: 4042891
Pivot dimensions in spreadsheets can now be dragged reliably even when the side panel contains many items. The update ensures the full side panel scrolls during drag-and-drop, making pivot configuration smoother for users.
The Sign app's Sample Document button now opens the example document instead of showing an error. This removes a blocker for users trying to preview or test the signing workflow.
Original PR description
Version: - 18.2 Steps to reproduce: 1. Open the Sign app. 2. Click the "Sample Document" button. Issue: - A traceback error occurs. Cause: - The method name used in the `onclick` event does not match the actual method name. Solution: - Correct the `onclick` method name to properly call the `onClickSampleSign` method.
This fixes an issue in barcode delivery operations where increasing the quantity on an existing line could wrongly change its source location after scanning another location. Warehouse teams can now adjust quantities without accidentally moving stock from the wrong location, improving inventory accuracy.
Original PR description
Before this commit, When scanning a source location different from the move line's current location, followed by an increment in the quantity, would incorrectly update the move line’s location. Steps To Reproduce =================== - Enable storage location settings. - Create a delivery order (by default, the source location is Stock). Add a product from Shelf1 (or any child location of the source location). - Go to Barcode Delivery Operation type and select the newly created delivery order. - Scan `WHSTOCK` as the source location. - For an existing line from `WH/Stock/Shelf1`, press `+1`. The line’s location should remain as `Shelf1`, but it incorrectly updates to `Stock`. With this fix, scanning a location different from the move line’s current location and then updating the quantity will no longer change the move line’s location. task: [4551137](https://www.odoo.com/odoo/my-tasks/4551137)
Source: https://www.socialsecurity.be/employer/instructions/dmfa/fr/latest/intermediates#bonus-a-lemploi-plafonds-apres-indexation-05-02-2025 TaskID: 4558145 Forward-Port-Of: odoo/enterprise#79047
Original PR description
Source: https://www.socialsecurity.be/employer/instructions/dmfa/fr/latest/intermediates#bonus-a-lemploi-plafonds-apres-indexation-05-02-2025 TaskID: 4558145 Forward-Port-Of: odoo/enterprise#79047
Users manually reconciling foreign currency entries sometimes do not perfectly balance the operation. In this case the system needs to collect the amount residual by currency and propose a write-off. Currently the system will raise a traceback when the residual amount is only in foreign currency Steps to reproduce: - Have a foreign currency (EUR) with exchange rate 36.0 - Have a Journal [JNL] in foreign currency - In [JNL] register a Vendor Payment of amount 51,993.01 EUR (1444.25 USD) -
Original PR description
Users manually reconciling foreign currency entries sometimes do not perfectly balance the operation. In this case the system needs to collect the amount residual by currency and propose a write-off.…
Users manually reconciling foreign currency entries sometimes do not perfectly balance the operation. In this case the system needs to collect the amount residual by currency and propose a write-off. Currently the system will raise a traceback when the residual amount is only in foreign currency
Steps to reproduce:
- Have a foreign currency (EUR) with exchange rate 36.0
- Have a Journal [JNL] in foreign currency
- In [JNL] register a Vendor Payment of amount 51,993.01 EUR (1444.25 USD)
- In [JNL] register a new transaction as follows:
- Foreign currency: USD
- Amount in Currency: 1444.25
- Open Journal Items and select:
- The credit entry from the Vendor Payment
- The debit entry from the transaction
- Reconcile
Issue: A traceback will raise
```
File "[...]/account_accountant/wizard/account_reconcile_wizard.py", line 337, in <genexpr>
residual_values[amls.company_currency_id]['residual']
KeyError: res.currency(1,)
```
opw-4514336
Forward-Port-Of: odoo/enterprise#78735Steps to reproduce: ------------------- 1. create 2 contacts : - one as a company (named parent contact for example) - and one as individual (named child contact) and set its parent company to the (parent contact). 2. create an invoice and set the partner to the (child contact). 3. set the invoice date and due date of the invoice to one month ago. 4. open the parent company (parent contact) -> accounting -> followup. You will see that Follow-up Status = in need of action, but if y
Original PR description
Steps to reproduce: ------------------- 1. create 2 contacts : - one as a company (named parent contact for example) - and one as individual (named child contact) and set its parent company to the (parent contact). 2. create an invoice and set the partner to the (child contact). 3. set the invoice date and due date of the invoice to one month ago. 4. open the parent company (parent contact) -> accounting -> followup. You will see that Follow-up Status = in need of action, but if you clicked the Overdue Invoices, you will not find any invoices. Cause: ----- Since action_open_overdue_entries() introduced in V18.0, the window action filters invoices by partner set on the invoice while the Follow-up Status query checks the move lines which is always set to the parent company of the partner. Fix: --- Use commercial_partner_id instead of partner_id for the domain filter. OPW-4501051 Forward-Port-Of: odoo/enterprise#78737
Before this commit: when triggering a followup reports on parent company, followup levels on both parent company and branches were triggered, meaning duplicated datas could be sent to customers. After this commit: Now only the followup on the current company is triggered, ignoring all the branches. task-4393081 Forward-Port-Of: odoo/enterprise#78873 Forward-Port-Of: odoo/enterprise#75572
Original PR description
Before this commit: when triggering a followup reports on parent company, followup levels on both parent company and branches were triggered, meaning duplicated datas could be sent to customers. After this commit: Now only the followup on the current company is triggered, ignoring all the branches. task-4393081 Forward-Port-Of: odoo/enterprise#78873 Forward-Port-Of: odoo/enterprise#75572
During sharepocalypse, we injected the ListView.Selection component from the control panel directly instead of using t-slots. This made our list view component limited to the features we want to support in the kanban view, so fewer than what the webclient supports. This commit restores the List View features on the list view. Task-4544692 Forward-Port-Of: odoo/enterprise#78417
Original PR description
During sharepocalypse, we injected the ListView.Selection component from the control panel directly instead of using t-slots. This made our list view component limited to the features we want to support in the kanban view, so fewer than what the webclient supports. This commit restores the List View features on the list view. Task-4544692 Forward-Port-Of: odoo/enterprise#78417
…on display option Issue: In the POS settings, even after disabling the preparation display option, it remains enabled after saving. Steps to reproduce: -In POS configuration -Ensure the Pay after option is set to each order. -Disable self ordering and uncheck the preparation display option, save. Explanation: In res_config_settings.py of pos_self_order, https://github.com/odoo/odoo/commit/8ee8010cf67f20c4eb28a334cc943bfedf2dd0d1 added a check to ensure that the preparation display is
Original PR description
…on display option Issue: In the POS settings, even after disabling the preparation display option, it remains enabled after saving. Steps to reproduce: -In POS configuration -Ensure the Pay after option is set to each order. -Disable self ordering and uncheck the preparation display option, save. Explanation: In res_config_settings.py of pos_self_order, https://github.com/odoo/odoo/commit/8ee8010cf67f20c4eb28a334cc943bfedf2dd0d1 added a check to ensure that the preparation display is enabled if self-ordering is active. However, it was still automatically enabling the preparation display even when self-ordering was disabled. (forward port of https://github.com/odoo/enterprise/commit/d3606d5a99ba7328cce164c0c16ff594d7639f4a) opw-4225668 X-original-commit: https://github.com/odoo/odoo/commit/2d753a90d0612b35d9d012574915d2e6bb754b1f Forward-Port-Of: odoo/enterprise#76696 Forward-Port-Of: odoo/enterprise#74256
Before this commit, if the 'Consumidor Final Anónimo' partner was archived, attempting to open the PoS would lead to an error. This commit shows a clearer error message. opw-4506474 Forward-Port-Of: odoo/enterprise#77903
Original PR description
Before this commit, if the 'Consumidor Final Anónimo' partner was archived, attempting to open the PoS would lead to an error. This commit shows a clearer error message. opw-4506474 Forward-Port-Of: odoo/enterprise#77903
The computation for the cars bik has changed in belgium for 2025. This adds rule parameters and changes the computation to reflect those changes. Task: 4409219 Forward-Port-Of: odoo/enterprise#78978 Forward-Port-Of: odoo/enterprise#77557
Original PR description
The computation for the cars bik has changed in belgium for 2025. This adds rule parameters and changes the computation to reflect those changes. Task: 4409219 Forward-Port-Of: odoo/enterprise#78978 Forward-Port-Of: odoo/enterprise#77557
STEP TO REPRODUCE: 1- Install The belgium payroll 2- Go to Payroll 3- Go to reporting > Declaration 274.XX 4- Click on generate xml file Forward-Port-Of: odoo/enterprise#79008
Original PR description
STEP TO REPRODUCE: 1- Install The belgium payroll 2- Go to Payroll 3- Go to reporting > Declaration 274.XX 4- Click on generate xml file Forward-Port-Of: odoo/enterprise#79008
In this PR: - Replaced the `search` method with `_get` to directly fetch the `gstr1_status` field from `l10n_in.gst.return.period`, improving efficiency and readability. Forward-Port-Of: odoo/enterprise#78575
Original PR description
In this PR: - Replaced the `search` method with `_get` to directly fetch the `gstr1_status` field from `l10n_in.gst.return.period`, improving efficiency and readability. Forward-Port-Of: odoo/enterprise#78575