Daily updates from Odoo
Navigate
Branch
Sunday, August 31, 2025
13 changes
9 changes
Enhancements to existing features
This change removes an older page rendering cache setup that no longer provides meaningful performance benefits and had become costly to maintain. It simplifies related appointment, room booking, and subscription pages, making future improvements easier while keeping performance expectations stable.
Original PR description
The project was implemented several years ago based on a number of observations and points of attention. For example, the cache keys had to be very short and the number of t-nocache occurrences limited. The page wasn't updated instantly, so it required a button to invalidate the cache. The maintenance cost and code readability were strong counterarguments to using the t-cache. As time went by, the cache keys grew in size and the number of nocache occurrences increased. It turns out that there is no significant performance impact from using this cache. Performance gains could be achieved with specific caches at the data model level. see community
Deleting an article from a Knowledge article index now moves it to the trash instead of permanently removing it, reducing the risk of accidental data loss. The index also refreshes after deletion attempts, helping clean up outdated entries and avoid user-facing errors when the index is out of sync.
Original PR description
When a user deletes an article from the article index, the article is currently permanently deleted from the database. This can be frustrating if the user clicks the icon by mistake. To improve the experience, we will change the behavior so that the article is moved to the trash instead of being immediately deleted. Additionally, when the article index becomes desynchronized, attempting to delete an article may raise an error. To address this, we will wrap the ORM call sending the article to the trash with a try/catch and always resynchronize the block. This should ensure that the invalid entries are removed from the article index. Task-4989809
The AI module now supports GPT-5 as an available provider. This expands the choice of AI models and can improve the quality or capability of AI-powered workflows that rely on large language models.
Original PR description
GPT-5 > all others.
The update adds coverage for using Twilio as an SMS provider in marketing automation and makes SMS activity execution more predictable. This helps reduce flaky behavior during testing and debugging, improving confidence in automated SMS campaign workflows.
Original PR description
Add tests for twilio integration as an SMS provider. See community PR for more details. Task-4658352 Forward-Port-Of: odoo/enterprise#93495
Resolved issues and error corrections
Users can no longer delete templates from the annex picker, preventing broken child template links that previously caused errors. This keeps template browsing reliable when working with article index blocks.
Original PR description
The annexe picker can display a hierarchy of articles. When a user deletes a template, both the template and its children are removed from the database. However, while the template is removed from the gallery, its children remain visible and clickable in the interface. Clicking on these child templates causes the system to raise an exception, indicating that the record does not exist. Steps to reproduce the error: 1. Open an article created from a template. 2. Use the /index command. 3. In the index block, click on "Load a Template." 4. Delete a parent template. 5. Attempt to open a child template. -> An error occurs stating that the record does not exist. To prevent this issue and maintain code simplicity, this commit disables the deletion of templates in the annexe picker. Task-4989809
The eSignature signing dialog now consistently opens with the automatic signature option selected, whether or not the user already has a saved signature. This avoids confusion and provides a more predictable signing experience.
Original PR description
Ensure the signature dialog consistently defaults to the "auto" option, regardless of whether a user has a pre-set signature or not. task-5012307 Forward-Port-Of: odoo/enterprise#93427 Forward-Port-Of: odoo/enterprise#92276
The US tax report is now connected to its related tax return type. This allows the system to set tax lock dates automatically, reducing manual work and helping keep filing workflows consistent.
Original PR description
During this pr odoo/enterprise#87346 the US tax report was added. We can link this report with the return_type so that the lock date can be set automatically. Forward-Port-Of: odoo/enterprise#93391
This fix removes country restrictions from the Chinese reports and French Intrastat module setup. It ensures related reporting modules can install automatically when new localizations are added, even if no existing company is already in that country.
Original PR description
Specifiying countries in the manifest will only auto-install the module if at least one company is in one of the countries. This is not wanted as, if someone already has a company with it's reports module, and we add a new localization. We want that new localization to auto-install it's reports module. Forward-Port-Of: odoo/enterprise#93412
Code cleanup and technical improvements
This update adjusts internal handling of helpdesk timesheet transactions so user or environment timezones are applied correctly. It helps ensure time-related records are interpreted consistently across different locations without changing the visible workflow.
Original PR description
Need to refactor the code to flush and reset transaction so that the timezones on environments are taken into account.
4 changes
New functionality added to Odoo
Odoo adds a new Twilio SMS option so companies can send text messages using their own Twilio account instead of relying only on Odoo's IAP relay. This helps customers meet country-specific carrier registration requirements and improves SMS reliability in markets where direct sender authorization is required.
Original PR description
We provide a SMS service for our clients through an IAP service. It has almost no annoying configuration, the Odoo database sends stuff to an IAP proxy, that sends the SMS to our providers for them.…
We provide a SMS service for our clients through an IAP service. It has almost no annoying configuration, the Odoo database sends stuff to an IAP proxy, that sends the SMS to our providers for them. Cool, easy, it's used quite a bit. BUT for this to work, Odoo "registers" itself to our providers in the name of our clients. The problem is that the situation with Mobile operators in many countries is rapidly evolving, and more and more countries now require the clients themselves to submit an authorization request to be able to send SMS on their network. As such, Odoo is not supposed to register itself in place of its client. In some countries (and big ones, like USA, Australia, UK and soon France), this service is not working well, or at all, anymore. The registration process is fastidious, and on top of them it changes from country to country. We do not want to start implementing registration processes by countries just for SMS sending. For that reason, we will start to provide a new module where we remove the IAP part and connect directly to a new provider: Twilio. Clients will do all the registration themselves directly with the provider, and setup their account in Odoo to send those SMS. Twilio is a well known provider with extensive coverage, ideal for a global solution like Odoo. task-4658352 Forward-Port-Of: odoo/odoo#206818
This pull request adds a new base territory module to help organize contact-related geographic information such as regions, districts, branches, and territories. This can support better contact segmentation and business location management across the system.
Original PR description
Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Enhancements to existing features
This update improves confidence in marketing automation by adding coverage for Twilio as an SMS provider. It also makes SMS activity execution more predictable, helping reduce inconsistent behavior during testing and troubleshooting.
Original PR description
Add tests for twilio integration as an SMS provider. See community PR for more details. Task-4658352 Forward-Port-Of: odoo/enterprise#93495
Resolved issues and error corrections
This fixes a Mexican e-invoicing issue where sales orders could show zero invoiced quantity after a CFDI invoice cancellation workflow. The system now refreshes the invoiced quantity when the CFDI status changes, keeping sales order information accurate for follow-up billing and reporting.
Original PR description
How to reproduce the issue: In l10n_mx: 1. Create a sale order. 2. Create an invoice from the SO, with yesterday’s date, and send it to the CFDI. 3. Lock the period at yesterday’s date. 4. Request the invoice cancellation with the “01” method. This creates a new invoice — confirm it. 5. Create a credit note for the original invoice. 6. Retry sending the cancel request to the CFDI; the CFDI state is now cancelled for the original invoice. On the original SO, the quantity invoiced is 0 despite the CFDI state of the original invoice being cancelled. This commit forces a recompute of the quantity invoiced when the CFDI state changes. Since _compute_qty_invoiced uses _get_invoice_lines, which filters out invoices in sent state, only lines from invoices in cancelled state will be taken into account. opw-4910139 Forward-Port-Of: odoo/enterprise#91924