Tuesday, February 17, 2026
16 changes · 18.0
Enhancements to existing features
This update streamlines the creation of stock packages during the 'Put in Pack' process. By separating the package creation logic, it now allows for easier customization and adjustments without impacting the core functionality. This enhances flexibility for users and developers.
Original PR description
Move the logic that creates a new 'stock.quant.package' into a dedicated method `stock.picking::_get_put_in_pack_package`. This allows cleaner overrides when custom logic is needed for package creation during the "Put in Pack" process. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update adds a warning message to the batch wizard when the invoice sending cron job is disabled. This ensures users are alerted that their invoices won't be sent automatically, preventing potential delays or missed payments. It's a simple improvement to enhance user awareness and operational efficiency.
Original PR description
When the Cron responsible of sending the invoices asynchronously is disabled, the user has no clear indication that his invoices won't be sent as they should. Let's add a warning in the batch wizard that notify the user something is wrong. task-none (feedback from SBR) Message when no rights to update cron: <img width="990" height="328" alt="image" src="https://github.com/user-attachments/assets/1100ef6f-d047-49f2-bd8f-c8ef9fd543d8" /> Message when admin: <img width="999" height="308" alt="image" src="https://github.com/user-attachments/assets/28e90295-d225-4785-82a9-65be3ce79621" />
Resolved issues and error corrections
This update ensures that new leads in the CRM system always start in the 'New' stage. This is a necessary step for accurate lead tracking and reporting, aligning with the initial prospecting process. The change corrects a data issue in demo records, ensuring consistent data flow.
Original PR description
This PR corrects the stage_id of some crm.lead demo data. It must be "New" for crm.lead records of lead type as they are the first step of the prospecting. When the leads have chance of succeeding, they are converted in opportunity and then the stage can change. Task-5380531
This update enhances accounting reports by allowing users to filter data across multiple journals simultaneously. Previously, filtering was limited to a single journal. This change provides greater flexibility and accuracy when analyzing financial information.
Original PR description
In accounting reports, we want to be able to filter on multiples journals if needed. This filter will allow us to do this. Using `context['search_default_journal_id'] = journal_ids` doesn't work as only the first id is passed to the filter. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#247731
This update resolves a technical issue preventing the signature field from sending notifications. The problem was a missing declaration in the notification service, which previously caused an error. This ensures that signature field updates are correctly communicated to users.
Original PR description
The notification service is later used in this [method](https://github.com/odoo/odoo/blob/04f3473da52ec74f3955cadd58eb016537497d44/addons/web/static/src/views/fields/signature/signature_field.js#L120), but it was never declared so it was causing an error. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update addresses a potential issue where test methods were inadvertently left attached to models, leading to unpredictable behavior in other tests. The change enforces the use of patchers for adding test-specific methods, ensuring greater test stability and reliability. This prevents conflicts and improves the overall quality of our automated tests.
Original PR description
Setting methods on models during tests and not removing them afterwards can cause misbehaviour of other tests. Setting mock or test-specific methods is not an issue but it should be done via patchers. https://runbot.odoo.com/odoo/error/237983
This update resolves an issue where users could trigger website errors when entering invalid domain names in the website settings. The fix ensures that the system gracefully handles incorrectly formatted domain names, preventing errors and improving website stability. This change focuses on data validation to ensure correct website configuration.
Original PR description
Currently an error is generated when the user tries to open the website after adding the invalid domain like `https://.com` Steps to produce an error: - Go to website settings and set the domain as `https://.com` - Open the website page >>> Error occurs Error: `UnicodeError: label empty or too long` This error occurs during IDNA encoding/decoding because the domain contains an empty second-level label, as seen in the above-mentioned domain. The error is triggered in the `_idna_url` method during IDNA encoding when the extracted base domain includes an empty second-level domain in the above-mentioned URL. This commit fixes the above issue by handling the existing `ValueError` (`since UnicodeError is a subclass of ValueError`) in the constraint, where a `ValidationError is raised when an error occurs during execution of the `_idna_url` method. sentry-7265749008
This update fixes a visual bug in the HTML editor where the cursor placement was incorrect after using backspace after a button. Now, the cursor correctly appears inside the button as expected, ensuring a smoother and more intuitive editing experience. This resolves a minor usability issue.
Original PR description
When using backspace after a button, the cursor is visually displayed as being inside the button, but it a character is typed, it is inserted after the button, while it should be inside. What actually happens is that after backspace after a button, the selection is set around the FEFF that follows the button. This commit fixes this by putting the selection before the FEFF inside the button instead. Steps to reproduce: - Go to a "To do" note - Insert a button - Insert text after the button - Put cursor before text after button - Press backspace: the cursor is displayed inside the button - Type a letter => The letter was inserted after the button. task-5928806
This update corrects a visual inconsistency in Odoo's note-taking feature. Previously, checklists and bullet lists had different indentation levels, leading to a misaligned appearance. This change ensures all list types are consistently formatted for improved readability and a more polished user experience.
Original PR description
The checklist has different indents than bullet list and numbered list. It should not be the case. This commit removes the extra indent from checklist entries. Steps to reproduce: - Go to a "To do" note - Create a checklist with indented items - Create a bullet list with indented items => Both list were not aligned task-5916723
This update optimizes how Odoo handles image processing, specifically addressing a potential memory issue that could cause slowdowns during upgrades. By preventing redundant image processing in certain scenarios, this change reduces the strain on system resources and improves overall performance.
Original PR description
Description of the issue/feature this PR addresses: Because of the way `Pillow` manages memory, excessive image processing quickly leads to MemoryError, e.g. during upgrades. Current behavior before PR: When a readonly Image field with definied dimensions relates to another Image field of the same dimensions, there is no need to ever process the former one, since the processing will already have happened on the latter one. Still, the current code will process the image superfluously in these cases. Desired behavior after PR is merged: Extending the condition for skipping superfluous image processing to cover these cases will lead to reduced compute time and memory use. Forward-Port-Of: odoo/odoo#248877 Forward-Port-Of: odoo/odoo#248834
This update resolves an issue impacting the integration of Universal Business Language (UBL) with various localization modules (ANZ, Japan, My, and Singapore). Specifically, a correction was made to how customization IDs are handled, ensuring consistent and accurate UBL processing across these regional versions of Odoo. This improves the reliability of financial transactions and reporting for users utilizing these localized UBL functionalities.
Original PR description
no-task --- 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 selected journal wasn't reflected when viewing journal items within the general ledger report. Now, when you filter by journal, the report accurately displays both the invoice and the associated journal entry, providing a more complete view of financial data. This enhancement improves reporting accuracy and usability.
Original PR description
When opening the general ledger, if a journal was selected in the filter of the report, when clicking on "Journal Items" it would open the list view of account.move.lines without the journal in the filter. Also, the support for multiples journals is added but will require a -u of account to refresh the view. To reproduce: - Create an invoice on an Account such as Product Sales - Create a journal entry on the same account - Open the general ledger - Select "Customer Invoices" and click on "Journal Items" on the Account you choose. You can see both the move lines from the invoice and the journal entry. Forward-Port-Of: odoo/enterprise#106836
This update simplifies testing within the Odoo Enterprise platform by moving patches from class to instance level. This resolves a detection issue during automated testing and improves the overall stability of the system. The changes primarily affect the testing process for several key modules.
Original PR description
Otherwise they trip the on-test-side-effect-detector (at least in its current incarnation).
This update resolves an issue where the public knowledge sidebar overlapped with article content on mobile devices. The fix ensures the sidebar functions as a proper mobile overlay, providing a cleaner and more consistent user experience. This improves readability and usability for mobile users.
Original PR description
Steps to reproduce: 1. Install `website_knowledge` 2. Create a long, scrollable knowledge article with 20 sub-articles. 3. Share the article publicly 4. Open the public link in mobile view (logged…
Steps to reproduce:
1. Install `website_knowledge`
2. Create a long, scrollable knowledge article with 20 sub-articles.
3. Share the article publicly
4. Open the public link in mobile view (logged out)
5. Toggle the sidebar using the top-left menu button
6. Scroll down
Issue:
- On mobile, the public sidebar overlaps with the article's content while scrolling.
Cause:
- the sidebar and its backdrop were positioned absolutely inside a flex container. Because they were not fixed to the viewport, the article content continued to scroll and render underneath the sidebar, causing visible overlap between the sidebar and the article body. Additionally, the sidebar’s internal scroll container was not explicitly positioned, which contributed to inconsistent scrolling behavior when the sidebar was open.
Solution:
- Update the public Knowledge sidebar css to behave as a proper mobile overlay by: Fixing the sidebar and its backdrop to the viewport using position: fixed, ensuring they are removed from the flex layout flow on mobile Explicitly positioning the sidebar’s internal scroll view to ensure correct scrolling behavior
<table>
<tr>
<td><strong>Before</strong></td>
<td><strong>After</strong></td>
</tr>
<tr>
<td><img width="725" height="901" alt="Before image" src="https://github.com/user-attachments/assets/33190684-5b52-4931-b01a-5044734c9cf0" /></td>
<td><img width="686" height="916" alt="After image" src="https://github.com/user-attachments/assets/610a5aef-3467-4215-a0a0-83607375a016" /></td>
</tr>
</table>
opw-5384026This update corrects a technical problem where payments could be activated but not properly reflected within Odoo, leading to errors. By ensuring payments are consistently marked as activated, this fix prevents disruptions in payment processing and improves overall system stability. This resolves a potential issue impacting payment accuracy.
Original PR description
In some cases, payments are already activated but are not set as activated in Odoo, the consequences of this is that in that case we will always get the error on Odoofin side because the payment will never be set as activated on odoo side. task-5490817
This update addresses a recent finding that the SAT now accepts accented characters in tax documents. Previously, Odoo automatically removed these accents to comply with SAT guidelines. This PR temporarily allows the ‘É’ character, acknowledging ongoing SAT practices and potentially reverting the original removal process.
Original PR description
An improvement in September (PR #95207) began removing accents from names in documents sent to the SAT, in order to comply with their own practices. In recent months, it has become clear that the SAT…
An improvement in September (PR #95207) began removing accents from names in documents sent to the SAT, in order to comply with their own practices. In recent months, it has become clear that the SAT does accept accents sometimes. First with umlauts on the `ü` in October (PR #96043), then all umlauts in February (PR #106557). As this PR has found another accepted accented character `É`, it may be necessary to undo the original improvment entirely. The [Anexo 20 Guía de llenado de los comprobantes fiscales digitales por Internet](http://omawww.sat.gob.mx/tramitesyservicios/Paginas/documentos/Anexo_20_Guia_de_llenado_CFDI.pdf), pg 17, indicates that accented characters are maintained in legal names. At least, `Í` is allowed. At this point in time I only added the exception for `É`. Steps to reproduce are [on the ticket](https://www.odoo.com/mail/message/999357619), as it requires a real person's tax information. [opw-5915515](https://www.odoo.com/odoo/project.task/5915515) ---- *Edit: Miguel (mial) confirmed that names are not always sanitized, but that we expect them to be.*