Thursday, May 14, 2026
18 changes · saas-19.2
New functionality added to Odoo
This update allows users to easily insert their personalized signature into emails directly within the HTML editor. This improves email communication by allowing users to add a professional touch. The existing signature functionality for Email Marketing & Knowledge remains unchanged.
Original PR description
Purpose of this PR: - Add a new Signature command to insert the user's profile signature defined in user preferences. This is handled by UserSignaturePlugin and and is part of the main editor plugins. - Keep the existing Signature plugin restricted to Email Marketing & Knowledge. task-6127297 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#260279
Resolved issues and error corrections
This update corrects a discrepancy in how ARCA-related documents are displayed in Odoo. The system has been updated to align with recent ARCA regulations, ensuring accurate reporting and compliance. The changes update document names and codes to reflect the new 'Operation subject to withholding' classification.
Original PR description
**Context:** * ARCA (formerly AFIP) has deprecated the "Documentos M" classification for document types with codes 51-59. * These are now classified as "Documentos A con leyenda 'Operación sujeta a…
**Context:** * ARCA (formerly AFIP) has deprecated the "Documentos M" classification for document types with codes 51-59. * These are now classified as "Documentos A con leyenda 'Operación sujeta a retención'" while retaining the same codes for backward compatibility with ARCA validations. **Steps to Reproduce:** * Install `l10n_ar` module. * Go to `Accounting -> Configuration -> Document types`. **Observed behavior:** * Document types 51-59 still display letter "M" and use the old naming convention (e.g. "INVOICES M", "DEBIT MEMOS M"), which no longer reflects the current ARCA classification. **Fix:** * Updated `name` fields to include the "WITH LEGEND" / "CON LEYENDA" suffix. * Changed `l10n_ar_letter` from "M" to "A" so the PDF header renders an "A". * Changed `doc_code_prefix` from `*-M` to `*-A` (FA-A, ND-A, NC-A, RE-A). * The existing `res.config.settings` option for injecting the PDF legend remains untouched. Sources: - ARCA: https://www.afip.gob.ar/facturacion/regimen-general/comprobantes.asp Ref: https://www.odoo.com/mail/message/1025488740 opw-5953504 Forward-Port-Of: odoo/odoo#254975
A technical issue preventing users from selecting a background video from Vimeo was resolved. This commit removed a broken video link from the preview options, ensuring a smooth user experience when setting background videos on the website. This improves the functionality of the website builder.
Original PR description
Steps to reproduce: 1. Drop any snippet. 2. Click on the background video option. 3. Observe Traceback. The Vimeo video with ID `499761556` is no longer available, causing a traceback when opening the background video options. This commit removes the unavailable video from the preview list. task-6088772 Forward-Port-Of: odoo/odoo#264080 Forward-Port-Of: odoo/odoo#263555
This update resolves an issue where changes made on a POS ticket screen weren't being reprinted correctly. The fix corrects the underlying logic to ensure all previous order modifications are accurately reflected when the 'reprint all changes' function is used. This improves the reliability of printed POS tickets.
Original PR description
Steps: ---------- - Install point_of_sale. - Open a POS session with a preparation printer configured. - Process an order with two different changes. - Open the ticket screen and try to reprint all previous changes. Issue: ---------- - No changes are printed. Cause: ---------- - Incorrect logic used when reprinting all changes. Fix: ---------- - Correct the logic to properly reprint all previous changes. Task-6008291
This update fixes a minor discrepancy in the Norwegian tax settings. The tax code 32's rate was incorrectly set to 11.0. This change ensures accurate tax calculations for Norwegian businesses using Odoo, aligning with official tax regulations. This was coordinated with a related Enterprise PR.
Original PR description
The tax rate(`amount`) for code 32 was mistakenly set to '11.0'. To properly align with the official Norwegian tax rates, it needs to be updated to '11.11'. Related Enterprise PR: https://github.com/odoo/enterprise/pull/110792 task-6033027 Forward-Port-Of: odoo/odoo#264221 Forward-Port-Of: odoo/odoo#258390
A technical issue causing a 'singleton' error when generating time off reports for employees was resolved. This fix ensures the 'By Employee' reporting feature under time off functionality works correctly, preventing disruptions to payroll and reporting processes. This update improves the reliability of the French company's time off reporting.
Original PR description
A singleton error appears when opening the "By Employee" report under Time Off. **Steps to reproduce:** - Install the l10n_fr_hr_holidays module. - Switch to the French company. - Open any employee record. - Set Working Hours (resource_calendar_id) to empty. - Set Hours Per Week. - Create a time off request for any past date. - Go to Reporting → By Employee. Task:-6043142 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
This update fixes a limitation in how Odoo handles attachments uploaded through its automated cron jobs. Previously, a single cron job was restricted to uploading only one attachment at a time. Now, the system allows multiple attachments to be uploaded within a single cron job run, improving efficiency and reducing the need for multiple uploads.
Original PR description
make the `limit_time_real > 0` when --limit-time-real-cron=0 --limit-time-real=0 to allow multiple attachments to be uploaded in a single cron job. 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 Forward-Port-Of: odoo/odoo#264328
This update resolves a test failure in the 'pos_self_order' module that occurred due to how order slots were being generated. The fix freezes the time to '00:00' to ensure all available slots are considered, preventing the test from failing on specific days. This ensures consistent test results and reliable order scheduling.
Original PR description
Before this commit: = - The test test_slot_limit_orders created slots only for the first day of the week (Monday). - The test scenario includes a slot at "18:00". - On Mondays, the test fails between 18:01 and 23:59 because the "18:00" slot no longer exists for the current day. - On other days, the test passes since slots are generated for the upcoming Monday. After this commit: = - Freezed the time to current day at "00:00" so that slot list can have every slot for that day. task-6043739 runbot-241836 Forward-Port-Of: odoo/odoo#263198 Forward-Port-Of: odoo/odoo#254775
This update fixes a potential issue where users could accidentally assign multiple POS shops to a single cash payment method. Now, the system prevents this, ensuring accurate payment tracking and avoiding errors when processing transactions. This change enhances the reliability of our point-of-sale system.
Original PR description
**Before this commit** The user will be able to assign two different POS shop to a cash payment method by going to POS -> Configuration -> Payment Methods -> Cash -> Point of sale, this will not raise a validation error when they try to save it but it will prevent the user from opening the POS session. **After this commit** It will raise a validation error if a user tries to assign more than one POS shop to one cash payment method and save it. opw-6015025 Forward-Port-Of: odoo/odoo#252603
This update resolves an issue where users could create attachments that repeatedly referenced themselves, leading to errors. The fix prevents attachments from being linked to themselves in the user interface and during data writing, ensuring data integrity and stability.
Original PR description
Currently, users have the option to attach an ir.attachment to itself. This causes a recursion depth error when accessing attachments. This commit prevents this in the UI and the write. Firstly, the ir.attachment does not show itself in the dropdown when selecting the resource ID. Second, the write raises a UserError if attempting to write an ir.attachment with the same ID as the Resource ID. Steps to reproduce: 1. Create an attachment and save 2. Set the Resource Model `(res.model)` to "ir.attachment" 3. Select the same attachment in Resource ID `(res_id)` 4. Attempt to view attachments: `RecursionError: maximum recursion depth exceeded` opw-6206075 closes #263591 Forward-Port-Of: odoo/odoo#264439 Forward-Port-Of: odoo/odoo#263591
A test within the l10n_latam_check module failed due to a dependency on the l10n_ar module not being installed. This update ensures the test runs correctly by requiring l10n_ar to be present during execution, preventing a runtime error.
Original PR description
Steps to reproduce: 1- Install l10n_latam_check on a fresh database instance 2- Run the test `test_invoice_status_after_voided_check` Issue: `ValueError: External ID not found in the system: l10n_ar.dc_liq_uci_a` Why this happens: The test used a document type from the l10n_ar module, so running the test without it being installed caused an error. runbot-243341 Forward-Port-Of: odoo/odoo#262800
This update resolves an issue where dragging and releasing calendar events on touch screens would cause a browser error. Now, dragging and releasing events works smoothly on both touch and mouse devices, improving the Calendar app's usability for all users.
Original PR description
When using the Calendar app on a touch screen, dragging an event and releasing it would raise a client error. Releasing a dragged event now works smoothly on both mouse and touch devices. task-6124833 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 Forward-Port-Of: odoo/odoo#263361
This update resolves a problem that occurred when creating consolidated POS invoices from multiple orders for the same customer. The previous issue caused errors due to how refund reasons were being handled across multiple orders. Now, the system safely collects and validates refund reason values, ensuring invoices are created correctly and preventing potential errors.
Original PR description
When creating a consolidated POS invoice from multiple orders for the same customer, `_prepare_invoice_vals` is called on a multi-record set. Accessing `self.l10n_es_tbai_refund_reason` directly on such a set raised a ValueError because `fields.Selection.__get__` internally calls `ensure_one()`. Use `mapped()` to safely collect all distinct refund reason values across the recordset. Raise a UserError if orders have conflicting values, consistent with the existing TicketBAI validation pattern for mixed required/non-required orders. opw-6192225 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#262967
This update fixes an issue where completion and refusal emails for signatures were incorrectly using the signer's partner email instead of the correct, validated email defined for the sign request. Now, emails sent to signers will use the accurate email address, ensuring proper communication and notification delivery. This improves the reliability of the signature process.
Original PR description
Previously, completion and refusal emails were sent using the partner email directly, ignoring the computed email defined on the sign request item. The computed email includes validation rules and should be the main email for signer communication. This commit ensures that completion and refusal emails are sent using the computed signer email instead of the partner email. task-6148765 Forward-Port-Of: odoo/enterprise#114606
This update fixes an issue where large tablets with touch screens incorrectly displayed the mobile toolbar instead of the desktop toolbar. The change now considers screen size, ensuring the correct toolbar is shown on all devices, improving the user experience for tablet users.
Original PR description
Problem: On large tablets with touch capability and high resolution, the mobile toolbar is displayed instead of the desktop toolbar. Cause: The mobile toolbar condition relied on touch capability alone, without considering screen size. Devices with large screens but touch support were therefore incorrectly treated as mobile. Solution: Use `utils.isSmall()` to determine whether the device should display the mobile toolbar, ensuring screen resolution is taken into account. Steps to reproduce: - Open the editor on a large tablet. - Observe that the mobile toolbar is shown. - The desktop toolbar should be displayed instead. task-6106531 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#259605
This update resolves an issue where changing a text tag (like from 'Header 2' to 'Header 1') didn't fully remove the previous heading style. The fix ensures that selected text correctly loses its original heading formatting, improving the accuracy of text editing within Odoo.
Original PR description
Problem: When applying `h1` to part of a selection already inside an `h2`, the selected content still keeps the `class="h2"` style. Cause: `removeFormats` internally uses `formatSelection`, but in this case we only want to change the tag and not reformat the selection. This causes existing heading styles to remain applied. Solution: Use `removeFormat` instead, as it removes formatting without applying additional formatting to the selection. Steps to reproduce: - Go to Website and drop the "Text-Image" snippet. - Copy the text "Enhance Your Experience". - Paste the text into a new To-Do. - Select part of the pasted text. - Change it from "Header 2" to "Header 1 Display 1". - Observe that part of the text still keeps the "Header 2" style. task-6204505 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#263810
This update optimizes PDF report generation by compressing files after merging, reducing file sizes and memory usage. It addresses a previous memory leak and leverages newer pypdf versions for better performance, particularly with large reports. The result is faster report generation and reduced storage needs.
Original PR description
When merging pages with pypdf, the resulting content is uncompressed. A compression pass should be done right after to reduce the resulting file size. Additionally, this helps alleviate a memory leak in PyPDF2 where resources in the merged page are not properly released. Newer versions of pypdf (>=3.15.4) do not have this leak but still see benefits in the output file size. In practice the CPU overhead is negligible, and we actually see a speed increase in cases with high memory usage. Benchmark Printing 400 page annual report | |Print Time|Peak Memory|Output File| |------|----------|-----------|-----------| |Before|142s |3.6GB |103MB | |After |127s |0.4GB |5MB | opw-6148786 Forward-Port-Of: odoo/odoo#264451 Forward-Port-Of: odoo/odoo#261879
This update optimizes PDF generation by compressing files after merging, resulting in significantly smaller file sizes and faster processing times. It addresses a previous memory leak issue and leverages newer PDF library versions for better efficiency, particularly when handling large documents. This improves user experience and reduces storage needs.
Original PR description
When merging pages with pypdf, the resulting content is uncompressed. A compression pass should be done right after to reduce the resulting file size. Additionally, this helps alleviate a memory leak in PyPDF2 where resources in the merged page are not properly released. Newer versions of pypdf (>=3.15.4) do not have this leak but still see benefits in the output file size. In practice the CPU overhead is negligible, and we actually see a speed increase in cases with high memory usage. Benchmark Printing 400 page annual report | |Print Time|Peak Memory|Output File| |------|----------|-----------|-----------| |Before|142s |3.6GB |103MB | |After |127s |0.4GB |5MB | opw-6148786 Forward-Port-Of: odoo/enterprise#117308 Forward-Port-Of: odoo/enterprise#115550