Daily updates from Odoo
Tuesday, December 3, 2024
25 changes
20 changes
Resolved issues and error corrections
Course editors can no longer insert embedded components, such as videos, into slide descriptions where they cannot display correctly on the website. This prevents users from saving content that appears valid in editing but is missing for learners.
Original PR description
Steps to reproduce ================== - Install website_slides - Go to eLearning > Basics of Gardening - Click on a line - Switch to the description tab - Type /video - Insert a video - Save - Click on the "Go to Website" action button - Click on the line that has just been edited => The video does not appear Cause of the issue ================== The new web_editor has a plugin system, and one option that is enabled by default is `embedded_components`. This option has been introduced in: https://github.com/odoo/odoo/commit/03f495c696030214c17e6479076571823513f60e According to the description, > It is forcibly set to `false` in HtmlMailField since embedded > components can only be rendered inside Odoo. Solution ======== Disable the embedded components opw-4329734
This update keeps the company assigned to a job applicant and the related candidate record in sync. It prevents access issues that could occur when those records belonged to different companies, especially in multi-company recruitment workflows.
Original PR description
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
Worldline payment references are now kept within the provider's 30-character limit. This prevents hosted checkout requests from being rejected because the order reference is too long, improving payment reliability for affected transactions.
Original PR description
The hostedcheckout param `order.references.merchantReference` is limited to 30 characters [^1], so we must not exceed that size for wordline's payment.transaction reference. [^1]: https://apireference.connect.worldline-solutions.com/s2sapi/v1/en_US/go/hostedcheckouts/create.html?paymentPlatform=ALL --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The Argentina withholding tax setup form now hides withholding-specific tax computation details when they do not apply. It also avoids forcing users to fill in a withholding tax field for regular customer or supplier taxes, reducing confusion and setup errors.
Original PR description
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
Opening another internal user's profile no longer triggers an access error related to calendar privacy settings. This keeps user administration smoother while preserving the existing privacy configuration behavior.
Original PR description
Before this commit, an access error was being triggered when opening the user form of different internal users than self. This happened because of the `compute_sudo` flag in the calendar_default_privacy computation function. The sudo flag was introduced for allowing the read of the ResUsersSettings configuration during the computation of calendar_default_privacy. Turns out that this flag is not needed, since the sudo() flags in the inverse function is already sufficient. Thus, we're removing it from the computation. Issue-from: odoo/odoo#183887
This fix prevents Odoo's web tour testing tool from listening for browser errors after a tour has already ended. It reduces false error reports in automated test runs, helping teams get clearer test results.
Original PR description
In this commit, we stop listening for errors that might occur asynchronously after the browser is stopped. This avoids having errors like: Exception received after termination: Uncaught (in promise)Event(isTrusted=true, type='error', target=null, currentTarget=null, eventPhase=0) runbot-error-id~70404 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
Portal users can now use the “log out from all devices” option without encountering an error page. This fixes a broken account security action caused by the page calling an internal function that had been removed.
Original PR description
Currently, a traceback occurs when the portal user tries to `log out from all devices`. To reproduce this issue: 1) Login as a portal user 2) In connection & security click logout from all devices Error:- ``` The method 'revoke_all_devices' does not exist on the model 'res.users.identitycheck' ``` This error is occurring because the method `revoke_all_devices` is removed from the below commit https://github.com/odoo/odoo/commit/0b5ea8e3b5321f4bbfc07651c6a8f666767904f8#diff-16e37db365c1ea1f2e6c79aeb60c80f68f1a5c75970e8e3f198eb18af56278ddL2138 But still, it is referenced in the orm call from the below line, which leads to the above traceback. https://github.com/odoo/odoo/blob/640698c025d329d87467ef5c77a53b98c3590be8/addons/portal/static/src/js/portal_security.js#L139-L143 sentry-5662496036
The Human Resources department organization chart now opens the employee list correctly when users click the employee-count button. This prevents an error in the department form and keeps navigation to department employees working as expected.
Original PR description
Step to reproduce: 1) Install the hr Application and open the form view of department 2) Clicking the gray button that shows the employee number in the department organization chart will result in an error Cause: The argument in the doAction function is incorrect; it should be an action record, not a Python function Solution: First, we retrieve the action using the ORM and then pass it to the doAction function as an argument. Task-4337876
This fixes an issue in the website editor where the image cropping preview could appear outside the visible window after placing content above an image. Users can now crop images without needing to scroll around to find the preview, making page editing smoother.
Original PR description
Following commit [https://github.com/odoo/odoo/commit/189a7c96e6e26825dc05c0c6466576fe63aa091e] which removed the scroll from the `#wrapwrap` element, the cropper offsets were wrongly calculated. Steps to reproduce: - Drop a random snippet - Drop an image snippet below the other one - Crop the image of the image snippet => The cropper preview is outside of the window, you have to scroll to reach it. [https://github.com/odoo/odoo/commit/189a7c96e6e26825dc05c0c6466576fe63aa091e]: https://github.com/odoo/odoo/commit/189a7c96e6e26825dc05c0c6466576fe63aa091e task-4190506 opw-4333004
This fix prevents the web interface from freezing when users configure a custom embedded action to open first. It ensures the intended custom view loads safely, improving reliability for users working with embedded actions such as project task views.
Original PR description
Before this commit, when the current user goes to an action with embedded actions and create a custom embedded action to load the main one with custom filters, for instance, and then sorts the…
Before this commit, when the current user goes to an action with embedded actions and create a custom embedded action to load the main one with custom filters, for instance, and then sorts the embedded actions displayed in the top bar to first load his own embedded action instead of the main one. When the user will try to load the main action to load his custom one by default, the UI will be blocked because of a infinite recursion. This is because the condition "action.embedded_actions_ids && !this.currentController?.config.currentEmbeddedActionId" is wrong, since this.currentController is the same object between recursions ; this can cause an infinite recursive call in some cases. To fix this, the condition was changed to use flag recently introduced to know when it is embedded actions calling `doActionButton` to make sure we will no longer have any infinite recursions inside that function. Steps to reproduce the issue: ============================ 1. Install project app (with demo data) 2. Go to project app 3. Select `Office design` project to see the tasks linked to that project. 4. Click on the button to see the top bar containing the embedded actions. 5. Remove the `Open tasks` filter and create a custom embedded action. 6. Sort the embedded actions inside the top bar to have the custom one first. 7. Go back to the project dashboard. 8. Select again `Office design` project. Expected behavior: ----------------- The custom embedded action should be loaded instead of the main one without any issues. Current Behavior: ----------------- The UI completely freezes because of an infinite recursions in the JS code. task-4283994
This change removes a recently added test optimization that was using too much memory and could cause test runs to crash. It helps keep the web test suite reliable, reducing disruption for development and release validation.
Original PR description
This reverts commit 14b37d5871c97d93723dc925419fa93fa2fb8250. This is due to performance issues likely caused by the added template cache taking way too much memory and occasionnally crashing the test suite. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The Planning kanban view now displays date ranges on a single line when users group or filter records. This makes schedules easier to read and avoids confusing split date information in planning cards.
Original PR description
Current Behaviour: - when grouping or filtering records in the planning kanban view, the daterange looks like displayed on two columns Expected Behaviour: - the daterange should be displayed as a single line Task-4273653
The payment form now shows the ISO 20022 reference field in a consistent position regardless of which bank account option is displayed. This reduces confusion for users reviewing or entering payment details.
Original PR description
The position of the `iso20022_uetr` field was defined as being after the `partner_bank_id` field in the view. However multiple of these fields were defined in the view using if/else conditions, and the former field was put after the first occurrence of the latter. So depending on which `partner_bank_id` field was shown, the `iso20022_uetr` field would be either before or after it. This commit makes it consistent and puts it after the last occurrence of `partner_bank_id`.
This fix keeps the company assigned to recruitment applicants and candidates in sync. It helps prevent access problems when records are updated or created across companies, reducing disruption for HR recruitment workflows.
Original PR description
Since applicants are aggregated into a candidate and the field company_id is not related between these two models. If the company is modified on a records, it won't match the one of the other model and so will create access right issues. To avoid this to hapend, we synchronize the company id between these tow models when we modify one and we use/create a candidate with the same company of the applicant on creation We also propagate the company from the applicant to the candidate, when the candidate is manually created from the backend. task-4350838
The Documents app now consistently shows the activity button when users open the chatter from Kanban or list views. This makes it easier to plan and track follow-up actions on documents without switching views or missing activity options.
Original PR description
Before this PR: In the Kanban view, when selecting request documents and opening the chatter, the activity button does not appear. Similarly, in the list view, when selecting any documents and opening the chatter, the activity button is not displayed. Technical: For request documents, we get an empty res_model, so a condition was added to handle this. In the documents_list_renderer, the 'res_model' cannot be retrieved, since active fields are calculated from the 'arch info'. Therefore, we added the field in the list view. After this PR: The activity button will now be visible for all documents in both the Kanban and list views. Task-4341409
Indian payroll payment advice reports now correctly use the selected payslips instead of only looking for payslips in a batch. This prevents empty PDF reports and spreadsheet errors when generating payment advice from an individual employee payslip.
Original PR description
Steps to reproduce: 1) Install l10n_in_hr_payroll module 2) open payslip of an Indian employee 3) click on the Create Report button and select the Payment Advice option 4) creating Pdf report prints an empty report Cause: Payment advice only refers to the batch's payslip Fix: Now the Payment advice can apply directly to the payslips Task-4220378
The Cancel button is now shown correctly on renewal quotations, even when related invoices exist on the original subscription. This helps sales teams manage renewal quotes without confusion while existing safeguards still prevent invalid subscription cancellations.
Original PR description
Vestion: - 18.0 Steps to reproduce: - Create sale order and confirm it. - Invoice it. - Create renew order. Issue: - The "Cancel" button is not visible on the renewal quotation. Cause: - Condition to make button invisible is checking the invoice count should be greater than 1 but in renew order it is also considering invoice count of parent order and due to that it makes button invisible. Solution: - Remove the condition that checks the invoice count. The "Cancel" button will now be displayed even if an invoice exists. Since the system already prevents users from canceling subscriptions with invoices, this change will not lead to any functional issues.
The Planning onboarding guide now prompts users to click the right controls when launched manually. It also handles the publish action more appropriately on mobile, reducing confusion during setup.
The loan schedule option to skip entries until a chosen date now behaves as intended. This prevents future loan lines from being skipped by mistake and helps keep loan accounting schedules accurate.
Original PR description
### Steps to reproduce: - Create a new Loan at a date several months in the past - Add a "Skip until" date after the date of the loan but before the current date - Compute the draft lines - Confirm - The lines skipped are those after the "Skip until" date and not the ones before ### Cause: It seems there was a typo in how the "Skip until" option is handled. When we add a skip until date, we are actually doing the reverse behavior. We are skipping everything after the skip until and not what's before. ### Solution: Correct the typo. opw-4342085
New companies using Documents and Sign now get the correct default Sign folder automatically. This prevents an error when saving company settings, helping administrators configure multi-company setups without interruption.
Original PR description
Issue: ------ When saving the changes made in the settings, after creating a new company and installing the 'Sign' module will cause Invalid fields 'Sign Base Folder' error. Solution: -----------…
Issue: ------ When saving the changes made in the settings, after creating a new company and installing the 'Sign' module will cause Invalid fields 'Sign Base Folder' error. Solution: ----------- Updated the default record id in the field 'documents_sign_folder_id' as per standard. Steps to reproduce: ------------------------ 1. Create a database in 18.0 with 'Documents' module installed. 2. Create a new company/companies and install 'Sign' module. 3. Go to settings and make changes in the created company/companies. 4. While saving the changes will cause Invalid Fields Error 'Sign Base Folder'. **Reference Screenshot:**  **After the PR:** 1. https://github.com/odoo/enterprise/commit/a32825ee00f2b330d99113f4d8c1488903fe744e#diff-478d2ca433e66687d14803ca4f3a2e7040cfeced0d4b4158e1bc8c4b39184faeR9 2. https://github.com/odoo/enterprise/commit/a32825ee00f2b330d99113f4d8c1488903fe744e#diff-a18eb8f9cbf54c0029e69761c6bbd7c4962ed53c72bc33afda71e994abdab9b8R9 **Queries**: **Before Fix:** ```sql select id, name, documents_sign_folder_id from res_company; id | name | documents_sign_folder_id ----+------------+-------------------------- 2 | Comp | 3 | Odoooo | 1 | My Company | 10 (3 rows) ``` **After Fix**: ```sql select id, name, documents_sign_folder_id from res_company; id | name | documents_sign_folder_id ----+------------+-------------------------- 1 | My Company | 12 2 | Comp | 12 3 | Odoooo | 12 (3 rows) ```
5 changes
Resolved issues and error corrections
This update resolves a problem where email layouts for sign requests weren't correctly translated into the recipient's language. Previously, emails used the sender's language for all content, regardless of the recipient's preferences. Now, emails will consistently use the language specified in the request, ensuring accurate translations and a better user experience.
Original PR description
**Email layout is not translated to targeted sender's language with Sign mails** Impacted versions: - 16.0 - 17.0 - 18.0 Steps to reproduce: 1. Create a partner with language other than the current…
**Email layout is not translated to targeted sender's language with Sign mails** Impacted versions: - 16.0 - 17.0 - 18.0 Steps to reproduce: 1. Create a partner with language other than the current user's language. 2. Create a sign request and send the request to the created partner. 3. The strings from the email layout like Odoo's `Powered By` and `Your Document` (Your Signature Request) are not translated to the partner's language, but translated with the user's language. This differs from the language in the body. Current behavior: Before this commit, the language of the logged in user and the language given in kwargs would be used to translate the content. The email layout would translate to the user language and the body content would use the kwarg's language. This lead to translation discrepancies. Expected behavior: After this commit, only the language given in the kwargs is used and therefore fixing the translations issues. Forward-Port-Of: odoo/enterprise#73784
This update corrects a problem where the system incorrectly interpreted warehouse context information, leading to potential errors in product forecasting. The change ensures that the system properly handles different warehouse context types, improving the reliability of quantity calculations and reporting.
Original PR description
### Steps to reproduce: - Inventory > Configuration > Warehouse Management > Warehouses - Create a second warehouse - Go to Inventory > Products > Products - In the search bar type `foo` string >…
### Steps to reproduce: - Inventory > Configuration > Warehouse Management > Warehouses - Create a second warehouse - Go to Inventory > Products > Products - In the search bar type `foo` string > Search Warehouse for `foo` - Click on any product Kandan record - Click on the Forecast smart button of the product #### > Traceback ### Cause of the issue: Thanks to the dummy `warehouse_id` field of the `product.template` model a `warehouse` context key can be set in the context from the search bar: https://github.com/odoo/odoo/blob/a72763acfc4d83ae2aadad2e807547c5b1819002/addons/stock/models/product.py#L685 https://github.com/odoo/odoo/blob/a72763acfc4d83ae2aadad2e807547c5b1819002/addons/stock/views/product_views.xml#L78 This trick is notably used in order to take the warehouse into account in the computation of the various quantity fields associated to products by generating custom location domains: https://github.com/odoo/odoo/blob/a72763acfc4d83ae2aadad2e807547c5b1819002/addons/stock/models/product.py#L136-L137 https://github.com/odoo/odoo/blob/a72763acfc4d83ae2aadad2e807547c5b1819002/addons/stock/models/product.py#L250-L255 However, since that context key was added via the search bar, it type might be: a string, an integerId or a list of either/both other types. (E.g. to create a list of a string and integer type and select a string and then type a string allowing you to find a real warehouse id that you can select after clicking on the dropdown arrow). Therefore, in order to be properly used, this context key needs to be parsed to be used properly as done in the `_get_domain_locations` for instance. However, the `warehouse` context key is used at many other places in the code, each time expecting a single integer id, and since the warehouse context key is not cleaned from one action to an other you are technically able to provide a string where the code is expecting a an integer. ### Fix: The proper fix of this use case would be to change the context key name used by the search view to only match flows expecting such a context. However, this change is not stable as it requires to modify a view and hence can't be applied before master (18.1). As such, in prior versions, we add a context parser for to extract a single integer id from the `warehouse` context key where it is used but unexpected to match something else. ### Note: This patch will improve other fixes and hopefully prevent yet unoticed error raised by this issue: 903d8beeea5d332e556ef81e231a3b8b4c51cd45 and afa7c6bf25c9de5fc0c878faa29e1cc35bc11805 Community: https://github.com/odoo/odoo/pull/187808 opw-4290818 X-original-commit: 856409a1fb35c6c49fe4c404931587a95d99d370
This update fixes an issue where branch companies couldn't select accounts from their parent company when creating assets. Now, users can choose accounts from the parent company, streamlining the asset creation process and ensuring accurate accounting across the organization. This improves efficiency and data consistency.
Original PR description
**Steps to reproduce:** - Install Accounting - Create a Branch company without COA - Switch to the Branch company - Go to "Accounting / Accounting / Management / Assets" - Create an asset - Try to select an account for "Fixed Asset Account", "Depreciation Account" or "Expense Account" **Issue:** The list is empty. The accounts from the parent company should be proposed. opw-4368887
This update fixes a bug that prevented users from editing the justification field within employee skill assessments. By adding a simple setting, the system now correctly allows editing of this field, ensuring accurate and up-to-date skill evaluations. This improves the usability of the appraisal process.
Original PR description
Added `editable="bottom"` to the tree view of `skill_ids` in the `Skills` tab of the `hr.appraisal` form. This ensures the `justification` field and other tree fields are editable when allowed. Resolves an issue where the `justification` field was rendered as read-only. Steps to reproduce: 1. Go to Appraisal 2. 3. Chose any employee and go to their skills 4. Try to edit the justification field opw-4334153
This update resolves a bug that caused a traceback when updating planning slots without recurrence settings. The fix adds a check to handle cases where recurrence information is missing, preventing errors and ensuring smooth slot updates. This improves the reliability of the planning module.
Original PR description
Currently, a traceback occurs when the user tries to update the planning slot but has no recurrence. To reproduce this issue: 1) Install planning 2) Open any existing Open Shift planning slot 3)…
Currently, a traceback occurs when the user tries to update the planning slot but has no recurrence. To reproduce this issue: 1) Install planning 2) Open any existing Open Shift planning slot 3) Enable the `repeat` and update the start and end date 4) Give the edit value as `All shifts` and make sure the resource be empty 5) Save the record. Error:- ``` IndexError: tuple index out of range ``` Here the `resource` is not required in planning slot. So, when the user tries to update an open shift with the `repeat` enabled and `resource_update` as `all`, it leads to a traceback from the below line. https://github.com/odoo/enterprise/blob/64fc38a80520cfeeb81c0bb329c6b24c3e9454e1/planning/models/planning.py#L866-L871 This is because when there is no `recurrence_slots` in the slot, we get an empty recordset for the `recurrence_slots`, which leads to the above traceback when trying to extract a value from the recurrency_slots. We can resolve this issue by adding an extra check of `recurrence_slots` which makes the code more robust. sentry-6096445646