Saturday, May 24, 2025
30 changes
21 changes
Resolved issues and error corrections
This fixes an issue that could prevent WinBooks accounting imports from creating records correctly after a platform change. The update keeps the import workflow compatible so businesses can continue importing accounting data without interruption.
Original PR description
Due to this commit: https://github.com/odoo/odoo/commit/420c64c9e9d4b3b0f3e51f1a41774587a04fbf2e (PR: https://github.com/odoo/odoo/pull/197868), create now only accepts list or tuples and this one raise because it was using dict_values. opw-4803277
When a calendar event is linked to an existing sales opportunity, the system now checks whether a meeting reminder already exists before creating a new one. This prevents duplicate activities, reducing clutter and helping sales teams keep opportunity follow-ups accurate.
Original PR description
Prevent scheduling a meeting activity if one already exists when linking a calendar event to an existing opportunity. Also ensures that activities are only created when necessary by checking for existing activities on the opportunity, avoiding redundant calls to `activity_schedule`. Task-4747036
Fixes crashes that happened when restaurant staff cleared product or category filters, or selected a time filter, in the preparation display. This makes the preparation screen more reliable during daily point-of-sale operations.
Original PR description
Steps to reproduce: - Select a category/product filter in the preparation display - Click on "clear all filters" => traceback - Select a time filter => traceback Fix: The first traceback is caused by a refactoring mistake where preparationDisplay was changed by prepDisplay. The second traceback is due to calling a method that doesn't exist, the method is now added in this commit.
This change ensures barcode inventory tests always enable lot and serial number tracking before running. It prevents occasional test failures caused by missing setup, improving confidence in the barcode workflow checks without changing user-facing behavior.
Original PR description
This test assumes the lot/serial setting was enable before the test but it was not guarantied. Meaning the tour steps was sometimes failing on the `lot_id` field being invisible. runbot: 182040
The AI feature now handles property tag and selection fields that have no configured options without causing an error. This prevents interruptions when users click the AI button on incomplete or empty property settings.
Original PR description
Bug === When clicking on the AI button of a property tags, without tags (or on a selection without option / m2x without model), a traceback is raised. Task-4712395
The Barcode app no longer performs an unnecessary readiness count when opening manufacturing operations. This reduces avoidable background work and helps the manufacturing barcode screen load more efficiently without changing user workflows.
Original PR description
Issue ===== In `StockBarcodeKanbanRenderer` `onWillStart`, the python method `get_model_records_count` is called to fetch the number of ready picking or batch picking. The issue is this method is useless for manufacturing order but is called anywway. With this commit, this method is called only when needed. How to reproduce ================ - Install Inventory, Manufacturing and Barcode; - Inventory > Configuration > Settings > check "Batch, Wave & Cluster Transfers"; - Go in Barcode > Operations > Manufacturing: If you inspect calls, you'll see `get_model_records_count` is called.
Miscellaneous changes
- Create a sub company from the main company. - On only the sub-company create a new followup level. - While being in both the main company and the sub-company at the same time, try to access the newly created followup level in the followup report view. The following traceback appears: File "/home/odoo/src/odoo/addons/web/models/models.py", line 128, in web_read vals = many2one_data[values[field_name]] KeyError: 9 This commit hide the statusbar for the child company if there is followu
Original PR description
- Create a sub company from the main company. - On only the sub-company create a new followup level. - While being in both the main company and the sub-company at the same time, try to access the newly created followup level in the followup report view. The following traceback appears: File "/home/odoo/src/odoo/addons/web/models/models.py", line 128, in web_read vals = many2one_data[values[field_name]] KeyError: 9 This commit hide the statusbar for the child company if there is followup level in the parent as per the specification of https://github.com/odoo/enterprise/commit/bbcd54519706539d7e2e313118c956200ea70c91 and the implementation of https://github.com/odoo/enterprise/commit/f82ef250560957046be0590f8c2a08039bcc34ca#diff-c502b098cfa2c57bc70c144ae4f0e1fbe1c0116f392ed1a63743f12a51b82084 opw-4669397 Forward-Port-Of: odoo/enterprise#85977 Forward-Port-Of: odoo/enterprise#82324
8 changes
Enhancements to existing features
VoIP now uses shared translation helper logic from the broader web platform instead of keeping its own copy. This reduces duplication and helps keep phone-related interface text consistent and easier to maintain across Odoo.
Original PR description
Community counterpart: https://github.com/odoo/odoo/pull/211279
1 change
Miscellaneous changes
Odoo part of the IAP PR. Add some more error codes that will be sent by the IAP server, in order to provide more useful errors for the users. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#209410
Original PR description
Odoo part of the IAP PR. Add some more error codes that will be sent by the IAP server, in order to provide more useful errors for the users. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#209410
Repro steps: 1.Install l10n_lu_reports module 2. Go to Reporting > Tax Return > Annual VAT Declaration 3. Click on `Appendix to Operational Expidenture` 4. You will get a traceback error Cause: As of this PR in 18.1: https://github.com/odoo/enterprise/pull/70280 The function `registerCustomComponent` changed in 2 ways: 1. It now expects a module name 2. It registers the component by its name These changes were not applied in l10n_lu_reports module hence causing the error of the comp
Original PR description
Repro steps: 1.Install l10n_lu_reports module 2. Go to Reporting > Tax Return > Annual VAT Declaration 3. Click on `Appendix to Operational Expidenture` 4. You will get a traceback error Cause: As of this PR in 18.1: https://github.com/odoo/enterprise/pull/70280 The function `registerCustomComponent` changed in 2 ways: 1. It now expects a module name 2. It registers the component by its name These changes were not applied in l10n_lu_reports module hence causing the error of the component not being found in the registery This commit solves this issue by applying those changes in l10n_lu_reports module task-4816146 Forward-Port-Of: odoo/enterprise#86284
missing group attribute for ytd_balance_ids (private field) build_error-162969 Forward-Port-Of: odoo/enterprise#83688
Original PR description
missing group attribute for ytd_balance_ids (private field) build_error-162969 Forward-Port-Of: odoo/enterprise#83688
Currently a traceback is occurring when the user tries to generate a payslip report. To reproduce this issue: 1) Install `l10n_in_hr_payroll` and shift to Indian company 2) Create an employee and a bank account in the private information of employee 3) Remove the `Bank Identifier Code` from the `Bank` while creating a bank record 4) Create a new `payslip` record with a `running contract` 5) Confirm the payslip and click the `Create Payment Report` Error:- ``` TypeError: expect
Original PR description
Currently a traceback is occurring when the user tries to generate a payslip report. To reproduce this issue: 1) Install `l10n_in_hr_payroll` and shift to Indian company 2) Create an employee and a bank account in the private information of employee 3) Remove the `Bank Identifier Code` from the `Bank` while creating a bank record 4) Create a new `payslip` record with a `running contract` 5) Confirm the payslip and click the `Create Payment Report` Error:- ``` TypeError: expected string or bytes-like object, got 'bool' ``` As the `bank_bic` is not a required field, user can removes it. if there is no `bank_bic`, it leads to the above traceback from the below line. https://github.com/odoo/enterprise/blob/e2a9442ac33579c9833f65f59cf8341b3c6eafc8/l10n_in_hr_payroll/models/hr_employee.py#L24 sentry-6199042870 Forward-Port-Of: odoo/enterprise#81682
…o switzerland Forward-Port-Of: odoo/enterprise#86183
Original PR description
…o switzerland Forward-Port-Of: odoo/enterprise#86183
Before this commit, if a user attempted to open a spreadsheet they lacked access to or that did not exist, they would get a traceback due to improper error handling. This commit resolves the issue by handling server errors when fetching the spreadsheet and redirecting the user to the documents app. Steps to reproduce: - Create a spreadsheet with Mitchell Admin. - Copy a hyperlink. - In another browser, log in as Marc Demo and paste the hyperlink. - You get a traceback and you don't unders
Original PR description
Before this commit, if a user attempted to open a spreadsheet they lacked access to or that did not exist, they would get a traceback due to improper error handling. This commit resolves the issue by handling server errors when fetching the spreadsheet and redirecting the user to the documents app. Steps to reproduce: - Create a spreadsheet with Mitchell Admin. - Copy a hyperlink. - In another browser, log in as Marc Demo and paste the hyperlink. - You get a traceback and you don't understand what's going on. task-4551255 Forward-Port-Of: odoo/enterprise#81276
### **Version:** saas-18.1 --- ### **Steps to reproduce:** 1. Open a sign template. 2. Make **no changes** to the template. 3. Try to send or reuse the template which has sign_request. 4. A warning appears. --- ### **Issue:** The warning dialog is incorrectly triggered even when the template hasn't been modified. This leads to unnecessary interruption and confusion, especially when the user only intends to reuse or send the existing template without editing it. ---
Original PR description
### **Version:** saas-18.1 --- ### **Steps to reproduce:** 1. Open a sign template. 2. Make **no changes** to the template. 3. Try to send or reuse the template which has sign_request. 4. A warning appears. --- ### **Issue:** The warning dialog is incorrectly triggered even when the template hasn't been modified. This leads to unnecessary interruption and confusion, especially when the user only intends to reuse or send the existing template without editing it. --- ### **Cause:** The `saveTemplate()` method did not verify whether the template had any actual changes. --- ### **Solution:** Added a check to ensure the warning is shown when the user made actual changes to the template. task-4778666 Forward-Port-Of: odoo/enterprise#85335
Currently you are able to select the button to settle customer account/ deposit money even though the config does not have access to a paylater payment method. This will never settle the customer account. Steps to reproduce: ------------------- * Remove the customer account payment method from the config * Open the pos session * Find a customer that has an amount due * Select "Settle due accounts" * Process > Observation: The customer account is never settled. Why the fix: --------
Original PR description
Currently you are able to select the button to settle customer account/ deposit money even though the config does not have access to a paylater payment method. This will never settle the customer account. Steps to reproduce: ------------------- * Remove the customer account payment method from the config * Open the pos session * Find a customer that has an amount due * Select "Settle due accounts" * Process > Observation: The customer account is never settled. Why the fix: ------------ If there is no payment method of type "pay_later" we should not show the button whose purpose is to use such payment method. opw-4488571 Forward-Port-Of: odoo/enterprise#86133 Forward-Port-Of: odoo/enterprise#83995
This commit fixes an issue with the Facebook app and the management of pages. For Facebook to identify the user as able to manage a page, we need to provide another permission to the scope. The permission `business_management` is needed for the API to understand that the user is able to manage its pages. Thus we are adding it to the scope but as an optional permission. Some users may not have this permission set up for their own applications, thus we are adding the system parameter `social.
Original PR description
This commit fixes an issue with the Facebook app and the management of pages. For Facebook to identify the user as able to manage a page, we need to provide another permission to the scope. The permission `business_management` is needed for the API to understand that the user is able to manage its pages. Thus we are adding it to the scope but as an optional permission. Some users may not have this permission set up for their own applications, thus we are adding the system parameter `social.facebook_no_business_management`. This parameter blocks the addition of the permission to the scope if set to any value, if not set it adds the permission to the scope. task-4719790 Forward-Port-Of: odoo/enterprise#86137 Forward-Port-Of: odoo/enterprise#84032
Single app require an additional query. Let us fix runbot, and investigate when we have time (aka: haha). Forward-Port-Of: odoo/enterprise#86116
Original PR description
Single app require an additional query. Let us fix runbot, and investigate when we have time (aka: haha). Forward-Port-Of: odoo/enterprise#86116
Currently, entering only spaces in the Full Name field when signing in auto mode enables the sign button, allowing users to proceed without a valid name. Steps to reproduce: 1. Sign > Create a request 2. Attempt to sign in auto mode with only spaces in the Full Name field 3. Observe that the sign button becomes enabled Cause: The system does not checks for whitespace-only name Solution: Add a validation to disable the sign button if the trimmed name is empty in auto mode. opw-462
Original PR description
Currently, entering only spaces in the Full Name field when signing in auto mode enables the sign button, allowing users to proceed without a valid name. Steps to reproduce: 1. Sign > Create a request 2. Attempt to sign in auto mode with only spaces in the Full Name field 3. Observe that the sign button becomes enabled Cause: The system does not checks for whitespace-only name Solution: Add a validation to disable the sign button if the trimmed name is empty in auto mode. opw-4628577 Forward-Port-Of: odoo/enterprise#85996 Forward-Port-Of: odoo/enterprise#84613
Currently if you make a mistake in the name of your employee and create a payslip, it's name will never be corrected since there is no direct dependency on the field. Forward-Port-Of: odoo/enterprise#86201
Original PR description
Currently if you make a mistake in the name of your employee and create a payslip, it's name will never be corrected since there is no direct dependency on the field. Forward-Port-Of: odoo/enterprise#86201
Summary ----- When you generate an entry via the deferred revenue report, if the original journal item has an analytic distribution at x%, then the lines of the deferred entries have an analytic distribution at -x%. Steps to reproduce ----- 1. In Accounting > Settings, enable the analytic accounting and set the "Generate Revenue Entries" as "Manually & Grouped". 2. Create an invoice with an analytic distribution, a start date and an end date. 3. Generate an entry with the deferred reven
Original PR description
Summary ----- When you generate an entry via the deferred revenue report, if the original journal item has an analytic distribution at x%, then the lines of the deferred entries have an analytic distribution at -x%. Steps to reproduce ----- 1. In Accounting > Settings, enable the analytic accounting and set the "Generate Revenue Entries" as "Manually & Grouped". 2. Create an invoice with an analytic distribution, a start date and an end date. 3. Generate an entry with the deferred revenue report by selecting a period including the created invoice. 4. Observe the negative analytic distribution in the generated entries. opw-4502556 Forward-Port-Of: odoo/enterprise#85039 Forward-Port-Of: odoo/enterprise#82594
When an expense is manually created, the document is sent to the OCR, and the ocr modifies the values of the document. The issue is that the user cannot see that values have been modified and submit the expense with the wrong values (the ones returned by OCR which are not displayed on the form during submission). So to avoid such behaviour, we've made different fixes: - We display the banner that it has been sent to the OCR immediatly (not after a refresh) - We make work the refres
Original PR description
When an expense is manually created, the document is sent to the OCR, and the ocr modifies the values of the document. The issue is that the user cannot see that values have been modified and submit…
When an expense is manually created, the document is sent to the OCR, and the ocr modifies the values of the document. The issue is that the user cannot see that values have been modified and submit the expense with the wrong values (the ones returned by OCR which are not displayed on the form during submission). So to avoid such behaviour, we've made different fixes: - We display the banner that it has been sent to the OCR immediatly (not after a refresh) - We make work the refresh button diplayed in the banner - We don't change the name and/or product of the expense if the name of the expense has been entered manually (to know that we check if the name is the generated one when we create from attachment or not) - We don't modify the status of the expense to draft (if it has been submited before the response of the OCR we don't want modifications) The test have been modified the use case, because to correctly work if the expense is sent to the OCR, it means that there is an attachment linked to this PR. Also when we want to check the completion of the OCR, the attachment name is set as expense name (expense name is required) The issue comes from an internal feedback Forward-Port-Of: odoo/enterprise#84897
pain.001.001.09 is a newer version of the ISO20022 format. Before this commit, we only supported it for SEPA Credit Transfer, using the same selection field as the one allowing to choose national variants of SEPA. This fix only intends to solve the issue for existing customers by using a system parameter that needs to be switched from "False" to "True". A cleaner solution will come in the future, after a refactoring of the payment methods. task-4647016 Forward-Port-Of: odoo/enterprise#86094
Original PR description
pain.001.001.09 is a newer version of the ISO20022 format. Before this commit, we only supported it for SEPA Credit Transfer, using the same selection field as the one allowing to choose national variants of SEPA. This fix only intends to solve the issue for existing customers by using a system parameter that needs to be switched from "False" to "True". A cleaner solution will come in the future, after a refactoring of the payment methods. task-4647016 Forward-Port-Of: odoo/enterprise#86094 Forward-Port-Of: odoo/enterprise#85597
WhatsApp tests were updated to match a platform change in how messages are categorized. This helps keep WhatsApp-related behavior aligned with the main messaging system and reduces risk of future inconsistencies.
Original PR description
The community counterpart of this commit replaces "is_note", "is_discussion" and "subtype_description" fake message fields by "subtype_id" which exists on message. This commit adapts whatsapp tests after this change. task-4676083 community: https://github.com/odoo/odoo/pull/209487
Miscellaneous changes
Repro steps: 1.Install l10n_lu_reports module 2. Go to Reporting > Tax Return > Annual VAT Declaration 3. Click on `Appendix to Operational Expidenture` 4. You will get a traceback error Cause: As of this PR in 18.1: https://github.com/odoo/enterprise/pull/70280 The function `registerCustomComponent` changed in 2 ways: 1. It now expects a module name 2. It registers the component by its name These changes were not applied in l10n_lu_reports module hence causing the error of the comp
Original PR description
Repro steps: 1.Install l10n_lu_reports module 2. Go to Reporting > Tax Return > Annual VAT Declaration 3. Click on `Appendix to Operational Expidenture` 4. You will get a traceback error Cause: As of this PR in 18.1: https://github.com/odoo/enterprise/pull/70280 The function `registerCustomComponent` changed in 2 ways: 1. It now expects a module name 2. It registers the component by its name These changes were not applied in l10n_lu_reports module hence causing the error of the component not being found in the registery This commit solves this issue by applying those changes in l10n_lu_reports module task-4816146 Forward-Port-Of: odoo/enterprise#86323 Forward-Port-Of: odoo/enterprise#86284
missing group attribute for ytd_balance_ids (private field) build_error-162969 Forward-Port-Of: odoo/enterprise#83688
Original PR description
missing group attribute for ytd_balance_ids (private field) build_error-162969 Forward-Port-Of: odoo/enterprise#83688
Currently a traceback is occurring when the user tries to generate a payslip report. To reproduce this issue: 1) Install `l10n_in_hr_payroll` and shift to Indian company 2) Create an employee and a bank account in the private information of employee 3) Remove the `Bank Identifier Code` from the `Bank` while creating a bank record 4) Create a new `payslip` record with a `running contract` 5) Confirm the payslip and click the `Create Payment Report` Error:- ``` TypeError: expect
Original PR description
Currently a traceback is occurring when the user tries to generate a payslip report. To reproduce this issue: 1) Install `l10n_in_hr_payroll` and shift to Indian company 2) Create an employee and a bank account in the private information of employee 3) Remove the `Bank Identifier Code` from the `Bank` while creating a bank record 4) Create a new `payslip` record with a `running contract` 5) Confirm the payslip and click the `Create Payment Report` Error:- ``` TypeError: expected string or bytes-like object, got 'bool' ``` As the `bank_bic` is not a required field, user can removes it. if there is no `bank_bic`, it leads to the above traceback from the below line. https://github.com/odoo/enterprise/blob/e2a9442ac33579c9833f65f59cf8341b3c6eafc8/l10n_in_hr_payroll/models/hr_employee.py#L24 sentry-6199042870 Forward-Port-Of: odoo/enterprise#81682
Before this commit, if a user attempted to open a spreadsheet they lacked access to or that did not exist, they would get a traceback due to improper error handling. This commit resolves the issue by handling server errors when fetching the spreadsheet and redirecting the user to the documents app. Steps to reproduce: - Create a spreadsheet with Mitchell Admin. - Copy a hyperlink. - In another browser, log in as Marc Demo and paste the hyperlink. - You get a traceback and you don't unders
Original PR description
Before this commit, if a user attempted to open a spreadsheet they lacked access to or that did not exist, they would get a traceback due to improper error handling. This commit resolves the issue by handling server errors when fetching the spreadsheet and redirecting the user to the documents app. Steps to reproduce: - Create a spreadsheet with Mitchell Admin. - Copy a hyperlink. - In another browser, log in as Marc Demo and paste the hyperlink. - You get a traceback and you don't understand what's going on. task-4551255 Forward-Port-Of: odoo/enterprise#81276
- When closing the session from the tour, the `total_due` of the partner was not updated yet. Now when closing the session, the test waits for the `total_due` to be updated before evaluating its value. runbot error: 182096 Forward-Port-Of: odoo/enterprise#84869 Forward-Port-Of: odoo/enterprise#84693
Original PR description
- When closing the session from the tour, the `total_due` of the partner was not updated yet. Now when closing the session, the test waits for the `total_due` to be updated before evaluating its value. runbot error: 182096 Forward-Port-Of: odoo/enterprise#84869 Forward-Port-Of: odoo/enterprise#84693
**Issue:** A traceback error is raised when the assignee of a Field Service task has no calendar **Steps to reproduce:** - Make sure admin (Michel Admin) has no calendar in the Employee module - Field Service > New - Create a new task with Michel Admin as assignee and click save without choosing Planned Date and leave Allocated Hours at 0 - Choose Planned Date then click save again A traceback error is raised opw-4672980 Forward-Port-Of: odoo/enterprise#85318 Forward-Port-Of: odoo
Original PR description
**Issue:** A traceback error is raised when the assignee of a Field Service task has no calendar **Steps to reproduce:** - Make sure admin (Michel Admin) has no calendar in the Employee module - Field Service > New - Create a new task with Michel Admin as assignee and click save without choosing Planned Date and leave Allocated Hours at 0 - Choose Planned Date then click save again A traceback error is raised opw-4672980 Forward-Port-Of: odoo/enterprise#85318 Forward-Port-Of: odoo/enterprise#83839