Monday, May 26, 2025
38 changes · saas-18.3
Resolved issues and error corrections
This update removes an outdated waiting period from an automated CRM walkthrough. It helps internal validation run more smoothly now that modal windows close reliably, with no expected change for everyday users.
Original PR description
Since [1], we now wait ´onClose´ before closing modals and this delay is not necessary anymore. Before [1], the tour clicked on a kanban record that should have opened a form view but that was cancelled by the ´switchView()´ because a modal was detected. The issue was that modal was closed too soon leaving the tour clicking on the kanban card while the instance of modal is still alive even if not in the DOM anymore. Now that modal closing is synchronized, we can safely remove this delay without any risk of being blocked by the ´switchView()´ because of a modal residue. [1] https://github.com/odoo/odoo/pull/210521 runbot-error: 181875 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
The Dutch SBR tax report now handles cases where no closing entry exists without crashing. This keeps report generation stable after changes to the tax return process.
Original PR description
After the introduction of the new tax return process, `None` may now be returned as a closing entry, instead of an empty `recordset`. The SBR report may traceback if no closing entry is found.
The test process for importing French FEC accounting files now reads the full file every time, avoiding occasional failures with larger files. This improves build reliability without changing user-facing functionality.
Original PR description
The JS unit test of the FEC parser was having a flaky build error because for reading files, the test was using `.getReader().read()` which would read only one chunk from the stream, causing incomplete files to be processed for large files. This commit makes the unit test use `response.arrayBuffer()` instead to guarantee the processing of the complete files all the time. build_error-161014
A display issue in accounting reports was fixed so the submission date now appears as expected in the Kanban view. This helps users quickly see when returns were submitted without opening each record.
Original PR description
The submission date is never visible due to incorrect record access in Kanban view. used `record.date_submission.raw_value` Instead of incorrect direct usage.
Importing a Winbooks ZIP file with empty data files no longer causes an error. This prevents accounting users from being blocked when an export contains no partner records to import.
Original PR description
Currently, an error is produced when importing a **Winbooks** `.zip` file that contains empty `.dbf` data files. **Steps to reproduce:** - Install the `accountant`, `l10n_be` and…
Currently, an error is produced when importing a **Winbooks** `.zip` file that contains empty `.dbf` data files. **Steps to reproduce:** - Install the `accountant`, `l10n_be` and `account_winbooks_import` module. - Change the default company to **BE Company CoA**. - Navigate to accounting settings and Under **Accounting Import** click to **import** button. - Click **Import WBK** button and upload [this](https://drive.google.com/file/d/1wsLin2kOvlZvl0HcrzUafgRxPOVxPrcS/view?usp=sharing) file. **Error:** `AssertionError` Here, an error occurs because `partner_data_dict.values()` at [1] returns an `dict_values` object, which may be empty. This value is passed directly to `ResPartner.create(...),` but the ORM method requires a list or tuple, by an assertion added at [2]. [1] - https://github.com/odoo/enterprise/blob/9d51f5171b3c2478599dde1ce991c90fa6fed32b/account_winbooks_import/wizard/import_wizard.py#L126 [2] - https://github.com/odoo/odoo/blob/6ef8565053352e4f679d26032e5485474fda62ce/odoo/orm/models.py#L4309 This commit resolves the issue when files are empty and no partner data is available for import. Sentry - 6611894804
Miscellaneous changes
When writing a new formula on a tax_tags expression, but also providing the 'engine' key with 'tax_tags' value, this condition https://github.com/odoo/odoo/blob/16.0/addons/account/models/account_report.py#L539 triggered and the return at the end of it caused the tag to be recreated instead of renamed. This case can happen when changing the name of a tag in a data file, then updating the module. We saw it while working on an cleaned version of a localized report for master. Forward-Port-Of:
Original PR description
When writing a new formula on a tax_tags expression, but also providing the 'engine' key with 'tax_tags' value, this condition https://github.com/odoo/odoo/blob/16.0/addons/account/models/account_report.py#L539 triggered and the return at the end of it caused the tag to be recreated instead of renamed. This case can happen when changing the name of a tag in a data file, then updating the module. We saw it while working on an cleaned version of a localized report for master. Forward-Port-Of: odoo/odoo#211408 Forward-Port-Of: odoo/odoo#210811
Before this commit, when working with PoS on several devices, one of which is offline, a synchronization error occurred. Example: 1. PoS-1 creates a command and then loses its connection 2. PoS-2 the order is received from PoS-1, it is paid here. 3. PoS-1 adds a command line and recovers its connection. The command returns to “draft” state, which should not be possible. Now, once a command has been paid for, it cannot be drafted again. An error is returned to the user indicating that
Original PR description
Before this commit, when working with PoS on several devices, one of which is offline, a synchronization error occurred. Example: 1. PoS-1 creates a command and then loses its connection 2. PoS-2 the order is received from PoS-1, it is paid here. 3. PoS-1 adds a command line and recovers its connection. The command returns to “draft” state, which should not be possible. Now, once a command has been paid for, it cannot be drafted again. An error is returned to the user indicating that the order has been finalized. This commit also adds a server request in case of error during orders synchronization. Forward-Port-Of: odoo/odoo#208927 Forward-Port-Of: odoo/odoo#208448
Creating POS payment methods requires being a POS admin, which the POS user is not, and the test user may not be. Bypass issue by creating payment methods in sudo. https://runbot.odoo.com/odoo/error/222989 Forward-Port-Of: odoo/odoo#211664
Original PR description
Creating POS payment methods requires being a POS admin, which the POS user is not, and the test user may not be. Bypass issue by creating payment methods in sudo. https://runbot.odoo.com/odoo/error/222989 Forward-Port-Of: odoo/odoo#211664
Scenario: - have two domains for a website (eg. example.odoo.com and example.com) - add an exhibitor to an event - go to the website with domain that is not web.base.url - click on "More Info" / "Connect" on an exhibitor from the list Result: a traceback with error "Can't redirect to another origin" happens. Reason: to change page, we are using redirect method that prevent changing domain. But since 074be1ed36891065361a3cf40f8e189ba5fccb15 we are using the absolute URL (with web.base.url domai
Original PR description
Scenario: - have two domains for a website (eg. example.odoo.com and example.com) - add an exhibitor to an event - go to the website with domain that is not web.base.url - click on "More Info" / "Connect" on an exhibitor from the list Result: a traceback with error "Can't redirect to another origin" happens. Reason: to change page, we are using redirect method that prevent changing domain. But since 074be1ed36891065361a3cf40f8e189ba5fccb15 we are using the absolute URL (with web.base.url domain) instead of a relative URL, so the redirection to the other domain is prevented. Fix: use the relative URL again. opw-4799163 Forward-Port-Of: odoo/odoo#211235
Message bubble color in dark theme were too light grey, which make text hard to read. Also the greyish tint makes discuss look sad. White theme color are not much saturated, but the light background makes it good enough in comparison. This commit fixes the issue by darkening and adding more saturation to message bubble in dark theme. This gives them a more mature look with text more readable. This commit makes similar improvement to important messaging menu items in dark theme. White th
Original PR description
Message bubble color in dark theme were too light grey, which make text hard to read. Also the greyish tint makes discuss look sad. White theme color are not much saturated, but the light background…
Message bubble color in dark theme were too light grey, which make text hard to read. Also the greyish tint makes discuss look sad. White theme color are not much saturated, but the light background makes it good enough in comparison. This commit fixes the issue by darkening and adding more saturation to message bubble in dark theme. This gives them a more mature look with text more readable. This commit makes similar improvement to important messaging menu items in dark theme. White theme color has been slightly improved with a bit more color saturation on message bubble and notification item bg. This PR also makes these other notable changes: - shadow effects (message bubble, inputs, badges, etc.) - message actions are horizontally more compact - starred messages have starred icon in their sidebar - useHover away timing is reduced to 100ms (down from 200ms), so that this feels snappier. - chat bubble in mobile don't have close button: was too prone for accidental click with thumb - thread banners have new style with floating rounded alerts - chat window unread counter is next to name rather than always next to chat window quick actions. - message bubbles in mobile do not go in the turf of bubbles in opposite alignment (i.e. more spacing at their end). Should make it easier to read conversation in mobile. Forward-Port-Of: odoo/odoo#211362
Related to https://github.com/odoo/enterprise/pull/85952 Forward-Port-Of: odoo/odoo#210955 Forward-Port-Of: odoo/odoo#210767
Original PR description
Related to https://github.com/odoo/enterprise/pull/85952 Forward-Port-Of: odoo/odoo#210955 Forward-Port-Of: odoo/odoo#210767
We generalize the CertificateAdapter that is needed to make zeep read our own Certificate model for the session. Necessary for: odoo/odoo#196054 Task [link](https://www.odoo.com/odoo/project/967/tasks/4477745) task-4477745 Forward-Port-Of: odoo/odoo#210572
Original PR description
We generalize the CertificateAdapter that is needed to make zeep read our own Certificate model for the session. Necessary for: odoo/odoo#196054 Task [link](https://www.odoo.com/odoo/project/967/tasks/4477745) task-4477745 Forward-Port-Of: odoo/odoo#210572
**Problem:** For products with variants and differents steps for the BoM depending on the variant, the Manufacturing Order overview for a given product with a given variant would display the sum of the cost of all variants possible for this product. If we had a product "Drawer" with a color variant "Black" and "White", which cost 10 and 20 euros respectively, the Manufacturing Order overview of a Black Drawer would display the cost of the drawer + **30** euros (10+20), instead of being th
Original PR description
**Problem:** For products with variants and differents steps for the BoM depending on the variant, the Manufacturing Order overview for a given product with a given variant would display the sum of…
**Problem:** For products with variants and differents steps for the BoM depending on the variant, the Manufacturing Order overview for a given product with a given variant would display the sum of the cost of all variants possible for this product. If we had a product "Drawer" with a color variant "Black" and "White", which cost 10 and 20 euros respectively, the Manufacturing Order overview of a Black Drawer would display the cost of the drawer + **30** euros (10+20), instead of being the cost of the drawer + **10** euros. The display cost is the sum of the price of every variants for this product, instead of being the price of the current variant of the product. **Steps to reproduce:** - Create a product with variants - Change the BoM and make some components needed only for certain variants and add a price for them - Go to the MO overview - The Cost BoM cost total is the sum of all prices AND variants **Cause of the issue:** https://github.com/odoo/odoo/blob/d3ab7b2c3ceddbb4cb8d8e91fac0d60e28e5673a/addons/mrp/report/mrp_report_mo_overview.py#L85 This treats every remaining lines of the BoM as a missing component, thus adding it's price to the total price. Some lines should only be applied if a specific variant is selected, but with this code, every line that has a condition depending on variants will be taken in. **Fix:** Before adding the product of a BoM line to the missing components, we check that the BoM line should be applied to the current variant. The missing components are still used and can be not empty in the case where the BoM includes a line that was deleted from the MO, making the MO cost and the BoM cost different. In this case, the missing components will not be empty and will still work as intended without taking the unwanted variants into account. opw-4557169 Forward-Port-Of: odoo/odoo#199264
**Current behaviour before PR:** Steps to reproduce: - Select a text, open color selector. - Switch to custom tab. - Apply any custom color. - Switch to any other tab without closing color selector. - Switch back to the custom color tab. - Selected default color in colorpicker is old one rather than applied one. **Desired behaviour after PR is merged:** Applied custom color should be selected by default when switching back to custom tab. task-4737027 --- I confirm I hav
Original PR description
**Current behaviour before PR:** Steps to reproduce: - Select a text, open color selector. - Switch to custom tab. - Apply any custom color. - Switch to any other tab without closing color selector. - Switch back to the custom color tab. - Selected default color in colorpicker is old one rather than applied one. **Desired behaviour after PR is merged:** Applied custom color should be selected by default when switching back to custom tab. task-4737027 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#210673 Forward-Port-Of: odoo/odoo#208963
The usecase occurs in x2many lists in form views. The total width of the table's parent div may change, for instance if a scrollbar appears on the sheet at some point. When this happens, the widths must be recomputed, to properly fit with the new available space. Before this commit, we only listened to window resize, not to the parent div itself. This could lead to an horizontal scrollbar being sometimes displayed, for instance: - with the chatter below the form view, as it is loaded asynch
Original PR description
The usecase occurs in x2many lists in form views. The total width of the table's parent div may change, for instance if a scrollbar appears on the sheet at some point. When this happens, the widths…
The usecase occurs in x2many lists in form views. The total width of the table's parent div may change, for instance if a scrollbar appears on the sheet at some point. When this happens, the widths must be recomputed, to properly fit with the new available space. Before this commit, we only listened to window resize, not to the parent div itself. This could lead to an horizontal scrollbar being sometimes displayed, for instance: - with the chatter below the form view, as it is loaded asynchronously, when it contains messages such that there's no (vertical) scrollbar before it is loaded, and there's one after. - with the document previewer, as its width changes when it is loaded. This commit fixes the issue by using a resize observer to listen to the parent div directly, instead of on a window, which is more accurate. Bug reported by our cto 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#211041 Forward-Port-Of: odoo/odoo#210366
**Problem:** when doing a refund from pos of an avco (or fifo) product, with the option "ship later" the cost of the product does not appear on the pos order line **Steps to reproduce:** - Enable Settings "Allow Ship Later", "Automatic Accounting" - Navigate to Sales/Configuration/Product Categories - Create a new category with Inventory Valuation field as "Automated" and the Costing Method field as "Average Cost (AVCO)" - Open Point of Sale/Product - Create a new storable product
Original PR description
**Problem:** when doing a refund from pos of an avco (or fifo) product, with the option "ship later" the cost of the product does not appear on the pos order line **Steps to reproduce:** - Enable…
**Problem:** when doing a refund from pos of an avco (or fifo) product, with the option "ship later" the cost of the product does not appear on the pos order line **Steps to reproduce:** - Enable Settings "Allow Ship Later", "Automatic Accounting" - Navigate to Sales/Configuration/Product Categories - Create a new category with Inventory Valuation field as "Automated" and the Costing Method field as "Average Cost (AVCO)" - Open Point of Sale/Product - Create a new storable product - In the general information tab set a cost and select your new category for the product category field - In the Sales tab, make sure that "Available in POS" is checked and select a category - Set an on Hand quantity - Open a point of sale from the Point of Sale Dashboard - Select your product and click on Payment - On the top right of the screen select a customer with an adress, click on Invoice and on Ship later - Select a payment method and validate - Navigate to Point of Sale/Orders - click on the last order created, and click on the "Pickings" smart button - validate the picking - come back to the store in point of sale - select the three horizontal lines on the top right and click on Orders - filter by paid orders - select the last order created and click on refund and then on payment - check Invoice and Ship Later on the top right, select a payment method and validate - Navigate back to Point of Sale/orders and select the last order created **Current behavior:** The total cost is zero on the pos order line Even if the delivery is validated via the Picking smart button the total cost is still zero **Expected behavior:** It should reflect the cost of the product (depending on the costing method) **Cause of the issue:** When the pos order is created from Point of Sale, the process_saved_order method is called this method calls (1)create_order_picking and then (2)compute_total_cost. https://github.com/odoo/odoo/blob/504ef7cdeb1600b86feefbe8668144da9cd5a70b/addons/point_of_sale/models/pos_order.py#L183-L184 **Scenario A** Inside (1) create_order_picking, if the PosOrder doesn't have a shipping_date the if statement is False https://github.com/odoo/odoo/blob/504ef7cdeb1600b86feefbe8668144da9cd5a70b/addons/point_of_sale/models/pos_order.py#L1017 and the method _create_picking_from_pos_order_lines is called. This method then calls _action_done. https://github.com/odoo/odoo/blob/504ef7cdeb1600b86feefbe8668144da9cd5a70b/addons/point_of_sale/models/stock_picking.py#L70 Inside the stock_account override of _action_done, _create_in_svl is called. https://github.com/odoo/odoo/blob/504ef7cdeb1600b86feefbe8668144da9cd5a70b/addons/stock_account/models/stock_move.py#L289 This method sets the value of the stock_valuation_layer_ids attribute of the stock move to a new stock valuation layer. **Scenario B** Inside (1) create_order_picking, if the PosOrder has a shipping_date (in the case where we selected "Ship Later") the method _launch_stock_rule_from_pos_order_lines is called. https://github.com/odoo/odoo/blob/504ef7cdeb1600b86feefbe8668144da9cd5a70b/addons/point_of_sale/models/pos_order.py#L1017-L1018 and nowhere inside this method is _action_done called. This makes sense because the stock move hasn't been validated. When (2) compute_total_cost is then called by process_saved_oder, if the product category is avco, _compute_average_price will be called. If we are in Scenario B there is no stock valuation layer for this stock move. Consequently there will be no candidates and the price will not be computed. https://github.com/odoo/odoo/blob/504ef7cdeb1600b86feefbe8668144da9cd5a70b/addons/stock_account/models/product.py#L795-L798 opw-4614503 Forward-Port-Of: odoo/odoo#210868 Forward-Port-Of: odoo/odoo#207482
The tour fixed implicitly checks the browser's history. In Odoo, and history entry is pushed after a setTimeout(0) to allow multiple calls to be aggregated. The fix aknowledges this by introducing delays before executing the action. runbot-error-108129 runbot-error-223364 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/submi
Original PR description
The tour fixed implicitly checks the browser's history. In Odoo, and history entry is pushed after a setTimeout(0) to allow multiple calls to be aggregated. The fix aknowledges this by introducing delays before executing the action. runbot-error-108129 runbot-error-223364 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#211207
Add a tracking flag to the payments state to be logged into the chatter. task-4531618 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#210877 Forward-Port-Of: odoo/odoo#199967
Original PR description
Add a tracking flag to the payments state to be logged into the chatter. task-4531618 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#210877 Forward-Port-Of: odoo/odoo#199967
Originally, we compute rules for stock orderpoints based on product_id through `product_id._get_rules_from_location`, however, this function only relies on `product_id.route_ids` or `product_id.categ_id.total_route_ids` which usually don't change a lot per product. This PR leverages this idea that we can simply extend the caching key to include the routes_ids and categ_id.total_route_ids of products so we don't have to calculate the same value twice. For products without route_ids, it simply
Original PR description
Originally, we compute rules for stock orderpoints based on product_id through `product_id._get_rules_from_location`, however, this function only relies on `product_id.route_ids` or `product_id.categ_id.total_route_ids` which usually don't change a lot per product. This PR leverages this idea that we can simply extend the caching key to include the routes_ids and categ_id.total_route_ids of products so we don't have to calculate the same value twice. For products without route_ids, it simply falls back to the original cache key. Benchmarks |Num. orderpoints| Before PR | After PR | |---------------------|---------------|--------------| |5636| 56.2 s| 39.5 s| opw-4649249 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#202365
**[FIX] web_editor, website: prevent snippet tabs nav items removal** Steps to reproduce: 1. Go to Website edit mode. 2. Add a "Tabs" block. 3. Double-click a tab title to select it. 4. Start typing a new title. :white_check_mark: Expected: The tab title is replaced with the new text. :x: Actual: The tab is deleted and merged with the next one. This commit fixes the bug by preventing the deletion of elements with the `data-bs-toggle: 'tab'` attribute. These are clearly not eleme
Original PR description
**[FIX] web_editor, website: prevent snippet tabs nav items removal** Steps to reproduce: 1. Go to Website edit mode. 2. Add a "Tabs" block. 3. Double-click a tab title to select it. 4. Start typing a new title. :white_check_mark: Expected: The tab title is replaced with the new text. :x: Actual: The tab is deleted and merged with the next one. This commit fixes the bug by preventing the deletion of elements with the `data-bs-toggle: 'tab'` attribute. These are clearly not elements that an user should ever be allowed to delete. This commit also adds a test for the "Tab" snippet to prevent the bug from coming back. It also covers other flows that were previously known to be buggy in the "Tabs" snippet. opw-4791238 Forward-Port-Of: odoo/odoo#210858 Forward-Port-Of: odoo/odoo#209935
If a tag is set on a product, it has to be propagated on the base and the tax lines. It was only set on the base line before this fix. task_id: 4789153 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#210541 Forward-Port-Of: odoo/odoo#209676
Original PR description
If a tag is set on a product, it has to be propagated on the base and the tax lines. It was only set on the base line before this fix. task_id: 4789153 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#210541 Forward-Port-Of: odoo/odoo#209676
runbot-error-181592 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#210993 Forward-Port-Of: odoo/odoo#210535
Original PR description
runbot-error-181592 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#210993 Forward-Port-Of: odoo/odoo#210535
**Steps to reproduce**: 1. Install the website_event app 2. Enable Online Exhibitors in settings 3. Open any upcoming event and check website submenu and showcase exhibitors 4. Click on the sponsor smart button 5. Create a new sponsor with type 'Exhibitor' 6. Now click on Go to website smart button and make it publish 7. Open private window in browser and go to exhibitor page by cliking on 8. Go to Event > Modified upcoming event > exhibitors submenu 9. Now click on more info button ins
Original PR description
**Steps to reproduce**: 1. Install the website_event app 2. Enable Online Exhibitors in settings 3. Open any upcoming event and check website submenu and showcase exhibitors 4. Click on the sponsor…
**Steps to reproduce**: 1. Install the website_event app 2. Enable Online Exhibitors in settings 3. Open any upcoming event and check website submenu and showcase exhibitors 4. Click on the sponsor smart button 5. Create a new sponsor with type 'Exhibitor' 6. Now click on Go to website smart button and make it publish 7. Open private window in browser and go to exhibitor page by cliking on 8. Go to Event > Modified upcoming event > exhibitors submenu 9. Now click on more info button inside the exhibitor card 10. Observe the console error or Error if Debug mode is on. **Issue**: - The dialog displayed for non-event managers attempts to use t-options within a <span> tag, causing Unknown QWeb directive error. - Missing prop error in Debug mode **Solution**: - Replace the t-options logic with a dedicated property of the object with correct format of date_begin field - Add close prop in ExhibitorConnectClosedDialog **UI Improvement:** - notice on the next exhibitor page we're displaying: ```<span>(<t t-if="website_visitor_timezone != sponsor.event_id.date_tz" t-out="event.date_tz"/>)</span>``` It would be nice to remove the parentheses when the condition doesn't pass, as it currently results in empty brackets () being shown opw-4737183 Forward-Port-Of: odoo/odoo#209866
**After this commit:** - If the E-Waybill is processed through IRN, the IRN number will now be printed on the report. **Task**-4807691 **Sample Output:**  Forward-Port-Of: odoo/odoo#211011
Original PR description
**After this commit:** - If the E-Waybill is processed through IRN, the IRN number will now be printed on the report. **Task**-4807691 **Sample Output:**  Forward-Port-Of: odoo/odoo#211011
In this PR: - Changed the account types of some accounts from 'payable' to 'current liabilities' and from 'receivable' to 'current assets' to better reflect their nature task-4813704 Forward-Port-Of: odoo/odoo#211399
Original PR description
In this PR: - Changed the account types of some accounts from 'payable' to 'current liabilities' and from 'receivable' to 'current assets' to better reflect their nature task-4813704 Forward-Port-Of: odoo/odoo#211399
Revert partially https://github.com/odoo/odoo/pull/189428 PR above was a piece of making calls more transparent among browser tabs. One aspect was to enable most call actions in all tabs, while the PR above solved accidental disconnect from closing or refreshing tab making call. Solution was to jump the call to another tab. While this is good to keep the call ongoing with no friction in action that reloads the page that had originally the call, in practice this jump to another tab can actu
Original PR description
Revert partially https://github.com/odoo/odoo/pull/189428 PR above was a piece of making calls more transparent among browser tabs. One aspect was to enable most call actions in all tabs, while the PR above solved accidental disconnect from closing or refreshing tab making call. Solution was to jump the call to another tab. While this is good to keep the call ongoing with no friction in action that reloads the page that had originally the call, in practice this jump to another tab can actually make it harder to find the tab that is actually making the call. This is especially bothering because not all call actions are available in other tabs of the call due to browser limitations, e.g. enabling camera and screen sharing. This commit disabled the feature for call to jump to another tab. Instead, it asks user to confirm the closing or refresh of tab while there's a call, similarly to when there was only 1 tab before this commit. Forward-Port-Of: odoo/odoo#211583
* Previously, the domain only included payments in the "in_process" state, which is incorrect when only the Invoicing app is installed -paid payments should also be allowed-. * Test was failing with single app installed when accountant module was not installed. When only Invoicing, we can validate a batch payment even when payments are in paid state, so the Warning was not raised causing tests to fail. Forward-Port-Of: odoo/enterprise#86217
Original PR description
* Previously, the domain only included payments in the "in_process" state, which is incorrect when only the Invoicing app is installed -paid payments should also be allowed-. * Test was failing with single app installed when accountant module was not installed. When only Invoicing, we can validate a batch payment even when payments are in paid state, so the Warning was not raised causing tests to fail. Forward-Port-Of: odoo/enterprise#86217
The test relies on the admin partner having full contact in order for the "Confirm Address" step to "just work". If the test is run without demo data, this is rather not the case and the test fails on the next step, as "Confirm Address" causes a form submission failure due to required fields not being filled. https://runbot.odoo.com/odoo/error/161633 Forward-Port-Of: odoo/enterprise#86417
Original PR description
The test relies on the admin partner having full contact in order for the "Confirm Address" step to "just work". If the test is run without demo data, this is rather not the case and the test fails on the next step, as "Confirm Address" causes a form submission failure due to required fields not being filled. https://runbot.odoo.com/odoo/error/161633 Forward-Port-Of: odoo/enterprise#86417
Sendcloud and ups_rest miss the override to allow sending the actual type of the carrier (in a recognizable way) to Amazon. opw-4771192 Forward-Port-Of: odoo/enterprise#86100 Forward-Port-Of: odoo/enterprise#84772
Original PR description
Sendcloud and ups_rest miss the override to allow sending the actual type of the carrier (in a recognizable way) to Amazon. opw-4771192 Forward-Port-Of: odoo/enterprise#86100 Forward-Port-Of: odoo/enterprise#84772
This was green before this commit, matching the community badge color. Enterprise is red, which is the prettiest and most well-known color for badge, but due to being unavailable in bundle it was shown as green rather than red. Discuss public page also lacked it, which this commit fixes too. Forward-Port-Of: odoo/enterprise#86378
Original PR description
This was green before this commit, matching the community badge color. Enterprise is red, which is the prettiest and most well-known color for badge, but due to being unavailable in bundle it was shown as green rather than red. Discuss public page also lacked it, which this commit fixes too. Forward-Port-Of: odoo/enterprise#86378
Related to https://github.com/odoo/odoo/pull/210767 Forward-Port-Of: odoo/enterprise#86045 Forward-Port-Of: odoo/enterprise#85952
Original PR description
Related to https://github.com/odoo/odoo/pull/210767 Forward-Port-Of: odoo/enterprise#86045 Forward-Port-Of: odoo/enterprise#85952
**Steps to reproduce:** - Install `sale_commission_linked_achievement` module - Enable Commissions in settings - Go to Sales > Commissions > Commissions - Group By Sales Team - Error `psycopg2.errors.UndefinedFunction: operator does not exist: text = integer` is triggered **Issue:** When generating a raw query with a untyped `NULL` value (`NULL AS team_id`) in a `WITH` subquery, PostgreSQL infers the type as `text` (instead of default `unknown`) when the clause is done. This leads to a
Original PR description
**Steps to reproduce:** - Install `sale_commission_linked_achievement` module - Enable Commissions in settings - Go to Sales > Commissions > Commissions - Group By Sales Team - Error…
**Steps to reproduce:**
- Install `sale_commission_linked_achievement` module
- Enable Commissions in settings
- Go to Sales > Commissions > Commissions
- Group By Sales Team
- Error `psycopg2.errors.UndefinedFunction: operator does not exist: text = integer` is triggered
**Issue:**
When generating a raw query with a untyped `NULL` value (`NULL AS team_id`) in a `WITH` subquery, PostgreSQL infers the type as `text` (instead of default `unknown`) when the clause is done. This leads to a comparison error when joining results during the `group_by` operation.
`ON ("sale_commission_report"."team_id" = "sale_commission_report__team_id"."id")`
Explanation in PostgreSQL source code:
```
* If all the inputs were UNKNOWN type --- ie, unknown-type literals ---
* then resolve as type TEXT. This situation comes up with constructs
* like SELECT (CASE WHEN foo THEN 'bar' ELSE 'baz' END); SELECT 'foo'
* UNION SELECT 'bar'; It might seem desirable to leave the construct's
* output type as UNKNOWN, but that really doesn't work, because we'd
* probably end up needing a runtime coercion from UNKNOWN to something
* else, and we usually won't have it. We need to coerce the unknown
* literals while they are still literals, so a decision has to be made
* now.
```
This can be reproduced manually by doing :
```
WITH example AS (
SELECT NULL AS team_id
)
SELECT pg_typeof(team_id) FROM example;
pg_typeof
-----------
text
(1 row)
```
**Fix:**
Explicitly cast the `NULL` value to the proper type using `NULL::INTEGER` to ensure it is treated as an integer during the comparison.
The issue was introduced here : https://github.com/odoo/enterprise/commit/80beef2077c3b4fa7ee6e20dd2f9400a7d1d2273
And, as the `sale_commission_linked_achievement` will be removed, as well as the `Sales Team` grouping, it should disappear with this : https://github.com/odoo/enterprise/commit/b1e41f9b23aa62bfd6f9be1feb1059b3507f2ce5
opw-4765421
Forward-Port-Of: odoo/enterprise#85399
Forward-Port-Of: odoo/enterprise#85097Issues: i) When coming from another app (Fleet, Project, etc.), the control panel does not correctly display the subfolders. ii) The “All” folder should always be displayed. Technical Reason: i) Correctly set folder_id as False for documents whose parent folder is inaccessible, ensuring a clean and accurate folder hierarchy in the search panel. ii) It was intended, add a condition when coming from other modules 'All' should not display. After this commit: i) Correctly
Original PR description
Issues:
i) When coming from another app (Fleet, Project, etc.), the control panel
does not correctly display the subfolders.
ii) The “All” folder should always be displayed.
Technical Reason:
i) Correctly set folder_id as False for documents whose parent folder is
inaccessible, ensuring a clean and accurate folder hierarchy in the
search panel.
ii) It was intended, add a condition when coming from other modules 'All'
should not display.
After this commit:
i) Correctly display folders in hierarchy in a search panel when coming from other modules.
ii) 'All' folder should always be displayed.
Task-4669259
Forward-Port-Of: odoo/enterprise#84244PR #64267 implemented a reconnection mechanism, but it is only triggered when the WebSocket close event is fired. In practice, we noticed that the WebSocket would sometimes silently lose connection. When this happens, one should just send data through the WebSocket to refresh it. This commit enables SIP.js keep-alive feature, hopefully reducing the number of disconnections, or at least preventing them to go unnoticed. Forward-Port-Of: odoo/enterprise#86294 Forward-Port-Of: odoo/enterprise#86
Original PR description
PR #64267 implemented a reconnection mechanism, but it is only triggered when the WebSocket close event is fired. In practice, we noticed that the WebSocket would sometimes silently lose connection. When this happens, one should just send data through the WebSocket to refresh it. This commit enables SIP.js keep-alive feature, hopefully reducing the number of disconnections, or at least preventing them to go unnoticed. Forward-Port-Of: odoo/enterprise#86294 Forward-Port-Of: odoo/enterprise#86213
* Hide smart buttons when there are no elements and include `in process` payments to the collections smart button. * Consider all payments linked to a mandate as Collections not only the ones have journal entries * Log in the payment chatter the inclusion/exclusion of the payment in a batch. * Validate only in process payments task-4531618 Forward-Port-Of: odoo/enterprise#86006 Forward-Port-Of: odoo/enterprise#80494
Original PR description
* Hide smart buttons when there are no elements and include `in process` payments to the collections smart button. * Consider all payments linked to a mandate as Collections not only the ones have journal entries * Log in the payment chatter the inclusion/exclusion of the payment in a batch. * Validate only in process payments task-4531618 Forward-Port-Of: odoo/enterprise#86006 Forward-Port-Of: odoo/enterprise#80494
Fixes were made regarding the fraud prevention headers, but we have still odoo requests that send invalid headers. When checking the odoo requests on the hmrc website, we can group by `Gov-Vendor-Version`, which is currently set to the Installed Version of the base module, twice (for some reasons). This commit send the version of the `l10n_uk_reports` module. So when a new fix is made, we can bump the module version and see if failing requests are up-to-date. task-4627086 Forward
Original PR description
Fixes were made regarding the fraud prevention headers, but we have still odoo requests that send invalid headers. When checking the odoo requests on the hmrc website, we can group by `Gov-Vendor-Version`, which is currently set to the Installed Version of the base module, twice (for some reasons). This commit send the version of the `l10n_uk_reports` module. So when a new fix is made, we can bump the module version and see if failing requests are up-to-date. task-4627086 Forward-Port-Of: odoo/enterprise#84692
…tems When using OSS, the user has to put the OSS tag on the product. This test ensures the OSS tag is well propagated from the product to the accounting items representing the invoice line plus the generated tax lines. task_id: 4789153 Forward-Port-Of: odoo/enterprise#85859 Forward-Port-Of: odoo/enterprise#85381
Original PR description
…tems When using OSS, the user has to put the OSS tag on the product. This test ensures the OSS tag is well propagated from the product to the accounting items representing the invoice line plus the generated tax lines. task_id: 4789153 Forward-Port-Of: odoo/enterprise#85859 Forward-Port-Of: odoo/enterprise#85381
In this commit we fix the website_sale_renting_select_wrong_period tour that can cause undeterministic errors. Forward-Port-Of: odoo/enterprise#83700 Forward-Port-Of: odoo/enterprise#83568
Original PR description
In this commit we fix the website_sale_renting_select_wrong_period tour that can cause undeterministic errors. Forward-Port-Of: odoo/enterprise#83700 Forward-Port-Of: odoo/enterprise#83568