Daily updates from Odoo
Wednesday, December 10, 2025
9 changes · 17.0
Resolved issues and error corrections
This update resolves an issue where users utilizing the Swedish POS blackbox couldn't adjust prices within the system. The change allows price control functionality, aligning with requirements for the Swedish blackbox, which differs from the Belgian version. This ensures accurate pricing for Swedish customers using the POS.
Original PR description
Before this commit, user couldn't control the price in the POS if using the swedish blackbox. After this commit, user can control the price. It's not clear why the behavior at integration was set to this but it appears that it's not mandatory for swedish blackbox unlike the belgian one. opw-5253401
This update resolves an issue where portal users couldn't update lead data after a recent security change. The team implemented a temporary workaround using 'sudo()' to grant necessary write access, ensuring portal users can now modify lead information as intended. This ensures seamless opportunity management through the portal.
Original PR description
## Steps to reproduce: - Install 'website_crm_partner_assign' module. - Create a partner X with a partner level. - Save and go to "Opportunities". - Create an new opportunity. - Edit it and set the…
## Steps to reproduce: - Install 'website_crm_partner_assign' module. - Create a partner X with a partner level. - Save and go to "Opportunities". - Create an new opportunity. - Edit it and set the partner X as the assigned partner - Grant the partner x portal access and change his password. - Logout then login with the partner X credentials. - Go to "My account" page and click on "Opportunities" - Select the opportunity Y and edit the revenue or another field. - Traceback on save. (Or no reaction, popup traceback from notification) ### Issue: Since the commit ed94e84, we've removed the write access for portal partner users to the leads to avoid unexpected behaviors. However, this is provoking `update_lead_portal` to not be able to update the lead anymore, since we will not have direct access to modify the lead. ### Solution: To fix this, we will follow same approach as in `update_contact_details_from_portal` and use `sudo()` to update the lead from the portal. We are already checking the portal access at the beginning of the method as `self._assert_portal_write_access()`, so we are sure that only authorized users will be able to update the lead. opw-2764563 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update resolves a technical issue that caused the Gantt chart to crash when an event's start or end date was cleared. The fix ensures the Gantt calculation only runs when a valid date range exists, preventing errors and improving stability.
Original PR description
When removing the start or end date on an Event, the system raises a traceback during Gantt information computation. **Steps to Reproduce:** 1. Install `website_event_track_gantt` module. 2. Create a new Event. 3. Add at least one **Track** with a track **Date** and **Duration**. 4. In the Event form, clear the Start or End Date field. **Error:** `TypeError: '<' not supported between instances of 'datetime.datetime' and 'bool'` **Cause:** When the event start or end date is removed, those fields become False. During computation, the system attempts to compare these False values with the track dates (which are real datetimes), resulting in an invalid datetime-boolean comparison, causing the error. **Fix:** This commit ensures the Gantt calculation only executes when the event has a valid date range, avoiding comparisons that include missing values. no id
This update fixes an issue where the barcode scanning app on mobile devices displayed stock locations in a list view, which isn't ideal for small screens. The change prioritizes kanban views for mobile, ensuring a more user-friendly experience when scanning barcodes and viewing stock information. This improves usability on mobile devices.
Original PR description
Issue ===== On mobile, we should prioritize kanban views over list views because kanban views are usually more suitable for small device screen. That said, when a product's barcode is scanned in the Barcode app main menu, we show this product's stock locations but we do that with a list view, no matter if the user is on a big screen or a small screen. How to reproduce ================ On mobile device: - Enable location and have a product with a barcode and with quantities in two different locations; - Open Barcode app; - Scan the product's barcode => The product's stock locations are displayed in a list view, which is not very pratical on small device. Fix === The action key `mobile_view_mode` was not set, with this key, we can define what view type we want to prioritize for mobile device. [opw-5180783](https://www.odoo.com/odoo/project/49/tasks/5180783)
This update fixes an issue where the barcode app wouldn't correctly assign a package as the 'result package' when it already contained items. The fix ensures that packages, regardless of their contents, can be properly used as destination packages during internal transfers, improving the reliability of the barcode scanning process.
Original PR description
Issue ===== When scanning a package as result package, if the package is empty, it works, but if this package already has content, it doesn't work. How to reproduce ================ 1. Enable…
Issue ===== When scanning a package as result package, if the package is empty, it works, but if this package already has content, it doesn't work. How to reproduce ================ 1. Enable "Packages" and "Storage Locations" settings; 2. Create two packages with some content in WH/Stock/Shelf 1; 3. Create an empty package; 4. Create an internal transfer directly from the Barcode app; 5. Scan Shelf 1 barcode and scan first package; 6. Scan the empty package => It's assigned as the result package; 7. Confirm the operation; 8. Create another internal transfer; 9. Scan Shelf 1 barcode and scan second package; 10. Scan the no more empty package => This time, it's not assigned as the result package. Reason ====== A package was assigned as the result package only if one of the following conditions is matched: 1. The scanned package is empty (it's what's happening in 6.); 2. The selected line has no result package yet and the scanned package is in the selected line's destination location. Here, it doesn't work because since we move a package, the barcode line has already a destination package (the same then the source package.) Fix === For the condition 2., adapt the condition to make it works too if the selected line has the same package as the source and result package. [opw-5326234](https://www.odoo.com/odoo/project/49/tasks/5326234)
This update fixes a potential issue where changes to parser rules couldn't be saved after the parser was initially set up. This change ensures that parser rules are consistently applied, improving data integrity and preventing unexpected behavior. It's a routine maintenance update.
Original PR description
The parser rules cannot be modified once the parser has been instantiated. task-5091744 Forward-Port-Of: odoo/odoo#239046
This update corrects an issue where changing a sale order's price (through pricelists or manual adjustments) could lead to incorrect unit prices on invoices. The fix prevents recomputing unit prices for invoice lines linked to sale orders, ensuring the invoice accurately reflects the original sale price. This improves invoice accuracy and reduces potential pricing discrepancies.
Original PR description
Commit 8df3d0424b30289d81e15a483dcc779bfe3964ba fixed an inconsistent behavior on invoices, but introduced a side effect: when the unit price comes from a sale order where the price was changed (via a pricelist or manually), recomputing the unit price after changing the fiscal position may result in an unintended price. At that point, the invoice no longer has the necessary information to restore the original SO price. To avoid this, we no longer recompute the unit price for invoice lines originating from sale orders. task-5373733
This update resolves an issue where Odoo's logging system incorrectly handled log messages containing complex data, specifically mappings. The fix reorganizes the logging process to correctly format these messages, ensuring more reliable and consistent logging output. This improves overall system stability and reduces the risk of logging-related errors.
Original PR description
When `lower_logging` encounters a `LogRecord.args: Mapping`, it fucks up and strips out all the values keeping only the mapping keys (as a tuple), which then breaks when trying to format it in `LogRecord.msg`. Fix the issue by moving the entire message munging into, appropriately, the formatter: `getMessage` will do the `str.__mod__` call at which point we don't need to deal with the args at all, then `formatMessage` generates the full message line (not including the stack traces from `exc_info` and `stack_info`, those are added in the second half of `Formatter.format`). https://runbot.odoo.com/odoo/error/234669 Forward-Port-Of: odoo/odoo#239410
This update fixes an issue where service invoices were incorrectly generating customs valuation data in the Complemento de Comercio Exterior. The change ensures service lines adhere to SAT guidelines, setting `ValorUnitarioAduana` and `ValorDolares` to zero, preventing potential invoice rejections. This improves compliance with Mexican customs regulations.
Original PR description
When generating the Complemento de Comercio Exterior for invoices that include products of type "service", the system incorrectly fills the `ValorUnitarioAduana` and `ValorDolares` fields for such lines. According to the official SAT guidelines and the c_ClaveUnidadAduana catalog, when the Aduana unit code is "99" (which corresponds to "Servicios (no objeto de comercio exterior)"), the following rules apply: - `ValorUnitarioAduana` must be 0. - `ValorDolares` must be 0. This change ensures that service lines are correctly excluded from customs valuation in the Complemento de Comercio Exterior XML, preventing potential rejection of CFDIs due to invalid information. References: - [SAT Guía de llenado Complemento Comercio Exterior](http://omawww.sat.gob.mx/tramitesyservicios/Paginas/documentos/Guia_complemento_Comercio_Exterior.pdf)