Daily updates from Odoo
Monday, January 6, 2025
23 changes
22 changes
Resolved issues and error corrections
Payroll payment reports no longer reject employees with valid Oman IBAN bank accounts. This prevents an incorrect validation error and lets payroll teams generate payment reports for Oman employees normally.
Original PR description
Steps to reproduce: - Create an employe with an oman bank account number - Create a payslip for this employe - Create a payment report Issue: when trying to create a payment report in the payroll app for an employee with an oman bank account number, when creating the payment report an error :"Invalid IBAN for the following employees: .." will raise. Fix: This issue can be fixed by adding the 'om' in the variable _map_iban_template. This ensure that the mapping will be done correctly and the error will not be raised anymore. opw-4312502 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fixes an issue that prevented users from adding product videos through the website sales media manager. Product teams can now attach video URLs without overlapping error messages, improving product page media management.
Original PR description
Versions -------- - 18.0+ Steps ----- 1. Have a product template. 2. Press the "Add Media" button in the "Sale" tab of the product form. 3. Try to add a video by pasting the URL. 4. Pressing "Add" displays multiple error messages, one on top of each other. Issue ----- Impossible to add a video as extra media for a product. Cause ----- The `video_url` field is not loaded by the Kanban view, which is used by the `X2ManyMediaViewer` to display the `product.image`. Therefore, updating the `video_url` caused a series of “ field not found” bugs. Solution -------- Add the `video_url` to the Kanban view of the `product.image` model. opw-4391126 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update corrects a typo in the state name for Somalia, changing it from “Somalia” to “Somali.” It improves the accuracy of country/state reference data shown to users in Odoo.
Original PR description
Typo in state name (Somalia -> Somali). https://en.wikipedia.org/wiki/Somali_Region task-4453644 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The multiple time-off request wizard now only shows time-off types that do not require an allocation, matching behavior from earlier versions. This prevents users from selecting time-off categories that are not valid for bulk requests, reducing mistakes and confusion.
Original PR description
In previous versions, when dealing with multiple time-off requests, only time-off types that do not require allocations were listed for selection. This behavior has been restored by restricting the `holiday_status_id` field to show only non-allocation time-off types in the multi-request wizard. opw-4370090 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Manual payment validation now avoids trying to repost accounting entries that are already posted or cancelled. This prevents an unnecessary error and lets users complete the payment validation flow as expected.
Original PR description
Steps to reproduce: 1. Install account 2. Configure the bank journal so it has an account linked to manual payments 3. Go to Customers -> Payments and create a new payment with a fake user and amount…
Steps to reproduce: 1. Install account 2. Configure the bank journal so it has an account linked to manual payments 3. Go to Customers -> Payments and create a new payment with a fake user and amount 4. Confirm the payment. Then Validate the payment. 5. An error shows up: "The entry must be in draft." --- Description of the issue this commit addresses: When trying to validate a payment (marking it as paid), the move linked to the payment is posted but if the move was already posted or cancelled, an error is raised. This is not a desired behavior. --- Desired behavior after this commit is merged: When following the same process, the move is only posted if it is not posted or cancelled yet to make sure it should pass through the posting method. --- Note on the fix: Cancelled is taken into account for safety purposes but since the payment is manual, no move at that point in the code should ever have state == 'cancel'. --- opw-4445889 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fixes an issue where inherited views without XML content could fail validation even though that content is optional. It helps prevent unnecessary errors when saving or processing valid view configurations.
Original PR description
Since the arch is not mandatory and the `_combine` method would [assume it is a data node](https://github.com/odoo/odoo/pull/182766), the `_check_xml` for child views should allow an empty arch in the same way. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix ensures project task tour tests wait until description changes are fully saved before moving on. It helps prevent false test failures caused by automated steps running too quickly, improving confidence in project-related quality checks.
Original PR description
When you chain several uses of changeDescriptionContentAndSave() in a tour, you don't necessarily wait for the editor to be actually saved before continuing. So, it always works for the first use but not for the following ones if the tour engine goes too "fast". So this fix add a step in which we make sure that the form is actually saved before continuing. 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 change temporarily skips an unreliable automated test related to opening the chatter attachment popout across multiple records. It helps keep validation results stable while the underlying race condition is investigated, with no direct change for end users.
Original PR description
Skip because test has race conditions, until we have time to properly fix it. runbot-109795
This change fixes unnecessary reloading of already cached views when users open similar actions, such as scheduling activities from different contacts. It reduces repeated server requests, making the interface feel faster and lowering avoidable system load.
Original PR description
**Steps to reproduce (a bit technical):** 1. Navigate to the "Contacts" kanban view. 2. Open the Network tab in the browser's developer tools. 3. Click on the first contact activities and "Schedule a…
**Steps to reproduce (a bit technical):** 1. Navigate to the "Contacts" kanban view. 2. Open the Network tab in the browser's developer tools. 3. Click on the first contact activities and "Schedule a new activity". 4. Notice a call to `get_views` in the Network tab. 5. Click on a different contact activities, and "Schedule a new activity". 6. Notice a new call to `get_views` in the Network tab. **Expected:** The view is already cached, so the webclient should not attempt to load it. **Explanation:** This is likely a regression since f983703d, when the embedded actions were introduced. Now, the `embeddedParentResId` is part of the views cache key, and so we get much fewer cache hits. For most views, there isn't really an `embeddedActionId` set, and yet the `embeddedParentResId` was always set. The later is only used in combination with `embeddedActionId`, so it causes a lot of avoidable cache misses. The solution is to simply set the `embeddedParentResId` only if there's an `embeddedActionId`. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Portal users will no longer see a trash icon on message attachments when they do not have permission to delete them. This prevents confusion by only showing actions that the current user can actually perform.
Original PR description
Portal users don't have access to delete attachments created by others. In this case, the trash icon shouldn't be displayed. This PR removes this icon from the attachment of a message when the message is not editable by the current user.
This fixes an issue where a point-of-sale session could not be closed after processing a negative combined payment, such as a refund or negative-quantity sale. The payment account handling now happens at the right point in the process, preventing closure errors while keeping accounting entries correct.
Original PR description
It is impossible to close a session when there is a combined payment amount with a negative value. Steps to reproduce: - Create a new bank payment method and assign as payment method of a pos.config. - Open a session. - Sell with negative amount (e.g. negative quantity) and pay using the new payment method. - [ISSUE] Try to close the session and you will get an error. When a payment amount is negative, we invert the destination and outstanding accounts. Prior to creation of the `account.payment` record, it's possible that an outstanding account is missing. This value can be missing but will be automatically assigned during the creation of the `account.payment` record. So instead of inverting the accounts before creating the `account.payment` record, we now invert them after the creation. OPW: 4317320
This fix makes the Project app's guided tour wait for the newly created subtask before selecting it. It prevents the tour from clicking the wrong item and closing the menu unexpectedly, improving reliability for testing and onboarding flows.
Original PR description
In this commit, we fix the project tour. In the kanban view, we click on the first subtask_list_row but it is not yet (still) the newer subtask. We can therefore click on the first element even though it is not yet created. The DOM re-renders ... and the dropdown menu disappears. By specifying (:contains()) that we want to click on the newer subtask, we wait for it to be created, for it to be rendered and then we click on it. 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
Point of Sale now prevents the same tracked serial number from being selected in multiple active orders. This helps avoid inventory mistakes and fulfillment issues before orders are finalized.
Original PR description
Steps: - Open the POS. - Add a product with serial number tracking to the order line. - Create a new order. - Add the same product to the new order Issue: - it is possible to select the same serial number that was previously used in another order. Fix: - Hide serial numbers that are being used in active orders Task - 3944652
This fix makes Ctrl+click work properly on links that have styling applied in the HTML editor. Users can now open the intended link even when clicking on styled text or elements inside it, improving editing convenience and reducing confusion.
Original PR description
Description of the issue this PR addresses: Current behavior before PR: Ctrl+clicking on a styled link is ineffective since the target is the styled element. Desired behavior after PR is merged: Ensure the target is the closest anchor tag. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The tooltip on the cog menu icon has been removed because it could appear over the drop-down menu. This makes the menu easier to use, especially on smaller screens where space is limited.
Original PR description
Before this commit, the tootip was above the drop-down menu. This was particularly annoying for small screens. Task-ID: 4377708 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
Dutch companies can now update the VAT rounding profit and loss accounts in accounting settings. This fixes fields that were incorrectly locked, allowing businesses to align VAT rounding postings with their preferred accounting setup.
Original PR description
Steps to reproduce:
1. Install accounting app
2. Install l10n_nl
3. Select the nl company
4. From settings, under "Default Accounts", the "Dutch VAT Rounding {Profit|Loss} Account" are readonly.
Fix:
Adding `readonly=False` to the `l10n_nl_rounding_difference_loss_account_id` and `l10n_nl_rounding_difference_profit_account_id` fields.
opw-4380635This fixes an unstable automated test in Web Studio by ensuring the test waits for dropdown results before selecting an item. The change helps prevent false test failures, improving confidence in release validation without changing user-facing behavior.
Original PR description
Before this commit, one tour searched in a dropdown and clicked on an item representing a field of a model, without waiting for the dropdown to update. Because tours' behavior change rapidly in an effort to strengthen them, this undeterminism was not detected before. runbot-error-111417 runbot-error-111192
Fixed an error that prevented users from opening the Depreciation Schedule after the journal filter was deactivated. This helps accounting users access asset depreciation reporting reliably, even when optional filters are turned off.
Original PR description
Steps to reproduce: - Activate debug mode - Go to Accounting/Configuration/Accounting Reports/Depreciation Schedule - Deactivate the journals filter - open the depreciation schedule -> Traceback because it can't iterate on None Type object opw-4364589
The Sign completion dialog now displays better on mobile and desktop and presents clearer wording to encourage continued use of the Sign app. The close action has been simplified and can guide signed-out users to the Sign app, reducing confusion after completing a document.
Original PR description
The dialog content and button is off on mobile and the dialog should promote better the sign app. This commit fixes the design to improve the promotion and better render the content on both mobile and desktop. - No more sign up button -> close button redirect to /app/sign if user is not connected - Close button is always secondary - Reviewed wording and design task-4434783 
This update ensures that country-specific Point of Sale setups always load the customer or company records they need when a sales session starts. This prevents receipt and fiscal-printer errors caused by partner records being skipped due to loading limits, especially for Chile, Ecuador, and Italy localizations.
Original PR description
For some localizations, some partners are required at all times for the POS to work properly. Since we restrict the number of loaded partners, we need to explicitly add those required partners to the set of partners loaded at the opening of the pos session. Previous fixes implemented this logic in pos_onfig. However it seems like it would make more sense to handle this from res.partner directly. This PR also proposes a fix of the same type for l10n_it_pos, where the partner associated to the current company must be loaded for propoer fiscal data display on the fiscal printer receipts.
Portal users could encounter an access error when moving between shared document folders, preventing them from reaching project-related documents. The fix ensures shared document links are generated reliably, so authorized portal users can browse the folders they have been given access to.
Original PR description
How to reproduce: - install all project related module (I couldn't find the exact module but it should at least involve the website_document which adds the website_id in the model document) - create a portal user and share the project folder and Marketing folder - connect with the portal user, click on the Marketing folder and then on the project folder You get an access error related to the access of a company record. We solve that issue by getting the base URL in sudo in the compute method of access_url of document. This should not be a problem as we get the access_token of the document in the same line which implies that the user has access to the document for which we want to compute the full URL. Task-4244767
This update fixes automated test data for Mexico electronic invoicing where some dates were still tied to 2024. It helps keep year-sensitive validation checks running reliably without changing customer-facing functionality.
Original PR description
Some 2024 years were encoded in test files.
1 change
Resolved issues and error corrections
This update fixes an issue where multiple company payroll settings only displayed the main company's localization block. Now, when multiple companies are selected, the correct localization block for each company is shown within the payroll settings, ensuring accurate reporting and configuration across all businesses. This improves the usability of the payroll system for international operations.
Original PR description
* is l10n_{au,be,ch,hk,lu,ma,us}_hr_payroll
- When miltiple companies it shows `X Localization` block only in payroll settings Where X is the cuntry of the current chosien company
Task: 4409568