Daily updates from Odoo
Navigate
Branch
Wednesday, March 20, 2024
118 changes
44 changes
Enhancements to existing features
This update adds automated checks for how client actions are opened through web addresses. It helps ensure users land on the correct screen when navigating via links, reducing the risk of future navigation issues.
Original PR description
This commit adds some tests for the path-based routing of client actions commit: https://github.com/odoo/enterprise/commit/ffee7f5191cca060530d3e785328058ed8801dc5
Resolved issues and error corrections
This fix stops the web interface from running the same server action more than once when it appears multiple times in the navigation path. Users should see more consistent breadcrumb labels and avoid duplicate action processing when navigating back to list views.
Original PR description
Since [1], when a server action is found in the url, it will be executed to retrieve the window action when is the current action. If the server action is found in multiple places in the url, it will be executed each time it becomes the current action. For instance, /crm/12, will execute the server action crm to retrieve the window action at the first load, and the same server action will be executed again when clicking on the breadcrumb to go back to the multi-record view. Now, After the first execution of the server action, all the same server actions found in the controller stack (breadcrumb) will be replaced with the resultant window action. This is to avoid executing multiple times the same server action. Note that, this will also use the correct display name on the breadcrumb, the one of the window action. [1] https://github.com/odoo/odoo/commit/c63d14a0485a553b74a8457aee158384e9ae6d3f
New employee and internal user records will now automatically receive a name-based avatar when no image is provided. This keeps profiles visually identifiable from the start and avoids blank images in employee and user views.
Original PR description
Ensure an avatar is generated based on the employee/user name if no image is provided at the record creation (for internal users only). TaskID: 3637523 Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update stabilizes automated checks around the company switching menu by ensuring delayed router actions finish before results are checked. It reduces random test failures, helping maintain confidence in releases without changing business functionality.
Original PR description
In the "router" there are some debounced methods, and they produce some undeterministic errors. To avoid these errors, we run all timers before reading value from the router. task-3705027 runbot-error-59015 runbot-error-58156 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Miscellaneous changes
Improve avatar picture : if no picture is set, initials will be displayed. task : 3637523 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#157874 Forward-Port-Of: odoo/odoo#147446
Original PR description
Improve avatar picture : if no picture is set, initials will be displayed. task : 3637523 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#157874 Forward-Port-Of: odoo/odoo#147446
Add `img-fluid` class so that image remains responsive when `Shape: Thumbnail` is not applied. task-3266862 Forward-Port-Of: odoo/odoo#157812 Forward-Port-Of: odoo/odoo#118916
Original PR description
Add `img-fluid` class so that image remains responsive when `Shape: Thumbnail` is not applied. task-3266862 Forward-Port-Of: odoo/odoo#157812 Forward-Port-Of: odoo/odoo#118916
This replaces the former domain operator '?=' which is not allowed, This domain property, new to Odoo 16 does not permit the edition of the field with Studio, this change will enhance the configuration and will prevent future issues. owp-3484144 Forward-Port-Of: odoo/odoo#149477 Forward-Port-Of: odoo/odoo#135243
Original PR description
This replaces the former domain operator '?=' which is not allowed, This domain property, new to Odoo 16 does not permit the edition of the field with Studio, this change will enhance the configuration and will prevent future issues. owp-3484144 Forward-Port-Of: odoo/odoo#149477 Forward-Port-Of: odoo/odoo#135243
Before this PR: The snippet menu in the Mail Body appeared on the top of the form, causing misalignment. Technical details: - This problem was observed in the `view_mail_mass_mailing_form` form and all other views inheriting from it. - The fix involves adding the `o_mass_mailing_iframe `class using the `iframeHtmlClass` attribute on the body_arch field. After this PR: The layout is now aligned. This PR targets up to 17.0, for further versions the issue has already been resolved.
Original PR description
Before this PR: The snippet menu in the Mail Body appeared on the top of the form, causing misalignment. Technical details: - This problem was observed in the `view_mail_mass_mailing_form` form and all other views inheriting from it. - The fix involves adding the `o_mass_mailing_iframe `class using the `iframeHtmlClass` attribute on the body_arch field. After this PR: The layout is now aligned. This PR targets up to 17.0, for further versions the issue has already been resolved. task-3603623 Forward-Port-Of: odoo/odoo#157864 Forward-Port-Of: odoo/odoo#152996
Since 9aa52dd6418e5881adc2d96d15d062b55d6150c5, down payments are created without any product (and dp product settings have been removed). Nevertheless, the SOlines views were not adapted and the product was still required in the view, even if the line was a down payment. This commit makes sure that a down payment line without a product is considered valid client-side. opw-3798379 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-P
Original PR description
Since 9aa52dd6418e5881adc2d96d15d062b55d6150c5, down payments are created without any product (and dp product settings have been removed). Nevertheless, the SOlines views were not adapted and the product was still required in the view, even if the line was a down payment. This commit makes sure that a down payment line without a product is considered valid client-side. opw-3798379 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#158005
Steps to reproduce =================== - Launch a survey in a live session. - Start the survey. - Click on the link to join. - The link didn't copy to the clipboard. Technical =========== Here the target element is the input tag so 'textcontent' will not work for that moved the 'o_survey_session_copy_url' class in span tag. This commit has resulted in a breakdown of the feature's https://github.com/odoo/odoo/commit/b62eff731b06520f9669684635cbed408e0fc35c After this commit =======
Original PR description
Steps to reproduce =================== - Launch a survey in a live session. - Start the survey. - Click on the link to join. - The link didn't copy to the clipboard. Technical =========== Here the target element is the input tag so 'textcontent' will not work for that moved the 'o_survey_session_copy_url' class in span tag. This commit has resulted in a breakdown of the feature's https://github.com/odoo/odoo/commit/b62eff731b06520f9669684635cbed408e0fc35c After this commit ================== The link will be copied to the clipboard. Task-3792666 Forward-Port-Of: odoo/odoo#157192
With this commit, the domain of work location domain is reintroduced. It was a mistake introduced by this PR : odoo/odoo#129308 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#157441
Original PR description
With this commit, the domain of work location domain is reintroduced. It was a mistake introduced by this PR : odoo/odoo#129308 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#157441
Steps to reproduce: - Enable 2 step reciept in warehaouse settings Bug1: - Create and confirm a PO qty = 1 - Open reciept update qty to 4 and validate - The internal transfer qty is updated to 3 (the difference) Bug2: - In inventory overview create a new reciept and mark it as todo - Update quantity and validate - Internal transfer is not updated Root cause: Initially in version 17 product_uom_qty was changed to indicate the demand before the move is done and it indicates the ac
Original PR description
Steps to reproduce: - Enable 2 step reciept in warehaouse settings Bug1: - Create and confirm a PO qty = 1 - Open reciept update qty to 4 and validate - The internal transfer qty is updated to 3 (the…
Steps to reproduce: - Enable 2 step reciept in warehaouse settings Bug1: - Create and confirm a PO qty = 1 - Open reciept update qty to 4 and validate - The internal transfer qty is updated to 3 (the difference) Bug2: - In inventory overview create a new reciept and mark it as todo - Update quantity and validate - Internal transfer is not updated Root cause: Initially in version 17 product_uom_qty was changed to indicate the demand before the move is done and it indicates the acutual done qty when the move is done. After https://github.com/odoo/odoo/pull/130342 product_uom_qty will always indicate the demand qty, and qty_done will always indicate actually done quantity. Fix: updating the quantity will create a new move for the difference that is used to trigger new push rule and then merged back in the original when merging product_uom_qty is not updated to keep track of the intial demand but pending linked moves should be updated to reflect the new quantity opw-3708740 Forward-Port-Of: odoo/odoo#156331
-Step to reproduce: any custom model that inherit from mail.thread then define a field user_id but with type is char and boom error happen at method '_message_get_suggested_recipients' because it always expect 'user_id' to be a many2one field -Solution: need to check the type of 'user_id' also 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 ww
Original PR description
-Step to reproduce: any custom model that inherit from mail.thread then define a field user_id but with type is char and boom error happen at method '_message_get_suggested_recipients' because it always expect 'user_id' to be a many2one field -Solution: need to check the type of 'user_id' also Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#157350 Forward-Port-Of: odoo/odoo#155149
In the Quotations list view, it is possible to show "amount_to_invoice" field. However, this field is empty for quotations and therefore useless. It should be set as invisible for quotations. An inherited view was already taking care of it, but was using "invisible" attribute instead of "column_invisible" attribute. opw-3722037 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#158043
Original PR description
In the Quotations list view, it is possible to show "amount_to_invoice" field. However, this field is empty for quotations and therefore useless. It should be set as invisible for quotations. An inherited view was already taking care of it, but was using "invisible" attribute instead of "column_invisible" attribute. opw-3722037 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#158043
Before this commit, the `test_websocket_instances_weak_set` was sometimes failing. Indeed, this test doesn't wait for the connection to be fully established before making its assertions. This commit fixes this issue. fixes runbot-55037,55035 Forward-Port-Of: odoo/odoo#157510 Forward-Port-Of: odoo/odoo#157433
Original PR description
Before this commit, the `test_websocket_instances_weak_set` was sometimes failing. Indeed, this test doesn't wait for the connection to be fully established before making its assertions. This commit fixes this issue. fixes runbot-55037,55035 Forward-Port-Of: odoo/odoo#157510 Forward-Port-Of: odoo/odoo#157433
Versions: --------- - 17.0 Issue: ------ Message for flag timesheet from project as billable/non-billable is misplaced. Cause: ------ Xpath given for Message placed in sale_timsheet is not very specific. Solution: --------- Give accurate xpath for message div. task-3630449 Forward-Port-Of: odoo/odoo#148880
Original PR description
Versions: --------- - 17.0 Issue: ------ Message for flag timesheet from project as billable/non-billable is misplaced. Cause: ------ Xpath given for Message placed in sale_timsheet is not very specific. Solution: --------- Give accurate xpath for message div. task-3630449 Forward-Port-Of: odoo/odoo#148880
In Czech republic, the standard is to first render Company ID (IČO), and then to render VAT ID (DIČ). - Changing the position to before (not after), so company ID renders before VAT ID. - Changed label from "ID" to "Company ID" (so it is obvious in what ID it is). Original fixes by @cunivca: odoo/odoo#149339, odoo/odoo#149340, merged into one. Related: https://github.com/odoo/odoo/commit/d0704a19de31e0251d343081ae6b3da9991a248e Forward-Port-Of: odoo/odoo#157993
Original PR description
In Czech republic, the standard is to first render Company ID (IČO), and then to render VAT ID (DIČ). - Changing the position to before (not after), so company ID renders before VAT ID. - Changed label from "ID" to "Company ID" (so it is obvious in what ID it is). Original fixes by @cunivca: odoo/odoo#149339, odoo/odoo#149340, merged into one. Related: https://github.com/odoo/odoo/commit/d0704a19de31e0251d343081ae6b3da9991a248e Forward-Port-Of: odoo/odoo#157993
Current behavior: --- When trying to preview a mailing template with the debug mode enabled, there is an error: Invalid props for component Steps to reproduce: --- 1. Enable debug mode with assets 2. Go to Email Marketing 3. Create a new Mailing 4. Select a template 5. In the Editor, click on the mobile icon 6. ... 'preview' is not a function Cause of the issue: --- Caused by https://github.com/odoo/odoo/commit/13b3f8af4b55d32912b698ae1672be9e144cb775 opw-3702901 --- I
Original PR description
Current behavior: --- When trying to preview a mailing template with the debug mode enabled, there is an error: Invalid props for component Steps to reproduce: --- 1. Enable debug mode with assets 2. Go to Email Marketing 3. Create a new Mailing 4. Select a template 5. In the Editor, click on the mobile icon 6. ... 'preview' is not a function Cause of the issue: --- Caused by https://github.com/odoo/odoo/commit/13b3f8af4b55d32912b698ae1672be9e144cb775 opw-3702901 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#153176
This adds a button to the AI Copywriter that allows the user to correct the selected text without altering it otherwise. task-3776377 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#156067
Original PR description
This adds a button to the AI Copywriter that allows the user to correct the selected text without altering it otherwise. task-3776377 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#156067
The cost of sales accounts need to have the type expense_direct_cost for the Gross Profit calculation in the Profit and Loss report to be correct task: 3764767 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#155374
Original PR description
The cost of sales accounts need to have the type expense_direct_cost for the Gross Profit calculation in the Profit and Loss report to be correct task: 3764767 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#155374
### Steps to reproduce issue: 1. Create a Product with Lots/Serials tracking 2. Create a BoM with an operation and add Product as By-Product 3. Create a Manufacturing Order using the BoM, click on Confirm then Plan 4. Go to Shop Floor, click on "Register [the By-Product]" - Not the button with the units 6. Click on either "Import Lots" or "Generate Serials" 7. Enter a Lot/Serial number and click on "Generate" 8. Traceback error: > loc_dest = self.env['stock.location'].bro
Original PR description
### Steps to reproduce issue: 1. Create a Product with Lots/Serials tracking 2. Create a BoM with an operation and add Product as By-Product 3. Create a Manufacturing Order using the BoM, click on…
### Steps to reproduce issue: 1. Create a Product with Lots/Serials tracking 2. Create a BoM with an operation and add Product as By-Product 3. Create a Manufacturing Order using the BoM, click on Confirm then Plan 4. Go to Shop Floor, click on "Register [the By-Product]" - Not the button with the units 6. Click on either "Import Lots" or "Generate Serials" 7. Enter a Lot/Serial number and click on "Generate" 8. Traceback error: > loc_dest = self.env['stock.location'].browse(default_vals['location_dest_id']) > KeyError: 'location_dest_id' ### Explanation: When going through the Shop Floor, the context is missing a lot of elements that are normally passed in the manufacturing order form. https://github.com/odoo/odoo/blob/338173e231355d265ddc88bcef5e9b0a608e248e/addons/mrp/views/mrp_production_views.xml#L432-L437 ### Suggested fix: `default_dest_location_id` is the missing element causing the traceback but fixing it reveals that `default_location_id` is also missing, we then add it to the context as well. Test is done in Enterprise while fix is in Community. opw-3719439 Forward-Port-Of: odoo/odoo#157922 Forward-Port-Of: odoo/odoo#155846
The goal of this PR is to improve the current text highlight system by adding the following updates: - Move the highlight option's related CSS ([data-set-text-highlight]) to website. - Update the `selectStyle` options to handle the default "currentColor" value. - Force to hide the highlight options overlay opacity on scroll. - Remove the dead code of `getDOMRectWidth()` (used in older versions to compare text content width on page load). - The `o_text_highlight_item_dirty` class
Original PR description
The goal of this PR is to improve the current text highlight system by adding the following updates: - Move the highlight option's related CSS ([data-set-text-highlight]) to website. - Update the…
The goal of this PR is to improve the current text highlight system by adding the following updates: - Move the highlight option's related CSS ([data-set-text-highlight]) to website. - Update the `selectStyle` options to handle the default "currentColor" value. - Force to hide the highlight options overlay opacity on scroll. - Remove the dead code of `getDOMRectWidth()` (used in older versions to compare text content width on page load). - The `o_text_highlight_item_dirty` class is no longer used to adapt non-detected highlight items (the highlight mutation observer was tweaked to detect and adapt the new highlight items added to the DOM after editors commands. E.g. after the `oEnter()` command). - The editor's code (`_handleTextOptions()`) will only set text highlight classes and activate the snippet. Highlight DOM adaptations (multi-line detection, setting SVGs...) are done by the public widget. - A `z-index:` CSS (used to keep the highlight SVG visible and behind the text at the same time) is replaced by a more appropriate `isolation: isolate;`. - Only use one global `resizeObserver` to adapt the text highlights on resize. - The text highlight effects list was updated. task-3285817 Forward-Port-Of: odoo/odoo#157321 Forward-Port-Of: odoo/odoo#142968
Purpose ======= The time off duration is set to 0 when the related contract is set as expired, then we remove the end date and set the contract back to running. That's because the check was done before calling super, hence the contract is excluded from the candidates because it is still expired without end date, which would make no sense when trying to retrieve the related calendar. TaskID: 3806342 Description of the issue/feature this PR addresses: Current behavior before PR:
Original PR description
Purpose ======= The time off duration is set to 0 when the related contract is set as expired, then we remove the end date and set the contract back to running. That's because the check was done before calling super, hence the contract is excluded from the candidates because it is still expired without end date, which would make no sense when trying to retrieve the related calendar. TaskID: 3806342 Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#157681
This commit addresses the erratic behavior of the mobile menu, specifically when clicking on menu items linked to anchors instead of navigating to different pages. The issue occurs in mobile view and can be reproduced by following these steps: 1. Create a page longer than the height of the screen with 3 blocks. 2. Add 3 links to target different sections on the page. 3. Create 3 menu items linked to the newly created anchors (/#...). 4. Save to apply the modifications. 5. Switch to mobile
Original PR description
This commit addresses the erratic behavior of the mobile menu, specifically when clicking on menu items linked to anchors instead of navigating to different pages. The issue occurs in mobile view and can be reproduced by following these steps: 1. Create a page longer than the height of the screen with 3 blocks. 2. Add 3 links to target different sections on the page. 3. Create 3 menu items linked to the newly created anchors (/#...). 4. Save to apply the modifications. 5. Switch to mobile view. 6. Open the hamburger menu. 7. Click on the first menu item, then the second, then the third, and again on the first one. Upon reproducing these steps, the scrolling event would pass through all the anchors, causing unexpected behavior. This commit introduces fixes to ensure proper navigation when clicking on menu items in mobile view, resolving the described issue. opw-3652930 Forward-Port-Of: odoo/odoo#150810
Starting from The "unbreakable menu fix" on `16.0` (see: [1]), the state of the website extra menu was stored before every "resize" adaptation, so it can be possible to reopen it if it was already opened. On `17.0`, the same behaviour was fixed using the `odooEditor` > `withoutRollback()` mechanism (see: [2]), and a step was added to the `edit_menus` test (`clickOnExtraMenuItem`) to open the extra menu after the "edit mode resize" [3]. The forward port of [1], on `17.0` was adapted to
Original PR description
Starting from The "unbreakable menu fix" on `16.0` (see: [1]), the state of the website extra menu was stored before every "resize" adaptation, so it can be possible to reopen it if it was already…
Starting from The "unbreakable menu fix" on `16.0` (see: [1]), the state of the website extra menu was stored before every "resize" adaptation, so it can be possible to reopen it if it was already opened. On `17.0`, the same behaviour was fixed using the `odooEditor` > `withoutRollback()` mechanism (see: [2]), and a step was added to the `edit_menus` test (`clickOnExtraMenuItem`) to open the extra menu after the "edit mode resize" [3]. The forward port of [1], on `17.0` was adapted to keep the main fix from [2], and removed the tour step since the extra menu will be automatically opened if it was already open before the "resize". Now, if we have a menu with no overflowing items before the resize, and after switching to "edit" mode an extra menu was added, this menu will be closed by default which makes the test fail without the step in [3]. The goal of this commit is to fix this behaviour by simply restoring the `clickOnExtraMenuItem` step with a simple tweak: We don't click if the extra menu is already opened to prevent closing it again. Remark: the test failed on `17.0` but the commit is targeting `16.0` to prevent any test failure linked to the "extra menu auto open" feature. [1]: https://github.com/odoo/odoo/commit/2598cc9ef7fe89a0ce5e375bca6f6a781f6ffdf7 [2]: https://github.com/odoo/odoo/commit/cbed990924887eb529056d89a042a92ba27b825b Related to opw-3484742 Related to task-3439226 Forward-Port-Of: odoo/odoo#155559
This PR aims to fix an issue with google/outlook sync buttons: The button state doesn't update automatically after restarting the sync. Changes: Introduced new states for the reactive values of the model, which control how the button is displayed. Task: 3731623 Forward-Port-Of: odoo/odoo#156245 Forward-Port-Of: odoo/odoo#155174
Original PR description
This PR aims to fix an issue with google/outlook sync buttons: The button state doesn't update automatically after restarting the sync. Changes: Introduced new states for the reactive values of the model, which control how the button is displayed. Task: 3731623 Forward-Port-Of: odoo/odoo#156245 Forward-Port-Of: odoo/odoo#155174
Before this commit: IoT logs are kept in an IoT log file. Any time the support would need IoT log information, we are forced to ask the customer to send it to us as it requires to be in the LAN. After this commit: Relevant* log lines will be automatically send out to the server using an HTTP route. This feature can be toggled within the Handlers list page  preview:  preview:  *: Relevant = - Any odoo logs (depending on the level set in the handlers list, see: https://github.com/odoo/odoo/pull/134174 ) - Any other logs (werkzeug, python libraries, etc.) except /hw_proxy/hello Note: IoT logs received by the server will ALWAYS be logged regardless of it level. So an Odoo server set in INFO which receive a DEBUG log from the IoT will log it in its log with the DEBUG level Related enterprise PR: https://github.com/odoo/enterprise/pull/55055 opw-3696519 Forward-Port-Of: odoo/odoo#156605 Forward-Port-Of: odoo/odoo#150920
Have a list view with multiple groupbys and a lot of records to have pagers displayed. Open a group (first level). The pager of the group uses the number of records instead of number of (inner) groups as total. This commit fixes the issue. The pager now correctly allows to navigate through inner groups. 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 guid
Original PR description
Have a list view with multiple groupbys and a lot of records to have pagers displayed. Open a group (first level). The pager of the group uses the number of records instead of number of (inner) groups as total. This commit fixes the issue. The pager now correctly allows to navigate through inner groups. Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#157995
The pager was not getting the margin from the bottom. This PR fixes the issue by providing the appropriate margin to the pager. Task-3792586 Forward-Port-Of: odoo/odoo#157005
Original PR description
The pager was not getting the margin from the bottom. This PR fixes the issue by providing the appropriate margin to the pager. Task-3792586 Forward-Port-Of: odoo/odoo#157005
Steps to reproduce: ------------------- - go to time-off analysis (by type); - group by "Requet Type" and use list view; - click on an allocation; Issue: ------ We don't have the record for this allocation. Cause: ------ Commit [^1] removes the `allocation_id` field, so it is no longer possible to retrieve a record from the `hr.leave.allocation` model. Solution: --------- Place the allocation id in the `leave_id` field and use the `leave_type` field to determine the model (`
Original PR description
Steps to reproduce: ------------------- - go to time-off analysis (by type); - group by "Requet Type" and use list view; - click on an allocation; Issue: ------ We don't have the record for this allocation. Cause: ------ Commit [^1] removes the `allocation_id` field, so it is no longer possible to retrieve a record from the `hr.leave.allocation` model. Solution: --------- Place the allocation id in the `leave_id` field and use the `leave_type` field to determine the model (`hr.leave` or `hr.leave.allocation`). opw-3748884 [^1]: a1949ca541d760462add25995f139d1fb59f27d8 Forward-Port-Of: odoo/odoo#157204
Before this commit, when the automatic invoice setting is enabled, a traceback would be shown when customers pay and the post-processing of the transaction tries to create an invoice. The problem is that the invoice is created in sudo, but it's unsudoed before logging invoices in the chatter. Now, the invoice will stay sudoed if the method is called in sudo. opw-3700576 Forward-Port-Of: odoo/odoo#157909 Forward-Port-Of: odoo/odoo#157779
Original PR description
Before this commit, when the automatic invoice setting is enabled, a traceback would be shown when customers pay and the post-processing of the transaction tries to create an invoice. The problem is that the invoice is created in sudo, but it's unsudoed before logging invoices in the chatter. Now, the invoice will stay sudoed if the method is called in sudo. opw-3700576 Forward-Port-Of: odoo/odoo#157909 Forward-Port-Of: odoo/odoo#157779
Behavior before the changes: - When a note was modified, it cancelled the old orderline and recreated it with the new note. - Products were not sorted by category in the order preparation display. - Clicking on the header of an order sent it directly to the next stage, regardless of whether lines were crossed out or not. - There were brackets around the order number. Behavior after changes: - When a note is modified, it is modified directly on the existing orderline. - Products are now
Original PR description
Behavior before the changes: - When a note was modified, it cancelled the old orderline and recreated it with the new note. - Products were not sorted by category in the order preparation display. - Clicking on the header of an order sent it directly to the next stage, regardless of whether lines were crossed out or not. - There were brackets around the order number. Behavior after changes: - When a note is modified, it is modified directly on the existing orderline. - Products are now sorted by category in the order. - Clicking on an order header sends only the crossed-out lines to the next stage. If no line is crossed out, the entire order is sent. - There are no longer any brackets around the order name. taskId: 3764317 enterprise PR: https://github.com/odoo/enterprise/pull/57385 Forward-Port-Of: odoo/odoo#156633 Forward-Port-Of: odoo/odoo#155246
When an addon has an invalid version but is not installable, there is no need to error out. This situation typically happens when unmigrated modules are present in the addons path. Description of the issue/feature this PR addresses: fixes #141747 Current behavior before PR: When an uninstallable addon with an invalid version is present in the path, Odoo does not start. Desired behavior after PR is merged: When an uninstallable addon with an invalid version is present in the pat
Original PR description
When an addon has an invalid version but is not installable, there is no need to error out. This situation typically happens when unmigrated modules are present in the addons path. Description of the issue/feature this PR addresses: fixes #141747 Current behavior before PR: When an uninstallable addon with an invalid version is present in the path, Odoo does not start. Desired behavior after PR is merged: When an uninstallable addon with an invalid version is present in the path, Odoo does start. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#157657
**Current behaviour before commit:** When trying to crop image in website, 'mousedown' and 'keydown' events are not getting caught. Due to this, - Crop is not getting closed when clicking on document - Cropped image is not getting saved when pressing enter **Desired behaviour after commit:** Now, events are added to the owner document of the crop widget. As result, - Crop gets closed when clicking anywhere in document - Image gets saved when pressing enter. task-3570524
Original PR description
**Current behaviour before commit:** When trying to crop image in website, 'mousedown' and 'keydown' events are not getting caught. Due to this, - Crop is not getting closed when clicking on document - Cropped image is not getting saved when pressing enter **Desired behaviour after commit:** Now, events are added to the owner document of the crop widget. As result, - Crop gets closed when clicking anywhere in document - Image gets saved when pressing enter. task-3570524 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#157763 Forward-Port-Of: odoo/odoo#140108
Before this commit, the aria-current was the name of the search_X instead of value 'page'. Code was strange since `'page' and X` == `X`, while we expect 'page' as value. In case of unknown 'search_slide_category' value, use '-' instead to raise a KeyError Exception. We still have some links that point to old url with slide category of type 'presentation' that doesn't exist anymore since the v16. Remove outdated code following the comment: > I swear though, don't be afraid, remove it!
Original PR description
Before this commit, the aria-current was the name of the search_X instead of value 'page'. Code was strange since `'page' and X` == `X`, while we expect 'page' as value. In case of unknown 'search_slide_category' value, use '-' instead to raise a KeyError Exception. We still have some links that point to old url with slide category of type 'presentation' that doesn't exist anymore since the v16. Remove outdated code following the comment: > I swear though, don't be afraid, remove it! From this way, the wrong slide_type of type 'presentation' will be ignored in all case and link from google will show the slide instead of an error 500. Forward-Port-Of: odoo/odoo#158002
* = facturx, ubl, ubl_cii, ubl_bis3 Problem --------- Currently, the EDI use the commercial partner to craft the XML document. However, this causes issues when users add, for example, an invoice address to a partner. Indeed, the address of the main partner will be used and not the invoice address. This caused issue; see the relevant OPW-3624205. Objective --------- Make sure that the correct address is used when generating the XML. Solution --------- Make sure the commercial partn
Original PR description
* = facturx, ubl, ubl_cii, ubl_bis3 Problem --------- Currently, the EDI use the commercial partner to craft the XML document. However, this causes issues when users add, for example, an invoice address to a partner. Indeed, the address of the main partner will be used and not the invoice address. This caused issue; see the relevant OPW-3624205. Objective --------- Make sure that the correct address is used when generating the XML. Solution --------- Make sure the commercial partner // partner value is used at the correct spot. - `partner` should be used for addresses - `commercial_partner` for everything else. OPW-3624205 task-3636315 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#157856 Forward-Port-Of: odoo/odoo#155896
This will fix the number of employees in the partner view and redirect to a kanban view of the employees. The smart button on the partner view for the number of employees related to this partner now gives the correct number depending on the companies selected. If multiple employees are related, the action shows a kanban view of those employees. Task: 3693173 Forward-Port-Of: odoo/odoo#157537 Forward-Port-Of: odoo/odoo#154162
Original PR description
This will fix the number of employees in the partner view and redirect to a kanban view of the employees. The smart button on the partner view for the number of employees related to this partner now gives the correct number depending on the companies selected. If multiple employees are related, the action shows a kanban view of those employees. Task: 3693173 Forward-Port-Of: odoo/odoo#157537 Forward-Port-Of: odoo/odoo#154162
Steps to reproduce the bug: - Install the "Blogs" app and go to the "/blog" page. - Click on "Edit" to enter edit mode. - Go to the "Theme" tab. - Select the 4th color from the theme colors and choose "black". - Save the page to exit edit mode. - Perform a search in the search bar input that yields no results, for example: "zzz". - Bug: The message "No results found. Please try another search." is not visible because it is displayed in white on the white background of the dropdown. A
Original PR description
Steps to reproduce the bug: - Install the "Blogs" app and go to the "/blog" page. - Click on "Edit" to enter edit mode. - Go to the "Theme" tab. - Select the 4th color from the theme colors and…
Steps to reproduce the bug: - Install the "Blogs" app and go to the "/blog" page. - Click on "Edit" to enter edit mode. - Go to the "Theme" tab. - Select the 4th color from the theme colors and choose "black". - Save the page to exit edit mode. - Perform a search in the search bar input that yields no results, for example: "zzz". - Bug: The message "No results found. Please try another search." is not visible because it is displayed in white on the white background of the dropdown. A previous commit [1] had already addressed the issue for the "Search" snippet that can be dropped into a page, but this fix wasn't sufficient to solve the problem everywhere. Indeed, the text-muted in a dropdown should be adjusted in all cases and not just for snippets; it's a Bootstrap issue. The text-muted color should be adapted to the background color of the dropdown. [1]: https://github.com/odoo/odoo/commit/f9bf40cb53cf487c8736c1f565c2f0d3834acd5e task-3662985 Forward-Port-Of: odoo/odoo#157731 Forward-Port-Of: odoo/odoo#156029
PayPal refuses to take access_token name parameter and throws an error to user that they need to log again. Since the Access Token is neeeded to cancel transaction, it is renamed to return_access_token. opw-3810686 Forward-Port-Of: odoo/odoo#157974
Original PR description
PayPal refuses to take access_token name parameter and throws an error to user that they need to log again. Since the Access Token is neeeded to cancel transaction, it is renamed to return_access_token. opw-3810686 Forward-Port-Of: odoo/odoo#157974
Since commit [1], the new tiktok icon is added to odoo but the conversion of the css class into an image is not supported. This commit ensures that the conversion is correctly handled. Steps to reproduce: - Open the mail marketing app - Create a new mass mailing - Insert an icon in the template, for instance type /image in the text and select the "Pictogram" tab - Search for tiktok icon and insert it - Send the mass mailing - The icon will not be found in the mail [1]: https://git
Original PR description
Since commit [1], the new tiktok icon is added to odoo but the conversion of the css class into an image is not supported. This commit ensures that the conversion is correctly handled. Steps to reproduce: - Open the mail marketing app - Create a new mass mailing - Insert an icon in the template, for instance type /image in the text and select the "Pictogram" tab - Search for tiktok icon and insert it - Send the mass mailing - The icon will not be found in the mail [1]: https://github.com/odoo/odoo/commit/515915b9 Forward-Port-Of: odoo/odoo#157937 Forward-Port-Of: odoo/odoo#157919
How to reproduce: - install crm - open a lead - create an activity call or meeting (and schedule it in the calendar) - mark it as done with a feedback The activity log in the chatter contains the feedback twice and shouldn't. The problem was caused by the synchronization of the event description with the related activities. When marking an activity as done, the event description is updated with the feedback which in turn update the activity note with the feedback. When logging the acti
Original PR description
How to reproduce: - install crm - open a lead - create an activity call or meeting (and schedule it in the calendar) - mark it as done with a feedback The activity log in the chatter contains the feedback twice and shouldn't. The problem was caused by the synchronization of the event description with the related activities. When marking an activity as done, the event description is updated with the feedback which in turn update the activity note with the feedback. When logging the activity done in the chatter, the note and the feedback are logged leading to a duplicate feedback. We solve this by first logging the activity done in the chatter before updating the event description. Task-3653088 Forward-Port-Of: odoo/odoo#157930 Forward-Port-Of: odoo/odoo#147898
Some methods were using the `self.env` to decide users/partners while those methods can also be called from Cron, thus the user would end up to be OdooBot instead of the partner that initiated the async sending. Forward-Port-Of: odoo/odoo#157991
Original PR description
Some methods were using the `self.env` to decide users/partners while those methods can also be called from Cron, thus the user would end up to be OdooBot instead of the partner that initiated the async sending. Forward-Port-Of: odoo/odoo#157991
The account move search was not enough specific to retrieve only one account move. The following `assert` sometimes failed because of this. This commit reinforces to search to get only one account move opw: runbot error 60338 Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#158050
Original PR description
The account move search was not enough specific to retrieve only one account move. The following `assert` sometimes failed because of this. This commit reinforces to search to get only one account move opw: runbot error 60338 Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#158050
Forward-Port-Of: odoo/odoo#158035
Original PR description
Forward-Port-Of: odoo/odoo#158035
13 changes
Enhancements to existing features
This update enhances the way event registration emails are sent, moving them to a background process triggered by a scheduled cron job. This prevents performance bottlenecks when handling large numbers of registrations and ensures a smoother user experience. It also addresses previous issues with duplicate state updates and communication triggers.
Original PR description
This PR introduces a new configuration parameter 'event.event_mail_async' forcing registrations-based communication to be asynchronous. Instead of directly sending communication it triggers the cron to be run as soon as possible. When having large volume of registrations, and especially concurrent registrations it saves a DB to avoid generating tickets and preparing emails synchronously to the registration creation. Task-3764894: Event: Allow using cron triggers for communication Part of Task-3084943: Event: Improve communication scheduler scalability Forward-Port-Of: odoo/odoo#155777
This update automatically sends relevant IoT logs to the Odoo server via HTTP, eliminating the need for manual customer uploads. This improves support efficiency and provides Odoo teams with immediate access to critical IoT data. Administrators can control which logs are sent through the Handlers list page.
Original PR description
Before this commit: IoT logs are kept in an IoT log file. Any time the support would need IoT log information, we are forced to ask the customer to send it to us as it requires to be in the LAN.…
Before this commit: IoT logs are kept in an IoT log file. Any time the support would need IoT log information, we are forced to ask the customer to send it to us as it requires to be in the LAN. After this commit: Relevant* log lines will be automatically send out to the server using an HTTP route. This feature can be toggled within the Handlers list page  preview:  *: Relevant = - Any odoo logs (depending on the level set in the handlers list, see: https://github.com/odoo/odoo/pull/134174 ) - Any other logs (werkzeug, python libraries, etc.) except /hw_proxy/hello Note: IoT logs received by the server will ALWAYS be logged regardless of it level. So an Odoo server set in INFO which receive a DEBUG log from the IoT will log it in its log with the DEBUG level Related enterprise PR: https://github.com/odoo/enterprise/pull/55055 opw-3696519 Forward-Port-Of: odoo/odoo#156605 Forward-Port-Of: odoo/odoo#150920
Resolved issues and error corrections
This update fixes an issue where the mobile menu wasn't correctly navigating users to linked sections on pages. The fix ensures that clicking menu items in mobile view now properly jumps to the intended anchor point, improving the user experience. This resolves a bug that caused unexpected scrolling behavior.
Original PR description
This commit addresses the erratic behavior of the mobile menu, specifically when clicking on menu items linked to anchors instead of navigating to different pages. The issue occurs in mobile view and can be reproduced by following these steps: 1. Create a page longer than the height of the screen with 3 blocks. 2. Add 3 links to target different sections on the page. 3. Create 3 menu items linked to the newly created anchors (/#...). 4. Save to apply the modifications. 5. Switch to mobile view. 6. Open the hamburger menu. 7. Click on the first menu item, then the second, then the third, and again on the first one. Upon reproducing these steps, the scrolling event would pass through all the anchors, causing unexpected behavior. This commit introduces fixes to ensure proper navigation when clicking on menu items in mobile view, resolving the described issue. opw-3652930 Forward-Port-Of: odoo/odoo#150810
This update fixes a calculation error in the Profit and Loss report for UK accounting. Specifically, the type of cost of sales accounts has been changed to 'expense_direct_cost'. This ensures accurate Gross Profit calculations, aligning with UK accounting standards and improving financial reporting.
Original PR description
The cost of sales accounts need to have the type expense_direct_cost for the Gross Profit calculation in the Profit and Loss report to be correct task: 3764767 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#155374
This update resolves an issue where users could interact with the 'load more' button in the Kanban view when the system was running on sample data. This change ensures that the Kanban view functions correctly, regardless of whether it's using live data or a sample dataset, improving user experience.
Original PR description
This commit fixes an issue where one could interract with the load more button of the kanban view even in sample data mode. task-3754233
This update resolves an issue where the profile button wasn't appearing correctly when users and targets were associated with multiple companies. The fix now accurately checks for employee IDs across all companies, ensuring the profile button is displayed as expected for users with complex company relationships.
Original PR description
Currently, when the user and the target both are in multiple companies, the profile button cannot be displayed correctly. Since the employee_id uses `('company_id', '=', self.env.company.id)` rather than `in`.
This commit fixes the issue by checking employee_ids directly and if it is found, the profile button will be displayed correctly.
We don't care about which employee_id is used if there are multiple, since the user are in multiple companies as well. If looking for a specific profile, the employee can be found in the HR application.
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#157741This update fixes an issue where stock receipt quantity updates weren't accurately reflecting internal transfer quantities, particularly with multi-step receipts. The change ensures that quantity updates correctly update internal transfers, improving inventory accuracy. This resolves discrepancies between received quantities and internal stock levels.
Original PR description
Steps to reproduce: - Enable 2 step reciept in warehaouse settings Bug1: - Create and confirm a PO qty = 1 - Open reciept update qty to 4 and validate - The internal transfer qty is updated to 3 (the…
Steps to reproduce: - Enable 2 step reciept in warehaouse settings Bug1: - Create and confirm a PO qty = 1 - Open reciept update qty to 4 and validate - The internal transfer qty is updated to 3 (the difference) Bug2: - In inventory overview create a new reciept and mark it as todo - Update quantity and validate - Internal transfer is not updated Root cause: Initially in version 17 product_uom_qty was changed to indicate the demand before the move is done and it indicates the acutual done qty when the move is done. After https://github.com/odoo/odoo/pull/130342 product_uom_qty will always indicate the demand qty, and qty_done will always indicate actually done quantity. Fix: updating the quantity will create a new move for the difference that is used to trigger new push rule and then merged back in the original when merging product_uom_qty is not updated to keep track of the intial demand but pending linked moves should be updated to reflect the new quantity opw-3708740 Forward-Port-Of: odoo/odoo#156331
The project task progress bar was incorrectly displaying a value of '1' instead of '100' when timesheets were logged. This update corrects a calculation error that was introduced recently, ensuring the progress bar accurately reflects the percentage of time logged on tasks. This improves the visibility and accuracy of task progress for users.
Original PR description
### Steps to reproduce: - Install **Field service** app. - Go to Field Service app and create a new task, with Allocated Time of 5 hours. - In the new ticket, Log 5 hours in the **TimeSheets** tab. - Go to the tasks list. - Notice how the progress bar of the new task shows **1** _instead_ of **100** although 5 out of 5 hours have been logged. ### Investigation: - 8389722b1abdef029799c3c082a44e30dafb24b1 introduced the new **ProjectTaskProgressBarField** component. - 4a93d9aee957dd3feb3db0cb69eb3b8f0f4a4683 introduced a change to calculate the `task.progress` as a _fraction_ instead of a _percentage_ https://github.com/odoo/odoo/blob/7280dd53bc14f7c398c63a1f719987bcab7c257a/addons/hr_timesheet/models/project_task.py#L102 - But the **ProjectTaskProgressBarField** wasn't adapted to that change working with percentage values. opw-3790397
A recent bug preventing users from previewing email templates on mobile devices has been resolved. This update corrects an error within the email marketing module, ensuring that users can accurately see how their templates will appear on mobile devices when using debug mode. This improves the user experience and allows for more effective email campaigns.
Original PR description
Current behavior: --- When trying to preview a mailing template with the debug mode enabled, there is an error: Invalid props for component Steps to reproduce: --- 1. Enable debug mode with assets 2. Go to Email Marketing 3. Create a new Mailing 4. Select a template 5. In the Editor, click on the mobile icon 6. ... 'preview' is not a function Cause of the issue: --- Caused by https://github.com/odoo/odoo/commit/13b3f8af4b55d32912b698ae1672be9e144cb775 opw-3702901 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#153176
This update corrects a formatting issue in the Czech localization for Odoo. It ensures that the Company ID (IČO) is displayed before the VAT ID (DIČ), aligning with Czech reporting standards. The change also clarifies the label for the Company ID to 'Company ID' for better readability.
Original PR description
In Czech republic, the standard is to first render Company ID (IČO), and then to render VAT ID (DIČ). - Changing the position to before (not after), so company ID renders before VAT ID. - Changed label from "ID" to "Company ID" (so it is obvious in what ID it is). Original fixes by @cunivca: odoo/odoo#149339, odoo/odoo#149340, merged into one. Related: https://github.com/odoo/odoo/commit/d0704a19de31e0251d343081ae6b3da9991a248e Forward-Port-Of: odoo/odoo#157993
This update corrects a visual issue where the 'billable' message within the project timesheet was incorrectly positioned. The fix involved refining the system's targeting of the message element, ensuring it appears in the correct location for users. This improves the clarity and usability of the timesheet feature.
Original PR description
Versions: --------- - 17.0 Issue: ------ Message for flag timesheet from project as billable/non-billable is misplaced. Cause: ------ Xpath given for Message placed in sale_timsheet is not very specific. Solution: --------- Give accurate xpath for message div. task-3630449 Forward-Port-Of: odoo/odoo#148880
This update resolves a sporadic failure in a key WebSocket test, ensuring more reliable test results. The fix addresses a timing issue where the test was prematurely evaluating the connection before it was fully established. This improves the overall stability of the Odoo platform.
Original PR description
Before this commit, the `test_websocket_instances_weak_set` was sometimes failing. Indeed, this test doesn't wait for the connection to be fully established before making its assertions. This commit fixes this issue. fixes runbot-55037,55035 Forward-Port-Of: odoo/odoo#157510 Forward-Port-Of: odoo/odoo#157433
This update resolves an issue where a manufacturing smart button was incorrectly displayed during resupply picking for subcontracting orders. The change ensures that this button is hidden, aligning with the intended workflow and preventing potential user confusion. This improves the user experience and data accuracy for subcontracting processes.
Original PR description
Create a [TEST] product: - Routes: - Replenish on Order (MTO) - Buy Assign to [TEST] the following Bill of Material: - BoM Type: Subcontracting - Subcontractors: [Partner] - Components: - [component 1] - [component 2] Components are set up as follows: - Routes: - Buy - Resupply Subcontractor on Order Now create a PO: - Partner: [Partner] - Product: [TEST] Confirm the PO Go to the created resupply picking Issue: there is a smart button for manufacturing The MO should not be visible and the smart button should not be there. opw-3801113
22 changes
Enhancements to existing features
The Documents search filter was adjusted so users no longer see an archive toggle where it is not relevant. This keeps document filtering clearer while preserving the underlying domain selector behavior needed by the application.
Original PR description
In this commit, for the resModel documents.document, we don't want to have the toggle button included archives. We had to create a getShowArchivedCheckBox method in domain_selector.js to be able to patch it in enterprise/documents/static/src/web/documents_domain_selector.js so that this functionality still works. task~3599274 https://github.com/odoo/odoo/pull/143949
This update removes a redundant internal field used to identify WhatsApp conversation types. The system now determines that information from existing conversation details, reducing duplication and making future maintenance simpler without changing the user experience.
Original PR description
Type information can be deduced from other fields, in particular model and channel_type. Part of task-3265211 https://github.com/odoo/odoo/pull/158222
The subscription sales guided tour was updated to match recent functional changes in the app. This helps keep onboarding and automated walkthroughs aligned with the current user experience, reducing confusion during demonstrations or testing.
Original PR description
task-id: 3339727
The payment status page is now generated entirely by the server instead of combining server and browser-rendered sections. This makes the checkout and subscription payment experience more reliable by reducing context mismatches and simplifying how status updates are displayed.
Original PR description
Previously, /payment/status would render a template on the server-side, and a JS widget would render subtemplates on the client-side and insert them in the server-side rendered template.
However, mixing server-side and client-side templates causes issues because the context is not properly communicated between client and server. It also makes the code more complex.
This change assumes that no new information returned by /payment/status is worth re-rendering part of the template. If the transaction moves from a pending ('draft', 'pending') state to a final state, the customer should be redirected to the final route that will display the updated information on the transaction.
task-3340354
Community PR: https://github.com/odoo/odoo/pull/149821
Documentation PR: https://github.com/odoo/documentation/pull/8198
Upgrade PR: https://github.com/odoo/upgrade/pull/5829Subscription log handling has been cleaned up to make reporting more dependable across changes such as currency updates, cancellations, reopenings, closures, and renewals. This helps businesses get more consistent subscription history and metrics when customer contracts change over time.
The Helpdesk search results page has been updated to match the newer design used across other areas. Users now have clearer navigation back to the Helpdesk home page, including when no results are found, and page editing areas have been repositioned for easier use.
Original PR description
This commit adapts the design and the structure of the search results page that was not in line with the new design implemented in all the other modules. It also improves the search results page in a…
This commit adapts the design and the structure of the search results page that was not in line with the new design implemented in all the other modules. It also improves the search results page in a functional POV by: - Adding a way to go back to helpdesk home when there is no results - Adding a back button always visible to go back to helpdesk home - Moving the dropable zone to a more convenient area (on top of the page instead of in the middle of the content) - Adding `title` attributes where it was needed | State | Before | After | |--------|--------|--------| | Results | <img width="1710" alt="Screenshot 2024-01-31 at 16 19 28" src="https://github.com/odoo/enterprise/assets/110090660/13e2a88b-93ad-43da-a8a6-582195dcc869"> | <img width="1710" alt="Screenshot 2024-01-31 at 16 19 07" src="https://github.com/odoo/enterprise/assets/110090660/dd3cd2cf-e353-4179-806c-4a5338c780f9"> | | Empty | <img width="1725" alt="Screenshot 2024-01-31 at 16 19 57" src="https://github.com/odoo/enterprise/assets/110090660/f759d76d-f248-419c-bc0e-8fcafab2fe02"> | <img width="1712" alt="Screenshot 2024-01-31 at 16 19 45" src="https://github.com/odoo/enterprise/assets/110090660/dd86ed2d-3ba5-4210-9989-ba84b65c8fa6"> | task-3668073
The helpdesk training pages no longer use an extra styling class that was only needed to adjust badge spacing. This keeps the interface consistent with the updated standard badge design and reduces unnecessary customization.
Original PR description
This utility class was arbitrarily applied to fix badge's padding. Since we increase Badge's default padding in community counterpart PR, we don't need this class anymore and thus we can remove it. task-3749107 Com-PR: https://github.com/odoo/odoo/pull/154759
Resolved issues and error corrections
Corrected demo planning entries so allocated hours are calculated consistently instead of appearing as zero. This helps sample data better reflect realistic schedules, contracts, and sales planning behavior for demonstrations and testing.
Original PR description
Some planning slots from demo data had allocated hours = 0. For some, it was because the resource had no contract at that period. For others, because they took place on saturdays. Finally, some had an allocated percentage of 0. They where created with allocated hours = 4, but then a `_read_group` called `_compute_allocated_hours`, and because the key `sale_planning_prevent_recompute` was in the context, it was not computed. But then `_compute_allocated_percentage` was called, which didn't make sense, and resulted in weird interactions. task-3321377
This update improves the internal test suite for Odoo's Gantt view by reducing timing-related failures and using more suitable test helpers. It helps make future changes safer and more predictable, without changing day-to-day user features.
Original PR description
Part 1: https://github.com/odoo/odoo/pull/152930 Part 2: https://github.com/odoo/odoo/pull/153018 Part 3: https://github.com/odoo/odoo/pull/153023 Part 4: https://github.com/odoo/odoo/pull/153203 Part 5: https://github.com/odoo/odoo/pull/153425 Part 6: https://github.com/odoo/odoo/pull/153700 Part 7: https://github.com/odoo/odoo/pull/154054 Part 8: https://github.com/odoo/odoo/pull/154579 Part 9: https://github.com/odoo/odoo/pull/155073 Part 10: https://github.com/odoo/odoo/pull/155639 Part 11: https://github.com/odoo/odoo/pull/156255 / https://github.com/odoo/enterprise/pull/58135 Part 12: https://github.com/odoo/odoo/pull/156869 Community: https://github.com/odoo/odoo/pull/157863 This pull requests brings various improvements and fixes to Hoot and the Odoo unit test ecosystem. See the different commit messages for more details. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Code cleanup and technical improvements
Spreadsheet templates, dashboards, and related tests were updated to use the new pivot function names. This keeps existing reporting spreadsheets compatible with the latest spreadsheet engine changes without introducing visible feature changes for users.
Original PR description
This commit is the counterpart of https://github.com/odoo/odoo/pull/155522 It adapts the code to the new name of the function. Task: 3748561
The product configurator is now merged into the main rental website sales module instead of being maintained as a separate add-on. This simplifies maintenance and helps keep the shopping experience consistent, especially when customers choose configurable products online.
Original PR description
Since ee3bf99, `sale_product_configurator` is auto-installed. The settings to enable or disable it have been removed and the only way to deactivate the product configurator is to uninstall the module but then it provides a poor UX (eg. in `website_sale` buy now button on /shop page adds the first available combination to the cart instead of opening the configurator). Therefore, we have decided to merge modules to improve the readability and reduce the complexity of our codebase. See also: - https://github.com/odoo/odoo/pull/155449 - https://github.com/odoo/upgrade/pull/5750 task-3763473
Miscellaneous changes
Since the wishlist benefit displays cars, they should be grouped by category as for the Company car benefit. Forward-Port-Of: odoo/enterprise#58864
Original PR description
Since the wishlist benefit displays cars, they should be grouped by category as for the Company car benefit. Forward-Port-Of: odoo/enterprise#58864
TaskID: 3782701 https://www.partena-professional.be/fr/nos-connaissances/infoflashes/delais-de-preavis-en-cas-de-demission-des-travailleurs-en-service#:~:text=Avec%20cette%20nouvelle%20loi%2C%20la,avant%20le%201er%20janvier%202014 Forward-Port-Of: odoo/enterprise#57970
Original PR description
TaskID: 3782701 https://www.partena-professional.be/fr/nos-connaissances/infoflashes/delais-de-preavis-en-cas-de-demission-des-travailleurs-en-service#:~:text=Avec%20cette%20nouvelle%20loi%2C%20la,avant%20le%201er%20janvier%202014 Forward-Port-Of: odoo/enterprise#57970
## Issue: - If a Contact record has a complete Address record (Street 1, Street 2, City, State, Zip, and Country) and the Check Print Format is set to TOP then the Address and the check memo overlap (see screenshot). ## Steps To Reproduce: - Create a contact with a long name and long address. - Be in a company set up under l10n_us. - Set your check printing to be Print Check (Top) - US. - Issue a Vendor Payment to the contact - Add a memo and print check. - The address overlaps the
Original PR description
## Issue: - If a Contact record has a complete Address record (Street 1, Street 2, City, State, Zip, and Country) and the Check Print Format is set to TOP then the Address and the check memo overlap (see screenshot). ## Steps To Reproduce: - Create a contact with a long name and long address. - Be in a company set up under l10n_us. - Set your check printing to be Print Check (Top) - US. - Issue a Vendor Payment to the contact - Add a memo and print check. - The address overlaps the reference ## Solution: - Adjust the font size of the address to make it slightly smaller, thereby avoiding overlap. opw-3735486 Forward-Port-Of: odoo/enterprise#58269
On the form view editor, click on a button that has studio_approval="True" and some rules behind it Before this commit, unchecking the "Set approval rules" checkbox in the form view editor did not disable the rule itself, causing the expected workflow to trigger the rule, even if the button should not be enforcing them. This was because of commit 3db107ae481a8da85aa356c729bae5fc246e655b, which introduced server-side enforcement of studio approval rules. After this commit, we archive rules th
Original PR description
On the form view editor, click on a button that has studio_approval="True" and some rules behind it Before this commit, unchecking the "Set approval rules" checkbox in the form view editor did not disable the rule itself, causing the expected workflow to trigger the rule, even if the button should not be enforcing them. This was because of commit 3db107ae481a8da85aa356c729bae5fc246e655b, which introduced server-side enforcement of studio approval rules. After this commit, we archive rules that were set on the button, so the expected outside studio workflow works opw-3810516 Forward-Port-Of: odoo/enterprise#58859
Before this commit: Inside any workspace, select a document, and drag & drop it again into the same current workspace. Issue: The current condition(located in `_onDrop`) fails to check if the workspace where the document is being dragged to, is the same as the workspace it's already present. Effects: - `orm.write` is being executed unnecessarily. - Traceback is observed exclusively in 17.0 and master when similar steps are followed inside TRASH workspace. (will be solved by this PR)
Original PR description
Before this commit: Inside any workspace, select a document, and drag & drop it again into the same current workspace. Issue: The current condition(located in `_onDrop`) fails to check if the…
Before this commit: Inside any workspace, select a document, and drag & drop it again into the same current workspace. Issue: The current condition(located in `_onDrop`) fails to check if the workspace where the document is being dragged to, is the same as the workspace it's already present. Effects: - `orm.write` is being executed unnecessarily. - Traceback is observed exclusively in 17.0 and master when similar steps are followed inside TRASH workspace. (will be solved by this PR) Reason: - The workspaces inside the search panel are listed as list-items (`<li>`). Inside those items we have their display names enclosed within the `<header>`. On selecting any workspace (including trash), an active class is added to the `<header>`. - When the `_onDrop` event gets called, the condition before this commit tries to check the presence of an 'active' class on the `<li>` and not on the `<header>` element present inside it. After this commit: The updated condition removes unnecessary computation and eliminates the traceback as well. Task-3627626 Forward-Port-Of: odoo/enterprise#58772 Forward-Port-Of: odoo/enterprise#53158
- Whether the option is visible or not shouldn't depend on the `mail_extra_fields` compute. Use a separate compute to avoid useless processing. - Wrong moves used in the warning computation. - Remove useless trigger in `api.depends` to avoid unecessary computations. Forward-Port-Of: odoo/enterprise#58830
Original PR description
- Whether the option is visible or not shouldn't depend on the `mail_extra_fields` compute. Use a separate compute to avoid useless processing. - Wrong moves used in the warning computation. - Remove useless trigger in `api.depends` to avoid unecessary computations. Forward-Port-Of: odoo/enterprise#58830
Before this commit: IoT logs are kept in an IoT log file. Any time the support would need IoT log information, we are forced to ask the customer to send it to us as it requires to be in the LAN. After this commit: Relevant* log lines will be automatically send out to the server using an HTTP route. This feature can be toggled within the Handlers list page  preview:  preview:  *: Relevant = - Any odoo logs (depending on the level set in the handlers list, see: https://github.com/odoo/odoo/pull/134174 ) - Any other logs (werkzeug, python libraries, etc.) except /hw_proxy/hello Note: IoT logs received by the server will ALWAYS be logged regardless of it level. So an Odoo server set in INFO which receive a DEBUG log from the IoT will log it in its log with the DEBUG level Related odoo PR: https://github.com/odoo/odoo/pull/150920 opw-3696519 Forward-Port-Of: odoo/enterprise#58111 Forward-Port-Of: odoo/enterprise#55055
task-3815657 Forward-Port-Of: odoo/enterprise#58855
Original PR description
task-3815657 Forward-Port-Of: odoo/enterprise#58855
When there are no car available in the wishlist, and the advantage is checked, we get a traceback as it tries to split the new_value which is False. So we check that we have a new_value before. Forward-Port-Of: odoo/enterprise#58850
Original PR description
When there are no car available in the wishlist, and the advantage is checked, we get a traceback as it tries to split the new_value which is False. So we check that we have a new_value before. Forward-Port-Of: odoo/enterprise#58850
### Steps to reproduce issue: 1. Create a Product with Lots/Serials tracking 2. Create a BoM with an operation and add Product as By-Product 3. Create a Manufacturing Order using the BoM, click on Confirm then Plan 4. Go to Shop Floor, click on "Register [the By-Product]" - Not the button with the units 6. Click on either "Import Lots" or "Generate Serials" 7. Enter a Lot/Serial number and click on "Generate" 8. Traceback error: > loc_dest = self.env['stock.location'].br
Original PR description
### Steps to reproduce issue: 1. Create a Product with Lots/Serials tracking 2. Create a BoM with an operation and add Product as By-Product 3. Create a Manufacturing Order using the BoM, click on…
### Steps to reproduce issue:
1. Create a Product with Lots/Serials tracking
2. Create a BoM with an operation and add Product as By-Product
3. Create a Manufacturing Order using the BoM, click on Confirm then Plan
4. Go to Shop Floor, click on "Register [the By-Product]"
- Not the button with the units
6. Click on either "Import Lots" or "Generate Serials"
7. Enter a Lot/Serial number and click on "Generate"
8. Traceback error:
> loc_dest = self.env['stock.location'].browse(default_vals['location_dest_id'])
> KeyError: 'location_dest_id'
### Explanation:
When going through the Shop Floor, the context is missing a lot of elements that are normally passed in the manufacturing order form. https://github.com/odoo/odoo/blob/338173e231355d265ddc88bcef5e9b0a608e248e/addons/mrp/views/mrp_production_views.xml#L432-L437
### Suggested fix:
`default_dest_location_id` is the missing element causing the traceback but fixing it reveals that `default_location_id` is also missing, we then add it to the context as well.
Test is done in Enterprise while fix is in Community.
opw-3719439
Forward-Port-Of: odoo/enterprise#57789Due to commit [1] The props on context for m2o take an object but the shopfloor hasn't been adapted [1] https://github.com/odoo/odoo/commit/3670f78be767396f322ff3ebf068af5c2f547b36 Forward-Port-Of: odoo/enterprise#55169
Original PR description
Due to commit [1] The props on context for m2o take an object but the shopfloor hasn't been adapted [1] https://github.com/odoo/odoo/commit/3670f78be767396f322ff3ebf068af5c2f547b36 Forward-Port-Of: odoo/enterprise#55169
21 changes
Enhancements to existing features
The Brazil tax compliance settings page now includes a convenient link to the official documentation. This improvement helps users quickly access guidance on configuring the Brazilian tax features without having to search for documentation separately.
Original PR description
Link the brand new documentation in the settings. PR note: starting in saas-16.1 we can use `documentation=` instead.  Forward-Port-Of: odoo/enterprise#48340 Forward-Port-Of: odoo/enterprise#48040
This update refreshes the digest email design to match Odoo's new "Milk" visual style, replacing the previous purple color scheme with the updated design. All digest email images and styling across multiple modules have been updated to reflect this modern design refresh, improving the visual consistency and appearance of automated digest communications sent to users.
Original PR description
This PR contains a revamp of the digest email in the new "Milk" style replacing the old purple with the new one. This has been adapted in all digest data too. The images of the digest email's tips have been replaced by "milkified" versions of them, already available on odoo cdn by the way. Task-3338467 Forward-Port-Of: odoo/enterprise#58780 Forward-Port-Of: odoo/enterprise#42790
This update improves invoice clarity by displaying the accounting date on posted invoices and credit notes when it differs from the invoice date. In certain situations, these two dates can be different, and showing both ensures users have complete visibility into when transactions were recorded in the accounting system versus when they were issued.
Original PR description
In some edge cases the invoice date will differ from the accounting date. This commit makes sure that when this is the case the accounting date is shown on a posted invoice or credit note. This way it stays clear that the accounting date differs from the invoice date. task: 3774329 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The checkout process in the online store now provides a simpler way for developers to add custom steps without rewriting existing code. This improvement makes it easier for businesses to customize their checkout flow with additional steps like gift wrapping, loyalty programs, or custom verification steps.
Original PR description
`_get_checkout_steps` didn't provide a friendly way to add steps in the checkout flow. Developers had to reimplement part of the parent logic in their overrides. This commit introduces `get_checkout_step_list`. This method will allow an easier override of the checkout steps while keeping the logic to return a single step in the parent method.
Resolved issues and error corrections
Fixed an issue where reconciliation group headers were not displaying properly in the accounting module. The system now groups reconciliation records by matching number instead of account reference, resulting in clearer and more user-friendly group headers when reviewing automatic reconciliations.
Original PR description
Since `account.full.reconcile` doesn't have a `display_name`, the header of the group is not displayed nicely. By grouping per `matching_number` instead, we can have a nicer display.
This update resolves memory errors that occurred when installing the Mexican EDI module on large databases. The fix optimizes how payment method information is processed during installation by creating the necessary database column upfront and then properly setting payment method values after the module's data files are loaded, preventing the system from running out of memory.
Original PR description
The computed stored field l10n_mx_edi_payment_method_id of account_move in l10n_mx_edi can lead to MemoryErrors during module installation in some large databases. To fix that, this commit first creates the field's column in _auto_init, avoiding the recomputations that overfill the field_cache and lead to MemoryErrors. Then, since inside the field's compute method the field should be set to a specific payment_method defined in the module's data files, change the post_init_hook to set the payment_method to the correct id in the database after data files loading. I missed it in PR odoo/enterprise#30929 because this field was changed to a computed field starting v15. opw-3018535 Forward-Port-Of: odoo/enterprise#58495 Forward-Port-Of: odoo/enterprise#34974
This fix corrects how withholding amounts are calculated and rounded in Peruvian electronic invoices (EDI documents). Previously, incorrect rounding rules caused the remaining amount after withholding to be miscalculated (showing 1052.20 instead of the correct 1051.38). The fix ensures currency amounts use proper decimal precision and withholding amounts are correctly rounded according to Peruvian tax requirements.
Original PR description
Steps to reproduce: - Install Accounting and l10n_pe_edi - Switch to a Peruvian company (e.g. PE Company) - In Contacts, Configure a bank account (Banco de la nación - BANCPEPL) for PE Company - In…
Steps to reproduce:
- Install Accounting and l10n_pe_edi
- Switch to a Peruvian company (e.g. PE Company)
- In Contacts, Configure a bank account (Banco de la nación - BANCPEPL) for PE Company
- In Accounting settings, run the automatic currency rates service ([PE] SUNAT)
- Create a product: (e.g. Product X)
* Sales Price: 990.00
* Withhold code: Arrendamiento de bienes muebles
* Withhold Percentage: 10.00
- Create an invoice:
* Customer: [a Peruvian contact] (e.g. Comercial Constructora los Patitos S.A.)
* Operation Type: [1001] Operation Subject to Detraction
* Payment terms: End of Following Month
* Journal in: USD
* Invoice Lines:
- Product: Product X
- Account: 7012100 Merchandise - Merchandise - Local sale - Third parties
- Price: 990.00
- Taxes: 18%
- EDI Affect. Reason: Taxed- Onerous Operation
- Confirm the invoice
- Process to EDI service
Issue:
The remaining amount after deducting the withholding is not correct in the generated EDI document.
The total is 990.00 + Taxes (18%) = 1168.20
The withholding is 1168.20 * 10% = 116.82
The remaining amount should be 1168.20 - 116.82 = 1051,38
However, the remaining amount set in the EDI document is 1052,20, which is not correct.
Cause:
The rounding used to compute the withholding amounts are not correct.
The amount in the selected currency should contain 2 decimal digits (precision_rounding should be 0.01, instead of 2).
Also, the Detraction amount should be declared in PEN currency in the EDI document and should not contain the decimal part (precision_rounding should be 1, instead of 2).
opw-3747620
Forward-Port-Of: odoo/enterprise#58473This update fixes how fields are displayed in the Kanban view editor's 'Add' tab. Previously, fields that were added before the main kanban card template were not showing up in the editor sidebar, making it difficult for users to see all available fields. The fix ensures all relevant fields are now properly displayed so users can easily add them to their kanban views.
Original PR description
This commit fixes the way we filter fields to show in the kanban editor sidebar, under the 'Add' tab. Since this view don't render what's included before the <templates> node from the xmlDoc. In other types of view, we can easily toggle the 'Show invisible' elements to display items that are considered being present in the view, but not in Kanban when they add items before the kanban card template. A test has been added too. task-3647045 Forward-Port-Of: odoo/enterprise#58578 Forward-Port-Of: odoo/enterprise#57322
This update fixes a security issue where published articles from private sections were incorrectly appearing in portal users' private sections. The fix ensures that portal users can only see articles they have proper access to, preventing unauthorized visibility of private content.
Original PR description
**Current behavior before this PR:** When a user creates an article in a private section and then publishes it on the web, now if a portal user accesses that link, the article will appear in the private section of the portal as well. **Reason:** There was no specific domain to prevent the portal user from showing private articles of others. **Desired behavior after this PR:** Published web articles will not shown in the portal's private section. **Task**-3486083 Forward-Port-Of: odoo/enterprise#56231
This update fixes a problem that prevented customers from submitting support tickets through website forms in multi-company environments. The issue caused access errors when trying to create tickets, and has now been resolved to ensure ticket submissions work smoothly regardless of company configuration.
Original PR description
Steps to produce: - add new form from editor on website - add action create ticket on it - submit ticket on multi-company environment. Cause: access error while submit ticket with multi-company Solution: access ticket using sudo resolve this issue. task-3635784 Forward-Port-Of: odoo/enterprise#58882 Forward-Port-Of: odoo/enterprise#53389
Fixed a bug where changes made to automation records in Studio were not being saved when closing the editor. The issue was that Studio's internal service wasn't properly syncing unsaved changes with the main application. Now when users create or edit automation records in Studio and close the editor, their changes are properly saved.
Original PR description
In studio, click on the "Automation" menu item. Create, or edit, one base.automation record, and modify some fields. Hit the button "Close" to get out of Studio. Before this commit, the base automation record was not saved. This was because the studio's action service did not receive the clear uncommitted changes from the main one. After this commit, the record is saved when we leave studio. Note that the ViewEditor mode should not be affected as we operate under a clean owl environment in StudioView. Forward-Port-Of: odoo/enterprise#58926 Forward-Port-Of: odoo/enterprise#58862
The availability widget for rental order lines was displaying incorrect information because rental dates weren't being passed to it. This fix ensures rental dates are properly communicated to the widget, so customers and staff see accurate availability information specific to their rental periods.
Original PR description
Previously, the availability widget showed non-rental info, even for rental order lines. This was because the rental dates were never passed to the widget. This commit ensures the rental dates are passed. opw-3700809
This fix ensures that when creating new mass mailing campaigns, the system correctly uses the company's configured email domain settings instead of defaulting to the current user's email. Previously, the email address would only update if you manually changed the mail server setting. Now it properly applies the company's email configuration at the time of creation, ensuring consistent and correct sender addresses for all campaigns.
Original PR description
# Context With 17.0 the `mail.alias.domain` was introduced, allowing the configuration of the bounce, catchall and default from email addresses at the company level (`res_company`). For this purpose,…
# Context With 17.0 the `mail.alias.domain` was introduced, allowing the configuration of the bounce, catchall and default from email addresses at the company level (`res_company`). For this purpose, the `_compute_email_from` method was introduced to correctly compute the `email_from` in various email contexts. But, the `email_from` field in mass_mailing was using an obsolete combination of `default=` and a compute method. This meant that when one created a new `mailing.mailing` record, it was always defaulting to `self.env.user.email_formatted`. The compute was only triggered when the `mail_server_id` field manually updated. This is corrected with this fix and a unit test was added to test three different use cases. An invisible `create_uid` was added to the base mailing From view xml to have the compute method trigger correctly in some unit tests. ## How to reproduce bug: See related github issue https://github.com/odoo/odoo/issues/151310 ## Behavior after this fix: If `mail.alias.domain` is setup for the company and a default `ir.mail_server` is configured for Email Marketing, `_compute_email_from` will select the expected `email_from` at record creation for `mailing.mailing`. opw-3704715 Fixes #151310 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix restores the ability to set receivable and payable accounts as default accounts on miscellaneous journals, which was broken by a previous change. This allows users managing credit card statements to set payable accounts as defaults, eliminating the need to manually select accounts for each transaction entry and improving data entry efficiency.
Original PR description
This commit cleans the domain that defines the default account that can be set on a journal. It first removes the domain that excludes the receivable and payable accounts from the default account,…
This commit cleans the domain that defines the default account that can be set on a journal. It first removes the domain that excludes the receivable and payable accounts from the default account, and we restore the default accounts that could be set on sale, purchase, bank, and cash journals. The domain was broken since this commit: https://github.com/odoo/odoo/commit/3312657294947b1cc8670a0ed3557e12ee6969c8 The following journals must have the following possible default account types: - bank: asset_cash, - cash: asset_cash, - sale: income, income_other, - purchase: expense, expense_depreciation, expense_direct_cost, - general: all account types are possible, The object of the task was mainly to allow misc journals to allow receivable or payable default account type for the following use case: Suppose a user creates a Miscellaneous Journal to manage the details of the credit card statements. Most journal entries will consist of journal items impacting the Payable Account, as this will reclassify the debt towards various vendors and address this debit to the credit card company. It would in that case be necessary that the liquidity_payable accounts can be the default account on the miscellaneous journal. Otherwise, the user will have to fill in manually the account for each line of its credit card statement, and considering there can be a lot, this could become cumbersome. task-3393017
This fix resolves an issue where unlisted Vimeo videos could not be embedded in the website editor using the /video command. The system now properly preserves the access hash parameter when generating video URLs, allowing unlisted videos to load correctly instead of showing an error message.
Original PR description
When the user inserts a video with the `/video` command and provides a link of an unlisted vimeo video, the system generates a new url based on the options selected but omits the hash parameter…
When the user inserts a video with the `/video` command and provides a link of an unlisted vimeo video, the system generates a new url based on the options selected but omits the hash parameter granting access to the given video. As a result, the video can not be loaded and the vimeo `iframe` indicates that the video does not exist. To fix the issue, we will copy the hash parameter from the original link to the newly generated url. That way, the video will be loaded properly and the user will be able to embed unlisted vimeo videos. Steps to reproduce the issue: 1. Install the website app 2. Open the website builder 3. Drag and drop a text block 4. In the text block, type the `/video` command to insert a video 5. In the modal, paste the link of an unlisted video 6. The `iframe` indicates that the video does not exist => The system should extract the hash parameter from the provided url and set it on the generated url. The video should then be loaded properly. task-3697764 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#154329 Forward-Port-Of: odoo/odoo#150663
This fix restores the ability for developers to get import suggestions for the OWL library when working in the enterprise version of Odoo. A recent change had inadvertently broken this feature by causing the system to look for OWL in the wrong location. The fix uses a symbolic link approach to ensure the enterprise environment can properly access the OWL library, improving the developer experience.
Original PR description
For some reason, it was not possible to have imports suggestion to OWL in enterprise after commit 62cbb2073922db98df380eacce0b620e1dda9877. My personal opinion about it is that somehow the resolution…
For some reason, it was not possible to have imports suggestion to OWL in enterprise after commit 62cbb2073922db98df380eacce0b620e1dda9877. My personal opinion about it is that somehow the resolution of the `@web` module implied an "hard" resolution of the `@odoo/owl` module but in the community directory (../odoo/node_modules) which was stored in cache. This ought to happen before trying to get completions for anything, i.e. at TSServer loading, as a few loggers in TypeScript indicate that owl is never found. Things I discovered: - delete `odoo/nodule_modules` in enterprise: `@odoo/owl` becomes a suggestion again. - replace the copy of node_modules in enterprise by a symlink to odoo/node_modules (this commit), owl is suggested. - comment the path line of `@web/*` in enterprise/jsconfig.json, owl is suggested. I suppose there is an issue in TypeScript code, without being able to pinpoint it, even after trying to debug 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
This fix resolves an issue where clicking on form field inputs would incorrectly display an empty "Column" editor in the side panel and cause errors when attempting to delete it. The problem occurred because form elements were being mistakenly recognized as columns due to a recent padding option update. This fix refines the selector to exclude form field parts from being treated as editable columns.
Original PR description
Since [1] when the "Padding (Y, X)" option was added, form elements are recognized as columns because they match the `.row > div` selector of that new option. This commit excludes those form elements from this option's selector. Steps to reproduce: - Drop a website form. - Click on field's input. => An empty "Column" editor appeared in the side panel, and an error occurred when trying to delete it. [1]: https://github.com/odoo/odoo/commit/11418cc6f0afcc8e14869f4f38ae0d6d462ac712 task-3748574
This fix corrects how the system identifies which user initiated document sending when the process runs automatically through scheduled tasks. Previously, automated sends would incorrectly show as coming from OdooBot instead of the actual user who requested the send. This ensures proper tracking and attribution of document sending actions.
Original PR description
Some methods were using the `self.env` to decide users/partners while those methods can also be called from Cron, thus the user would end up to be OdooBot instead of the partner that initiated the async sending.
This update allows search view filters to use user-provided values through the self variable, making filters more flexible and dynamic. Previously, the domain property couldn't reference user data, limiting filter customization. Now users can create more sophisticated search filters that adapt to their specific information.
Original PR description
The domain in the search view's field can contain user-provided values, which are accessible via the self variable. Description of the issue/feature this PR addresses: The current version of the domain property in the search view for a field cannot accept user-provided values as the domain value, which is unreasonable. Current behavior before PR: cannot use self variable as user-provided values Desired behavior after PR is merged: can use self variable as user-provided values --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Fixed an issue where custom font size settings were not being applied to buttons in the website header navigation menu. When users changed the font size formatting in the header's navbar settings, some buttons were ignoring these changes. The fix ensures all buttons now properly respect the custom font size values set by users.
Original PR description
Steps to reproduce: - Enter in edit mode. - Select the 'Header' menu. - Switch the default template to 'Rounded box menu'. - Select again the 'Header' menu and on the 'Navbar' details, update the format value (i.e: 10px) and save. -> Problem: some buttons are not affected by the change of the format value. The problem is that since [1], those buttons have the `rounded-circle` class so their font size is not the custom one (but it is the value of `$font-size-base` instead). To solve the problem, the css rule has been adapted in order to force the font size of the buttons inside the header to the custom value if it exists. [1]: https://github.com/odoo/odoo/commit/e3e9c492e0d1e009a0c459a1dc591e122b4b65d3 opw-3810794
This fix corrects how down payment sales order line names are displayed when invoices are finalized. Previously, the system would show "Draft" status even after an invoice was posted (finalized). Now the system properly updates the down payment line name to reflect the actual invoice status, ensuring accurate and up-to-date information in sales orders.
Original PR description
Before this commit sol name was not reflacting invoice status when it moved to posted it only reflect draft and cancel state. This commit re-compute downpayment related sol name when invoice related to that sol get posted this way it'll update sol name to proper name instead of keeping always Draft string in it. opw-3768323 Forward-Port-Of: odoo/odoo#157824