Daily updates from Odoo
Friday, November 28, 2025
81 changes · 19.0
Resolved issues and error corrections
This update resolves a validation error that occurred when creating new offer templates for employees with existing work entries. The fix ensures the system correctly identifies existing contracts, preventing duplicate entries and improving data accuracy. This change ensures a smoother process for managing employee offers.
Original PR description
Steps to reproduce the bug: 1. install hr_contract_salary_payroll 2. check "My US Company" 3. go on "Work Entries", then click on the arrow to view the next month. -> This will generate work entries…
Steps to reproduce the bug: 1. install hr_contract_salary_payroll 2. check "My US Company" 3. go on "Work Entries", then click on the arrow to view the next month. -> This will generate work entries for the next month 4. Go back to employees / Troy Cruz / Offers (smart button) -> You should be on the form view of a new offer. Do not save it. 5. Change the contract template to (e.g.) Experienced Developer -> A validation Error should appear The validation error would tell us that we are trying to set a new contract to the employee, but the employee already had a running contract. This happens because `self.employee_id` would be set to false just after the write of it's version's `contract_date_end`: https://github.com/odoo/enterprise/blob/9ea4c1382a75024acacba7af1529d0c5cc762827/hr_contract_salary_payroll/models/hr_contract_salary_offer.py#L78C1-L78C7 This only happens when there are work entries after the specified end date. This is why we had to look at the next month's work entries. The problematic code gets rolled back at some point, but `self.employee_id` stays empty if we don't save the form, since self is a `newId` in this case, which is not stored in the DB (and thus not rolled back) The issue was that the context was supposed to have the `salary_simulation` key present, since we are doing a salary simulation. But, the backend would still try to unlink the work entries of current_version during the simulation. Which is not needed and causes `self.current_employee_id` to be set to `False` The context variable and a check before `_remove_work_entries()` has thus been added to fix that. task-5207567
This update resolves a validation error that occurred when changing a contract template on a new offer, specifically when work entries existed for the next month. The fix ensures the system correctly handles salary simulations and prevents incorrect contract assignments. This improves data accuracy and prevents users from creating conflicting contracts.
Original PR description
Steps to reproduce the bug: 1. install hr_contract_salary_payroll 2. check "My US Company" 3. go on "Work Entries", then click on the arrow to view the next month. -> This will generate work entries…
Steps to reproduce the bug: 1. install hr_contract_salary_payroll 2. check "My US Company" 3. go on "Work Entries", then click on the arrow to view the next month. -> This will generate work entries for the next month 4. Go back to employees / Troy Cruz / Offers (smart button) -> You should be on the form view of a new offer. Do not save it. 5. Change the contract template to (e.g.) Experienced Developer -> A validation Error should appear The validation error would tell us that we are trying to set a new contract to the employee, but the employee already had a running contract. This happens because `self.employee_id` would be set to false just after the write of it's version's `contract_date_end`: https://github.com/odoo/enterprise/blob/9ea4c1382a75024acacba7af1529d0c5cc762827/hr_contract_salary_payroll/models/hr_contract_salary_offer.py#L78C1-L78C7 This only happens when there are work entries after the specified end date. This is why we had to look at the next month's work entries. The problematic code gets rolled back at some point, but `self.employee_id` stays empty if we don't save the form, since self is a `newId` in this case, which is not stored in the DB (and thus not rolled back) The issue was that the context was supposed to have the `salary_simulation` key present, since we are doing a salary simulation. But, the backend would still try to unlink the work entries of current_version during the simulation. Which is not needed and causes `self.current_employee_id` to be set to `False` The context variable and a check before `_remove_work_entries()` has thus been added to fix that. task-5207567
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 error that occurred when users attempted to assign multiple stock references of the same name on Reception reports. The fix allows for the correct handling of duplicate references, ensuring the reporting functionality works as expected. This improves the reliability of the sales order fulfillment process.
Original PR description
Currently an error occurs when there are multiple stock references of same name, and user assigns references on Reception report. Steps to replicate: - Install `sale_stock`. - Load Demo data from…
Currently an error occurs when there are multiple stock references of same name, and user assigns references on Reception report.
Steps to replicate:
- Install `sale_stock`.
- Load Demo data from Settings.
- From settings, check `Reception Report`.
- Go to Operations > Reference > S00004 > Duplicate it (from the form view).
- Open Receipts > WH/IN/00002 > Allocation (Smart button) > Click 'Assign All' or the S00004 line.
Error:
```
File "/home/odoo/odoo18/community/addons/stock/report/report_stock_reception.py", line 271, in action_assign
self._action_assign(in_move, out)
File "/home/odoo/odoo18/community/addons/stock/report/report_stock_reception.py", line 343, in _action_assign
in_move._get_source_document()._add_reference(out_ref)
File "/home/odoo/odoo18/community/addons/stock/models/stock_picking.py", line 2102, in _add_reference
self.move_ids.reference_ids = [Command.link(reference.id)]
File "/home/odoo/odoo18/community/odoo/orm/fields_misc.py", line 112, in __get__
raise ValueError("Expected singleton: %s" % record)
ValueError: Expected singleton: stock.reference(3, 19)
```
Cause:
- As the user duplicated the record, there were two records received in the variable `reference` at [1] that caused the expected singleton error.
Solution:
- The methods `_add_reference()` and `_remove_reference()` can now handle multiple reference records.
[1]: https://github.com/odoo/odoo/blob/4b2154870eebcce449f53d8f593386ae6af04a83/addons/sale_stock/models/sale_order.py#L329
sentry-6982131891
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-prThis 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 documents and moves were incorrectly linked across companies in a multi-company setup. By explicitly including the company ID during attachment creation and searching, the system now accurately assigns documents to the correct company, preventing errors and ensuring data integrity. This improves the reliability of financial reporting and move management.
Original PR description
Behavior before: In a multi-company setup, fetching documents could include records from different companies based on VAT numbers. When creating attachments or searching for existing moves, the company ID was not properly considered, leading to incorrect company assignments and failed move creation. Behavior after: Documents and moves are now created and searched within the correct company context by explicitly including the company ID. Root Cause: The company ID was missing in both the attachment creation and the domain used to search for existing moves, causing cross-company mismatches. opw-4929985 Forward-Port-Of: odoo/enterprise#99192
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 an issue where CFDI invoices generated in the Mexico localization were producing incorrect rounding values. The fix involves a refined process for calculating tax amounts and aggregating line items, ensuring accurate CFDI invoice generation. This improves compliance and data integrity for Mexican businesses using Odoo.
Original PR description
- Refactor the CFDI generation using the EDI tax helpers to prevent rounding issues by spreading the amounts according a tolerance of 0.000001. - Aggregate lines before computing the global invoice CFDI. That way, we avoid creating new rounding issues by post-processing the created CFDI. task_id: 5096249 Forward-Port-Of: odoo/enterprise#100373 Forward-Port-Of: odoo/enterprise#99395
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 search results on the website were not displaying correctly when the search returned more results than a single page could handle. The system now automatically redirects users to the last page of results, ensuring a seamless browsing experience. This improves usability and prevents misleading 'no results' messages.
Original PR description
Scenario: - enable website_studio - go to contact -> open studio -> website - add a listing and open it on website - go to page 2 and search a specific terms with less than 20 results Result: we see "5 results" in the search bar, but no result are shown and the pager is hidden. Cause: the pager is hidden since there is only one page, and we are currently displaying the records of page 2 that do not exist. Fix: if we detect that we are on a page over the last page, redirect to the last page. Eg. if there is 2 pages and we are in page 500, redirect to page 2. opw-5008556 Forward-Port-Of: odoo/odoo#236600 Forward-Port-Of: odoo/odoo#223447
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 significantly improves the speed of the website builder when managing forms and data. Previously, rendering large lists of options took over a second, causing delays. Now, the process is much faster – just a few hundred milliseconds – making the website builder more responsive and user-friendly.
Original PR description
Before this commit, rendering BuilderList with many elements caused noticeable delays. How to reproduce: ======================= - Use a runbot with all demo data - Switch to edit mode in the website…
Before this commit, rendering BuilderList with many elements caused noticeable delays. How to reproduce: ======================= - Use a runbot with all demo data - Switch to edit mode in the website builder - Add a form - Link the form to the Contact model - Add the "State" field Before this commit: The options related to the "State" field took more than one second to render. After this commit: Rendering is several hundred milliseconds faster. Additional commits will follow to further improve the situation. Reason for the slowdown: ======================= BuilderList is not optimized to render several thousand records (about 1900 in this example). This commit addresses the identified bottlenecks to reduce rendering time. 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#237462
This update restricts the 'Export ZIP' menu option to the invoice list view, addressing an issue where non-sent invoices didn't generate PDFs in the download. While this doesn't fully resolve the PDF generation problem, it improves usability. Further improvements are being considered to optimize performance and provide clearer error messages for non-sent invoices.
Original PR description
- Earlier, when downloading an invoice, invoices that were never sent didn’t have a generated PDF. This happened because the method _get_invoice_legal_documents_all had allow_fallback=False by…
- Earlier, when downloading an invoice, invoices that were never sent didn’t have a generated PDF. This happened because the method _get_invoice_legal_documents_all had allow_fallback=False by default. As a result, those invoices returned no attachments, leading to blank pages or missing files in the ZIP download — since the invoices weren’t sent and no fallback was allowed. **Steps to reproduce:** **1:** Go to Invoices **2:** Try to use Export ZIP for any non-sent invoice → you’ll see a blank page **What this patch does:** - It limits the Export ZIP option to the list view only. This doesn’t fix the missing PDF issue, but it makes sense — having “Export ZIP” on every single invoice form view isn’t useful. **Possible improvements to consider:** **1:** Restrict Export ZIP so it’s only available for sent invoices. This would improve performance since sent invoices already have PDFs stored in the filestore. **2:** Allow a fallback for invoices that haven’t been sent, so their PDFs are generated when exporting — but this may cause performance issues if too many non-sent invoices are processed at once. **3:** Instead of showing a blank page for non-sent invoices, show a user-friendly error message. (I noticed this was in the original commit odoo/odoo@c81ab09d0404cc57f48c202360361a1700f060db where this was introduced but was later removed — not sure why.) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#234886
This update fixes an issue where POS receipts in non-English languages (like French) didn't accurately show the change amount after an overpayment. The fix ensures that change is correctly calculated and displayed on receipts regardless of the selected language, improving the user experience.
Original PR description
Currently, if a user overpays while using a different language, like French, the receipt does not show the change. **Steps to replicate:** * Install POS with demo data and change language to French .…
Currently, if a user overpays while using a different language, like French, the receipt does not show the change. **Steps to replicate:** * Install POS with demo data and change language to French . * POS > Furniture Shop > Open the register * Select a product, overpay with cash, and validate. **Issue:** * As seen in [1], the `Change` field doesn’t appear when overpaying with cash, even though it shows in the English version. **Root cause:** * The issue happens because changing the language translates the payment line name at [2] (coming from the translated return at [3]). This makes it get included in the sum at [4], which incorrectly subtracts it from the total cash paid and causes the change amount to disappear on the receipt. **Solution:** * Check and add up the payment lines where `is_change` is `false`, and use that instead of relying on the payment line’s name at [3]. **Before:** <img width="830" height="556" alt="image" src="https://github.com/user-attachments/assets/5aaddfe0-fe46-49e1-a877-4fe4de2fb5c7" /> **After:** <img width="931" height="596" alt="image" src="https://github.com/user-attachments/assets/4215d6b8-14b4-4e59-85bc-4d0f43f1d09c" /> [1]: https://www.odoo.com/web/image/91240289?access_token=bef22d9abd1232e34f510648a34f7709d82b848ed852fccdb893f2d1149067abo0x69505fa6&filename=image.png&unique=dd2a62fbe180532cf5cf00c27adc60742f113ddc [2]: https://github.com/odoo/odoo/blob/0581b7fb6abc8e856cedf13254ba1f9d362d6d34/addons/point_of_sale/static/src/app/models/accounting/pos_order_accounting.js#L146 [3]: https://github.com/odoo/odoo/blob/0581b7fb6abc8e856cedf13254ba1f9d362d6d34/addons/point_of_sale/models/pos_order.py#L188-L195 [4]: https://github.com/odoo/odoo/blob/0581b7fb6abc8e856cedf13254ba1f9d362d6d34/addons/point_of_sale/static/src/app/models/accounting/pos_order_accounting.js#L147 opw-5344903
This update corrects a configuration issue within the l10n_fr_hr_payroll module that was causing an 'Invalid Operation' error during payroll processing. The fix involved changing a field name from 'company_20id' to the correct 'company_id', ensuring proper integration with employee data and payroll calculations.
Original PR description
**Steps to reproduce:** 1. Open database with version 19.0 2. Install module l10n_fr_hr_payroll_with_accounting 3. Set `Salary Journal` in: `Configuration` -> `Structure` -> `FR: Employe Carde` ->…
**Steps to reproduce:** 1. Open database with version 19.0 2. Install module l10n_fr_hr_payroll_with_accounting 3. Set `Salary Journal` in: `Configuration` -> `Structure` -> `FR: Employe Carde` -> `Employe Carde` 4. In Payroll app create a payslip for any employee 5. In `structure` Employee cadre be choosen, And also 6. Make sure in salary inputs you make new type and in that in the `availability in structure` has Employee cadre chosen. 7. Now with that Salary Input type click on `Compute sheet` button. 8. The `Invalid Operation` error card will appear. **Description:** After this changes in the [commit](https://github.com/odoo/enterprise/pull/100112/files) you will face another issue for which the steps are there in steps to reporduce. In this [commit](https://github.com/odoo/enterprise/commit/bd2ee7546df3f31c73e8aaae0244ac6767f982fb#diff-5b26ac7c31dbf0286aa98671d7dadb50c117ea2ffb0d52d55a8f4e5d16d7ee88R709) Instade of `company_id` there is `company_20id`, which is not valid field. As in this code: https://github.com/odoo/enterprise/blob/e29aadef1a81c662d9a4d33879b440dbe4390c0b/l10n_fr_hr_payroll/models/res_config_settings.py#L11 we can see that `company_id ` is set as related field for nombre_employes, so I have changed from `company_20id ` to `company_id` **opw**: [5259362](https://www.odoo.com/odoo/project/70/tasks/5259362)
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 an issue where payment validation in the POS system would fail when orders included products with different unit of measures. The fix ensures that a single sale order line is passed during payment validation, preventing a system error and allowing successful payment processing.
Original PR description
**Steps to reproduce:** * Install the **pos_sale** module. * In **Settings**, enable the *Units of Measure & Packagings* option. * Create two products, each using a different **Unit of Measure**…
**Steps to reproduce:** * Install the **pos_sale** module. * In **Settings**, enable the *Units of Measure & Packagings* option. * Create two products, each using a different **Unit of Measure** (e.g., *Unit*, *Hours*), and ensure both are available in POS. * Open the **Sales** app and create a quotation including both products. Confirm the order. * Open the **POS Store** and go to **Quotation/order** options , and select *Created Sale Order* with the option **Settle the order**. * Proceed to the payment screen and attempt to validate the payment. **Observed behavior:** * A **singleton error** is raised when validating the payment for a sale order containing multiple lines with different UoMs. **Cause:** * The code incorrectly passes `self`, which may contain multiple sale order lines, leading to a singleton expectation failure. **Fix:** * Pass a single sale order line to avoid the singleton error during payment validation. --- opw-5251840 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update resolves an issue that occurred when users edited sale order lines, specifically replacing combo products. The fix prevents a technical error (IndexError) that arose during the order saving process, ensuring smoother operation for users.
Original PR description
Currently, an error occurs when a user replaces a `combo product` with another product in a sale order line before the order is saved. **Steps to produce:** - Install the `sale_management` module…
Currently, an error occurs when a user replaces a `combo product` with another product in a sale order line before the order is saved. **Steps to produce:** - Install the `sale_management` module with demo data. - Open `sale order`, click `Add a product`, and add a `combo product` (Office Combo). (`Make sure the form is not saved`) - Click on the `combo name` (Office combo x 1) and replace it with another product. **Error:** `IndexError: tuple index out of range` **Root cause:** After PR [1], at [2], when a combo product is replaced before the order is saved, the code attempts to update the combo item lines even though the template type (`product_template_id.type`) is not `combo`. This leads to an update of `product_uom_qty`, which triggers the `_compute_price_unit` method and results in the error at [3]. **Fix:** This commit prevents errors when a user replaces a combo product with another product. [1]: https://github.com/odoo/odoo/pull/194496 [2]: https://github.com/odoo/odoo/blob/47e561bd1f6bc14724d60ebf09a66e458dfd4799/addons/sale/models/sale_order.py#L966-L970 [3]: https://github.com/odoo/odoo/blob/c758b93a57cd98ab76c26c03bd0097f2eef50961/addons/sale/models/sale_order_line.py#L766 sentry-7009976704
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 technical error that occurred when users attempted to adjust partial payments made through SEPA QR payments in the Point of Sale module. The fix ensures that the system handles these adjustments correctly, preventing a traceback and improving the payment process for business customers. The change restricts the 'Adjust Amount' button to compatible payment methods.
Original PR description
Steps to reproduce: ==================== - Create a SEPA QR payment method (for a BE company). - Create an order and select this payment method. - Manually change the payment amount (partial amount). - Confirm the partial payment. - Click on the "Adjust Amount" button a traceback occurs. Issue: ======= In the XML template, the JS method `sendPaymentAdjust()` was being called, but this method was not defined on the JS side, leading to a traceback when the button was clicked. Fix: ===== - Restricted visibility of the "Adjust Amount" button to payment terminal methods that support adjustment. - Added the missing JS method to handle the call and prevent traceback. Task-5241346 Forward-Port-Of: odoo/odoo#237608 Forward-Port-Of: odoo/odoo#235281
This update corrects a bug where the 'Use Documents' option wasn't correctly configured for LATAM invoices during data loading. The fix ensures that when a LATAM chart of accounts is selected, the system automatically enables this crucial setting, streamlining invoice processing for Latin American businesses. This resolves an issue impacting invoice accuracy and compliance.
Original PR description
### Issue: During the loading of fiscal position data for LATAMs the option "Use Documents" on Journals is not set-up. ### Steps to reproduce: - Install 'l10n_ar' - Settings > Accounting - Make sure…
### Issue: During the loading of fiscal position data for LATAMs the option "Use Documents" on Journals is not set-up. ### Steps to reproduce: - Install 'l10n_ar' - Settings > Accounting - Make sure the "Fiscal Localization" have a value (not Argentina) - Change the "Fiscal Localization" to "Argentine - Generic Chart of Accounts [...]" - Go in Accounting > Configuration > Journals - Click on "Ventas Preimpreso" - The journal don't have "Use Documents" ticked but it should ### Cause: When loading the data, `_get_chart_template_data()` calls `_get_ar_base_res_company()` and `_get_latam_document_account_journal()`. The first one returns the data to change `res.company.account_fiscal_country_id` to `base.ar`. The second one [checks](https://github.com/odoo/odoo/blob/26a5384af0af8fc6e6b5a10bea277f937e2b3481/addons/l10n_latam_invoice_document/models/account_chart_template.py#L12) that [`self.env.company.account_fiscal_country_id.code == "AR"`](https://github.com/odoo/odoo/blob/d985ec2e9b61b5e6c36a278654d526aaa5b512e2/addons/l10n_ar/models/res_company.py#L36) before returning the data to change `l10n_latam_use_documents` to `True`. As `res.company.account_fiscal_country_id` has not been updated, it's not Argentina during the check and `_get_latam_document_account_journal()` returns nothing. ### Solution: When loading the template, we cannot use `res.company.account_fiscal_country_id` to know if we are in LATAM or not. So instead we check on `chart_template`. opw-5221931 Forward-Port-Of: odoo/odoo#237725 Forward-Port-Of: odoo/odoo#236217
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 resolves an issue where price adjustments on lots weren't correctly updating the associated stock move value. The fix maps the `lot_id` from the `stock.move.line` model to the `stock.move` model, ensuring accurate value tracking after price changes. This improves the reliability of inventory valuation.
Original PR description
**Steps to Reproduce the Issue**: 1. Install the following apps in version 19.0 database: * stock_account 2. Go to Settings → enable Lots & Serial Numbers. 3. Open the Inventory app, then go to…
**Steps to Reproduce the Issue**:
1. Install the following apps in version 19.0 database:
* stock_account
2. Go to Settings → enable Lots & Serial Numbers.
3. Open the Inventory app, then go to Products and create a new product
with the following configuration:
* Product Type: Goods
* Track Inventory: By Unique Serial Number
* Inventory tab: Enable Valuation by Lot/Serial
* General Information tab: Create a new Product Category with:
* Costing Method: AVCO (Average Cost)
4. Go to Products → Lots/Serial Numbers.
5. Create a new Lot/Serial Number and select the product you just created, then
click Save.
6. Now update the Cost in the Lot/Serial Number form and click Save again.
7. You will now encounter the trackback error.
**Description:**
In the [commit](odoo@22b9e1a#diff-2623d0e4c393b65afe1c6d00f55af80d19f022aaeb0da0e5e173e37a84138159R42) The `lot_id` is written but in `stock.move` model there is `lot_ids` [field]((https://github.com/odoo/odoo/blob/6496653de3c9bb2a3cde8e38fdda8fb7abe27713/addons/stock/models/stock_move.py#L189)) so it gives error `keyerror`.
Now i have used [`lot_id`](https://github.com/odoo/odoo/blob/9333df06e15134df92efed765cf95db38c0dfede/addons/stock/models/stock_move_line.py#L48) field of `stock.move.line` for mapping the `move_id` so that after price adjustment correct move value is set.
opw-[5266457](https://www.odoo.com/odoo/project/70/tasks/5266457)
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-prThis 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 fixes an issue where Verifactu invoices generated from Point of Sale orders were incorrectly using 'F1' instead of 'F3' after invoicing. The change ensures that orders previously invoiced as simplified versions retain the correct 'F3' invoice type, aligning with Spanish tax regulations. This prevents potential discrepancies with tax authorities.
Original PR description
To reproduce ------------- 1. Install `l10n_es_edi_verifactu_pos`, and select the ES company 2. Make an order in PoS with a price less than 400, and don't invoice it. 3. Close the PoS session, then…
To reproduce ------------- 1. Install `l10n_es_edi_verifactu_pos`, and select the ES company 2. Make an order in PoS with a price less than 400, and don't invoice it. 3. Close the PoS session, then go to PoS > Orders, and select the previously made order 4. It will have a Verifactu generated document with invoice type as 'F2', which is correct since it's a simplified order. 5. Click invoice to invoice the order; the invoice is no longer simplified. Notice now that the new Verifactu document has an invoice type of 'F1', which corresponds to a normal non simplified invoice. However, since the new invoice is replacing an old simplified one, it should be of type 'F3' instead. The fix ------- We add a new field on the `pos.order` model to retain if that order was previously invoiced with a simplified invoice, in that case, we set its type to 'F3' instead of 'F1' when fully invoicing it. Sources: -------- Difference between 'F1', 'F2', and 'F3' invoice types: https://sede.agenciatributaria.gob.es/Sede/iva/sistemas-informaticos-facturacion-verifactu/preguntas-frecuentes/procedimientos-facturacion.html?faqId=bdbd20022fe06910VgnVCM100000dc381e0aRCRD opw-5343973
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 ensures analytic line values are calculated using the company's currency, resolving discrepancies caused by using the journal item's currency and rounding factors. This change improves the accuracy of financial reporting and balances, particularly when dealing with multi-currency transactions.
Original PR description
Analytic line values are determined by the balance of a journal item, not their amount_currency. https://github.com/odoo/odoo/blob/8258ddf12ed6c0495628f7a480d1e2424e756540/addons/account/models/account_move_line.py#L3230-L3237 However, the journal item's currency is referenced when creating an analytic line. This can cause discrepancies when the journal item's currency has a different rounding factor (`rounding`). [Ticket link](https://www.odoo.com/odoo/unassigned-tasks/5171681) opw-5171681 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#237129 Forward-Port-Of: odoo/odoo#234797
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 an issue where changes to a sales order's quantity weren't correctly reflected in the procurement process when using multi-step delivery routes. Specifically, the system was only considering the initial quantity moved, failing to account for returns. This ensures accurate inventory management and procurement quantities are calculated, preventing discrepancies.
Original PR description
Steps to reproduce: - Enable Multi-step routes & set warehouse to 3 steps delivery - Make a SO for 5 qty of a stored product - Validate the PICK - Set the SO line qty to 3 & save - Set the SO line…
Steps to reproduce: - Enable Multi-step routes & set warehouse to 3 steps delivery - Make a SO for 5 qty of a stored product - Validate the PICK - Set the SO line qty to 3 & save - Set the SO line qty to 5 & save Issue: While the first update to 3 creates a return PICK from Packing Zone -> Stock for 2 qty, the second updates does nothing. When checking the outgoing/incoming moves to see which quantity should be set in the procurement, it only considered the outgoing quantity from the first step of the delivery. Which means that the return wasn't taken into account, so since we only compare the new SO line qty to the already moved PICK, there was no difference thus no procurement made. Now, we also consider less strict critera for incoming moves when checking in `strict == False` mode, as this is only used to compute the procurement quantity. opw-5028794 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#237609 Forward-Port-Of: odoo/odoo#233796
This update corrects a bug where the tax amount on invoices wasn't accurately calculated after deleting and adding a line. Specifically, removing a taxed line followed by an untaxed line would result in an incorrect tax total. The fix adjusts the system's logic to properly recompute tax amounts in these scenarios.
Original PR description
**PROBLEM** If in an invoice you delete a taxed line, and then add an untaxed line the tax amount might not be up to date. **STEP TO REPRODUCE** 1. create an invoice with 2 lines both taxed. 2.…
**PROBLEM** If in an invoice you delete a taxed line, and then add an untaxed line the tax amount might not be up to date. **STEP TO REPRODUCE** 1. create an invoice with 2 lines both taxed. 2. remove one of the line, and create a new line which is untaxed. 3. confirm the invoice and notice the tax amount is not correct (= to the tax amount with the 2 taxed lines). Be sure to not click on the "journal items" tab, else the bug will not occur. **ISSUE** In _sync_tax_lines(), there is checks to know if we should recompute the tax amount, or keep the old one. We enter the check that checks the changed lines and determine if we should recompute the tax amount. This check doesn't take into account the fact that a line could have been deleted. Because we are in a elif chain, we don't do other checks. **FIX** Moving up in the elif chain the check that test if a base line with tax was removed and recompute the tax amount if that's the case. [opw-5157090](https://www.odoo.com/odoo/project/49/tasks/5157090) Forward-Port-Of: odoo/odoo#237060
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 corrects a reporting issue where planned hours incorrectly included employee leave days and public holidays. The fix ensures that the Timesheet/Planning Analysis report accurately calculates planned hours by excluding time-off and holidays, providing more reliable project time tracking.
Original PR description
**Description** The Timesheet/Planning Analysis report (Timesheets > Planning Analysis) incorrectly calculates planned hours by not excluding employee time-off and public holidays. This results in…
**Description** The Timesheet/Planning Analysis report (Timesheets > Planning Analysis) incorrectly calculates planned hours by not excluding employee time-off and public holidays. This results in leave days being assigned the average daily hours from planning slots and incorrectly attributed to projects. **Steps to Reproduce** 1. Create a planning slot for an employee spanning a full month 2. Add employee time-off (resource.calendar.leaves) during that period 4. Navigate to Timesheets > Timesheets / Planning Analysis report 5. Filter by the employee and date range 6. Observe: Planned hours include leave days, incorrectly attributed to the planning slot's project **Root Cause** The SQL query filters by day of week (weekends) but never queries `resource_calendar_leaves`. While `working_days_count` correctly excludes leaves, the report still generates rows for those leave days and assigns them average hours per day, causing the discrepancy. **Solution** Filter out dates that have employee time-off or public holidays by joining to `resource_calendar_leaves` and excluding matching dates. opw-5027070 Forward-Port-Of: odoo/enterprise#100516 Forward-Port-Of: odoo/enterprise#97657
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 fixes an issue where chart granularity options were limited when no date filter was applied. Now, 'day' granularity is consistently available, and the system efficiently caches these options to avoid unnecessary calculations. This improves chart performance and usability.
Original PR description
## Description Current behavior before PR: - Day granularity was not added when no date global filter was defined. - Charts inserted from graph view with default day granularity behaved incorrectly. When switching from day to week granularity, day would disappear from the available options. - Granularities were recomputed on every call, causing repeated work. Desired behavior after PR is merged: - Day granularity is now added to the available granularities when no date global filter is set. - Granularities are cached per chart, avoiding repeated computation. - Redundant code paths were cleaned up to simplify the logic. Task: [5155481](https://www.odoo.com/odoo/project/2328/tasks/5155481) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update adds a warning to bank statement lines when an analytic distribution is required. Previously, users weren't alerted to this requirement, potentially leading to errors. Now, users will receive a clear warning, guiding them to set up the necessary analytic distribution plan.
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/enterprise/commit/00396d24114b8747ff73ae60f032b630ce88c7a4 Community PR: https://github.com/odoo/odoo/pull/237368 Forward-Port-Of: odoo/enterprise#100494
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 an issue where the cost of products in POS orders wasn't accurately calculated when using product variants with multiple attribute values. The fix ensures that the correct cost is applied based on the specific variant used in the order, improving order accuracy and financial reporting. This was triggered by a misinterpretation of how BOM lines and product attributes are linked during cost computation.
Original PR description
When you create a product with atleast one variant that has 2 value, and create a BoM for this product that has 2 lines with each line having one of the two values, then create a POS order with one…
When you create a product with atleast one variant that has 2 value, and create a BoM for this product that has 2 lines with each line having one of the two values, then create a POS order with one unit of each variant, the cost of the first line not correctly computed. Steps to reproduce: ------------------- * Create a prodcut P with one attribute A that has two values A1 and A2 * Create a product C with no attribute and a cost of 10$ * Create a BoM for P with two lines: - Line 1: product C, quantity 1, only for attribute value A1 - Line 2: product C, quantity 2, only for attribute value A2 * Open a PoS session * Add Product P with attribute value A1 to the order * Add Product P with attribute value A2 to the order * Validate the order and close the session * Go to the order and check the cost of each line > Observation: The cost are not correct, they should be 10$ and 20$ Why the fix: ------------ Before this fix we were not taking the `bom_product_template_attribute_value_ids` into account when filtering the stock moves to consider for the cost computation. This value represent the attribute values that the product must have for this BoM line to be considered. opw-4765234 Forward-Port-Of: odoo/odoo#236450 Forward-Port-Of: odoo/odoo#225014
This update resolves an issue where editing a statement line with a currency exchange rate would trigger an error. The fix prevents the system from attempting to reconcile exchange moves during edits, allowing users to correctly mark invoices as paid without encountering the 'reconciled' error. This improves the usability of bank statement reconciliation.
Original PR description
When you create a statement line with one currency rate, and you reconcile it with a move with a different currency rate, this creates an exchange move. But when you want to edit the statement line amount, like marking the invoice as fully paid, this raise a UserError, as the Exchange move is reverted and reconciled, which means it throw an error like "You are trying to reconcile some entries that are already reconciled." This commit, fix this behaviour, by excluding the exchange moves from the check process. Linked:https://github.com/odoo/odoo/pull/237367 [opw-5184679](https://www.odoo.com/odoo/my-support-tasks/5184679) Forward-Port-Of: odoo/enterprise#100493
This update fixes an issue where the mobility budget was incorrectly calculated for part-time employees during salary simulations. The system now accurately uses a full-time equivalent for budget calculations, aligning with Belgian regulations. The change also restores the display of mobility budget wages on employee views.
Original PR description
Mobility budget should be computed based on a full time equivalent: https://lebudgetmobilite.be/fr/6-quel-est-le-montant-du-budget-mobilite#te During salary simulation, that is based on work time rate, a payslip is computed and triggers to recompute the version on which the payslip is bas That makes the mobility budget recompute as well, but this time, based on part time wage (e.g.: 2000 instead of 4000 for a mid-time). This PR adds context keys to ensure that during the salary simulation, the Mobility budget is still computed based on a full time equivalent. Also, this PR reintroduces wage with mobility budget on employee view Task-5360844
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 ensures the Sign app meets legal requirements for U.S. companies by notifying users when the sender is based in the U.S. and offering the option to request a paper copy of signed documents. This compliance update protects the company from potential legal issues related to electronic signatures.
Original PR description
Previously, the Sign app did not comply with the ESIGN Act. It now notifies users when the sender company is U.S.-based that they can request a paper copy of a signed document, ensuring ESIGN Act compliance. task-5166918 Forward-Port-Of: odoo/enterprise#100618 Forward-Port-Of: odoo/enterprise#97163
This update ensures that Point of Sale orders in Mexico correctly utilize the customer's CFDI usage setting, rather than defaulting to 'G03'. This fix addresses a previous issue where CFDI usage wasn't being properly applied, ensuring compliance with Mexican tax regulations for PoS transactions.
Original PR description
When making an order in the PoS in Mexico, if the customer has a CFDI usage set on their partner, it should be used for the order instead of the default one. Steps to reproduce: ------------------- * Install l10n_mx_edi_pos * Create a partner with a CFDI usage different than 'G03' * Open the PoS, select the partner and make an order * Validate the order and check the order in the backend > Observation: The CFDI usage is 'G03' instead of the one set on the partner. opw-5018288 Forward-Port-Of: odoo/enterprise#98607
This update ensures that when users modify the serial number of a product during a delivery process (e.g., changing a lot ID), the change is accurately saved and used. Previously, the system reverted to the original serial number, causing inconsistencies. This fix resolves a critical issue impacting order fulfillment accuracy.
Original PR description
In the stock.picking form, we can modify the `lot_id` of the product we deliver to the customers. Since 19.0, the edited `lot_id` wasn't saved properly, leading to the original `lot_id` being used…
In the stock.picking form, we can modify the `lot_id` of the product we deliver to the customers. Since 19.0, the edited `lot_id` wasn't saved properly, leading to the original `lot_id` being used when confirming the delivery. ### Steps to reproduce: 1. Install the Stock (`stock`) app. 2. Enable the *Lots & Serial Numbers* traceability settings. 3. Create a product tracked *By Unique Serial Number* 4. Create a quotation with a line that includes the product tracked by unique serial number 5. Confirm the quotation 6. Click on the *Delivery* smart button 7. Display the *Serial Numbers* column in the list view 8. Update the Serial Number of the product (remove the original serial number, then add a new one) 9. Click *Validate*, or *Save manually* and reload the page 10. The Serial Number set in step 8 is replaced by the original one The condition at the start of the `StockMove._set_lot_ids` method was preventing the `stock.move.line` from being updated. In the context of this issue, at the moment of execution, the `stock.move.line` still has the original `lot_id`, but it should be updated to the `lot_id` set by the user. This update does not occur because of the condition. https://github.com/odoo/odoo/blob/af4365421bc7ba990420789c12c98270d723fa1a/addons/stock/models/stock_move.py#L606-L607 After applying this fix, the serial number set by the user is correctly saved and used when clicking the *Validate* button on the stock picking form. opw-5169690
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 a bug that prevented video auto-focus during call joins and mid-call camera activations, particularly in different call layouts (mobile, chat, PiP). It now ensures a smooth video experience for all users, resolving layout overflow issues and improving call usability.
Original PR description
Before this PR: - Auto focus on a participant’s video when joining a call did not trigger due to a typo in the find() callback, causing it to always return undefined. - The video-focus-on-join…
Before this PR:
- Auto focus on a participant’s video when joining a call did not trigger due
to a typo in the find() callback, causing it to always return undefined.
- The video-focus-on-join feature was only conditioned on the call component
not being shown in the Discuss desktop view. This does not handle the cases
when call is in meeting view or PiP view
- The video-focus-on-join feature only ran at call join time. In one-one calls,
when the other participant turned on their camera after the call started,
their video was not focused even when auto-focus was enabled
- When any participant had video enabled, the call component could overflow
the chat window, causing an unwanted horizontal scrollbar.
This PR:
- Fixes the find() callback typo so the active streaming session is correctly
detected and auto-focused when joining a call.
- Updates the video-focus-on-join conditions to support all intended layouts:
1. mobile (small UI)
2. chat window
3. PiP window.
- Extends the video-focus-on-join feature: in one-one calls, when the other
participant turns on their camera mid-call, their video is now automatically
focused (when auto-focus is enabled and the above layout conditions are met).
- Fixes layout overflow by preventing the call component from exceeding the
chat window width.
Before / After fix (overflow issue):
<img width="300" height="640" alt="image" src="https://github.com/user-attachments/assets/a291949f-5a82-4c0c-a3c3-d31078e2e62e" /> <img width="300" height="640" alt="image" src="https://github.com/user-attachments/assets/f8405be4-e200-416b-b582-ecc057a0f9a3" />
part of task-[5227387](https://www.odoo.com/odoo/project/1519/tasks/5227387)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