Friday, May 8, 2026
42 changes · saas-19.3
New functionality added to Odoo
This update allows users to download General Ledger reports in CSV format. This provides greater flexibility for analyzing financial data and integrating it with other business systems. This enhancement improves reporting capabilities and supports more efficient data management.
Original PR description
task-5734354 Forward-Port-Of: odoo/enterprise#116646 Forward-Port-Of: odoo/enterprise#107638
Enhancements to existing features
This update ensures the demo data for Brazil (l10n_br) is accurate and reliable. The changes update product and company information, improving the quality of testing and providing a more realistic demonstration of the Brazil localization features within Odoo. This helps ensure accurate reporting and configuration for businesses using the Brazil module.
Original PR description
Updated Brazil Product and company demo data to ensure accurate testing task-6159933 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#261636
Resolved issues and error corrections
This update resolves an issue where the branch code field wasn't correctly displayed on the contact form for Odoo's Thailand localization. The fix ensures that branch code information is accurately shown, streamlining data entry for Thai users and improving the accuracy of their records.
Original PR description
Fix the inheritance of branch code field in res.partner form view for Thailand localization. task-6177982
Features or functions removed from Odoo
This update removes outdated code from the welcome page related to call preview streams. Previously, the welcome page handled stream management, but this has been updated to a more efficient system. This cleanup improves the stability and performance of the Odoo platform.
Original PR description
**Purpose of this PR:** Since odoo#228382, the welcome page no longer manages call preview media streams itself. `CallPreview` now handles both stream cleanup on destroy and the `getUserMedia` race that could happen when leaving the page while permission was still pending. The `isClosed` flag was introduced in odoo#179690 to guard that race in `WelcomePage`, but it became obsolete after the refactor and the assignment was not cleaned up. This commit removes the unused assignment from the welcome page. Forward-Port-Of: odoo/odoo#263216
This update improves the Brazil demo data within Odoo Enterprise to ensure accurate testing of the l10n_br_avatax module. The changes include updated product and company data, allowing for more reliable testing of Brazil-specific tax calculations and reporting. This ensures the demo environment reflects the latest requirements.
Original PR description
Updated Brazil Product and company demo data to ensure accurate testing task-6159933 Forward-Port-Of: odoo/enterprise#115361
This update resolves an issue where sign templates with read-only date fields were incorrectly flagged as incomplete, preventing users from signing. The fix ensures that these fields are properly recognized and included during the signing process, improving document completion rates. This change ensures consistent functionality across all sign templates.
Original PR description
Version: - saas-19.2 Steps to reproduce: - Create a sign template with a read-only (constant) date field. - Add at least one more sign item (e.g., text/signature). - Try to sign the document. Issue: - Signing is blocked with warning: “Some required items are not filled”. Cause: - Read-only date fields don’t have a value in `item.el.value`. - The system only checks value, so it treats the field as empty. - Even though the date is visible in the document, it is not picked during submission. Solution: - Update date value extraction to also read from `textContent` when value is empty. - This ensures read-only date fields are correctly considered filled. task-6181883 Forward-Port-Of: odoo/enterprise#116009
This update resolves a duplication issue in the French Profit and Loss report by removing a redundant account (6492) from the calculation. The change ensures accurate reporting of financial performance for French businesses using Odoo Enterprise. This fix was implemented as an addition to a previous effort to prevent duplicate accounts.
Original PR description
This commit is an addon to this commit[[1]] where we tried to avoid duplicate accounts in the Profit And Loss report. The problem is that we don't exclude the separated account 6492 from the original one (649). This commit adds the removal of this account in the report formula. task-6053784 Here is the coverage: [Profit and loss account (FR) - Accounts Coverage Report (2).xlsx](https://github.com/user-attachments/files/27011824/Profit.and.loss.account.FR.-.Accounts.Coverage.Report.2.xlsx) The correct separation: <img width="837" height="485" alt="image" src="https://github.com/user-attachments/assets/ebe98976-f689-4389-866a-c9a0c8b50534" /> [1]: https://github.com/odoo/enterprise/commit/4587c49c4b220305652150d2f21a95fb7cfa188d Forward-Port-Of: odoo/enterprise#116319 Forward-Port-Of: odoo/enterprise#114858
This update corrects a formatting issue with receipts printed on specific receipt printers (like the TM-T88V) that use 180dpi resolution. The previous setting caused the last portion of the receipt to be cut off, resulting in a less-than-ideal print quality. This fix ensures receipts print correctly on these common printers.
Original PR description
Printers with a 180dpi (so 180 dot per 25.4mm) (like the TM-T88V) have a standard print width of 72mm on an 80mm roll. Which gives 72/25.4*180 = 510.23 dots / pixels So, the manufactures usually defines it as 512 dot grid. Right now, the width is set to 576px, causing the last 65 pixels to not be printed. opw-6087544 opw-6125418 Forward-Port-Of: odoo/odoo#261754
This update automatically refreshes the payment screen when the PIS (Payment Initiation Service) status changes. Previously, users had to manually refresh the page to see the updated status, leading to delays. This improvement ensures payment information is always current and accurate.
Original PR description
There were some buttons like sign payment that were visible even when the PIS status was signed which needed a manual page refresh for the update to reflect, now it's reflected automatically on the PIS status change. task-5417365 Forward-Port-Of: odoo/enterprise#116427 Forward-Port-Of: odoo/enterprise#114299
This update fixes a visual inconsistency in the Point of Sale (POS) interface. It now applies the same background styling to combo products as regular products, creating a more uniform and professional look across the product screen and combo configuration popup. This improves the overall user experience and presentation of products.
Original PR description
In this commit: --- - Applied the same background styling to combo items as normal product cards. - Ensured visual consistency between product cards on the product screen and in combo configuration popup. | Before | After | | -------- | -------- | | <img width="979" height="447" alt="image" src="https://github.com/user-attachments/assets/6d91e1d7-99d5-47c4-a1bf-6604765d08d5" /> | <img width="979" height="453" alt="image" src="https://github.com/user-attachments/assets/602c9a8f-9e56-4633-84bf-0710cb5debab" /> | task-6103260 Forward-Port-Of: odoo/enterprise#113159
This update fixes an issue where the VAT label on invoices generated in PDF format was incorrectly displayed in the user's preferred language instead of the company's language. Now, invoices will always use the correct language based on the company's settings, ensuring accurate and consistent invoicing for all businesses, regardless of user language preferences.
Original PR description
When having for example a polish company but setting the language as an user to another one for example chinese, vat label on the top of the invoice pdf would be written in your user preference language so in this case chinese where it should be written in companies language so here in polish opw-6067250 Forward-Port-Of: odoo/odoo#261067
This update resolves a bug that prevented users from reconciling bank statements on smaller screens (like mobile devices). The issue stemmed from incorrect data passing within the application's interface, specifically when opening the bank reconciliation dialog. This fix ensures the reconciliation process works reliably across all screen sizes.
Original PR description
When clicking on the "Reconcile" button of a bank statement line on a small screen (ex: mobile) threw an OwlError "Invalid props for component 'KanbanController': unknown key 'bankRecInfo'". BankRecSelectCreateDialog injected `bankRecInfo` into `baseViewProps`, which is spread into the embedded view regardless of its type. On desktop the embedded view is a list (patched to accept `bankRecInfo`), but on small screens SelectCreateDialog falls back to a kanban view, whose controller does not declare that prop, triggering Owl's props validation. Only forward `bankRecInfo` when the inner view is a list by overriding `viewProps` instead of mutating `baseViewProps`. Steps to reproduce: - Enable the developer mode. - Open Bank Reconciliation. - Resize the window to a small/mobile width (or open from a mobile device). - On a statement line, click the "Reconcile" button to open the dialog. - OwlError is thrown opw-6070573 Forward-Port-Of: odoo/enterprise#114298
A bug preventing users from clicking the 'Reset' button within the l10n_in_hr_payroll module was resolved. This was caused by outdated code referencing files that were previously removed. The fix removes these references, ensuring the 'Reset' button now functions correctly.
Original PR description
Versiopn: - saas-19.3 Steps to reproduce: - Install the l10n_in_hr_payroll module - Create or update a rule parameter - Save it and click on “Reset” Issue: - A traceback (error) occurs Cause: - After this PR: https://github.com/odoo/enterprise/pull/107884 the files hr_salary_rule_ind_emp_data.xml and hr_salary_rule_worker_data.xml were removed. - However, the code still tries to use these files, which causes the error Fix: - Remove the references to these file paths from the code Task-6175296
This update resolves an issue preventing users from correctly adding components to work orders. The fix corrects redundant data assignments and ensures consistent parameter handling, streamlining the process and improving stability. This change ensures components are added reliably and efficiently.
Original PR description
While adding a component in the Components tab of a work order, there was an error because 'child_field' was passed twice, once explicitly, and once though kwargs. Considering that child_field is already set by 'stock.move.action_add_from_catalog_wo' when catalog is being opened, and '_update_order_line_info' is called only from the catalog, it should will always be set to the needed value. Which is why the second assignment to 'move_raw_ids' should be omited. Moreover, uom parameter was not passed to 'production_id._get_new_catalog_line_values', and product was passed instead of product_id in '_update_order_line_info'. The parameter of the function was adjusted to match the same function of other models like 'mrp.production model'. task-6152016 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update addresses an issue where error messages from the Aspone integration were not being displayed correctly. The change ensures that error messages are now shown to the user, improving the reporting experience and providing clearer feedback when problems occur with Aspone data.
Original PR description
Since the v2 rest api of aspone was implemented, error messages were no more well handled and a traceback was raised while getting one. This commit displays the write errr to the user task-5955980 Forward-Port-Of: odoo/enterprise#116076
This update ensures the filmstrip on the Odoo shop page maintains a consistent height, regardless of whether an image is present. Previously, the filmstrip's height would fluctuate, creating a visually jarring experience. This change improves the overall appearance and usability of the shop page.
Original PR description
This commit fixes two issues regarding the filmstrip in the /shop page : - Adding a minimum height to the elements of the `default` and `bordered` designs, so that their heights remain consistent…
This commit fixes two issues regarding the filmstrip in the /shop page : - Adding a minimum height to the elements of the `default` and `bordered` designs, so that their heights remain consistent whether they contain an image or not. - Display a placeholder image for the `images` filmstrip if empty. task-5491550 | Before | After | |--------|--------| | <img width="613" height="103" alt="image" src="https://github.com/user-attachments/assets/852ef2ce-6265-4622-9e30-4e8112bbf264" /> | <img width="618" height="114" alt="image" src="https://github.com/user-attachments/assets/0933c0c2-a669-4236-9148-a25226214ce6" /> | | <img width="718" height="164" alt="image" src="https://github.com/user-attachments/assets/ac1b8d91-44fa-4ce0-8ddb-beba271a2423" /> | <img width="718" height="164" alt="image" src="https://github.com/user-attachments/assets/8676e9f9-074b-40e9-a75b-76561437c081" /> | --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#263118 Forward-Port-Of: odoo/odoo#255543
This update streamlines the payment refresh button in the Odoo Enterprise system. Previously, the button was always visible, leading to unnecessary checks. Now, it only appears for payments that are actively in progress (pending or unsigned), optimizing system performance and reducing redundant operations.
Original PR description
… batches The refresh button was always shown, which could cause unnecessary calls to OdooFin if the payment is finalised (accepted, rejected or canceled). With this change, the button is shown only for payments in progress (pending or unsigned). task-6103900 Forward-Port-Of: odoo/enterprise#113182
This update resolves an issue where internal transfers using multi-step routes were incorrectly flagging a missing delivery carrier. The fix ensures that internal transfers, regardless of the delivery route, are not subject to this carrier validation requirement. This improves the efficiency of internal stock movements.
Original PR description
### Issue: With `l10n_ro_edi_stock_batch`, internal transfers using multi-step routes were requiring a delivery carrier This makes no sense for internal moves ### Cause: The method…
### Issue: With `l10n_ro_edi_stock_batch`, internal transfers using multi-step routes were requiring a delivery carrier This makes no sense for internal moves ### Cause: The method `_compute_l10n_ro_edi_stock_enable` was overridden to check for `not picking.batch_id` However, for multi-step delivery routes, internal pickings still triggered the carrier validation, as no check on the `picking_type` was performed ### Steps to reproduce: - Install `l10n_ro_edi_stock_batch` with demo data and switch to RO Company - In Settings, enable `Multi-Step Routes` - Set the RO Warehouse's Outgoing Shipments to `Pick then Deliver (2 steps)` - Create a Product (e.g. RO product) - Create a Delivery Method (e.g. RO Delivery, Partner: Any, Delivery Product: RO Product) - Create and Confirm a Sale Order for the RO Product - From the Sale Order, click Delivery and validate the picking ### Before the fix, internal transfers raised: `The picking RO Co/PICK/00001 is missing a delivery carrier.` enterprise-PR: https://github.com/odoo/enterprise/pull/114166 opw-5925087 Forward-Port-Of: odoo/odoo#263036 Forward-Port-Of: odoo/odoo#257293
This update resolves an issue preventing users from modifying warehouse routes in the Romanian (RO) version of Odoo. The fix addresses a coding error that caused a crash when updating routes, specifically related to how incoming and outgoing shipments were handled. This ensures multi-step route functionality is reliably available for RO Company users.
Original PR description
### Issue: When changing the routes of a Romanian warehouse, an error is raised, blocking any modification of multi-step routes ### Cause: The code attempts to access `in_type_id` from `warehouse_data` However, when updating routes, `warehouse_data` is empty in the method `_create_or_update_sequences_and_picking_types` This leads to a crash because the code assumes that `warehouse_data` always contains `in_type_id` and `out_type_id` Additionally, even if the data were present, it would result in creating duplicate `stock.picking.type` records ### Steps to reproduce: - Install `l10n_ro_saft_stock` with demo data and switch to `RO Company` - Enable `Multi-steps Routes` in Settings - Try to modify Incoming or Outgoing Shipments on a warehouse - When saving, the following error is raised: "Oh snap! in_type_id" odoo-pr: https://github.com/odoo/odoo/pull/257293 opw-5925087 Forward-Port-Of: odoo/enterprise#114166
This update resolves an issue that prevented accurate tracking of monetary amounts within email notifications. The fix ensures that currency information is correctly associated with monetary properties, leading to more reliable reporting and data analysis. This improves the accuracy of financial information displayed in communications.
Original PR description
`_create_tracking_values_property` was missing `currency_field` in `col_info` when processing monetary-type properties, causing a traceback. Fixed by injecting it from the property definition dict. task-6175845 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#263194 Forward-Port-Of: odoo/odoo#262353
This update resolves an issue where users couldn't edit documents after removing their original ownership. The fix allows users to change document ownership and edit documents directly from the company folder, regardless of their management role. This enhances usability and corrects a previous restriction.
Original PR description
How to reproduce: - Login as Marc Demo (not as admin) - Upload a document at the root of "My Drive" - Remove the owner of this document The document is no longer editable in the details view panel while the user has been added as editor. To solve the problem, we change the readonly condition in the detail panel to allow edition in the company folder also (even if not a manager). We also change the following: - we allow to move non folder document from company root folder (user_can_move) while the "protection" was applied also to non folder before. - we change the condition to update the owner. Now when there is no owner, a user with edit permission can change it. This allows to correct a wrong manipulation. Task-5881531 Forward-Port-Of: odoo/enterprise#116288 Forward-Port-Of: odoo/enterprise#106192
This update resolves issues preventing order validation and the successful download of Sales Details reports for the l10n_co_edi_pos module. The fix addresses a problem where data was being incorrectly overwritten, leading to errors. This ensures reliable export of POS data for compliance reporting.
Original PR description
Steps to reproduce: --- - Install `l10n_co_edi_pos` and configure it. - Set the POS Serial Number in the POS configuration. - Open a POS session, create an order, and validate it. Issues: --- 1. A traceback occurs while validating the order. 2. After fixing the above issue, another traceback occurs when downloading the Sales Details report from the backend. Causes: --- 1. During UBL DIAN data generation, the `name` field is overwritten with `pos_order.l10n_co_edi_pos_name`, which can be empty. 2. `l10n_co_edi_pos_serial_number` is accessed on an invalid type (ID/list instead of a recordset). Fixes: --- - Preserve the original `name` if `l10n_co_edi_pos_name` is not set. - Ensure `config_ids` is always a recordset and safely compute serial numbers using `mapped`, joining unique values. task-6051285 Forward-Port-Of: odoo/enterprise#111306
This update resolves an issue where long device names on the welcome page would overflow their containers, causing display problems. The fix ensures device names are now correctly truncated, providing a cleaner and more user-friendly experience. This improves the visual consistency of the welcome page.
Original PR description
**Purpose of this PR:** Since #253060 , device select buttons with long device names could overflow outside their container instead of being truncated properly. This commit fixes the overflow issue and ensures long device names are correctly truncated within the available space. Before/After: <table> <tr> <td> <img width="298" height="620" alt="image" src="https://github.com/user-attachments/assets/2c8bbc05-c589-428a-a74c-2f2ef03c3bbb" /> <td> <img width="298" height="620" alt="image" src="https://github.com/user-attachments/assets/58796101-3fe2-4f53-b1b9-c9aa7186bf1a" /> </table>
This update fixes a display issue with push notifications received by inbox users. Previously, notifications contained escaped characters, resulting in a garbled message. Now, inbox users will receive the full, unescaped notification content, ensuring clear and accurate alerts.
Original PR description
**Steps to reproduce:** Log in as admin and ensure notifications are handled in Odoo. Enable push notifications and the 'Task Created' subtype for a project. As a second user, create a new task in…
**Steps to reproduce:** Log in as admin and ensure notifications are handled in Odoo. Enable push notifications and the 'Task Created' subtype for a project. As a second user, create a new task in that project. **Current behavior before PR:** admin received escaped content in the push notification (e.g., `A new task has been created in the "Project Name" project`) **Cause:** For inbox users, we send a client-side push notification using `previewText` as the body. This field returns a markup object containing escaped characters, which are converted to a string when passed to the notification body. Since the notification body only accepts plain text, these characters are displayed literally to the user. **Desired behavior after PR is merged:** admin receives the unescaped content in the push notification. (e.g., `A new task has been created in the "Project Name" project`) task-5112810 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#263187 Forward-Port-Of: odoo/odoo#240331
This update corrects a setting for Thai WHT (Withholding Tax) taxes. By default, WHT taxes no longer require closing entries, aligning with how these taxes are handled through separate payable accounts. This ensures accurate reporting and simplifies accounting processes for Thai businesses using Odoo.
Original PR description
Set tax closing entry to False by default for WHT taxes, as WHT uses separate payable accounts and does not require closing entries. task-6146195 Forward-Port-Of: odoo/odoo#262688 Forward-Port-Of: odoo/odoo#262464
This update ensures that notifications are only displayed when a message is actually sent in the History (Inbox) view. Previously, closing the message composer triggered a misleading 'Message posted' notification even if no message was sent. The change improves the user experience by aligning notifications with actual message activity.
Original PR description
**Description of the issue/feature this PR addresses:** ---------------------------------------------- When replying to messages from the History (Inbox) view, opening the full composer and…
**Description of the issue/feature this PR addresses:** ---------------------------------------------- When replying to messages from the History (Inbox) view, opening the full composer and discarding it could incorrectly trigger a toast notification indicating that a message was posted. This behavior is misleading, as no message is actually sent when the composer is discarded. **Current behavior before PR:** ---------------------------------------------- - Replying to a message from History opens the full composer - Discarding the full composer closes the dialog normally - A “Message posted” toast is shown even though no message was sent - Notification logic depends on dialog close behavior, leading to incorrect triggers **Desired behavior after PR is merged:** ---------------------------------------------- - Discarding the full composer does not show any notification - Notifications are only shown when a message is actually sent Task-5431682 ---------------------------------------------- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#262895 Forward-Port-Of: odoo/odoo#241705
This update resolves a technical issue that was preventing the accounting tax settings from building correctly. The fix adjusts a reference within the system to avoid a dependency on a related module, ensuring smoother operation of the accounting features. This improves stability and prevents potential build failures.
Original PR description
the inherited tax view form was raising an error since ubl_cii_tax_category_code is in the view under the module account_edi_ubl_cii and this module is not in the resolved dependencies of l10n_ae_faf but is usually autoinstalled. to fix this we are changing the xpath to be something that doesn't need the dependency of the account_edi_ubl_cii but only account. runbot-239123 Forward-Port-Of: odoo/enterprise#116163
This update addresses intermittent errors in the customer rating tests within the Odoo Enterprise system. The fix ensures the tests consistently run without failing, improving the reliability of the customer rating functionality. This resolves a technical issue impacting test stability.
Original PR description
This commit aims to fix the undeterministic failures of the customer ratings tests.
This update completes the required XML configuration for the French 2031 tax report (l10n_fr_reports). The previous update introduced a new report type, but a key component – the custom handler model – was missing. This fix ensures the report data is correctly formatted for submission.
Original PR description
The PR #108522 introduced new 2031 and 2031 annexes tax report for FR. But in the 2031 report XML, custome handler model was not added. This PR adds the corresponding custom handler model.
This update resolves an issue where child contacts linked to Spanish companies were incorrectly identified as companies themselves. The fix ensures that a contact is only considered a company if it represents a separate commercial entity, aligning with Spanish tax regulations. This improves data accuracy for Spanish businesses.
Original PR description
Problem: When l10n_es is installed, child contacts of a Spanish company are incorrectly considered as companies as well. Steps to reproduce: 1. Install l10n_es 2. Create a company with a Spanish VAT number (e.g. ESA12345678) 3. Create a child contact under that company 4. The child contact will be incorrectly considered as a company Cause: If l10n_es is installed, any partner with a Spanish VAT number is considered as a company. Since child contacts share the same VAT as their company, they would be considered as companies as well, which is not correct. However, a partner should only be considered as a company if they are their own commercial entity. https://github.com/odoo/odoo/blob/e6bd6b106c376336594edd868c09505032008ac1/odoo/addons/base/models/res_partner.py#L819 Similar to https://github.com/odoo/enterprise/commit/3536cdd opw-6132064 Forward-Port-Of: odoo/odoo#262713
This update resolves intermittent errors occurring during tests for the planning field service's geolocation functionality. These errors were causing unreliable test results, and this fix ensures the geolocation tests are now consistently reliable. This improves the stability and accuracy of the planning field service.
Original PR description
This commits aims to resolve the undeterministic failures of the planning field service geolocation tests.
This change removes unnecessary debugging code (console.log statements) from the Gantt chart module. These logs were unintentionally left in the codebase, which could potentially impact performance and data privacy. This fix ensures a cleaner and more reliable user experience.
Original PR description
Before this PR, a console.log was left out. task-6201248
This update fixes visual inconsistencies and usability issues within the calendar form and quick create form. The changes include aligning elements, improving the appearance of dropdowns, and correcting display issues for numerical counts, resulting in a cleaner and more intuitive user experience. This enhancement focuses on the calendar and calendar_sms modules.
Original PR description
Fix quick create form view by: - making sure all the icons and fields are aligned - coloring them gray - extending the dropdowns to match the modal width - replacing the all day boolean widget by a regular checkbox Fix form view by: - condensing the duration and all day fields on a single line like it was in previous version - only displaying the discuss videocall creation button if the videocall link input is focused - aligning the attendees information with the fields labels Also making sure the "+ ..." box next to users and resources in the kanban view is correctly displaying the whole number instead of cropping it. Task-6191731 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update resolves minor visual inconsistencies in the calendar event views across different forms. Specifically, the resource selection field now uses the full width of the modal, and a cropping issue with user counts in the Kanban view has been fixed. These changes improve the overall user experience and consistency of the appointment scheduling system.
Original PR description
Purpose ======= Fix some small UI issues accross multiple calendar.event views Specification ============= In the quick create form view, extend the resources input so that it takes all the width of the modal like other fields. .o_tags_input elements are mw-100 but not w-100 like other inputs making them shorter than intended. In the kanban view, remove fixed width on "+ ..." users/resources count so that higher numbers aren't cropped. When calendar.event records has no name and a single attendee which is not a staff user, the event was renamed "attendee name - appointment type name". Changing that to name the event with the attendee name only, a filter/group by on the appointment types makes it easy to know which appointment type it's linked to. Task-6191731
This update fixes an issue where product images and names were displayed on separate lines in PDF reports when product names were long. Enabling product image display now ensures images and product names appear together for a cleaner and more professional-looking PDF. This improves the visual presentation of sales documents.
Original PR description
When enabling the settings 'Display Product Images' and generating a PDF with a long name for the product, the product name and image appear on different lines. This fix ensures the image and product stay on the same line. **Before:** <img width="1009" height="563" alt="before" src="https://github.com/user-attachments/assets/52c5b566-400c-4040-8ec7-710278dc1387" /> **After:** <img width="1016" height="676" alt="after" src="https://github.com/user-attachments/assets/d7d82455-f983-4f9e-9b2d-db5482c4f558" />
This update fixes an issue where a child contact's zipcode would incorrectly override a parent's manually entered zipcode. The change ensures that child contact zipcodes always match the parent's city zipcode, maintaining accurate address information. This prevents inconsistencies and ensures data integrity.
Original PR description
Currently, when a res.parter is given a parent, base_address_extended runs _onchange_city_id. This sees the city change and alters the zipcode to match the city's zipcode. However, this field can be…
Currently, when a res.parter is given a parent, base_address_extended runs _onchange_city_id. This sees the city change and alters the zipcode to match the city's zipcode. However, this field can be manually altered to differ from the city's zipcode. Thus, when a parent has a city, the zipcode will override the manually entered zipcode for a child contact. This commit solves this by checking for the parent's zipcode before blindly setting it to the city's zipcode. Steps to reproduce: 1. Install `base_address_extended` 2. Enable "Enforce Cities" on a country `(res.country)` 3. Add a city to that country with a zipcode of 123 4. Create a new contact (parent) and select the configured country 5. Select the city (the zipcode will fill in from the city's zipcode) 6. Overwrite the zipcode with 456 7. Save the contact (parent) 8. Create a new contact (child) 9. Set the company to the parent contact and save 10. The zipcode of the child will be the city's zip (123), not the parents' zip (456), thus the addresses will be different, and the child contact type will be 'other' opw-6131280 closes #262651 Forward-Port-Of: odoo/odoo#263401 Forward-Port-Of: odoo/odoo#262651
This update prevents the 'Start a Poll' action from appearing when users are editing an existing message within a channel or group. This change improves the user experience by ensuring the poll action is only available when composing a new message, aligning with its intended purpose.
Original PR description
**Description of the issue/feature this PR addresses:** ---------------------------------------------- When editing a message in a channel or group and opening the 'More Actions' menu in the…
**Description of the issue/feature this PR addresses:** ---------------------------------------------- When editing a message in a channel or group and opening the 'More Actions' menu in the composer, the 'Start a poll' action is displayed among the available options. Starting a poll while editing an existing message makes no sense, as polling is only meaningful when composing a new message. **Current behavior before PR:** ---------------------------------------------- - 'Start a poll' action appears in the composer 'More Actions' menu even when the user is editing an existing message - Clicking it while in edit mode opens the poll creation dialog, which is misleading and unintended behavior **Desired behavior after PR is merged:** ---------------------------------------------- - 'Start a poll' action is hidden from the 'More Actions' menu when the composer is in edit mode - The action continues to appear as expected when composing a new message in a channel or group conversation Task-6171541 ---------------------------------------------- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#262040 Forward-Port-Of: odoo/odoo#261961
This update resolves an issue where payment reminders wouldn't display correctly when the 'Payment' module wasn't installed. The fix ensures the system checks for the necessary 'payment.method' model before attempting to use it, preventing template rendering errors. This ensures payment reminders function properly regardless of the installed modules.
Original PR description
Repro steps: 1. Initialize a new DB 2. Install account_followup module without payment module 3. Go to Email templates > Payment reminder 4. Click on Preview You will get an error Failed to render QWeb template for Mail Template: 'Payment Reminder' (ID: 9) Target Model: res.partner Language context: en_US Error: Error while render the template KeyError: 'payment.method' Root cause: The method `_show_pay_now_button` that was being called in the template email_template_followup_1 was using self.env['payment.method'] even tho payment module is not a dependency of account_followup Fix: The introduced fix ensures that 'payment.method' model exists before attempting to use it build_error-243030 Forward-Port-Of: odoo/enterprise#116692 Forward-Port-Of: odoo/enterprise#116079
This update resolves a test failure caused by an expired document range error when invoice dates are in the future (2027+). The team applied a temporary fix – freezing the test's time – to ensure the tests pass and the core functionality remains stable. This ensures continued development and testing of the l10n_do_edi module.
Original PR description
Problem: Tests are failing from a ValidationError, signaling that the document range expired, when the invoice date is 2027 and onwards. To resolve the bug, freeze_time needs to be applied on the tests. Related PR: https://github.com/odoo/enterprise/pull/112814 runbot-build-error-243527
This update resolves a technical issue preventing users from correctly booking appointments with multiple seats and capacity limits. The fix corrects a problem where the system incorrectly interpreted a setting, causing a booking error. This ensures appointments with flexible scheduling and capacity management now function reliably.
Original PR description
### Steps to reproduce: - Download "Appointment" and "Website" - Configure an appointment to be booked by resource with multiple seats and manage capacity - Set the schedule to be flexible and configure valid time slots - Go to the booking page and select the number of participants > Traceback: cannot unpack non-iterable bool object ### Cause of Issue: The `_get_appointment_slots` method unpacks the `appointment_slots_force_month` directly: https://github.com/odoo/enterprise/blob/4ca3dddaeadeb6c937d555cc4da8fb4bb61fea35/appointment/models/appointment_type.py#L871 Since the `appointment_slots_force_month` value was explicitly set to `False` in https://github.com/odoo/enterprise/blob/4ca3dddaeadeb6c937d555cc4da8fb4bb61fea35/appointment/controllers/appointment.py#L1063-L1070 the unpacking operation failed because it tried to unpack a boolean instead of a tuple. opw-6197653 Forward-Port-Of: odoo/enterprise#116671 Forward-Port-Of: odoo/enterprise#116613
The budget report now accurately displays data without duplicate analytic lines. This issue stemmed from a recent performance optimization of the budget report query, which inadvertently caused duplicate entries. The fix ensures unique reporting by using a revised query structure.
Original PR description
#### Issue: The budget report displays duplicate analytic lines. #### Steps to reproduce: In a new company: - Create a budget with one budget line (Analytic Account A). - Create one analytic item…
#### Issue: The budget report displays duplicate analytic lines. #### Steps to reproduce: In a new company: - Create a budget with one budget line (Analytic Account A). - Create one analytic item (linked to Analytic Account A). - Open the budget report and remove the default "open budget" filter. Duplicate amounts appear in the pivot view and duplicate lines appear in the list view. #### Cause: In #104299, the query in `_get_aal_query` was refactored for performance to avoid a single query with an OR condition in the LEFT JOIN. It was replaced by two separate queries combined with `UNION ALL`. This caused some lines to be captured by both queries, resulting in duplicates in the final report. #### Fix: Use three separate queries, each with specific filter conditions to guarantee unique results: Q1 - Analytic lines with no matching budget line. Q2 - Analytic lines matched to a budget line with no company (null-company). Q3 - Analytic lines matched to a company-specific budget line. OPW-6051696 Forward-Port-Of: odoo/enterprise#116612
This update resolves a problem where long text fields in sign documents (like contact names) were not properly wrapped, resulting in text overflowing and appearing as a single line in the final PDF. The fix ensures that all text, including long names and continuous text, is correctly displayed within the designated field boundaries, improving the document's appearance and readability.
Original PR description
### Steps to reproduce: - Download 'Sign' and 'Contacts' apps - Create a contact with a really long name - Create a sign document template with a multiline text field (Read-only) that has contact…
### Steps to reproduce: - Download 'Sign' and 'Contacts' apps - Create a contact with a really long name - Create a sign document template with a multiline text field (Read-only) that has contact name value - Click 'Sign Now' and put the new contact as the signer - Sign and download > The text appears as a single extended line exceeding field/page boundaries ### Cause of Issue: The textarea and stamp field rendering only handled explicit newline characters (`\n`) and did not account for text that exceeded the field width. https://github.com/odoo/enterprise/blob/017743cbe97b629e9d9f1895b655014d4c3abbcb/sign/models/sign_document.py#L330-L345 When the HTML preview showed wrapped text, the PDF output rendered it as a single line. For continuous text without spaces, the text would overflow the field boundaries entirely. ### Fix: Accounted for long texts that have spaces and long words to show all the information in the PDF opw-6045062 Forward-Port-Of: odoo/enterprise#116658 Forward-Port-Of: odoo/enterprise#114813