Friday, November 28, 2025
52 changes · 19.0
Resolved issues and error corrections
A bug was causing technical pages to fail to load when using French translations. This fix addresses an issue where special characters (specifically single quotes) weren't properly escaped in database queries, leading to an error. The update ensures correct translation handling and resolves the display problem.
Original PR description
**Steps to reproduce:**
* Install **Website Sale** modules with demo data.
* Change the language to **French (fr)** from settings.
* Open **Website → Site → Technical Page**.
* The technical pages view fails to load.
**Observed behavior:**
An Odoo **RPC_ERROR** is raised.
```
self._obj.execute(query, params)
psycopg2.errors.UndefinedColumn: column ''S'inscrire'' does not exist
LINE 5: ...'), ('Tableau de bord utilisateur', '/my/home'), (''S'inscrir...
```
**Cause:**
* Method `website.technical.page()._table_query` uses raw values without
correctly escaping them since 25efaf49b6691d1b5aeba40a016134660fe2358c
* A new route title translation ("S'inscrire" for "Sign Up") was added
as french translation.
**Fix:**
Use SQL class to correctly escape litterals when using them.
opw-5354982This update enhances the reliability of tests related to Odoo's email functionality. The change implements a more dependable selector for verifying text content within email elements, ensuring more accurate test results. This improves the overall stability and quality of the email system.
Original PR description
Before this commit, the selector used was not reliable. This commit uses a more reliable selector to ensure the assertion of the elements's text content.
This update fixes a minor issue with the Finnish translations for reports. The team added the necessary '@fi' suffix to ensure all report names are correctly translated. This ensures accurate reporting in the Finnish language for our users.
Original PR description
In this commit [[1]], we wrongly set the name for the translation in Finnish. Indeed, we should add @fi at the end to make sure it's translated properly. This commit adds the `@fi` when necessary. no task id [1]: https://github.com/odoo/enterprise/commit/4ae3c4d2bdb0ef05ffb53930b31f2bf15fd422ee Forward-Port-Of: odoo/enterprise#100536 Forward-Port-Of: odoo/enterprise#100304
This update resolves an issue preventing Inventory Users from validating AVCO pickings. The fix allows Inventory Users to access and update 'Product Value' records during the validation process, ensuring accurate inventory tracking. This improves usability for a wider range of users.
Original PR description
Steps to reproduce:
- Create a storable product “P1” with:
- Product Category: - Costing Method: AVCO
- Log in as Mark Demo (Inventory User only)
- Create a picking containing:
- 1 unit of P1
- Try to validate it
Issue:
An access error is raised:
“You are not allowed to access 'Product Value' (product.value) records. This operation is allowed for the following groups:
- Inventory/Administrator”
During the picking validation, the `_run_avco` method performs a search on the `product.value` model, but this model is only accessible to Inventory Managers, causing the failure.
https://github.com/odoo/odoo/blob/08b62a4bbcc6f9a391b2cc00a621ef4c76100229/addons/stock_account/security/ir.model.access.csv#L4
opw-5254884
opw-5236047This update corrects a display issue where the 'Due Date' column disappeared in the phone view of invoices. The problem stemmed from conflicting CSS styles, which caused incorrect column titles. This ensures the 'Due Date' is consistently visible and correctly labeled across all device views.
Original PR description
****Behavior:****
When switching to phone view, the 'Due Date' column name dissapears but the values stay, which causes every further column of the table to have the wrong title.
The removal of the Due Date column is intended, the issue happens beacause the 't-att-class' specifying the condition to make values red was overriding the initial 'class' specifying the behavior in phone view.
**Steps to reproduce:**
- Create an Invoice for the current user
- Go to Website -> User -> My Account -> Your Invoices
- switch to phone view (reduce to less than 768px if not initially the case)
- You'll see the 'Due Date' column name dissapear and the value shift to the next column name ('Amount Due')
opw-5239794
Forward-Port-Of: odoo/odoo#235474This update resolves a problem where the ‘auto-hide menu’ tour on the website wasn't consistently working. The fix ensures the tour’s content is loaded properly before it’s displayed, leading to a more reliable user experience. This improves the overall usability of the website for our customers.
Original PR description
In this commit, we fix a non deterministic behavior by ensuring the iframe is loaded before set and attribute on iframe content element. runbot-error-id~233039 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#237513
This update resolves an issue preventing the installation of the UK Construction Industry Scheme (l10n_uk_reports_cis) when using branch companies. The fix prevents the creation of duplicate account codes, ensuring successful installation and functionality for UK businesses with branches.
Original PR description
Before this commit: Steps 1) Create a UK localization company 2) Create a branch for that company 3) Try to install UK - Construction Industry Scheme (l10n_uk_reports_cis) => A Validation Error is raised with the message `Account codes must be unique. You can't create accounts with these duplicate codes: 220001, 220101, 220201`, This occurs because the `_l10n_uk_reports_cis_post_init()` method is creating accounts for each UK company even if they aren't root companies (branch). After this commit: UK - Construction Industry Scheme (l10n_uk_reports_cis) is installed successfully with UK companies that have branches. opw-5326079 Forward-Port-Of: odoo/enterprise#99901
This update ensures the kiosk ordering system only uses payment methods explicitly set up for it. Previously, the kiosk would incorrectly prompt for payment options even if none were configured. This fix prevents errors and improves the kiosk's functionality by restricting it to approved payment methods.
Original PR description
pos_self_order*: pos_online_paymnet_self_order, pos_self_order_razorpay, pos_self_order_stripe Ensure the kiosk only uses payment methods that are explicitly configured. **Steps to reproduce:** - Set up an online payment method (do not assign it to the kiosk) - Open a kiosk session. - Try to validate an order. **Issue:** - The kiosk prompts for an online payment method, even though none are configured. **Fix:** - Restrict the kiosk to use only the payment methods explicitly configured in its settings. - Prevent loading of any unconfigured payment methods to the kiosk. Task: 4911495 Related: https://github.com/odoo/enterprise/pull/89490 Forward-Port-Of: odoo/odoo#237452 Forward-Port-Of: odoo/odoo#217467
This update fixes a visual issue where long participant names in the call sidebar would cause the layout to break and icons to shift. Now, participant names are handled safely, ensuring the call sidebar remains properly formatted and functional. This improves the user experience by preventing layout distortions.
Original PR description
**Description of the issue this PR addresses:** Prevent call participant name overflow **Current behavior before PR:** Before this PR, long participant names in the call sidebar could overflow their container, distorting the layout and causing the call action icons to shift incorrectly. **Desired behavior after PR is merged:** This PR ensures long names are now handled safely, preventing any layout breakage in the call participants sidebar. Before: <img width="302" height="125" alt="image" src="https://github.com/user-attachments/assets/309d3a0e-8304-43ee-ab22-0d7ee2883fc1" /> After: <img width="289" height="119" alt="image" src="https://github.com/user-attachments/assets/6c838fff-70d2-443a-b651-b985afe9cea6" /> --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#237327
This update prevents the Odoo kiosk from requesting payment methods that haven't been specifically configured. Previously, the kiosk would incorrectly prompt for online payments, even when none were set up. This change ensures a smoother and more reliable kiosk ordering experience for customers.
Original PR description
Ensure the kiosk only uses payment methods that are explicitly configured. **Steps to reproduce:** - Set up an online payment method (do not assign it to the kiosk) - Open a kiosk session. - Try to validate an order. **Issue:** - The kiosk prompts for an online payment method, even though none are configured. **Fix:** - Prevent loading of any unconfigured payment methods to the kiosk. Task: 4911495 Related: https://github.com/odoo/odoo/pull/217467 Forward-Port-Of: odoo/enterprise#100547 Forward-Port-Of: odoo/enterprise#89490
This update fixes an issue where the hint and power buttons remained visible in the HTML editor when a block contained a tab. The change ensures these buttons disappear when a tab is present, improving the user experience and consistency within the editor. This resolves a minor visual inconsistency.
Original PR description
Description of the issue this PR addresses: - Hint and power buttons are incorrectly shown or hidden in empty blocks when the block contains a Tab or only empty formatting tags (`<strong>, <em>, <u>, <s>`). Current behavior before PR: - Pressing Tab in an empty block leaves the hint and buttons visible. - Empty paragraphs containing only formatting tags do not show the hint and buttons. Desired behavior after PR is merged: - Hint and power buttons are not shown when a block contains a Tab. - Hint and power buttons are correctly visible when a block contains only empty formatting tags. task-5062294 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#237563 Forward-Port-Of: odoo/odoo#230979
This update fixes a bug where the 'Late', 'Today', and 'Future' filters in the Activity Menu didn't correctly display Approval requests. The fix adds necessary filters to the Approvals search view, ensuring these filters now function consistently and align with other Odoo modules.
Original PR description
Issue: - In the Activity Menu, clicking "Late", "Today", or "Future" did not filter Approval requests and always returned all records. - The Approvals search view lacked the activity filters that these context defaults rely on. Fix: - Added the invisible activity filters (overdue, today, upcoming_all) to the Approvals search view. - Filters use `my_activity_date_deadline` to match Odoo's standard deadline-based activity filtering. Impact: - Activity Menu filtering now works correctly for Approvals and aligns with behavior in other modules. Task: 5261406 Forward-Port-Of: odoo/enterprise#100514 Forward-Port-Of: odoo/enterprise#99632
This update fixes a translation error in the Netherlands (l10n_nl) module. The description for the 9% ST tax was previously incorrectly translated as 'TVA' (Value Added Tax). This change ensures accurate tax reporting and compliance for Dutch businesses using Odoo.
Original PR description
The traduction of te description of the 9% ST tax was wrong and was TVA to get back on a sale tax task-5217323 Forward-Port-Of: odoo/odoo#237467 Forward-Port-Of: odoo/odoo#236655
This update corrects a technical issue where duplicate methods were introduced in several Odoo modules. The problem stemmed from a missed custom build step, and this fix ensures the integrity of the codebase by removing the redundant methods. This resolves a potential instability issue.
Original PR description
Followup of #100053 because I forgot to run the custom build, and thus missed newly introduced duplicate methods. Forward-Port-Of: odoo/enterprise#100599
This update resolves a recurring problem where the website tour wouldn't consistently display correctly. The issue stemmed from timing conflicts within the website's code, specifically related to how the tour and builder components interacted. This fix ensures the tour displays reliably for users.
Original PR description
Tour added in that [commit], was previously failing and the earlier [fix] only reduced the frequency of failures. However, it still occasionally fails due to race conditions of the iframe becoming ready and the moment the builder opens the block tab after the iframe has been reloaded. This commit aims to fix it. [commit]: https://github.com/odoo/odoo/commit/a5455bf [fix]: https://github.com/odoo/odoo/commit/0a9522792cc0e18a895c0589f34977123d091d1a runbot-233438 Forward-Port-Of: odoo/odoo#233014
This update resolves a performance bug related to how company currency is handled in the VersionHistory action of the Enterprise edition. The original performance optimization didn't account for the specific version history action, leading to a detectable issue. This fix ensures consistent performance across all version history actions.
Original PR description
The perfomance commit added in https://github.com/odoo/odoo/pull/151725 did not account for the version history action that does not inherit from `AbstractSpreadsheetAction`. this missing value trickled down to a bug only detectable in the VersionHistory action and which is addressed in https://github.com/odoo/odoo/pull/232985 This commit adds the same performance to VersionHistory action. Task-5187293 Forward-Port-Of: odoo/enterprise#98197 Forward-Port-Of: odoo/enterprise#98038
This update fixes an issue where the PDF report title for DIAN support documents was incorrectly displaying 'Factura Electrónica de Venta' after DIAN approval. The change adjusts the report naming logic to ensure the correct 'Documento Soporte' title is consistently used, aligning with DIAN requirements.
Original PR description
Steps: - Create and confirm a vendor bill with 'DIAN Support Documents' journal - Print the PDF — it display 'Documento Soporte' as document title - Send the document to the DIAN and print it again -> the returned PDF with the DIAN stamp now shows 'Factura Electrónica de Venta', it should still be 'Documento Soporte' Cause: In `AccountMove._get_name_invoice_report` we return the name of the report depending on specific conditions, but the order of the conditions prevent to get the right report name as soon as the document has been accepted by DIAN. Fix: Modifying the order of the condition, to redirect to the right report, even when the support document has been accepted by DIAN opw-5119858 Forward-Port-Of: odoo/enterprise#100656 Forward-Port-Of: odoo/enterprise#99028
This update resolves an issue where scanning invalid GS1 barcodes caused Odoo to crash. The fix corrects a formatting error in the error message, ensuring that users receive clear guidance when an invalid barcode is entered, improving data accuracy.
Original PR description
**Steps to reproduce:** 1. Install Inventory. 2. Open Inventory → Configuration 3. Barcode Nomenclature and select the default GS1 Nomenclature. 4. Open Barcode → scan the code:154105510000000244.…
**Steps to reproduce:** 1. Install Inventory. 2. Open Inventory → Configuration 3. Barcode Nomenclature and select the default GS1 Nomenclature. 4. Open Barcode → scan the code:154105510000000244. **Observation:** - Scanning a GS1 barcode with an invalid date crashes Odoo and raises a traceback. **Cause:** - The translated ValidationError message uses the wrong interpolation syntax: https://github.com/odoo/odoo/blob/e4e2dca73213c33c487033dd404a7ca335960a66/addons/barcodes_gs1_nomenclature/models/barcode_nomenclature.py#L58 and therefore fails during rendering. - Correct syntax should be: https://github.com/odoo/odoo/blob/e4e2dca73213c33c487033dd404a7ca335960a66/addons/account/models/account_move.py#L5647 **Fix:** - Fix faulty interpolation placeholder in ValidationError message to use `%(error_message)s` instead of `'%(error_message)'`, preventing the traceback and allowing the error message to display correctly. **opw-5253564** Forward-Port-Of: odoo/odoo#236858
This update resolves a technical issue that prevented users from accessing the Documents app on mobile devices. The problem stemmed from an adaptation error during a recent code port, and this fix ensures the Documents app functions correctly across all views.
Original PR description
Steps to reproduce =================== 1. Toggle mobile view. 2. Open documents app. List prop is replaced by groupByField here https://github.com/odoo/odoo/pull/189109/commits/b5e821f0383caf6126a0d3c915cb4bccc8345b2b in 18.2. Here https://github.com/odoo/enterprise/pull/90647, we missed adapting the code in the forward port. Task-5363758 Forward-Port-Of: odoo/enterprise#100713
This update fixes a missing field on the partner record in Guatemala (GT) company settings. The change ensures that the Identification Type field is correctly displayed, allowing users to accurately record partner information. This resolves an issue caused by a recent update to conditional field visibility within the Odoo system.
Original PR description
Step to reproduce: - install `l10n_gt_edi` with demo - switch to GT company - open a record from contacts Observation: - partner form is missing the Identification Type field Cause: - after this commit [1] , Identification Type is now conditional. It only appear in other localizations when the type is not is_vat and the allowed company is not a LATAM company. Fix: - As Guatemala is a latam, we add it in LATAMID group [1]:https://github.com/odoo/odoo/commit/bc742ad449c704cf9324e569e73aa1e919238dda opw-5234916 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update resolves a technical issue preventing PoS sessions linked to Fiskaly from closing correctly when cash in/out entries had reason names longer than 40 characters. The change ensures all reason names are truncated to meet Fiskaly's requirements, preventing errors and ensuring seamless integration with the payment processing system. This improves the reliability of our German Point of Sale functionality.
Original PR description
Before this change, closing a PoS session linked to Fiskaly would fail if a cash in/out entry had a reason exceeding 40 characters. Fiskaly returned: "body/cash_statement/business_cases/2/name must NOT have more than 40 characters". This commit ensures reason names are truncated to comply with Fiskaly's schema. opw-5208191
This update addresses a visual issue on mobile devices where ungrouped kanban displays unwanted horizontal borders. This change improves the user experience by removing this distracting effect and ensuring a cleaner appearance on smaller screens. The fix ensures consistent and professional presentation across all devices.
Original PR description
On mobile the ungrouped kanban have horizontal borders which creates a weird effect with the sides of the device. task-5357601 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update resolves a problem where the payment date on US check printouts would overlap with the table below it when a specific check layout was used. The fix ensures the date is always displayed correctly, preventing this visual issue and improving the accuracy of generated checks. This impacts users creating and printing vendor bills.
Original PR description
In the Accounting app, users can print checks created to pay Vendor Bills. When using any of the US Checks Layout (from `l10n_us_check_printing`), the payment date would overlap the table beneath it…
In the Accounting app, users can print checks created to
pay Vendor Bills. When using any of the US Checks Layout (from
`l10n_us_check_printing`), the payment date would overlap
the table beneath it when the journal's manual sequencing option was
disabled.
<img width="1201" height="624" alt="image" src="https://github.com/user-attachments/assets/cd3aa46a-1952-4652-9034-e4bc2ea9a44d" />
This occured because the `.summary_line` container collapsed to a height
of 0 whenever its first child wasn't displayed, as the remaining child
elements are absolutely positioned and therefore do not contribute to
the parent's height.
https://github.com/odoo/enterprise/blob/f54585f84b0fa7a73efb3f0e14266972d510f0a6/l10n_us_check_printing/report/print_check.xml#L24-L34
By assigning a minimum height to the `.summary_line` class, we make sure
that it always occupies space above the table, even when only the date
is shown.
### Steps to reproduce:
**/!\ To reproduce the bug locally, you must have a version of wkhtmltopdf with patched qt. Use `wkhtmltopdf -V` and make sure that _"(with patched qt)"_ is specified after your wkhtmltopdf version.**
1. Install Accounting (`accountant`) and US Checks Layout (`l10n_us_check_printing`)
2. In Settings > Accounting, toggle on *Checks* if it is not, and set *Check Layout* to any "US" layout.
3. Go to Accounting > Vendors > Bills
4. Create a new Vendor Bill:
- Set any Vendor
- Set any Bill Date
- Add any Product (with a positive price, the total price of the bill must be positive)
- Confirm
5. Click *Pay*, set the *Payment Method* to *Checks* and click *Create Payment*
6. Click on the *Payments* smart button
7. Click *Print Check* > *Print* (> *Continue*)
8. In the generated PDF, the date overlaps the table beneath it.
This fix moves the date right above the table.
<img width="1189" height="634" alt="image" src="https://github.com/user-attachments/assets/8858098e-b39b-4ad2-aa65-cc0cea550343" />
opw-5165112
Forward-Port-Of: odoo/enterprise#100487This update resolves visual inconsistencies and display issues within the skill tables used in the HR modules (employee, recruitment, and appraisal). Specifically, the code that previously showed sample data for appraisal skills has been removed, aligning with a change made in v18. This ensures a cleaner and more consistent user experience.
Original PR description
This PR fixes various issues with how the skill table is displayed in hr, hr_recruitment, and hr_appraisal. Additionally, all code related to displaying sample data for the appraisal skills is removed in this PR, as the skills page has been hidden (rather than showing sample data) since at least v18. Issues: 1. The skills table on the employee form view is cropped on the sidees when viewing in Firefox. 2. The skills table header and the resume header on the employee form view is not aligned and styled the same way. 3. The skills table header on the employee form view is missing the separator below it when viewing in Chrome. 4. The skills table header on the applicant form view is missing the separator below it when viewing in Firefox. 5. The skills table on the appraisal form view is missing a separator when viewing on Firefox. Task-5033427
This update resolves a technical issue in the Sale Stock module that was causing errors. The change replaces a deprecated 'date' field with the 'create_date' field, which was introduced in a previous update. This ensures the system functions correctly and prevents potential disruptions to sales processes.
Original PR description
This commit replace date field with create_date field which was removed in [the PR] and causing traceback because that field does not existing in that model now. [the PR]: https://github.com/odoo/odoo/pull/213949
This update adds two essential buttons – 'Reviewed Bubble' and 'Mark as Completed' – to the annual corporate tax return reports within the Odoo Enterprise system. These additions streamline the reporting process for users, ensuring accurate tracking and completion of tax returns.
Original PR description
Missing: - reviewed bubble - Mark as completed button Forward-Port-Of: odoo/enterprise#100535 Forward-Port-Of: odoo/enterprise#100039
This update resolves visual inconsistencies and display issues within the skill tables used in the employee, applicant, and appraisal forms. The changes ensure a consistent and properly formatted display across different browsers, improving the user experience for HR staff.
Original PR description
This PR fixes various issues with how the skill table is displayed in hr, hr_recruitment, and hr_appraisal. Additionally, all code related to displaying sample data for the appraisal skills is removed in this PR, as the skills page has been hidden (rather than showing sample data) since at least v18. Issues: 1. The skills table on the employee form view is cropped on the sidees when viewing in Firefox. 2. The skills table header and the resume header on the employee form view is not aligned and styled the same way. 3. The skills table header on the employee form view is missing the separator below it when viewing in Chrome. 4. The skills table header on the applicant form view is missing the separator below it when viewing in Firefox. 5. The skills table on the appraisal form view is missing a separator when viewing on Firefox. Task-5033427
This update corrects a visual issue where standalone messages in the MessagingMenu were displaying a red pill badge without a counter. The fix ensures that all message badges accurately reflect the number of unread messages, improving the clarity and usability of the messaging interface for users. This resolves a minor visual inconsistency.
Original PR description
**Fix:** Show red pill with no counter on standalone messages related: https://github.com/odoo/odoo/commit/920fbf05b2d9108d538ee03298a542871ef4503a opw-4969005
This update corrects a technical issue related to how project IDs are calculated within the Odoo Enterprise system. Specifically, a redundant check for a field that was removed in the latest version has been removed. This ensures accurate project associations and prevents potential errors.
Original PR description
In this commit, we remove the use of 'rating_active' field check in the compute method of the 'project_id' field in the 'rating.rating' model. As this field was removed in 19.0 from 'project.project'. task-5172594
This update ensures that project ratings are displayed correctly in Odoo 19.0. Previously, ratings were controlled by a field that was removed, so the system now checks if a project's tasks have stages that support ratings to determine visibility. This change ensures ratings are shown when appropriate.
Original PR description
After this commit, we only show the project ratings if the project uses at least one stage that allows rating. Reason: as we removed the 'rating_active' field from 'project.project' (v19), we have to rely on task stages to determine if the project should show ratings. task-5172594 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update addresses a technical issue where reloading the webclient in Firefox while offline would display an error. With this fix, a new error handler catches 'Failed to fetch' errors, ensuring a smoother user experience when the webclient is temporarily disconnected from the internet. The change improves stability and reliability for Firefox users.
Original PR description
Before this commit, reloading the webclient on firefox while being offline resulted in a traceback. Now that we introduced a (partial) support of offline mode in the webclient, we have an error handler to catch errors thrown by window.fetch when there're connection problems. The thrown error is a TypeError (which is quite generic) with various messages depending on the browser. This commit adds the message of the TypeError for firefox. We applied the same diff in the service worker, in the handler responsible of displaying the offline page, which was never shown on firefox. Task~5364336 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 corrects a calculation error in rental order quantity tracking, specifically when returns are processed within linked pickings. The previous issue resulted in incorrect product quantities being displayed. This fix ensures accurate rental order quantity updates after returns are handled.
Original PR description
Steps to reproduce: - Enable multi-step & Rental transfers - Set warehouse to 2 steps reception/delivery - Create a rental order for a product with a qty of 5 - Process the PICK - Change the quantity in the rental order to 3 and save - Change the quantity back to 5 and save again Issue: The Rental IN picking has now a `product_uom_qty` of 1. This is due to a wrong computation of incoming/outgoing moves when there are returns (e.g. here a return PICK) in the linked pickings. opw-5028794 Forward-Port-Of: odoo/enterprise#100645 Forward-Port-Of: odoo/enterprise#98473
This update resolves an issue where the search function on the VoIP contacts tab wasn't properly filtering results. The fix ensures that search terms are now accurately reflected in the contact listings, improving user efficiency and data accuracy. This enhancement provides a more reliable experience for users managing their VoIP communications.
Original PR description
On recent/contacts tab, search rpc didn't take search term into account. Fix it. Task-5262162 Forward-Port-Of: odoo/enterprise#100478
This update increases the size of the Discuss composer on small screens, particularly on iPhones with rounded corners, to improve usability. Previously, the composer was cut off, making it difficult to use. This change ensures a more reliable and accessible experience for users across different devices.
Original PR description
When using small UI, the composer of Discuss is quite low. This is a problem especially with iPhones that have heavily rounded courners for which some content is cut and thus make it hard to use. One…
When using small UI, the composer of Discuss is quite low. This is a problem especially with iPhones that have heavily rounded courners for which some content is cut and thus make it hard to use. One solution is to add some bottom margin, but it needs to be removed when composer is focused otherwise it's too high with soft keyboard. That was the strategy we used, but it has been reverted [1] because this makes clicking on the "Send" button unreliable, due to the jump of send button when moving vertically, which made OWL not register the click on the button. This commit makes the composer bigger on small UI, so that although the bottom might be cut like on iPhones, at least the bigger size of the composer makes it less of a problem. Also the bigger size is welcome: with touch devices, the input is now vertically sized for touch interaction, of about 44px, which is close to recommended 48px. [1]: https://github.com/odoo/odoo/pull/226546 Before / After <img width="284" height="616" alt="Screenshot 2025-11-27 at 15 23 33" src="https://github.com/user-attachments/assets/ff9a3b42-078b-4e4f-a1c5-4d5828f7bb56" /> <img width="284" height="616" alt="Screenshot 2025-11-27 at 15 22 32" src="https://github.com/user-attachments/assets/f9fcb6c7-08f0-4cff-a578-648cf7866050" />
This update resolves a technical issue in the shopfloor module where clicking the 'add' button would trigger a traceback error when a specific quality check (Register Consumable Material) was applied to an operation. The fix ensures the necessary data is correctly propagated, preventing the error and improving user experience.
Original PR description
**Issue** In shopfloor, a traceback occurs when clicking on the add button if the associated operation has a `quality_check` of type `register_consumed_materials`. **Steps to reproduce** 1. Create…
**Issue** In shopfloor, a traceback occurs when clicking on the add button if the associated operation has a `quality_check` of type `register_consumed_materials`. **Steps to reproduce** 1. Create two products (product and component) 2. Create a BOM for this product that consumes that component 3. Create an operation linked to that BOM (Manufacturing > Configuration > Operations) 4. Add a quality check of type “Register Consumable Material” for this operation 5. Create a MO from that BOM and confirm it 6. Click on the shopfloor smart button → If debug mode is activated, a traceback occurs → Otherwise 7. Click on the 'add' button → A traceback occurs **Cause** In the method [`subRecordProps`](https://github.com/odoo/enterprise/blob/d180235b7946c7219385df263f13f780e7faea50/mrp_workorder/static/src/mrp_display/mrp_display_record.js#L190C9-L194C14), when a quality check of type `register_consumed_materials` is done, the variable `production` is not propagated into the props. And [this](https://github.com/odoo/enterprise/blob/d180235b7946c7219385df263f13f780e7faea50/mrp_workorder/static/src/mrp_display/mrp_record_line/stock_move.js#L184) tries to access the production in the props, which is [called](https://github.com/odoo/enterprise/blob/d180235b7946c7219385df263f13f780e7faea50/mrp_workorder/static/src/mrp_display/mrp_record_line/stock_move.js#L163) when the user clicks the 'add' button. **Solution** Add the `production` variable to the props. opw-5165259 Forward-Port-Of: odoo/enterprise#98808
This update fixes an issue where pasting formatted content, specifically `<small>` tags, into existing regions would create nested, and often duplicated, tags, leading to overly-styled text. The change unwraps these nested tags to prevent this styling amplification, ensuring consistent and predictable formatting within Odoo.
Original PR description
### Description of the issue/feature this PR addresses: - When pasting formatted content (like `<small>`) into a region that already had same formatting, it caused nested identical tags, leading to exaggerated styling (e.g., 'double small'). ```html <!-- User pastes <small>text</small> inside <small> --> <p><small>text []</small></p> <!-- Resulting HTML --> <p><small>text <small>text</small>[]</small></p> ``` ### Desired behavior after PR is merged: - Prevents unwanted style amplification by unwrapping nested identical formatting tags. ```html <!-- Resulting HTML --> <p><small>text text[]</small></p> ``` task-5138472 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#230915
The Original Bills report was not generating correctly in Odoo Studio. This was due to the report's complex, multi-stage PDF creation process, which Studio couldn't handle. To resolve this, the report has been blacklisted from Studio to ensure accurate report generation.
Original PR description
Steps to reproduce ================== - Install account_accountant,web_studio - Go to Invoices - Open studio - Click on "Reports" - Select the "Original Bills" report => The report is empty Cause of the issue ================== The Original Bills is a very specific report. Multiple streams are created and then combined to make the final PDF See: odoo/odoo#85150 Solution ======== Since studio cannot handle this usecase, we blacklist this report opw-5108198 Forward-Port-Of: odoo/enterprise#100769 Forward-Port-Of: odoo/enterprise#100729
This update resolves an access error that prevented managers from marking appraisals as complete. The fix ensures that users without HR permissions can still properly finalize appraisals, improving workflow efficiency. This change impacts the HR appraisal module.
Original PR description
STEP TO REPRODUCE: 1- Set Marc demo as a manager on an employee 2- Be sure he doesn't have the group group_hr_user 3- Log as Marc Demo 4- Create an appraisal for this employee 5- Confirm this appraisal 6- Click on "mark as done" You will have an access error; you shouldn't have it task-5349554 Forward-Port-Of: odoo/enterprise#100145
This update fixes a minor UI issue where message notifications appeared cramped due to insufficient spacing between the message text and reactions. The change removes a negative margin, creating a cleaner and more comfortable viewing experience for notifications. This improves the overall usability of the application.
Original PR description
Before this commit, the spacing between the text content of a message of type notification and the reactions was too small and resulted in the UI feeling cramped. This commit fixes the issue by removing the negative top margin in message reactions for messages that don't have enough padding. | Before | After | | ------------- | ------------- | | <img width="207" height="223" alt="Pasted image 20251124144956" src="https://github.com/user-attachments/assets/f23c070c-6253-440a-8b93-7b546daabda3" /> | <img width="202" height="236" alt="image" src="https://github.com/user-attachments/assets/e366a2ba-f851-4676-b108-bebf2fb12ec8" /> | task-5344759 Forward-Port-Of: odoo/odoo#237617 Forward-Port-Of: odoo/odoo#237120
This update resolves a technical problem related to how scheduled reports are generated in Odoo. The change adapts a system update to handle batches of records, ensuring reports are created correctly and reliably. This improves the stability and accuracy of automated reporting processes.
Original PR description
This commit fixes an issue introduced by [1] when overriding the mail.scheduled.message hook `_message_created_hook`. Since we are now handling batches of records and not singletons anymore this override needed to be adapted. [1]: 8fae6a058bc20732bccc6e3732144d4ea2aafdad task-5350130
This update fixes a visual issue on mobile devices where the control panel buttons were misaligned. The change prevents unnecessary buttons from rendering when there are no dropdown options, resulting in a cleaner and more consistent user experience. This ensures proper alignment and a better look on smaller screens.
Original PR description
On mobile when the `o-control-panel-adaptive-dropdown` doesn't have any `control-panel-buttons` to render in its slot, the `o_control_panel_main_buttons` is still rendered. This results in the `gap-1` being applied and visible before the `o_control_panel_breadcrumbs_actions` which misaligns it. This commit applies a `display: none` when the dropdown has only one child to not render the `o_control_panel_main_buttons` when it's not used. (Note the class `d-empty-none` can't account for `d-none` children). task-5357485 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update resolves an issue where adding products with non-standard unit defaults created incorrect capacity entries. The change also removes the sorting of capacities, ensuring they appear in the order they were added, providing a more intuitive and accurate workcenter management experience.
Original PR description
This fixes that adding a product whose default unit is not 'Unit' resulted in the creation of a capacity with 'Unit'. Also removed order of capacities to let them appear as they are entered. task: 5358827 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update fixes a bug where selections within code blocks in the HTML editor were unexpectedly lost. The fix ensures selections are properly preserved, enhancing the editor's usability. Additionally, the update addresses an issue with invisible whitespace in `<pre>` elements, improving overall formatting.
Original PR description
This PR addresses a bug that can be reproduced as follows: 1. Create a list before or after a paragraph 2. Indent the list 3. Insert a code block in it 4. Type in the code block -> the selection is ejected from the code block. The issue was due to `preserveTextareaSelections`: its condition to restore the focus within a textarea was never met. As a result, when the active selection was changed during normalization, the focus was lost. Fixing this revealed a double issue with the `undo` and `redo` functions: 1. the focus should be set _before_ setting the selection (otherwise changing the focus might change the selection back) 2. `body.focus()` doesn't do anything, we need to do `editable.focus()`. While fixing the issue, an unrelated problem was noticed and also addressed here: invisible whitespace that would become visible in a `<pre>` element should be removed before turning a block into a `<pre>`. task-5262154
This update adds a warning message to bank statement lines when an analytic distribution is required. Previously, users weren't alerted if this was necessary, potentially leading to errors. Now, users will receive a clear warning, guiding them to set up the required analytic distribution.
Original PR description
When setting the account on a bank statement line, analytic distribution might be required due to a mandatory plan. Before this commit, the user had no idea if the analytic is required or not. After this commit, lines that required analytic distribution will have a warning directing the user to set it. task-5055351 This is a backport of: https://github.com/odoo/odoo/commit/c337d97a3e06db37a316c4020261a797df4c6a1d Enterprise PR: https://github.com/odoo/enterprise/pull/100494 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#237368
This update enhances the search functionality for legal and European time off requests within the payroll module. The change ensures more accurate results by prioritizing searches based on the specific work entry type, which is a more reliable and consistent data point. This improves the accuracy of time off calculations and reporting.
Original PR description
The search on legal and european time off were barely based on leave types. It's safer to search based on the leave type of the corresponding work entry types as work entry types are more rigid. task-5367240
This update fixes an issue where inventory reporting for products using FIFO valuation incorrectly dropped decimal quantities. The team adjusted the reporting logic to accurately reflect the remaining value and quantity, even when dealing with fractional stock levels. This ensures more precise inventory reporting and valuation calculations.
Original PR description
Steps to reproduce: - Storable product with fifo valuation & standard price of $1 - Do an inventory adjustment with 1.9 qty - Go to Inventory > Reporting > Stock and click on the total value Issue: Remaning quantity is 1 and remaining value is $1.00 A cast to int() on the `qty_available` was done so it would be used as a `limit` for a search. However, this meant that the decimal part of the quantity would be dropped. After further analysis, we changed the over-engineered limit to always be 100, as by nature that value is completely arbitrary anyway. opw-5230435 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update fixes a technical issue that prevented the system from merging certain PDF files, specifically Bills. The problem stemmed from an error in how the system handled malformed PDFs. This change adds a helpful error message to the user, preventing confusing tracebacks and ensuring a smoother PDF merging experience.
Original PR description
Currently some PDFs cause error in PyPDF (Version 1 and 2) and cannot be merged. Steps to reproduce: - Create 2+ Bills with specific PDF (example found in ticket) - From Bills list view, select both and click Download > Original bills Issue: Traceback will raise `PyPDF2.errors.PdfReadError: Can't read object stream: Stream has ended unexpectedly` Thsi occurs because the version of PyPDF currently in use (2.12.1) cannot recover when working an odd PDF file having wrong length markers. This commit will add a nice error explaining to user what's going on. opw-5142961 Forward-Port-Of: odoo/odoo#234587
This update clarifies the labels associated with document access rights within the Enterprise module. The change provides a helpful description for each document's associated user groups, improving clarity and ease of management for administrators. This ensures users understand the permissions granted to documents.
Original PR description
This commit fix the label of documents access rights which now shows a helper for each documents res.groups. Task-5186096 Forward-Port-Of: odoo/enterprise#100792 Forward-Port-Of: odoo/enterprise#98890
This update resolves a technical problem related to how scheduled emails were processed. The previous implementation incorrectly handled multiple email creations, leading to potential errors. This fix ensures the hook is executed correctly for each scheduled message, improving email reliability.
Original PR description
This commit fixes an issue introduced by [1] with the introduction of the _message_created_hook on the `mail.scheduled.message` model. This hook requires to be called in a single record scenario. But this wasn't the case, as its call was done on potentially multiple newly created records. To fix this, the call to the hook is now done on a single record instead of a potential recordset. [1]: https://github.com/odoo-dev/odoo/commit/3a3bf6361dcabd8319811ac9090ace6052f79fdb task-5350130 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update ensures that expertises manually added to live chat conversations are retained when an agent joins the chat. Previously, the system would overwrite these expertises due to how related fields were handled. Now, expertises are correctly assigned and can be managed by agents as they interact with the conversation.
Original PR description
Before this commit, expertises manually added to a live chat would be disappear when an agent joined the chat. This occurs because this field is a related field so values are overwritten when the dependencies change. This field should actually not depend on the agent. Expertises shouldn't depend on agent but be assigned when the chat bot forwards the conversation or when an agent adds/remove expertises.
This update resolves an issue where the data type of related fields in Odoo was incorrectly identified, leading to potential data inconsistencies. The fix ensures that related fields consistently use the 'numeric' data type, improving data accuracy and stability. This change addresses a problem that arose due to a complex interaction during upgrades, particularly in Odoo 18.3.
Original PR description
**Steps to Reproduce:** 1. create test ``Float`` field in model ``A`` with ``digits`` args 2. create ``Many2One`` field with comodel ``A`` and then create Float Field in ``B Model`` with related…
**Steps to Reproduce:** 1. create test ``Float`` field in model ``A`` with ``digits`` args 2. create ``Many2One`` field with comodel ``A`` and then create Float Field in ``B Model`` with related ``A`` model test and store True **Issue:** 1. ``column_type`` for both model table will be different. For ``test field in model A`` the ``column_type`` will be ``numeric``. But for the related field ``column_type`` ``float`` it should be ``numeric``. This happen because the @lazy_propery it hold the ``column_type`` which is ``float8`` and other related attributes from ``setup_related`` before that ``_digits`` have the null value. So, from [here](https://github.com/odoo-dev/odoo/blob/a9398502260fa57573b88fd62ca3f554e0685c7b/odoo/fields.py#L772) it remains ``float8`` it should update with ``numeric`` **Second issue comes From odoo 18.3**:= during upgrade if any new ``module`` is intalled due to dependency change and inherits the same model that is ``A``. Due to ``_auto_init`` it will recompute this related field because due to this newly [commit](https://github.com/odoo/odoo/commit/f5ce6784fce1ae27c3e92090b3723e9d4ce45808) clear the columns column becomes [``False``] and [``not column``] becomes true from ``update_db`` and same reason as above it didn't return from [here](https://github.com/odoo/odoo/commit/f5ce6784fce1ae27c3e92090b3723e9d4ce45808#diff-956d895aa67961bac940841f7c3d1e10eb8ecabec82ef017803c4a6a3bb7cd22R1074) because column type is ``float8`` which leads to memory of unecessary compute which shouldn't do in first place. **FIX:** Remove the ``column_type`` and let it get again as soon ``_digits`` attribute add. before fix:- ``` SELECT column_name, data_type FROM information_schema.columns WHERE table_name = 'account_move_line' AND column_name = 'test_line_id'; column_name | data_type --------------+------------------ test_line_id | double precision (1 row) ``` After fix:- ``` SELECT column_name, data_type FROM information_schema.columns WHERE table_name = 'account_move_line' AND column_name = 'test_line_id'; column_name | data_type --------------+----------- test_line_id | numeric (1 row) ``` opw-5222760 upg-3253635 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#237874 Forward-Port-Of: odoo/odoo#235112
This update fixes an issue where a header on the spreadsheet dashboard action pushed content downwards, obscuring the bottom of the spreadsheet. The change ensures the full dashboard action is displayed correctly, maintaining a clean and usable layout. This improves the user experience for accessing and editing spreadsheet data.
Original PR description
The current rule applied on the spreadsheet action assumes that the action takes the full page but if we add a header , the full action is pushed downwards, which hides the bottom of the spreadsheet. Task: 5212448 Forward-Port-Of: odoo/enterprise#99654