Monday, May 11, 2026
9 changes · saas-18.3
Resolved issues and error corrections
This update fixes a bug where the PDF viewer field didn't save the uploaded file's name. Now, when you upload a PDF, the correct filename is stored, improving file management and organization within the system. This ensures users can easily identify and access their uploaded documents.
Original PR description
When uploading a file using the PDF viewer field, the filename was not stored in the corresponding filename field. This commit updates the PdfViewerField to support a filename field via the `filename` attribute. task-4825728 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#262767 Forward-Port-Of: odoo/odoo#259795
This update corrects a flaw in how missing transactions are identified for online statements. Previously, the system only checked transactions from the last sync date, potentially missing transactions before that date. Now, the system prioritizes the provided starting date, ensuring a more complete and accurate retrieval of online statement data.
Original PR description
When you want to find missing transactions, you have to put a starting date. But we don't use this starting date to find the last statement line, we only use the last sync date, which is wrong, because if the last sync date is after the starting date, the online transaction identifier will have the wrong date. It means we will only fetch the transactions from last sync date to today. This commit makes sure we take the start date first if it exists, then the last sync date. task-6197277 Forward-Port-Of: odoo/enterprise#116624
This update fixes an issue where contacts sharing common courses were incorrectly merged within the Odoo system. Now, attempts to merge these contacts will be blocked, preventing duplicate course information and ensuring data accuracy. This improves the reliability of our contact management features.
Original PR description
Expected Behaviour: Contacts enrolled in common courses should not be merged and the merge should fail. Steps to reproduce: 1- Go to one of the courses 2- Add two attendees to the course 3- Go to Contacts App 4- Select the two attendees you added to the course 5- Try merging the two contacts Actual Behaviour before the Fix: Contacts enrolled in common courses are getting merged and the common courses are kept in the destination contact. Behaviour with the Fix: Contacts enrolled in common courses are blocked from being merged and an error message is shown to the user saying that the reason the merge is blocked is a duplicate course. opw-5417223 Forward-Port-Of: odoo/odoo#244500
This update adjusts payroll deductions for employees 60 or older. The system now automatically stops NSSF (National Social Security Fund) contributions when an employee's birthday passes, aligning with Kenyan regulations. A new test has been added to ensure this functionality works correctly.
Original PR description
[IMP] l10n_ke_payroll: stop NSSF deductions after 60
When the user is creating a payslip and if the age of employee is >=60 the NSSF deductions must stop
(If the 60 years is finished in 10th of March -> it will stop in April (deduction stop starts from next month))
Test:
Unit test is written to check stopping NSSF deductions with dynamic birthday.
task - 6074658
Forward-Port-Of: odoo/enterprise#115236This update fixes a technical issue causing warnings when using filters on the job listings page. The change ensures that comparisons between filter values and record data are handled correctly, improving the stability and performance of the recruitment process. This resolves a potential source of errors and enhances the user experience.
Original PR description
Since templates refactoring in odoo/odoo@9a267abb9afe, when some filters are enabled on the /jobs page, a warning is logged for *each comparaison* with a reccord. Ex. when enabling the "Countries" filter: `py.warnings: <20856>:103: UserWarning: unsupported operand type(s) for "==": 'res.country()' == ''all''` This commit ensure we compare value of compatible types. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update resolves an issue where the composer field in the portal chatter wouldn't automatically focus after an emoji was added. The fix ensures the composer always receives focus, improving the user experience. This was caused by a missing default value for the composer's autofocus property.
Original PR description
Before this commit, after adding an emoji via the emoji picker in the portal chatter, the composer would not be focused. This is due to the `autofocus` prop of the composer being optional and not having a default value, leading to `NaN` when being incremented while `undefined`. This commit fixes the issue by giving it a default value of 0. task-6204911 Forward-Port-Of: odoo/odoo#263494
This update resolves an issue preventing the POS scale integration from working correctly with the latest IoT box version. The IoT box is now sending data differently, and this fix adjusts the system to handle the new response format. This ensures accurate weight readings for products sold through the POS scale.
Original PR description
Steps to reproduce - Use a localisation other than a european one (l10n_eu_iot_scale_cert must not be installed) - Setup the scale for the POS - Open the POS - Add a product to be weighted by scale to the order - Sell one of the weighted product Error: value.toFixed is not a function Cause: New versions of the IoT box send response status via data.status instead of data.status.status. [opw-6121011](https://www.odoo.com/odoo/project/49/tasks/6121011) Forward-Port-Of: odoo/enterprise#116579
This change resolves a test failure in the MRP module related to multi-lot consumption. The test was failing because the user account lacked the necessary 'lot tracking' group. By explicitly granting this group in the test setup, the expected 'lot_id' field is now correctly displayed, ensuring the test passes.
Original PR description
The test uses the stock move line detailed operations form and expects the `lot_id` field to be present in the view. Without demo data, the current user may not belong to the `stock.group_production_lot` group, causing the field to be absent from the rendered form view and the test to fail. Causing: `AssertionError: 'lot_id' was not found in the view` in line: https://github.com/odoo/odoo/blob/0442c66d26b0c23313f17c566b16e34e7b22c2b6/addons/mrp/tests/test_consume_component.py#L477 Grant the lot tracking group explicitly in the test setup. runbot-243588
This update resolves a test failure related to importing partner and bank account data for Italian reporting (l10n_it_reports). The change restores the test data to a consistent state, ensuring the tests continue to run successfully. This prevents disruptions to the reporting functionality.
Original PR description
The related PR brings a data change in a test file that is used here. We bring back the state of that data in the test class, so that the tests don't fail anymore. Community PR: odoo/odoo#254505 Task [link](https://www.odoo.com/odoo/project.task/6046189) task-6046189 Forward-Port-Of: odoo/enterprise#116726 Forward-Port-Of: odoo/enterprise#112794