Search
Navigate
Branch
Thursday, March 28, 2024
75 changes
20 changes
Resolved issues and error corrections
The properties field type selector now displays correctly after recent dropdown changes. Popovers no longer appear hidden behind other elements, and icons/images keep the intended size, making property editing clearer for users.
Original PR description
In [1], dropdowns were updated and it impacted the properties field edition: - z-index of the popover opened for the dropdown of a property field type was lower than the element it was opened for, resulting in part of the popover being hidden. - img style (dimensions) was not applied as the dropdown list is now a popover (sibling instead of child), resulting in bigger images. This commit fixes the issue by adding a class on the field type selection popover. [1]: https://github.com/odoo/odoo/commit/7b7a2613901de20791d111a8efc8e98c226f39ad task-3834506
This update fixes documentation links across Odoo so they point to the correct saas-17.2 documentation. Users and administrators will be directed to guidance that matches their current version, reducing confusion from outdated or mismatched help pages.
Original PR description
See also: - https://github.com/odoo/enterprise/pull/59607
Miscellaneous changes
Before this commit sol field wasn't editable when user don't have any sales access and it was editable for timesheet page and project form view. This commit make SOL field in task form editable to be consistant with project form and timesheet page of tast form. task-3764793 Forward-Port-Of: odoo/odoo#159055 Forward-Port-Of: odoo/odoo#155339
Original PR description
Before this commit sol field wasn't editable when user don't have any sales access and it was editable for timesheet page and project form view. This commit make SOL field in task form editable to be consistant with project form and timesheet page of tast form. task-3764793 Forward-Port-Of: odoo/odoo#159055 Forward-Port-Of: odoo/odoo#155339
1 change
Enhancements to existing features
This update streamlines the process of accessing analytic accounts within Odoo. Previously, the same code was repeatedly used to retrieve these accounts, leading to redundancy. This change creates a new function to avoid this duplication, improving efficiency and maintainability.
Original PR description
[IMP] analytic: Add a function to get the analytic accounts off of analytic_distribution dict, this improvement is to avoid rewriting the same code all over whenever we wanna get the accounts. [related PR](https://github.com/odoo/enterprise/pull/57159) opw-3756270 Forward-Port-Of: odoo/odoo#156866
14 changes
Enhancements to existing features
The helpdesk time confirmation wizard now uses clearer button labels and a trash icon for deletion. This makes it easier for users to understand whether they are logging time, resuming the timer, or deleting the entry.
Original PR description
After this commit:
- confirm time spent wizard: buttons changed:
save -> log time
discard -> resume timer
delete -> fa-trash icon
task-379982840 changes
New functionality added to Odoo
This update adds support for the Zona Franca Fiscal Position in Uruguay's accounting configuration. While this feature will be used for electronic data interchange (EDI) in the future, it is being added now to ensure it is properly created when the accounting system is initially set up. This prepares the system for upcoming EDI functionality.
Original PR description
This one will be used for EDI in the future, but we leave it here because we need this one is created when loading the accounting configuration --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Before this commit: =================== In coins/bills pop pup, if user adds some coin and removes quantity from any of the fields (blank space) then it's showing `NAN` and not calculating the other inputted value which is completely annoying. After this commit: ================== If user removes quantity from any of the fields (blank space) then the input will count `0` in the backend and calculate accordingly. task - 3728728 Forward-Port-Of: odoo/odoo#153770
Original PR description
Before this commit: =================== In coins/bills pop pup, if user adds some coin and removes quantity from any of the fields (blank space) then it's showing `NAN` and not calculating the other inputted value which is completely annoying. After this commit: ================== If user removes quantity from any of the fields (blank space) then the input will count `0` in the backend and calculate accordingly. task - 3728728 Forward-Port-Of: odoo/odoo#153770
Fix the property mobile display: - Set the popup in fullscreen. - The draggable feature is disabled. - Replacing the move up/move down property arrows in the popup by a back arrow so that the fullscreen popup can be closed. - Removing the min-width on the property popover to prevent the popup from going out of the screen. - Edit button is now always visible as hovering on it is not possible on mobile. Task-3635554 --- I confirm I have signed the CLA and read the PR guidelines at
Original PR description
Fix the property mobile display: - Set the popup in fullscreen. - The draggable feature is disabled. - Replacing the move up/move down property arrows in the popup by a back arrow so that the fullscreen popup can be closed. - Removing the min-width on the property popover to prevent the popup from going out of the screen. - Edit button is now always visible as hovering on it is not possible on mobile. Task-3635554 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#156886
In c983f8a5 we updated the `test_survey_invite_action` test to create surveys in batch instead of one by one. This is problematic because `session_code` (given by utility method) must be unique for all surveys. Task-3829536 Forward-Port-Of: odoo/odoo#159295
Original PR description
In c983f8a5 we updated the `test_survey_invite_action` test to create surveys in batch instead of one by one. This is problematic because `session_code` (given by utility method) must be unique for all surveys. Task-3829536 Forward-Port-Of: odoo/odoo#159295
After the fw-port of the fix in [1], it seems some references had changed, breaking the translations again. This commit fixes that. [1] 9d2f7f312c5d699b937bd5546085fc151a149a8f --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#158557
Original PR description
After the fw-port of the fix in [1], it seems some references had changed, breaking the translations again. This commit fixes that. [1] 9d2f7f312c5d699b937bd5546085fc151a149a8f --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#158557
Issue: When using the Fullscreen mode of slides for articles we do run first the website animations before loading the slide, which will make the content to stay invisible since we will never actually perform the animation. Steps to reproduce: 1. Create a new course with an article content. 2. Add any block (text, image). 3. Add an animation to this piece of block. 4. Go to Fullscreen mode. Solution: We could manually instantiate and attach the WebsiteAnimate widget to the #wrapwr
Original PR description
Issue: When using the Fullscreen mode of slides for articles we do run first the website animations before loading the slide, which will make the content to stay invisible since we will never actually perform the animation. Steps to reproduce: 1. Create a new course with an article content. 2. Add any block (text, image). 3. Add an animation to this piece of block. 4. Go to Fullscreen mode. Solution: We could manually instantiate and attach the WebsiteAnimate widget to the #wrapwrap element to ensure animations are properly initialized and applied after the slide has loaded. opw-3757919 Forward-Port-Of: odoo/odoo#159032 Forward-Port-Of: odoo/odoo#155780
### Steps to reproduce: - Install **Restaurant** app. - Go to **Point of Sale** app and open a new **Restaurant** session. - Add items to the order. - Click on the **Bill** button, the receipt window appears. - Click on the **Print** button, the print window appears. Cancel it - U don't have to print it or save it-. - Close the receipt window. - Add another item to the order, the older items are removed -the order is cleared-. ### Investigation: - When the **Print** button is clicked
Original PR description
### Steps to reproduce: - Install **Restaurant** app. - Go to **Point of Sale** app and open a new **Restaurant** session. - Add items to the order. - Click on the **Bill** button, the receipt window…
### Steps to reproduce: - Install **Restaurant** app. - Go to **Point of Sale** app and open a new **Restaurant** session. - Add items to the order. - Click on the **Bill** button, the receipt window appears. - Click on the **Print** button, the print window appears. Cancel it - U don't have to print it or save it-. - Close the receipt window. - Add another item to the order, the older items are removed -the order is cleared-. ### Investigation: - When the **Print** button is clicked in the Bill Screen, `print()` method is triggered https://github.com/odoo/odoo/blob/c3fe6dfd3c56ae8058d0eb688680bdc627ee611a/addons/pos_restaurant/static/src/app/bill_screen/bill_screen.js#L16-L19 - which do two actions simultaneously: - calls the `printReceipt()` method https://github.com/odoo/odoo/blob/c3fe6dfd3c56ae8058d0eb688680bdc627ee611a/addons/pos_restaurant/static/src/app/bill_screen/bill_screen.js#L17 - set the order.`_printed` to `false` https://github.com/odoo/odoo/blob/c3fe6dfd3c56ae8058d0eb688680bdc627ee611a/addons/pos_restaurant/static/src/app/bill_screen/bill_screen.js#L18 _NOW order.`_printed` IS FALSE._ - Inside the `printReceipt()` method, we reach this line https://github.com/odoo/odoo/blob/c3fe6dfd3c56ae8058d0eb688680bdc627ee611a/addons/point_of_sale/static/src/app/store/pos_store.js#L1793 which set the order.`_printed` to True. _NOW order.`_printed` IS TRUE_. - When a new product is added to the order, this if clause https://github.com/odoo/odoo/blob/c3fe6dfd3c56ae8058d0eb688680bdc627ee611a/addons/point_of_sale/static/src/app/store/models.js#L1871-L1875 is activated given that the order.`_printed` is true although it should have been `false`! opw-3796605 Forward-Port-Of: odoo/odoo#158516
[This commit] fixed an issue with the menu cache. Unfortunately, during the forward port, we missed updating the cache key according to what has been done in [this other commit]. This commit updates the cache key and improves the test. Steps to reproduce the bug fixed by this commit: - Render a website without a record URL in the menu (to fill the cache) - Edit the website's menu - Add a link to a product page (e.g., customizable-desk) - Add a link to another product (e.g., chair-floor-pr
Original PR description
[This commit] fixed an issue with the menu cache. Unfortunately, during the forward port, we missed updating the cache key according to what has been done in [this other commit]. This commit updates…
[This commit] fixed an issue with the menu cache. Unfortunately, during the forward port, we missed updating the cache key according to what has been done in [this other commit]. This commit updates the cache key and improves the test. Steps to reproduce the bug fixed by this commit: - Render a website without a record URL in the menu (to fill the cache) - Edit the website's menu - Add a link to a product page (e.g., customizable-desk) - Add a link to another product (e.g., chair-floor-protection) - Save the menu - Click on the menu link to go to customizable-desk => At this point, the active menu element is correct - Click on the menu link to go to chair-floor-protection => The active menu element does not update This issue does not occur if there is a record like URL in the menu before the first render. [This commit]: https://github.com/odoo/odoo/commit/970c173530e5523d0e3242ad84dae6fe5e332d68 [this other commit]:https://github.com/odoo/odoo/commit/595aa248433246959a5fa9288e477091701c6a35 opw-3694651 opw-3750925 opw-3781668 Forward-Port-Of: odoo/odoo#159429
Avoid redirect to forum/<name>/question/<post> that will rediret in all case to /forum/<name>/<post>. Forward-Port-Of: odoo/odoo#158148
Original PR description
Avoid redirect to forum/<name>/question/<post> that will rediret in all case to /forum/<name>/<post>. Forward-Port-Of: odoo/odoo#158148
Before this commit ================== Unable to activate the industry from the form view in the industry section. Additionally, the button in the form for upgrading would be called the button_immediate_upgrade method, resulting in errors. After this commit ================= Activation of the industry from the form view in the industry section is now possible. Furthermore, the issue with upgrading the industry from the form view has been resolved. task-3775729 Forward-Port-Of: odoo/od
Original PR description
Before this commit ================== Unable to activate the industry from the form view in the industry section. Additionally, the button in the form for upgrading would be called the button_immediate_upgrade method, resulting in errors. After this commit ================= Activation of the industry from the form view in the industry section is now possible. Furthermore, the issue with upgrading the industry from the form view has been resolved. task-3775729 Forward-Port-Of: odoo/odoo#157008
## Issue: - When adding opportunity/lead to a contact using Studio and attempt to add a line, we encounter the following error:"TypeError: 'NewId' object is not iterable." ## Steps To Reproduce: - In a contact form open Studio and add a O2M field Customer (Lead/Opportunity) - Try to add a line - Notice Traceback Error "TypeError: 'NewId' object is not iterable" ## Solution: - The issue arises in the search domain of `return_if_relevant` , exactly in ("partner_id", "child_of", lead.pa
Original PR description
## Issue: - When adding opportunity/lead to a contact using Studio and attempt to add a line, we encounter the following error:"TypeError: 'NewId' object is not iterable." ## Steps To Reproduce: - In…
## Issue:
- When adding opportunity/lead to a contact using Studio and attempt to add a line, we encounter the following error:"TypeError: 'NewId' object is not iterable."
## Steps To Reproduce:
- In a contact form open Studio and add a O2M field Customer (Lead/Opportunity)
- Try to add a line
- Notice Traceback Error "TypeError: 'NewId' object is not iterable"
## Solution:
- The issue arises in the search domain of `return_if_relevant` , exactly in ("partner_id", "child_of", lead.partner_id.commercial_partner_id.id) where the type of `lead.partner_id.commercial_partner_id.id` is NewId since the partner is being edited to add a task. This action triggers the `parse` and `to_ids` methods with a value type of NewId. thus the error.
- The operator child_of expects a list of IDs, and the ids property refer to the record's origin ids. to resolve this, replace `commercial_partner_id.id` with `commercial_partner_id.ids`.
opw-3760372
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#159296Since this commit [1], the two searchbar snippets are broken. The search bar input seems invisible because it shares the same color as the default snippet background and has no border. This style matches the search inputs used in apps (like the "/shop" search bar), which isn't affected by the "Input fields" settings in the "Theme" tab. To resolve this issue, this commit introduces a new option to choose between the "light" style (similar to "/shop" search bars) and the "default input style
Original PR description
Since this commit [1], the two searchbar snippets are broken. The search bar input seems invisible because it shares the same color as the default snippet background and has no border. This style…
Since this commit [1], the two searchbar snippets are broken. The search bar input seems invisible because it shares the same color as the default snippet background and has no border. This style matches the search inputs used in apps (like the "/shop" search bar), which isn't affected by the "Input fields" settings in the "Theme" tab. To resolve this issue, this commit introduces a new option to choose between the "light" style (similar to "/shop" search bars) and the "default input style" for the 2 "Search" snippets. The "default input style" is automatically applied when the "Search" snippet (excluding saved snippets) is dropped to address the issue caused by the light-on-light color scheme. Steps to Reproduce the Issue: - While in Website edit mode, drag and drop a "Search" snippet onto the page. - Bug: The input appears invisible due to the lack of a border and a background color identical to the snippet's section color. [1]: https://github.com/odoo/odoo/commit/6b1d11a60d8e70b33c63da860bb81b015ce5ea20 task-3662985 Forward-Port-Of: odoo/odoo#154435
### [[FIX] website_slides: Stop sending completion mail on all slides removal](https://github.com/odoo/odoo/pull/153178/commits/f74fdbe8bb9a20d82caad5b78ec3292c34124fad) Construct deciding on whetheres an attendee should receive 'complete' mail, contains a condition which checks if the attendee has: number_completed_slides >= number of all slides This however falls into a corner case when there is no slides at all and computation gets triggered (which got introduced with commit [1] ).
Original PR description
### [[FIX] website_slides: Stop sending completion mail on all slides removal](https://github.com/odoo/odoo/pull/153178/commits/f74fdbe8bb9a20d82caad5b78ec3292c34124fad) Construct deciding on…
### [[FIX] website_slides: Stop sending completion mail on all slides removal](https://github.com/odoo/odoo/pull/153178/commits/f74fdbe8bb9a20d82caad5b78ec3292c34124fad) Construct deciding on whetheres an attendee should receive 'complete' mail, contains a condition which checks if the attendee has: number_completed_slides >= number of all slides This however falls into a corner case when there is no slides at all and computation gets triggered (which got introduced with commit [1] ). ### [This Commit Change] This commit introduces an additional check on the total number of slides in a channel. Consequently, records without any slides in the related channel will no longer send completion mail notification. ### [Reproduce] - Install website_slides - Create a new eLearning course with some content but do not publish it. - Add attendees. - Delete all the content. - BUG: emails about finishing the course got sent (Settings/Technical/Emails) ### [Why this commit modifies existing test] The test introduced with commit [2] checks if a specific template is used in email generation, requiring email generation to occur as a prerequisite. Originally (before [This Commit Change]), it relied on the default behavior that considered an attendee a completer even without any published slides, thus triggering an email. However, after this commit, with a course containing zero published slides, completion cannot occur, and thus, no emails are sent. For this reason slight alteration of the test setup is required allowing for the emails to get sent and in effect the test to perform its role. ### [References] [1] https://github.com/odoo/odoo/commit/3efa80847c4631febefc770b79bb786953a05b36 [2] https://github.com/odoo/odoo/commit/9a0231d5c3fa25f4ec63303cfc7eb8e2bc8ff9e1 opw-3703987 Forward-Port-Of: odoo/odoo#153178
*: website_sale This is a follow-up of [1], which missed some occurrence of the same issue that it fixed. E.g. - Add a delay to the "write" of the event model - Go to /event/<event_id>/community - Enter edit mode - Click on the page - Enable the room creation option => The page reloads but nothing seems to have been done... it is actually *being* done: the page reloaded too soon. Note: this commit also marks some other occurrences which are not buggy but might be in the future
Original PR description
*: website_sale This is a follow-up of [1], which missed some occurrence of the same issue that it fixed. E.g. - Add a delay to the "write" of the event model - Go to /event/<event_id>/community - Enter edit mode - Click on the page - Enable the room creation option => The page reloads but nothing seems to have been done... it is actually *being* done: the page reloaded too soon. Note: this commit also marks some other occurrences which are not buggy but might be in the future if not properly changed. To be adapted in the master forward-port. [1]: https://github.com/odoo/odoo/commit/556ae457b02e9c077d09fa9c3f9f1e6c6e26b345 Forward-Port-Of: odoo/odoo#159478 Forward-Port-Of: odoo/odoo#159316
## Description On a database with heavy activity, it is possible for the payload size we pass for the `NOTIFY` query on the bus to be larger than what PostgreSQL allows by default, 8000 B. This limit is defined as [src1](https://github.com/postgres/postgres/blob/6686e9676c8faff4ee04c1574e117ae38f117efa/src/backend/commands/async.c#L158-L166) and is used to compare the size of the payload before processing [src2](https://github.com/postgres/postgres/blob/6686e9676c8faff4ee04c1574e117ae38f117efa/
Original PR description
## Description On a database with heavy activity, it is possible for the payload size we pass for the `NOTIFY` query on the bus to be larger than what PostgreSQL allows by default, 8000 B. This limit…
## Description On a database with heavy activity, it is possible for the payload size we pass for the `NOTIFY` query on the bus to be larger than what PostgreSQL allows by default, 8000 B. This limit is defined as [src1](https://github.com/postgres/postgres/blob/6686e9676c8faff4ee04c1574e117ae38f117efa/src/backend/commands/async.c#L158-L166) and is used to compare the size of the payload before processing [src2](https://github.com/postgres/postgres/blob/6686e9676c8faff4ee04c1574e117ae38f117efa/src/backend/commands/async.c#L654-L657) ## Fix - Binary split the payload into multiple chunks if it's exceeding the above-mentioned limit. The unit of splitting is a channel, so if the content of one channel itself is larger than said limit, it is not handled, but shouldn't occur under normal circumstances. - Introduce also a new ENV variable `ODOO_NOTIFY_PAYLOAD_MAX_LENGTH` to allow tweaking of the limit if they are running a handrolled custom PostgreSQL cluster. ## Reference opw-3650618 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#159469 Forward-Port-Of: odoo/odoo#154463
Description of the issue/feature this PR addresses: Avoid ugly URL if no variant on your eCommerce. Current behavior before PR: Product URL are like /shop/product-1#attr= Desired behavior after PR is merged: Product URL are like /shop/product-1 when no attributes --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#159474
Original PR description
Description of the issue/feature this PR addresses: Avoid ugly URL if no variant on your eCommerce. Current behavior before PR: Product URL are like /shop/product-1#attr= Desired behavior after PR is merged: Product URL are like /shop/product-1 when no attributes --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#159474
Wild try to avoid failures on runbot builds (not reproducible locally). * simplify and split tour steps * correctly specify check steps as isCheck: true * make sure python setup is deterministic * batch template creation to avoid creation of dummy archived variant * target values for the variant to archive instead of its number in the list of variants runbot build error 25046 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-P
Original PR description
Wild try to avoid failures on runbot builds (not reproducible locally). * simplify and split tour steps * correctly specify check steps as isCheck: true * make sure python setup is deterministic * batch template creation to avoid creation of dummy archived variant * target values for the variant to archive instead of its number in the list of variants runbot build error 25046 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#159270
Steps to reproduce: - Remove all permissions to write/create/delete a view for the user "demo" - Open a view form with "demo" user Actual result: - View code is displayed in plain text and with formatting  Expected result: - View code is displayed with formatting only - You can't edit the view or the translations opw-3776073 --- I confirm I have signed the CLA and read the PR
Original PR description
Steps to reproduce: - Remove all permissions to write/create/delete a view for the user "demo" - Open a view form with "demo" user Actual result: - View code is displayed in plain text and with formatting  Expected result: - View code is displayed with formatting only - You can't edit the view or the translations opw-3776073 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#159523 Forward-Port-Of: odoo/odoo#159216
Studio now checks approval rules for all form buttons in a single request instead of one by one. This improves form loading performance and reduces database work, especially on screens with multiple approval-controlled actions.
Original PR description
Studio approval is the mechanism that allows to restrict some buttons to some users until they are approved by a manager. Before, the approval was fetched one by one, for each button in the form view. This commit changes this to fetch all the approvals in one request in order to improve the performance. The python code has been improved as well, making as few sql requests as possible. The counterpart of this commit is a change of API of the public method `studio.approval.rule:@get_approval_spec` that can handle fetching rules for any combination of `model * res_ids * method * action_ids` task-3601171
Users can now move through spreadsheet templates and selector dialogs with the keyboard arrow keys. This makes choosing templates or spreadsheets faster and more accessible, especially for users who prefer keyboard navigation.
Original PR description
## Description - Introduces arrow key functionality for navigating templates within the template dialog and spreadsheet selector dialog. Task ID: [3700699](https://www.odoo.com/web#id=3700699&cids=2&menu_id=4720&action=333&active_id=2328&model=project.task&view_type=form)
Users can now adjust pivot table groups and measures directly from the spreadsheet side panel. This makes reporting more flexible by allowing changes to measure calculations, group ordering, and date grouping granularity without rebuilding the pivot table.
The appointment booking form now disables the confirmation button and shows a loading state after the first click. This prevents users from accidentally submitting the same appointment request multiple times and avoids confusing error messages about the slot already being taken.
Original PR description
Purpose ======= Prevent multiple submits of the attendee form when the user spam clicks on the "Confirm Appointment" button. Specifications ============== Spam clicking the submit button is submitting multiple times the form which redirects the user to the "Date & Time" step with a red banner indicating that another user already has reserved this time slot a few seconds ago. Adding a loading effect on the confirmation button to disable it after a single click and inform the user that the form submission is correctly processed. Task-3815493
Resolved issues and error corrections
The Gantt view test suite has been adjusted so desktop-only behavior is no longer checked in mobile mode. This reduces irrelevant test failures and helps keep quality checks focused on how the feature is actually intended to work.
Original PR description
This commit changes the scope of gantt non-mobile tests to desktop only because most are not supposed to work in mobile mode.
The Appointments resource booking schedule no longer crashes when opened. This restores access to the booking view so teams can manage appointment resources as expected.
Original PR description
Since https://github.com/odoo/enterprise/pull/57517, when we go to Appointments > Schedule > Ressource Booking, we get a traceback. Restore the previous behavior, use the new `_read_group_groupby` hook instead, and add a search method `_search_resource_ids` to be fully correct with the domain returned by web_read_group.
Miscellaneous changes
Com PR: https://github.com/odoo/odoo/pull/157897 --- We must disable the cache for the header when there are record links in it. When the runbot performs enterprise tests, "Helpdesk" appears in the header, which includes a record link. This commit removes record like urls in the menu before doing the performance test to prevent increasing the query count. opw-3694651 opw-3750925 opw-3781668 Forward-Port-Of: odoo/enterprise#59358 Forward-Port-Of: odoo/enterprise#58853
Original PR description
Com PR: https://github.com/odoo/odoo/pull/157897 --- We must disable the cache for the header when there are record links in it. When the runbot performs enterprise tests, "Helpdesk" appears in the header, which includes a record link. This commit removes record like urls in the menu before doing the performance test to prevent increasing the query count. opw-3694651 opw-3750925 opw-3781668 Forward-Port-Of: odoo/enterprise#59358 Forward-Port-Of: odoo/enterprise#58853
## Issue: - when you create an appraisal and you click on 'send by email' and add some text on the body of the email, it doesn't appear nor in the chatter, nor in the email sent. ## Steps To Reproduce: - create an appraisal - click on SEND BY email - add email body - notice missing email body in the chatter. ## Solution: - add user_body to "_compute_body" dependencies to trigger it otherwise it wont be computed and body is kept empty. opw-3787796 Forward-Port-
Original PR description
## Issue:
- when you create an appraisal and you click on 'send by email' and add some text on the body of the email, it doesn't appear
nor in the chatter, nor in the email sent.
## Steps To Reproduce:
- create an appraisal
- click on SEND BY email
- add email body
- notice missing email body in the chatter.
## Solution:
- add user_body to "_compute_body" dependencies to trigger it otherwise it wont be computed and body is kept empty.
opw-3787796
Forward-Port-Of: odoo/enterprise#59284
Forward-Port-Of: odoo/enterprise#58374Clean the implementation. Forward-Port-Of: odoo/enterprise#58819
Original PR description
Clean the implementation. Forward-Port-Of: odoo/enterprise#58819
The account code 5003 is used for the salary advance account but in hr.salary.rule the account linked to it is 5004 Holidays payment after departure. see [here](https://github.com/odoo/enterprise/blob/17.0/l10n_ch_hr_payroll_account/models/account_chart_template.py#L15). But that should be Salary Advance. Although I am not very sure about this, I saw the code and it seems to be suspicious. Before fix:- . But that should be Salary Advance. Although I am not very sure about this, I saw the code and it seems to be suspicious. Before fix:-  After fix:-  Forward-Port-Of: odoo/enterprise#59002
Before this commit, some archived sign.requests were triggering reminders by the cron when they shouldn't, because they weren't active anymore. After this commit, archived sign.requests no longer trigger reminders by the cron, they are skipped in the SQL query. task-3806013 Forward-Port-Of: odoo/enterprise#58649
Original PR description
Before this commit, some archived sign.requests were triggering reminders by the cron when they shouldn't, because they weren't active anymore. After this commit, archived sign.requests no longer trigger reminders by the cron, they are skipped in the SQL query. task-3806013 Forward-Port-Of: odoo/enterprise#58649
Change adds inputs and rules used for calculating salary in UAE. task-3634461 Forward-Port-Of: odoo/enterprise#53553
Original PR description
Change adds inputs and rules used for calculating salary in UAE. task-3634461 Forward-Port-Of: odoo/enterprise#53553
This PR addresses an issue with the Journal Report where columns positioned after 'additional_col_1' or 'additional_col_2' were not being displayed. Furthermore, in databases migrated to version 17.0, a new record 'invoice_date' is inserted into the account_report_column table, but the corresponding 'Invoice Date' column is not visible in the journal report. ### Current situation: account_report_column ``` aksi_test=# select id, name, sequence , report_id, expression_label from account_rep
Original PR description
This PR addresses an issue with the Journal Report where columns positioned after 'additional_col_1' or 'additional_col_2' were not being displayed. Furthermore, in databases migrated to version…
This PR addresses an issue with the Journal Report where columns positioned after 'additional_col_1' or 'additional_col_2' were not being displayed. Furthermore, in databases migrated to version 17.0, a new record 'invoice_date' is inserted into the account_report_column table, but the corresponding 'Invoice Date' column is not visible in the journal report.
### Current situation:
account_report_column
```
aksi_test=# select id, name, sequence , report_id, expression_label from account_report_column where report_id = 17 order by id;
id | name | sequence | report_id | expression_label
----+---------------------------+----------+-----------+------------------
63 | {"en_US": "Account"} | | 17 | account
64 | {"en_US": "Label"} | | 17 | label
65 | {"en_US": "Debit"} | | 17 | debit
66 | {"en_US": "Credit"} | | 17 | credit
67 | {"en_US": ""} | | 17 | additional_col_1
68 | {"en_US": ""} | | 17 | additional_col_2
85 | {"en_US": "Invoice Date"} | | 17 | invoice_date
(7 rows)
```
### After Fix:
Journal Report

Forward-Port-Of: odoo/enterprise#58858Enhancements to existing features
The term "Upsell" has been replaced with "Quotation" in the customer portal for the subscription sales module. This change improves the customer experience in regions where the term "Upsell" has negative connotations, making the platform more culturally appropriate and customer-friendly.
Original PR description
The term "Upsell" has a negative impact on customers in some countries. It has been changed to "Quotation" task_id: 3699064
The appointment scheduling system now supports managing multiple resources per booking, similar to restaurant reservation systems with capacity management. The gantt view has been reorganized to group appointments by resources, making it easier to manage complex booking scenarios where customers can select multiple resources (staff, equipment, etc.) for a single appointment.
Original PR description
We now group the gantt view by resource_ids to manage appointment type where multiple resources can be chosen for the booking. It is now possible to manage appointment types of restaurant type (aka with manage capacity and multi resources). The field appointment_resource_id on the calendar event is removed as no longer useful. Everything is now managed with the computed resource_ids field and store with the appointment_resource_ids field through the appointment_booking_line table. The capacity distribution between resources is simplified and takes the shared resources in last. task-3812927
The 'Removal strategy' field in the stock location form is now automatically hidden when users select location types other than Internal. This improves the user interface by only showing relevant fields based on the selected location type, making the form cleaner and less confusing for warehouse managers.
Original PR description
In this commit: ================== Invisible the 'Removal strategy' field when selecting the other location type except the Internal location. task-3555853 Forward-Port-Of: odoo/odoo#154117
Resolved issues and error corrections
This update improves the user experience when working with comments and annotations in knowledge documents. Two key improvements were made: clicking on comment anchors no longer automatically shifts focus away from the text being edited, making it easier to modify content, and overlapping comment highlights no longer stack colors on top of each other, making text more readable when multiple comments are present in the same area.
Original PR description
# [FIX] knowledge: remove the focus on click on anchors This commit fixes an issue where the focus of the user's mouse would be moved to the comment box when clicking on the corresponding anchor. This renders the edition inside of the anchors very hard to do. Now, we removed this behavior and you only trigger the focus when clicking on the comment box. Simplifying the edition of text inside of the anchors. # [FIX] knowledge: remove color superposition in anchors This commit fixes an issue where multiple anchors intertwined inside the body would stack their background colour, rendering the text harder to read. Now, we removed the background colour of the anchors that are inside another one. This way there's no more colour stacking. task-3790314
This fix resolves an issue where transaction details were being incorrectly formatted with HTML tags, preventing them from being properly processed during the bank reconciliation process. When users search for missing transactions, the system now correctly handles the transaction data without errors, improving the reliability of bank statement synchronization.
Original PR description
When using the 'Find missing transactions' from account_online_synchronization module, the `transaction_details` field gets encapsulated in `<p></p>` HTML tags This is caused by that field being declared as a HTML field in the transient model `account.bank.statement.line.transient`, but then as a JSON field in the `account.bank.statement.line` model. That encapsulation causes Python JSON decoder to fail to decode from `transaction_details` when called in `_format_transaction_details()` in the bank reconciliation widget, resulting in a traceback Removing the HTML tags after the call to `read()` in the transient model allows the field to be correctly decoded. opw-3783078 opw-3773454 opw-3772561 and more.
This update corrects how subscription discounts are calculated when adding new line items to sales orders. Previously, the system was using incorrect subscription information when computing pro-rated discounts. The fix ensures the correct subscription details are used, resulting in accurate discount amounts for customers.
Original PR description
In the form view, new line were linked to new_id which computed the subscription_state value to a wrong version. Forcing readonly=False ensure the value is fetched from the origin and thus correct when computing the discount. task-id: 3699064
This update removes unnecessary pricelist creation and modification from Field Service sales tests to comply with new system rules that prevent changing pricelists on confirmed sales orders. The tests continue to work correctly without these steps, ensuring compatibility with recent platform changes.
Original PR description
Changing the pricelist on a confirmed SO is now forbidden. It was done in a fsm test, but the test is working fine without the pricelist, so the pricelist creation and SO update has been removed. See also: https://github.com/odoo/odoo/pull/157742
This fix resolves a critical issue that prevented demo data from loading when using the sales planning features. The problem occurred due to a timing conflict in how certain calculations were being recomputed during module updates. By adjusting when these calculations are forced to recalculate, the system now loads demo data successfully without errors.
Original PR description
Steps to reproduce: ------------------- 1. create a new database with industry_fsm_sale_report, planning and no demo data; 2. enable debug mode; 3. go to settings; 4. load demo data. Issue: ------…
Steps to reproduce: ------------------- 1. create a new database with industry_fsm_sale_report, planning and no demo data; 2. enable debug mode; 3. go to settings; 4. load demo data. Issue: ------ Fails to load demo data due because of a `KeyError` on `planning.slot.allocated_hours`. Cause: ------ When we update the module and instantiate the field, we will call _recompute_all method but the method _compute_planning_hours_planned of sale.order.line does an `add_to_compute` of planning.slot() field allocated_hours. So after _recompute_all, there is still something to compute. Then we when we apply allocated_hours override (from sale_planning module) we change the field object: ```py from models.py Model._setup_base if len(fields_) == 1 and fields_[0]._direct and fields_[0].model_name == cls._name: cls._fields[name] = fields_[0] # we reuse the field else: Field = type(fields_[-1]) self._add_field(name, Field(_base_fields=fields_)) # new reference ``` and when we do the recompute, it is going to be done with the old field reference that is now no longer on the model. Solution: --------- The issue comes from using add_to_compute inside a compute, in this particular case (order of compute, field that is overriden, module update that modify records/recompute values, ...) it is causing an issue. So to avoid this issue, we force the recomputation directly after the add_to_compute. Note: ----- This is only happening in saas-16.4 and over because by chance, the _recompute_all in saas-16.3 and below recomputes sale.order.line.planning_hours_planned before planning.slot.allocated_hours. So by chance, when we add allocated_hours to be recomputed, it was already going to be done. In saas-16.4 planning.slot.allocated_hours is computed before planning_hours_planned and so the _recompute_all still has something to compute after _recompute_all. opw-3517083 opw-3691750 Closes odoo/odoo#139603 # note There was another PR previously about this issue (https://github.com/odoo/odoo/pull/139603) but this one should more sharply fix the origin of the issue. Forward-Port-Of: odoo/enterprise#57804
This update fixes a test issue in the Sales Subscription module by properly clearing temporary test records. The fix ensures tests run cleanly without leaving behind residual data that could interfere with other tests or cause unexpected behavior.
Original PR description
**Coverage for community fix** https://github.com/odoo/odoo/pull/157515 opw-3754297 Forward-Port-Of: odoo/enterprise#58264
Fixed a technical issue in the Belgian tax report where the export filter closing attribute was not being placed correctly. The fix ensures that the closing attribute is properly positioned at the end of the export filters section, improving the accuracy of the tax report generation for Belgian users.
Original PR description
During this commit: https://github.com/odoo/enterprise/pull/45792/commits/3a3d9c877f3e8bd2db9e66cd8120d889fd09f125 a xpath was refactored to add the closing attribute for the belgian tax report. Before this commit the xpath wasn't working but didn't cause a traceback. By adding the parenthesis, the last operator can get the last div of the pdf_export_filters template and put after it the different closing attribute. no task id
This fix resolves an issue where images inserted into spreadsheets would disappear when the original spreadsheet was deleted after duplication. The system now properly copies image attachments when duplicating spreadsheets, ensuring users don't lose their content. An upgrade script is included to repair existing affected spreadsheets.
Original PR description
Steps to reproduce: - create a new spreadsheet - insert an image - duplicate the spreadsheet - delete the original spreadsheet (deleted, not archived) => the image in the duplicated spreadsheet is gone. An upgrade script will fix the existing wrong attachment. A better version version of this fix will come in master. Task: 3775364 Forward-Port-Of: odoo/enterprise#58868 Forward-Port-Of: odoo/enterprise#58295
This fix ensures that when a restaurant or retail order is split, the preparation display correctly updates to remove the split order line. Previously, the display would not refresh properly after splitting an order, which could cause confusion for kitchen or preparation staff about which items still need to be prepared.
Original PR description
Previously, splitting an order did not cancel the split order line in the preparation display. This commit ensures that the preparation display is updated correctly when an order is split. opw-3809693
This update corrects critical issues in the Belgian Partner VAT listing report where data was being incorrectly calculated and grouped. The report was applying query limits incorrectly, causing the last column to show empty values, and VAT numbers were not being properly grouped together. These fixes ensure the report now displays accurate and properly organized data when generated or exported.
Original PR description
The aim of this commit is having a correct Partner VAT listing report. Before this fix, the report has a SQL query that uses the load_more_limit value as the limit. The issue was that we applied the limit on a set of 3 queries, as each of these query computes one column, the report gave us enough line but the last column was wrongly computed (as we exceed the limit after the second query). This means that we had an empty column. It was totally wrong. In the same time, other bugs were found. Report lines are by default ordered by using the res.partner order (based on the complete name), causing that when we generate the xml report, the groupby (from itertools) wrongly grouped lines as we don't sort these lines on the groupby key (vat number). To avoid this issue, we changed the groupby by using the one from odoo.tools. opw-3802689 opw-3766777 opw-3797584 opw-3791023 Forward-Port-Of: odoo/enterprise#59454
This fix corrects an issue where helpdesk teams were being redirected to the default website instead of their configured website. The solution ensures that when opening a website from the helpdesk module, the system now properly identifies and uses the correct website associated with each helpdesk team, improving navigation accuracy for support teams.
Original PR description
Steps to Reproduce: - Set up a website for the helpdesk team. - Navigate to the website. - Observe redirection issues. Issue: - The configured website for the helpdesk team is not redirecting appropriately, leading to navigation issues. Cause: - get_client_action function is not getting the website which is linked with the helpdesk team, that's why it redirects to the default website. Solution: - Override open_website_url in helpdesk_website module and assign correct website_id in website_id parameter of get_client_action. task-3607646 Forward-Port-Of: odoo/enterprise#52630
This update corrects a naming inconsistency in the Swiss payroll module where input types and salary attachment types didn't match their corresponding rule names. The fix ensures that payroll rules, input types, and salary attachments are properly aligned, which prevents potential processing errors and improves data consistency in Swiss HR payroll operations.
Original PR description
Input type and salary attachment type should match the rule name task-3835119
Fixed an issue where the timesheet timer display width would shift when users clicked the start button. The fix ensures the timer header maintains a consistent width before and after starting a timer, providing a more stable and professional user experience.
Original PR description
Steps: - install time sheet module - click on start button - before clicking on start button,width is different - after clicking on start button ,width is different Issue: - the width is unstable,seems different before and after clicking on start button Cause: - The problem occurs because of height issue solution: - if we give the height to that class the problem will be solved task-3645747 Forward-Port-Of: odoo/enterprise#50100
This update fixes the call settings sliders in Odoo's discussion feature to properly display their current values and respond accurately to user adjustments. The sliders now show text values alongside them, update in real-time as users drag them, and have been optimized to handle the increased responsiveness without performance issues.
Original PR description
* Adds text values for the call settings sliders. * Replaces `onChange` events with `onInput` events so that the values respect the position of the sliders. * Debounces some functions to handle the increased amount of calls due to the swap to the `onInput` listener. * Changes the default value of `voiceActiveDuration` from `0` to `200` to match the minimum value of the input.
This fix resolves an issue where customers who accidentally tried to apply an already-used coupon would see their discount disappear from their cart. Now, when a coupon is reapplied, the discount stays in place and the system properly notifies the user that the coupon has already been used, preventing confusion and ensuring a better shopping experience.
Original PR description
Addresses the issue where reapplying an already applied coupon in the website shop led to the disappearance of the discount. With this fix, the discount remains applied, and the system continues to inform the user that the coupon has already been used, preventing confusion and maintaining consistency in the discount application process. task-3621246
This fix prevents users from changing the price list on orders that have already been confirmed, which could cause serious issues especially when switching to a price list in a different currency. While this wasn't possible through the normal order form, some users found workarounds that could lead to problematic situations. This change closes that loophole to protect order integrity.
Original PR description
It cannot happen through the default SO form view, but some funny guys have found other ways to do it, even though it can be quite problematic, especially if the new pricelist is in another currency. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update fixes two issues with date and time fields in website forms. First, it restores the ability to set conditional visibility rules based on date fields, which broke when the date picker was updated. Second, it prevents error messages from appearing when loading forms with empty date fields. These fixes ensure that website forms with date-dependent fields work correctly again.
Original PR description
**[FIX] website: fix conditional visibility depending on date field** Since commit [1], the "tempusdominus" date(time) picker has been replaced by the OWL date(time) picker. This change resulted in a…
**[FIX] website: fix conditional visibility depending on date field** Since commit [1], the "tempusdominus" date(time) picker has been replaced by the OWL date(time) picker. This change resulted in a modification of the HTML structure for date(time) input fields. Consequently, a bug emerged in the visibility options for fields reliant on a date(time) field. Specifically, the time condition selector failed to display the time conditions because they are rendered based on the HTML structure of the fields. Since the code was not adjusted to fit the new structure, this functionality stopped functioning. [1]: https://github.com/odoo/odoo/commit/910897fc97d87b08f01627094ec8c159f5267628 task-3790809 ---------------------------------------------- **[FIX] website: fix traceback with website form date(time) fields** Since commit [1], the "tempusdominus" date(time) picker has been replaced by the OWL date(time) picker. A traceback appears when loading a website form containing a field dependent on a date(time) field. This traceback occurs because when checking the value of an empty date(time) field (which happens when the user hasn't yet filled out the form), we parse the field value into a Date(Time). Before the changes in commit [1], we parsed this differently, which didn't crash but returned "NaN" with an empty date(time) field. In this commit, we now check whether a date(time) is valid and if not, we now assign it "NaN" to maintain exactly the same behaviour as before the commit [1]. Any value other than "NaN" would not work with the date comparison system and would break certain conditions. This commit also adds steps to the "website_form_editor" test tour so that it fails without this commit. [1]: https://github.com/odoo/odoo/commit/910897fc97d87b08f01627094ec8c159f5267628 task-3790809
This update converts inline templates in the Stock module to standard templates, enabling text strings to be properly translated into different languages. Previously, text within inline templates could not be translated, limiting the software's usability for non-English users. This change ensures all user-facing text in the Stock module can now be localized.
Original PR description
*: stock Strings within inline templates are not translatable, so we convert these templates into standard templates so that they can be. Task-3761551
This fix corrects how custom attribute names are displayed when items with custom attributes are added to a point of sale order. Previously, these attribute names were not showing correctly, which could cause confusion for staff processing orders. This update ensures customers and staff see accurate product information at checkout.
Original PR description
Before this commit, the custom attribute names were not correctly displayed when added to an order. opw-3795843 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Fixed an issue where job applicants on one website were incorrectly blocked from applying to jobs on a different website due to a duplicate application check that didn't account for website separation. Now the system properly recognizes that applications on different websites are independent, allowing users to apply to jobs across multiple company websites without interference.
Original PR description
Steps to reproduce: ------------------- - create 2 websites (for one or two companies); - create 2 jobs; - publish job A in website 1; - publish job B in website 2; - as a public user go to website 1 and apply for job A; - go to website 2 and try to apply for job B; Issue: ------ When we encode the email address, we receive the message: ``` You already applied to another position recently. You can continue if it's not a mistake. ``` Cause: ------ We don't take into account the website linked to the job we are applying for. Solution: --------- Incorporate the website into the domain for application search. opw-3798670
This fix resolves an issue where animations added to course content blocks were not displaying in fullscreen mode. The problem occurred because animations were being triggered before the slide content finished loading, causing the animated content to remain invisible. The solution ensures animations are properly initialized after the slide has fully loaded, improving the user experience when viewing courses in fullscreen.
Original PR description
Issue: When using the Fullscreen mode of slides for articles we do run first the website animations before loading the slide, which will make the content to stay invisible since we will never actually perform the animation. Steps to reproduce: 1. Create a new course with an article content. 2. Add any block (text, image). 3. Add an animation to this piece of block. 4. Go to Fullscreen mode. Solution: We could manually instantiate and attach the WebsiteAnimate widget to the #wrapwrap element to ensure animations are properly initialized and applied after the slide has loaded. opw-3757919 Forward-Port-Of: odoo/odoo#159032 Forward-Port-Of: odoo/odoo#155780
This update fixes three styling bugs in the web editor that were causing incorrect behavior when applying rounded corners and editing multi-value fields like borders. Users will now see their styling choices applied correctly without unexpected transformations when setting rounded corner values or using arrow keys to adjust border widths.
Original PR description
Since [1] when `extraClass` was introduced, styles are wrongly applied if an `extraClass` is defined on a `selectStyle` option, but both the class and the option modify the same CSS property.…
Since [1] when `extraClass` was introduced, styles are wrongly applied if an `extraClass` is defined on a `selectStyle` option, but both the class and the option modify the same CSS property. Typically, the "Round Corners" option sets the `border-radius` property and uses the `rounded` extra class. But that extra class specifies values for the `border-radius` properties. Without the class, `applyCSS` determines that the style of some corners is already `0px` and does therefore not need to be added to the inline style. But once the class is added, this is not true anymore - and the `0px` should have been specified. This commit avoids this issue by applying the CSS again once the `extraClass` is added. Steps to reproduce: - Drop a "Text - Image" snippet. - Select the image. - Set the "Round Corners" to "50 0 0 0". - Press tab to leave the field. => The entered field values was transformed. [1]: https://github.com/odoo/odoo/commit/bf5b4b69330747af7b09d48e59218b78a29a4b14 task-3800288 Forward-Port-Of: odoo/odoo#157434
This update fixes inconsistent test failures in the website shop module that were occurring during automated builds. The changes improve how product variants are created and tested to ensure more reliable and predictable test results. This helps maintain the stability of the e-commerce platform's automated quality checks.
Original PR description
Wild try to avoid failures on runbot builds (not reproducible locally). * simplify and split tour steps * correctly specify check steps as isCheck: true * make sure python setup is deterministic * batch template creation to avoid creation of dummy archived variant * target values for the variant to archive instead of its number in the list of variants runbot build error 25046 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#159270
Fixed an issue where old IoT drivers weren't being removed before new ones were downloaded, causing conflicts when IoT Boxes reconnect after database upgrades. The system now properly cleans up outdated driver files before installing new versions, ensuring smooth transitions when driver names or configurations change.
Original PR description
When some clients are upgrading their databates and reconnect their IoT Boxes to the new version of the database, we currently can have an issue where the old iot handlers are not being overwritten, but the new ones are being deleted. This happens in situations like where we add a new driver distinction in Windows, so its name "SomeDriver.py" becomes "SomeDriver_W.py". Since we dont delete SomeDriver.py the IoT can have both drivers in such situations, causing conflicts and unwanted behaviors. The goal here is to delete all the old drivers and interfaces before downloading the new ones to make sure we don't have this issus task-3729890 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#158412
This fix corrects how supply routes are displayed for components within subcontracted products. Previously, components were showing incorrect supply routes because the system wasn't properly tracking which warehouse or location should be used for restocking. The update ensures that when a route is selected for subcontracting, it only displays if it actually provides a way to resupply inventory through purchasing or manufacturing.
Original PR description
1. Fixes an issue where the parent product wasn't correctly set when computing the routes of a component, leading on components from subcontracted products displaying the wrong route (as it was…
1. Fixes an issue where the parent product wasn't correctly set when computing the routes of a component, leading on components from subcontracted products displaying the wrong route (as it was trying to resupply the selected warehouse instead of the subcontracted location). Note: This part of the fix is only necessary up to version `saas-16.4`, as it was fixed from `17.0` onwards through f9c58a61ee21f1ad955ee2a5a0e868de30ae083f. 2. If a route is found when searching for subcontracting routes but doesn't lead to a way to resupply the stock (either buy buying or manufacturing something), then ignore the found rules and revert to the default of trying to resupply the stock location. This avoids issue when using reordering rules to resupply the subcontracted location instead, where the 'Buy' route would be hidden even if it was selected. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#159383 Forward-Port-Of: odoo/odoo#158785
Users encountered an error when trying to view embedded slides in the eLearning module. The issue was caused by the system incorrectly trying to access a field from the wrong data object. This fix corrects the reference so that embedded slide views work properly again.
Original PR description
Currently, an exception is generated when the user tries to access embed view of slides by following the steps: - Install "eLearning" with a demo data - Open external embed view of slide 1 by…
Currently, an exception is generated when the user tries to access embed view of slides by following the steps: - Install "eLearning" with a demo data - Open external embed view of slide 1 by "/slides/embed_external/1" in url Stack Trace: ``` AttributeError: 'slide.channel' object has no attribute 'website_share_url' File "<1405>", line 313, in template_1405 File "<1405>", line 151, in template_1405_content File "<1405>", line 18, in template_1405_t_call_0 QWebException: Error while render the template AttributeError: 'slide.channel' object has no attribute 'website_share_url' Template: ir.ui.view(1405,) Path: /t/html/body/div/div[2]/t[1]/t/t[4] Node: <t t-set="include_embed" t-value="True"/> ``` This error is because commit [1] added code that tries to access the 'website_share_url' field in the 'slide.channel' model in template 'embed_slide' , but it actually belongs to 'slide.slide'. This commit resolved the above issue by accessing "website_share_url" with "slide" instead of "slide.channel". [1] - https://github.com/odoo/odoo/commit/db63c03af9932ae4d9b786620e88e62ce938589a sentry-5095823727 Forward-Port-Of: odoo/odoo#159446 Forward-Port-Of: odoo/odoo#159238
This update fixes how Brazilian phone numbers are processed in Odoo to comply with Brazil's 2016 phone numbering changes, which added a digit to mobile phone numbers. The system now correctly formats and validates Brazilian mobile numbers according to current standards.
Original PR description
Current behavior: --- Brazilian phone numbers are not managed correctly following the 2016 changes in Brazil. (Adding a 9 to mobile phone numbers) Fix: --- Patched the phonenumbers library, adding a 9 at the right place for mobile phone numbers. opw-3694150 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#153282
This update fixes a technical error that occurred when Mercado Pago payment status returned a 404 response. A missing comma in the code caused the system to crash with a type error. The fix ensures payments are processed smoothly without unexpected failures.
Original PR description
This traceback arises when the payment status is 404. A comma at the end is forgotten while creating a tuple with a single record, which leads to a type error traceback. Error:- "TypeError: 'in <string>' requires string as left operand, not int" https://github.com/odoo/odoo/blob/7e3267fc69324a3c98d36983705a50420b5143f9/addons/payment_mercado_pago/const.py#L35-L39 https://github.com/odoo/odoo/blob/7e3267fc69324a3c98d36983705a50420b5143f9/addons/payment_mercado_pago/models/payment_transaction.py#L165-L170 sentry-5103720097 Forward-Port-Of: odoo/odoo#159526 Forward-Port-Of: odoo/odoo#159433
This fix improves how payment method images are displayed in the payment form by allowing more image formats to be used. Previously, only image formats compatible with the PIL library could be used. Now the system can handle both PIL-compatible formats and other formats through URL rendering, making the payment system more flexible and reliable.
Original PR description
Description of the issue/feature this PR addresses: Replace the use of 't-out' with 't-field' for the payment method image in the 'Form Logo' template. The latter, for an image field, provides two options for rendering the payment method image: use the PIL library to obtain the image when given the option 'qweb_img_raw_data', or use a URL. The former only considers the first option, allowing only image formats compatible with the PIL library. Current behavior before PR: Only image formats compatible with the PIL library can be used for the payment method image. Desired behavior after PR is merged: Other formats including the ones compatible with the PIL library can be used for the payment method image. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: https://github.com/odoo/odoo/pull/159522 Forward-Port-Of: https://github.com/odoo/odoo/pull/158728
This update fixes the product comparison feature on the website to include attributes marked as "no_variant" in addition to the previously supported attribute types. This allows customers to compare a broader range of product attributes when shopping, providing more complete product information for better purchasing decisions.
Original PR description
**Description of the issue/feature this PR addresses:** Change the way odoo compares product's attributes on website. **Current behavior before PR:** By default Odoo does only compare attributes of type "create_variant" = "dynamic" or "always" but unfortunately it does not allow to compare attributes with "create_variant" = "no_variant". **Desired behavior after PR is merged:** Odoo allows to compare attributes with "no_variant" See also: - https://github.com/odoo/odoo/pull/148326 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#159552
This fix resolves an issue where view code was being displayed twice (once as plain text and once formatted) when users without edit permissions tried to view a form. Now, restricted users will only see the formatted view code without the ability to edit it or its translations, improving the user experience and maintaining proper access control.
Original PR description
Steps to reproduce: - Remove all permissions to write/create/delete a view for the user "demo" - Open a view form with "demo" user Actual result: - View code is displayed in plain text and with formatting  Expected result: - View code is displayed with formatting only - You can't edit the view or the translations opw-3776073 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#159523 Forward-Port-Of: odoo/odoo#159216
This fix corrects the currency displayed for employee hourly costs in project mappings. Previously, the system was showing the sales order currency instead of the employee's currency. The issue was caused by passing the wrong currency identifier to the display widget, which has now been corrected to show accurate financial information.
Original PR description
This commit's purpose is to display the correct currency for the hourly cost of employee in the project sol mapping. Currently, the currency displayed is the one of the sol instead of the currency of the employee. This is due to this commit:https://github.com/odoo/odoo/commit/83760b9f10b4bfe6a83671e4426bc5596e8d5f5c We added a monetary widget, but we are feeding it the wrong id. After this commit, the correct currency is displayed task - 3749225 Forward-Port-Of: odoo/odoo#154240
This fix resolves an issue where payment icons could only use image formats compatible with the PIL library. The update now allows merchants to use a wider variety of image formats for their payment method icons, including formats that weren't previously supported. This improves flexibility when customizing payment icon displays.
Original PR description
Description of the issue/feature this PR addresses: Replace the use of 't-esc' with 't-field' for the payment icon image in the icons list template. The latter, for an image field, provides two options for rendering the payment icon image: use the PIL library to obtain the image when given the option 'qweb_img_raw_data', or use a URL. The former only considers the first option, allowing only image formats compatible with the PIL library. Current behavior before PR: Only image formats compatible with the PIL library can be used for the payment icons. Desired behavior after PR is merged: Other formats including the ones compatible with the PIL library can be used for the payment icons. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#159522 Forward-Port-Of: odoo/odoo#158728
This update fixes an issue where the loyalty rewards system would fail when a sales order had multiple delivery lines. The system now correctly handles multiple deliveries by focusing on the first delivery line, ensuring customers can properly receive free shipping rewards regardless of how many delivery options are present in their order.
Original PR description
The method `_get_reward_values_free_shipping` assumes there is only one delivery line per sale order. But it is not always the case. This commit therefore makes sure the method does not raise an error in case of multiple lines by taking into account only the first delivery line. Fixes #136395
This fix corrects an issue where analytic distributions were not being properly reversed when using the 'Move account' action on invoice lines. When users moved an account line that had analytic distribution data, the distribution information was not being reversed as expected, which could lead to incorrect financial tracking. This fix ensures analytic distributions are now correctly reversed during account moves.
Original PR description
Description of the issue/feature this PR addresses: Create an invoice with analytic_distribution. Go to account.move.line, select the line with analytic_distribution, click on action 'Move account' validate --> Issue the analytic_distribution is not reversed @oco-odoo @qdp-odoo --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
A test that verifies company deletion now works with onboarding records has been temporarily disabled. The test was causing issues in real-world scenarios where other modules create related records that prevent company deletion. The team will implement a more robust solution that works across all module configurations.
Original PR description
In https://github.com/odoo/odoo/commit/8e3283aabfd93a78eb4d72c4fd97f6a20ad08ef4 we solved the issue of onboarding progress records preventing the deletion of a company. We also added a test for this solution. In practice, it will not always make sense nor will it be allowed to delete a company and in some cases, the first thing that would fail is a foreign key from another model where it wouldn't make sense to cascade as we do for onboarding progress. Some modules create related records when a company is created such that it would be cumbersome to bypass that. Therefore, we disable this test until a clean flow robust to all sorts of installed modules configuration is implemented. See runbot 60475 Task-3829936 Forward-Port-Of: odoo/odoo#159337