Daily updates from Odoo
Tuesday, December 16, 2025
12 changes
1 change
Enhancements to existing features
This update enhances the way Odoo calculates order amounts by allowing custom addons to modify the list of order lines used. Previously, this process was fixed, now it's more flexible, enabling developers to tailor order amount calculations to specific business needs. This improves the adaptability of the sales order system.
Original PR description
This allows to change the record set of order lines which are used by `sale.order` `_compute_amounts` by custom addons Forward-Port-Of: odoo/odoo#239928 Forward-Port-Of: odoo/odoo#233239
2 changes
Enhancements to existing features
This update enhances how Odoo calculates order amounts by allowing custom addons to modify the selection of order lines used in the calculation process. This change provides greater flexibility for businesses to tailor order amount calculations based on specific needs, improving accuracy and reporting. It’s a refinement of existing functionality.
Original PR description
This allows to change the record set of order lines which are used by `sale.order` `_compute_amounts` by custom addons Forward-Port-Of: odoo/odoo#239928 Forward-Port-Of: odoo/odoo#233239
This update optimizes how translations are imported into Odoo, reducing the size of the data processed and preventing potential memory issues. By focusing only on updated translations, the import process is now more efficient, especially with frequent updates to large mail templates.
Original PR description
Before this commit, when importing the translations with the TranslationImporter object, the save method was building one big query per model, with each JSON object containing all the languages. On our server, where 36 languages are installed, this leads to big JSON objects, especially for some large mail templates. Recently, we even got MemoryErrors because of the soft memory limit being hit. The query was about 250MB long. In the function, we already have the current values, so it's easy to compare them to the new values, and only consider these in the query. Furthermore, there is no need to add the languages that aren't being updated. With this commit, we are building a slightly more complicated query, but it will receive much less data when the translations are updated frequently, as unchanged values will be ignored. Task-id: none Forward-Port-Of: odoo/odoo#239678
7 changes
Enhancements to existing features
This update prevents unnecessary data loading in the Point of Sale calendar view, specifically addressing potential performance issues and data security concerns. By simplifying the display and removing unused components, we've optimized the user experience and reduced the risk of accessing sensitive partner information. This change focuses on improving the PoS functionality.
Original PR description
Purpose ======= Prevent using the attendee popover in the calendar view popover in point of sale. Specification ============= The attendee popover is not necessary/relevant in point of sale where discuss is not available and access to further partner personnal information could be a problem. Changing the field to use the web "many2many_tags_avatar" widget. Also preventing the assets from loading the "Many2ManyAttendee" and the "Many2ManyAttendeeExpandable" components as they're inheriting from a mail field component which can't easily be loaded in PoS as it's using discuss and ImStatus features. Task-5153118
This update simplifies a key query used in the sale commission reporting process. By adding an alias to a temporary table (CTE), the underlying code is now easier to modify and maintain. This improves the efficiency and flexibility of generating accurate sales commission reports.
Original PR description
Add an alias to the CTE used for sale order log selection. This is done to simplify modifications to the query. Forward-Port-Of: odoo/enterprise#102145
This update adjusts how the system sends email notifications using the Odoo mail template API. The API now returns a recordset of emails sent, rather than just an ID. This change ensures the system continues to function correctly with the latest Odoo updates and maintains reliable email delivery.
Original PR description
Purpose ======= Now, the `send_mail` method of `mail.template` returns a recordset, and not just an id, adapt the code to that change. Task-3084943
This update enhances the formatting of tax reports for the Dominican Republic (l10n_co_dian) by standardizing float number formats. This ensures accurate and consistent reporting, aligning with local tax regulations and improving the reliability of financial data. The change was driven by a previous related enhancement.
Original PR description
Forward-Port-Of: odoo/enterprise#102085 Forward-Port-Of: odoo/enterprise#101288
This update simplifies the demo setup process for the HR Expense Stripe module by skipping the Stripe KYC settings and pre-filling information. This reduces the time needed to configure the demo, making it more efficient for presentations and testing. Note that a refresh is still required after setup to fully verify the account.
Original PR description
When clicking on Connect, we are now skipping Stripe KYC Settings and prefilling every informations to make the demonstrations quicker to set up. It's still required to wait a bit before refreshing to have the account as verified in the Odoo settings page. task-5246475
This update simplifies the campaign kanban view by hiding irrelevant metrics (those with zero values) and renaming the 'Send/Add' label to 'New'. This improves the user experience and makes it easier to focus on key campaign data.
Original PR description
Hide zero-value metrics in the kanban view of the campaign. Rename the confusing 'Send/Add' label to 'New'. Task-5182993
This update streamlines the bank reconciliation process by ensuring the chatter used within the bank reconciliation widget now pulls information from the statement line instead of the general move. This reduces unnecessary noise and improves the clarity of reconciliation reports, making the process more efficient for users.
Original PR description
Before this commit, the chatter of bank reconciliation widget was using the move's chatter and not the statement line one. This commit changes that to have less noise when we do the reconciliation. task-5385187
2 changes
Enhancements to existing features
This update enhances the Guatemalan localization by automatically including the XML file alongside the PDF invoice when e-invoices are emailed to customers. Previously, only the PDF was sent, but now customers receive both files for greater transparency and convenience. The XML file naming convention has also been standardized.
Original PR description
Purpose: In the Guatemalan localization, when an electronic invoice is created, the email template to the customer already contains the PDF version of the DTE. However, the XML file, generated and…
Purpose: In the Guatemalan localization, when an electronic invoice is created, the email template to the customer already contains the PDF version of the DTE. However, the XML file, generated and sent to the SAT through Infile, is not attached to that email. Even though the SAT and Infile deliver the XML to the customer, it is more convenient and transparent if Odoo includes it directly in the outgoing invoice template email, so the customer receives both files in one place. Before this commit:- - Only PDF version is attached by default in customer email for e-invoices. - Name of edi document is prefixed with `Demo` if company is in demo environment (check parent company's environment in case of child company) (e.g. DEMO_certificate_INV_2025_00001.xml) and prefixed with `SAT` if company is in testing or production environment(e.g. SAT_certificate_INV_2025_00001.xml). After this commit:- - XML version is also attached by default along with PDF in customer email for e-invoices. - Name of edi document is always prefixed with `SAT`. task-5224521
This update ensures the IoT boxes automatically update their code to match the latest database version, running nightly at midnight. This prevents discrepancies and maintains data consistency between the database and the IoT devices. Existing IoT boxes require a restart to implement this new synchronization process.
Original PR description
This PR adds the code which checks every midnight to see if the version of the database has changed. If so, it will update the iot box's code to align it to the database version Note: 1) the existing iot boxes will need to restart to get this cron job 2) Outside of database upgrade the code won't be upgraded with the cron Forward-Port-Of: odoo/odoo#239049