Daily updates from Odoo
Thursday, January 22, 2026
6 changes · master
New functionality added to Odoo
This pull request introduces preliminary work for integrating hardware devices (specifically, the 'blackbox') into the Odoo Enterprise system. The changes include new models, views, and security configurations to support the device's data and functionality. This is an initial development phase and requires further refinement.
Resolved issues and error corrections
This update corrects a database issue related to how VAT data is handled in Odoo's Brazilian retail module (l10n_br_edi_pos). An earlier update removed a necessary step to ensure VAT data was properly formatted in newer Odoo versions. This fix reintroduces a small code block to guarantee accurate VAT data processing, preventing potential reporting errors.
Original PR description
In [^1], we removed the compacting code that existed in l10n_br modules as all vats are now stored as compact forms since [^2]. *However*, we did not consider that databases updated to 18.4+ would not automatically apply the compacting code to all records. As such, we have reintroduced a small block of compacting code in `l10n_br_edi_pos` as that one does special operations with the VAT that needs to be stripped of special characters. opw-5491321 [^1]: odoo/enterprise#87562 [^2]: odoo/odoo#179078 Forward-Port-Of: odoo/enterprise#104960
This update resolves an error that occurred when generating PDF reports for accounting, specifically when a contact didn't have a name assigned. The fix ensures the report exports correctly even with contacts lacking a name, improving the reliability of the reporting process.
Original PR description
Currently, an error occurs when exporting an accounting report to PDF if any of the selected contacts do not have a name. **Steps to reproduce:** - Install the `account_reports` and `contacts`…
Currently, an error occurs when exporting an accounting report to PDF if any of the selected contacts do not have a name. **Steps to reproduce:** - Install the `account_reports` and `contacts` modules. - Go to Contacts and open any contact (e.g., Azure Interior). - Click `Add` > `Save & Close`, then `save` the contact. - Navigate to Accounting > Reporting > Aged Receivable. - Click `Partners` button and select the newly created contact (e.g., `Azure Interior, Other Address`). - Click `PDF` to export the report. **Error:** `TypeError: sequence item 0: expected str instance, bool found` **Root Cause:** At [1], `options['selected_partner_ids']` is built using `partner.name`, which may be `False` for unnamed contacts. At [2], the `partner_value` list may therefore contain `False` entries coming from `options['selected_partner_ids']`. When calling `', '.join(partner_value)`, an error is raised because the list contains `non-string` (`bool`) values. **Fix:** This commit prevents errors when exporting reports to PDF and ensures that partner names are displayed in the report the same way as in the partner selection widget. [1]: https://github.com/odoo/enterprise/blob/a0ec2fcdc043cf52f1a646e84b9b97466072d47f/account_reports/models/account_report.py#L745 [2]: https://github.com/odoo/enterprise/blob/099c7b94ad08f83873c05ec528e16fbf806f47f2/account_reports/data/pdf_export_templates.xml#L84-L93 opw-5467321 Forward-Port-Of: odoo/enterprise#105025 Forward-Port-Of: odoo/enterprise#103828
This update fixes an issue where selecting a work order in the MRP Overview would incorrectly prioritize it. The fix ensures that work orders are sorted correctly based on their actual record identifiers, resolving a display problem. Additionally, the 'show case' work order now remains at the top when using pagination for the first page.
Original PR description
Selecting an operation in the Overview makes it the 'show case' and first in the workcenter's operations list. However, acting on the workorder (adding a by-product for example) moves it to another position in the list. This because defineRelevantRecords wrongly uses record.'id' to sort recordsAlreadyInCache (internal data like 'datapoint_<n>' not present in the cache that contains record identifiers). Using the real record identifier 'resId' corrects the sorting operation. We also want the 'show case' workorder selected in the Overview to stay on top when using pagination (not for all pages, only the first one). task: 5028095 Forward-Port-Of: odoo/enterprise#98863
This update corrects a display issue in the applicant recruitment reports module. Previously, stage change notifications weren't labeled correctly in chatter, leading to confusion. The fix ensures that stage change messages are accurately identified and shown with the correct 'Stage changed' label, improving the clarity of applicant communication history.
Original PR description
…records in hr_recruitment_reports demo data Steps to reproduce: 1. Load demo data for hr_recruitment_reports module 2. Check applicant records in chatter 3. Observe that stage change messages don't show "Stage changed" label Bug cause: mail.message records for applicant stage changes were missing the subtype_id field, which defaults to an incorrect subtype (mt_note instead of mt_applicant_stage_changed). This caused the messages to be treated as internal notes rather than stage change notifications. Solution: - Add subtype_id field with reference to hr_recruitment.mt_applicant_stage_changed to all mail.message records that track applicant stage transitions - This ensures stage change events are properly identified and displayed in chatter with the correct "Stage changed" label Affected records: 20 mail.message records in hr_recruitment_reports_demo.xml Task Id:5454691
Miscellaneous changes
This pull request represents the initial stages of work within the Odoo Enterprise project. It includes preliminary changes and requires further refinement and testing. The goal is to implement new features and improvements to enhance the core functionality of the platform.
Original PR description
Pending message