Monday, May 26, 2025
25 changes · saas-18.2
Resolved issues and error corrections
Message bubbles now use stronger green coloring so users can more easily tell their own messages apart, especially in dark theme. Important messages and messaging menu items also stand out more clearly thanks to richer orange styling.
Original PR description
Message bubble green color was not strong enough, especially in dark theme. This makes it hard to distinct self messages in discuss app. This commit increases slightly the saturation of green message bubble. This commit also makes the following (kinda) related changes: - important message bubble orange color is more catchy with also more saturated color - important messaging menu items are more visually distinct in white theme.
Users who create a shortcut to a document they can view can now edit that shortcut even if they cannot edit the original document. This keeps shortcut management intuitive and avoids unnecessary permission blocks for document users.
Original PR description
Bug === If a user creates a shortcut to a document he can read, (but he has no edit access on the target), he should have edit access on the shortcut. Task-4582290
Miscellaneous changes
**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
<b>Steps to reproduce:</b> 1. Go to Sales > Create a Quotation 2. Add Customer > Set Customer's lang to French or German 3. Add a product, confirm the quotation 4. Click "Create Invoice" > Select "Down Payment (percentage)" 5. Set amount (e.g., 20.5%) and create the invoice <b>Issue:</b> - When creating a down payment invoice using the "percentage" option, description text is translated correctly to partner's language (e.g., French or German), but amount in description remains f
Original PR description
<b>Steps to reproduce:</b> 1. Go to Sales > Create a Quotation 2. Add Customer > Set Customer's lang to French or German 3. Add a product, confirm the quotation 4. Click "Create Invoice" > Select "Down Payment (percentage)" 5. Set amount (e.g., 20.5%) and create the invoice <b>Issue:</b> - When creating a down payment invoice using the "percentage" option, description text is translated correctly to partner's language (e.g., French or German), but amount in description remains formatted using English conventions (e.g. "20.5%" instead of "20,5 %" in French or German). <b>Cause:</b> - This happens because the amount is inserted as a raw float without localization. <b>Solution:</b> - This fix uses `formatLang()` with the correct context to format the percentage amount according to the partner's language (i.e., proper decimal separator). <b>opw-4743326</b> Forward-Port-Of: odoo/odoo#211047 Forward-Port-Of: odoo/odoo#210570
Steps to reproduce: ------------------- 1. Create a PoS product with variants, one of the variant with a `price_extra` less than 0.5 2. Activate self ordering and open that interface 3. Choose the product we created in step 1 Observation: the variant that have an `price_extra` less than 0.5 does not show that price different. Reason: ------- We are using the config `decimal_places`, which existed prior to version 17.4, but it has since been removed in 17.4+, but we still reference th
Original PR description
Steps to reproduce: ------------------- 1. Create a PoS product with variants, one of the variant with a `price_extra` less than 0.5 2. Activate self ordering and open that interface 3. Choose the product we created in step 1 Observation: the variant that have an `price_extra` less than 0.5 does not show that price different. Reason: ------- We are using the config `decimal_places`, which existed prior to version 17.4, but it has since been removed in 17.4+, but we still reference this config field in pos_self_order !! Fix: ---- Use the precision field from `currency.decimal_places` instead. opw-4706506 Forward-Port-Of: odoo/odoo#211478 Forward-Port-Of: odoo/odoo#211195
**[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
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
**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
there was a divide by zero in the price unit computation when the originalTotal is 0 which lead to infinity price unit and a crash in the POS order summary result. opw-4650315 Forward-Port-Of: odoo/odoo#202668
Original PR description
there was a divide by zero in the price unit computation when the originalTotal is 0 which lead to infinity price unit and a crash in the POS order summary result. opw-4650315 Forward-Port-Of: odoo/odoo#202668
Doing asynchronous things in the onWillStart can be tricky. Methods that come from services are usually protected against those, and hang up if the component was destroyed during the call, but other calls aren't protected. This commit fixes a race condition where a protected call is done after a component is destroyed and crashes. runbot-error-135245 Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I
Original PR description
Doing asynchronous things in the onWillStart can be tricky. Methods that come from services are usually protected against those, and hang up if the component was destroyed during the call, but other calls aren't protected. This commit fixes a race condition where a protected call is done after a component is destroyed and crashes. runbot-error-135245 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#211035 Forward-Port-Of: odoo/odoo#210773
**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
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#210811
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
After [this commit][1], some translations in the Facturae module for Spain were lost. We're adding them again here in the CSV file directly. [1]: https://github.com/odoo/odoo/commit/87fc0d6b9202b9b01d2db0821a5a515d28be210a
Original PR description
After [this commit][1], some translations in the Facturae module for Spain were lost. We're adding them again here in the CSV file directly. [1]: https://github.com/odoo/odoo/commit/87fc0d6b9202b9b01d2db0821a5a515d28be210a
Steps to reproduce: 1) Create a free shipping reward 2) Enable standard delivery and set price to 100 3) Configure stripe provider with express checkout 4) Go to /shop 5) Add a product to the cart with the price less than 100 6) Go to the checkout and apply reward 7) Go back to the cart and observe a traceback Reason: delivery_amount was calculated without a discount and in express checkout form `_getOrderDetails` this amount was subtracted from the order total which resulted in negati
Original PR description
Steps to reproduce: 1) Create a free shipping reward 2) Enable standard delivery and set price to 100 3) Configure stripe provider with express checkout 4) Go to /shop 5) Add a product to the cart with the price less than 100 6) Go to the checkout and apply reward 7) Go back to the cart and observe a traceback Reason: delivery_amount was calculated without a discount and in express checkout form `_getOrderDetails` this amount was subtracted from the order total which resulted in negative value Solution: Add discount if any opw-4648641 Forward-Port-Of: odoo/odoo#211273 Forward-Port-Of: odoo/odoo#209103
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
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
When a signed document is moved to trash in the documents app, when the cron tries to delete the said document it should raise a foreign key violation error in the terminal not in UI. **Steps to reproduce:** * Install document and sign * Document App> all> click `Employment contract.pdf`. * Select sign>drag and drop Signature>Sign now * Sign the document>validate and send completed document * Documents>certificate of completion or the signed document>actions>trash * The error will be pr
Original PR description
When a signed document is moved to trash in the documents app, when the cron tries to delete the said document it should raise a foreign key violation error in the terminal not in UI. **Steps to…
When a signed document is moved to trash in the documents app, when the cron tries to delete the said document it should raise a foreign key violation error in the terminal not in UI. **Steps to reproduce:** * Install document and sign * Document App> all> click `Employment contract.pdf`. * Select sign>drag and drop Signature>Sign now * Sign the document>validate and send completed document * Documents>certificate of completion or the signed document>actions>trash * The error will be produced when cron deletes the document. * You can delete the document from trash to see what error will be displayed by cron. `ERROR: update or delete on table "ir_attachment" violates foreign key constraint "sign_request_completed_document_rel_ir_attachment_id_fkey" on table "sign_request_completed_document_rel"` **Solution:** * Modifying the domain for `_gc_clear_bin` via a new function called overridden `_gc_documents_domain` in `documents_sign` this will allow for cron to skip over signed required document during unlink process. * This will still throw an `Validation Error` when the user tries to delete it from the GUI letting them know it cannot be deleted. Sentry-6225030131 Forward-Port-Of: odoo/enterprise#83765
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
**Steps to reproduce:** - Install Planning app - Set the type of view to Gantt - (Create a shift if there is none) - Click on `Publish` button - The period end date doesn't take the last day into account (time is 00:00) **Issue:** Gantt model default `_buildMetaData` computation behavior was changed multiple times during previous refactoring: Previously used: ``` export function computeRange(scale, date) { let start = date; let end = date; if (scale === "week") {
Original PR description
**Steps to reproduce:** - Install Planning app - Set the type of view to Gantt - (Create a shift if there is none) - Click on `Publish` button - The period end date doesn't take the last day into…
**Steps to reproduce:**
- Install Planning app
- Set the type of view to Gantt
- (Create a shift if there is none)
- Click on `Publish` button
- The period end date doesn't take the last day into account (time is 00:00)
**Issue:**
Gantt model default `_buildMetaData` computation behavior was changed multiple times during previous refactoring:
Previously used:
```
export function computeRange(scale, date) {
let start = date;
let end = date;
if (scale === "week") {
// startOf("week") does not depend on locale and will always give the
// "Monday" of the week... (ISO standard)
const { weekStart } = localization;
const weekday = start.weekday < weekStart ? weekStart - 7 : weekStart;
start = start.set({ weekday }).startOf("day");
end = start.plus({ weeks: 1, days: -1 }).endOf("day");
} else {
start = start.startOf(scale);
end = end.endOf(scale);
}
return { start, end };
}
```
Which became:
```
export function getRangeFromDate(rangeId, date) {
const startDate = localStartOf(date, rangeId);
const stopDate = startDate.plus({ [rangeId]: 1 }).minus({ day: 1 });
return { focusDate: date, startDate, stopDate, rangeId };
}
```
**Fix:**
Added `localStartOf` function in the context setup of PlanningGanttModel.
To avoid overwriting current changes for other modules (which could be intended), this was done instead of :
```
export function getRangeFromDate(rangeId, date) {
const startDate = localStartOf(date, rangeId);
const stopDate = localEndOf(startDate, rangeId);
return { focusDate: date, startDate, stopDate, rangeId };
}
```
related commits:
https://github.com/odoo/enterprise/commit/d18639785e622d97102227103d62ddb3a2716be6 https://github.com/odoo/enterprise/commit/c175a848369057cc69596737dcd9d21dd24c9d5c
opw-4580458
Forward-Port-Of: odoo/enterprise#85608PR #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
<b>Steps to produce :</b> 1) Install 10n_de_reports and switch to the German company 2) Create a journal entry from accounting with a credit and debit 3) Now update the credit and debit to a different value. 4) Post the journal 5) Go to "Accounting / Reporting / Audit Reports / General Ledger" 6) Download "DATEV DATA (ZIP)" and check "EXTF_accounting_entries.csv" <b>Issue:</b> The line for the created journal entry has a price_total of the previous balance even after updating the
Original PR description
<b>Steps to produce :</b> 1) Install 10n_de_reports and switch to the German company 2) Create a journal entry from accounting with a credit and debit 3) Now update the credit and debit to a…
<b>Steps to produce :</b> 1) Install 10n_de_reports and switch to the German company 2) Create a journal entry from accounting with a credit and debit 3) Now update the credit and debit to a different value. 4) Post the journal 5) Go to "Accounting / Reporting / Audit Reports / General Ledger" 6) Download "DATEV DATA (ZIP)" and check "EXTF_accounting_entries.csv" <b>Issue:</b> The line for the created journal entry has a price_total of the previous balance even after updating the credit and debit values. <b>Cause:</b> When the user updates the 'debit' and 'credit' values for an `aml`, The `price_totals` value remains unchanged as it is not dependent on `balance`. So, it will show the previous value in the report line because we are taking the abs(aml.price_total) from the report data. <b>Solution:</b> We can add an extra check of the move type so that it will fall back to the else block, where the line_amount will take a value by calculating taxes from `aml.tax_ids.compute_all`. opw-4707567 Forward-Port-Of: odoo/enterprise#83777
* 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
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
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
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#84244