Thursday, March 27, 2025
39 changes · 18.0
Enhancements to existing features
Onboarding tours now handle autocomplete fields more smoothly. When a user selects a suggested option while following a guided step, the tour recognizes the action correctly and can continue without unnecessary extra clicks.
Original PR description
When a step in an onboarding tour ask for an edit on an autocomplete input, selecting a dropdown item valid the step. And if the next step was a click on a dropdown item, this step is also validated. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Partner autocomplete now includes the current company’s country when requesting business data, which can improve match relevance and reporting accuracy. It also avoids saving incomplete enrichment data when no UNSPSC classification is available, reducing unnecessary records.
Original PR description
See commits
The chat bubble button no longer uses an unnecessary background color, making it blend more consistently with the rest of the interface. This is a small visual polish change with limited user impact.
Original PR description
- This change removes the `bg-view` class from the chat bubble button. - Ensuring a more consistent UI styling. task - **4630768** --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Peppol screens and notifications now use shorter, clearer wording, including replacing “Consumer” with “no VAT” where relevant. The activation banner is no longer shown for no-VAT contacts, reducing unnecessary prompts and making the flow easier to understand.
Original PR description
Small UX/message improvements to Peppol: - Shorten some messages/information. - Rename the "(Consumer)" information to "(no VAT)". - Don't display the activation banner in case of "no VAT". task-no (last review comment of FP)
Partner autocomplete requests now include the current company's country code for statistical analysis. This helps improve reporting and insight into usage by country without changing the user workflow.
Original PR description
For stats purpose, we know send the country code of the current company. task-4416928
Resolved issues and error corrections
Sales order lines can now show either the taxed total or untaxed subtotal as an optional column, depending on what users need to review. This makes quotations with taxes clearer and reduces confusion when company tax settings hide one of these amounts by default.
Original PR description
Versions -------- - 18.0+ Steps ----- 1. Create a quotation; 2. add a product with taxes. Issue ----- Depending on the company tax setting, the only "Amount" viewable from the sale order line view is either `price_total` or `price_subtotal`. There's no way to easily add the other column to the view. Cause ----- The Pricepocalypse changed the view in commit 5bfd603d0cae5 to make only one "Amount" column available. Solution -------- Add the other amount as an optional field. opw-4574399
Miscellaneous changes
- Adjusting fetchmail_server behavior to read specific fuel taxes from vendor bills, which can be extended for other taxes. - Adding the functionality of manually uploading CL EDI documents through fetchmail_server functions. Unrecognized documents are parsed as vendor bills. task-4359365 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#203482 Forward-Port-Of: odoo/odoo#190873
Original PR description
- Adjusting fetchmail_server behavior to read specific fuel taxes from vendor bills, which can be extended for other taxes. - Adding the functionality of manually uploading CL EDI documents through fetchmail_server functions. Unrecognized documents are parsed as vendor bills. task-4359365 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#203482 Forward-Port-Of: odoo/odoo#190873
This fix adjusts the placement of editor power buttons so they do not overlap longer placeholder text, such as in Spanish. It improves readability and prevents a small but visible layout issue when users focus on editor input fields.
Original PR description
**Problem**: Power buttons overlap long placeholders, causing UI issues. **Solution**: Adjust power button positioning based on the placeholder's width. **Steps to Reproduce**: 1. Change language to **Spanish**. 2. Open the **editor**. 3. Focus on an input field. - **Issue**: Power buttons overlap the placeholder. **opw-4584709** --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Fixes an issue where clicking a snippet category while a mega menu was open in website edit mode could cause an error. Editors can now continue building pages and menus without interruption in this scenario.
Original PR description
Steps to reproduce: - Add a mega menu to the menu. - Enter edit mode. - Open the mega menu. - Click on a snippet category. - Bug: A traceback occurs. This was due to the absence of drop zones on the page for non-inline snippets when a mega menu was open. After this commit, we ensure that drop zones are present when clicking.
This change prevents access errors when customers view or buy combo products online. It ensures the website can correctly calculate product combination details, reducing failed shopping experiences.
Original PR description
This PR adds a missing `sudo` when computing the combination info for combo products.
Egyptian e-invoicing now sends the edited invoice line label to the Egyptian Tax Authority instead of always sending the product name. This restores support for businesses that customize invoice descriptions for compliance or customer clarity.
Original PR description
purpose of this commit: In version 17.3, a change was introduced to send the product display name instead of the line label. which meant unsupporting some valid use cases. This commit reverts the change back to sending the line label ticket-id: 4602920 Description of the issue/feature this PR addresses: modified labels are not sent to the ETA Current behavior before PR: -> change an invoice line label -> post the invoice -> send to ETA -> only product name is sent to the ETA Desired behavior after PR is merged: -> change an invoice line label -> post the invoice -> send to ETA -> line label is sent to the ETA --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The payment screen now scrolls only within the list of payment methods when many options are available. This keeps the rest of the screen stable and makes checkout easier for cashiers using many payment methods.
Original PR description
When to much payment method are available in the payment screen, the scroll is on the whole screen and not only on the payment method list. This commit fix the scroll on the payment method list. taskId: 4672440
Invoice draft placeholders now follow the same numbering format users set when resequencing invoices, including month-based formats. This helps finance teams preview accurate invoice numbers before validation and avoids confusion when working with future-dated invoices.
Original PR description
### Steps to reproduce: - Accounting > Customers > Invoices - Select all - Actions > Resequence - Add a month in the sequence: INV/2025/03/001 - Create a new invoice and select a date in a future month - The name in the placeholder does not respect the new sequencing format ### Cause: `_compute_name_placeholder` uses `_get_starting_sequence` which always return the same format for invoices. ### Solution: Change `_compute_name_placeholder`, mimicking the way the sequence number is computed in `_set_next_sequence`. opw-4612328
When a user removes an attachment from an email composer, Odoo now ensures the file is fully deleted rather than only removed from view. This prevents leftover attachment records from remaining in the database and helps keep records clean.
Original PR description
Steps: - Install sales app. - Open a sale order and click 'Send by Email'. - Remove file attachment from mail composer. Issue: - Removing mail attachment does not remove it completely at db level. Cause: - `.get` always returns undefined while removing the attachment. Fix: - Inserting `fileId` into `mailStore.Attachment` before unlinking resolves the issue.
This update fixes an automated ecommerce test that no longer matched recent checkout flow and button changes. It helps keep quality checks reliable so future website shop updates can be validated with fewer false failures.
Original PR description
Changes in the ecommerce app broke this test starting 17.4. Minor changes for the most part, change of button appearance, flow redirection, etc. rb-102094
The color picker now correctly applies opacity changes from the slider to selected text. This makes text styling more predictable for users editing HTML content, especially when creating designs that rely on transparency.
Original PR description
**Current behavior before PR:** - The opacity slider in the color picker did not apply the selected opacity to the text. **Desired behavior after PR is merged:** - Now, adjusting the opacity using the slider in the color picker correctly applies the selected opacity to the text. task:4419805
The public Knowledge sidebar now properly expands nested articles when visitors click to unfold a section. This makes article navigation work as expected and helps users browse public knowledge content without getting stuck.
Original PR description
This commit fixes an issue with the public sidebar. When you unfold an article the unfolding method was never linked to all the elements needed to unfold any children article. Commit message to be completed.
This fixes a batch payment test so it works correctly when the full accounting app is not installed. It helps keep automated quality checks reliable across different product configurations without changing day-to-day user behavior.
Original PR description
When accountant is not installed, valid_payment_states includes both "paid" and "in payment" options, which means that amount_residual and amount_residual_currency have the same value as amount. original commit for the test: https://github.com/odoo/enterprise/commit/8faa7fccd296aab290f96b05832f1152cc2d4b1c [runbot-errors](https://runbot.odoo.com/odoo/error/161370)
Fixed an error that occurred when customers tried to pay a subscription with no amount due. The system now treats missing payment amounts as zero, allowing the process to continue without a traceback.
Original PR description
Issue: - Try to pay zero amount subscrption traceback. Cause: - From payment we send `None` amount when there is no amount and we try to compare the amount and because of that it gives traceback. Fix: - Set zero to amount if it is None.
The Point of Sale now handles restricted categories that do not contain any products without crashing. This improves reliability for stores using category restrictions and avoids interruptions during setup or sales operations.
Original PR description
Before this commit, enabling category restriction could cause a crash if one of the selected categories did not contain any products. opw-4677964 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Ensures only Peppol-type proxies are retrieved for updating participant status. Steps to reproduce: - Install Peppol and IT EDI - Register Peppol and IT EDI users - Go to Scheduled Actions and run “PEPPOL: update participant status” - Error: “Error while updating Peppol participant status: The URL requested returned an error. The URL it tried to contact was False/api/peppol/1/participant_status” opw-4624633 Forward-Port-Of: odoo/odoo#203450 Forward-Port-Of: odoo/odoo#203212
Original PR description
Ensures only Peppol-type proxies are retrieved for updating participant status. Steps to reproduce: - Install Peppol and IT EDI - Register Peppol and IT EDI users - Go to Scheduled Actions and run “PEPPOL: update participant status” - Error: “Error while updating Peppol participant status: The URL requested returned an error. The URL it tried to contact was False/api/peppol/1/participant_status” opw-4624633 Forward-Port-Of: odoo/odoo#203450 Forward-Port-Of: odoo/odoo#203212
Steps: - create a stage from "To-Do" app - reload the page Actual result: - stage disappear Expected result: - stage is shown as personal stage opw-4637169 Forward-Port-Of: odoo/odoo#203057
Original PR description
Steps: - create a stage from "To-Do" app - reload the page Actual result: - stage disappear Expected result: - stage is shown as personal stage opw-4637169 Forward-Port-Of: odoo/odoo#203057
A new tag is necessary to calculate deductibles expenses associated to 190 AEAT report. It isn't a percent tax, it's a new tag to can set it in move lines and calculate this box from 190 AEAT report. 190 AEAT report (190 AEAT) isn't now included in Odoo, but it could be added in the future. Meanwhile the tax can be used in oca module `l10n_es_aeat_mod_190' or you can do a filter for this tax and fill in the report manually. https://sede.agenciatributaria.gob.es/static_files/Sede/Disenyo_reg
Original PR description
A new tag is necessary to calculate deductibles expenses associated to 190 AEAT report. It isn't a percent tax, it's a new tag to can set it in move lines and calculate this box from 190 AEAT report. 190 AEAT report (190 AEAT) isn't now included in Odoo, but it could be added in the future. Meanwhile the tax can be used in oca module `l10n_es_aeat_mod_190' or you can do a filter for this tax and fill in the report manually. https://sede.agenciatributaria.gob.es/static_files/Sede/Disenyo_registro/DR_100_199/archivos_24/DISENOS_LOGICOS_190-2024.pdf https://sede.agenciatributaria.gob.es/static_files/Sede/Procedimiento_ayuda/GI10/Instrucciones/instr_mod190_es_es.pdf @moduon MT-8853 @rafaelbn @etobella @pedrobaeza @jco-odoo @chklop --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#200338 Forward-Port-Of: odoo/odoo#198546
Steps to reproduce: - Access with the demo user - Open Timesheet dashboard - Switch to list view Issue: Access error will raise Since commit https://github.com/odoo/odoo/commit/0258a627addf678d2c9b66bd8ee6752905fbac8f Readonly account users have now read access to analytic account lines. However, when sale_timesheet is installed, in the lowest access right it is possible to see only the own timesheets, so the rule needed to be limited as it occurs with Billing users. Forward-
Original PR description
Steps to reproduce: - Access with the demo user - Open Timesheet dashboard - Switch to list view Issue: Access error will raise Since commit https://github.com/odoo/odoo/commit/0258a627addf678d2c9b66bd8ee6752905fbac8f Readonly account users have now read access to analytic account lines. However, when sale_timesheet is installed, in the lowest access right it is possible to see only the own timesheets, so the rule needed to be limited as it occurs with Billing users. Forward-Port-Of: odoo/odoo#203460
Steps to reproduce: - Create two products, both in AVCO cost method - Create another product with a standard_price of 100 - Create a bom to produce an AVCO product and has the other one as byproduct. Also use the last one as component - Create a MO for 1 unit of that bom and produce it - Unbuild the MO Issue: The valuation layer created for the byproduct in the unbuild will use the value of the main product of the MO instead of its counterpart. opw-4623337 --- I confirm I have si
Original PR description
Steps to reproduce: - Create two products, both in AVCO cost method - Create another product with a standard_price of 100 - Create a bom to produce an AVCO product and has the other one as byproduct. Also use the last one as component - Create a MO for 1 unit of that bom and produce it - Unbuild the MO Issue: The valuation layer created for the byproduct in the unbuild will use the value of the main product of the MO instead of its counterpart. opw-4623337 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#201930 Forward-Port-Of: odoo/odoo#201627
Have an action with multiple views (eg form,kanban,list) When the action spawns on its first view, the feature worked well: there were no breadcrumbs. Click on the view switcher to another view type. Before this commit, the breadcrumbs appeared for that step on. After this commit, the breadcrumbs do not appear for the whole action. task-4583126 Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I
Original PR description
Have an action with multiple views (eg form,kanban,list) When the action spawns on its first view, the feature worked well: there were no breadcrumbs. Click on the view switcher to another view type. Before this commit, the breadcrumbs appeared for that step on. After this commit, the breadcrumbs do not appear for the whole action. task-4583126 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#203154 Forward-Port-Of: odoo/odoo#202712
Versions -------- - 17.0+ Steps ----- 1. Open website in French; 2. select a pricelist using CHF as currency; 3. add a product to the wishlist; 4. open wishlist in mobile view. Issue ----- With the increased amount of space the currency symbol needs, along with the translation of "Add", the view gets truncated. Cause ----- View was probably designed with only English & USD in mind. Solution -------- Same approach as commit ba2a0d7e33e8 took for the product configurator:
Original PR description
Versions -------- - 17.0+ Steps ----- 1. Open website in French; 2. select a pricelist using CHF as currency; 3. add a product to the wishlist; 4. open wishlist in mobile view. Issue ----- With the increased amount of space the currency symbol needs, along with the translation of "Add", the view gets truncated. Cause ----- View was probably designed with only English & USD in mind. Solution -------- Same approach as commit ba2a0d7e33e8 took for the product configurator: - In full view, display `<fa-shopping-cart> Add` - On mobile, display `<fa-shopping-cart>` opw-4624112 Forward-Port-Of: odoo/odoo#202650
Steps to reproduce: ------------------- - Switch to a Mexican company (or any company with cash basis option enabled). - Go to analytic plans and set at least one plan to mandatory. - Create a vendor bill, with a line having a vat (16% for example), and confirm the bill. - Click on credit note, try to confirm the credit note, it will show error. Cause ----- The cash basis entry created doesn't copy the display type of the original move lines, so the move lines of the taxes will get the
Original PR description
Steps to reproduce: ------------------- - Switch to a Mexican company (or any company with cash basis option enabled). - Go to analytic plans and set at least one plan to mandatory. - Create a vendor bill, with a line having a vat (16% for example), and confirm the bill. - Click on credit note, try to confirm the credit note, it will show error. Cause ----- The cash basis entry created doesn't copy the display type of the original move lines, so the move lines of the taxes will get the default display type (product). And this affects the function that applies the mandatory analytic plans, as it filters out lines that have display_type != product. Fix --- Add lines to copy the display_type for the move lines of the cash basis. opw-4579419 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#200389
Test introduced in 6a4c02e6 fails because the `attribute_line_ids` field is not visible by default in product forms. Fixes [runbot error 161456](https://runbot.odoo.com/odoo/runbot.build.error/161456) Forward-Port-Of: odoo/odoo#203225
Original PR description
Test introduced in 6a4c02e6 fails because the `attribute_line_ids` field is not visible by default in product forms. Fixes [runbot error 161456](https://runbot.odoo.com/odoo/runbot.build.error/161456) Forward-Port-Of: odoo/odoo#203225
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#203368 Forward-Port-Of: odoo/odoo#203117
Original PR description
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#203368 Forward-Port-Of: odoo/odoo#203117
Issue ----- For a German company, when confirming an invoice for an order the delivery date (of the invoice) gets set to the invoice date, even when one was manually provided beforehand. Steps to reproduce ----- - Install Sales, Inventory, Purchase and German localization - Switch to a German company - Create a product - Create a Sale Order for the product & confirm it - Validate the linked Delivery - Go back to the SO & create a (draft) Invoice - Set a delivery date & confirm the
Original PR description
Issue ----- For a German company, when confirming an invoice for an order the delivery date (of the invoice) gets set to the invoice date, even when one was manually provided beforehand. Steps to…
Issue ----- For a German company, when confirming an invoice for an order the delivery date (of the invoice) gets set to the invoice date, even when one was manually provided beforehand. Steps to reproduce ----- - Install Sales, Inventory, Purchase and German localization - Switch to a German company - Create a product - Create a Sale Order for the product & confirm it - Validate the linked Delivery - Go back to the SO & create a (draft) Invoice - Set a delivery date & confirm the Invoice -> The delivery date changed to the invoice date Cause ----- When posting, we set the invoice date if no value was provided. This triggers compute_delivery_date because it is overridden in the German localization to depend on the invoice_date field. The override is present because delivery_date is a legal requirement for the German localization. However, forcing a value for invoice_date is also handled in the _post override of the localization. We can thus change the compute into an onchange method (to keep suggesting a value to the user). This creates a problem of there being no value for delivery_date if invoice_date is also False. This is because _post sets delivery_date = invoice_date before calling the logic that forces a value for invoice_date. We should thus provide a fallback value. ----- Ticket: opw-4599301 Forward-Port-Of: odoo/odoo#203373 Forward-Port-Of: odoo/odoo#201731
Before this PR, live chats were sometimes displayed under the wrong category. Steps to reproduce: - Ensure you have one live chat pinned in the sidebar. - Go to the inbox, fold the live chat category. - Reload the page. - Open the live chat category. - The chat is displayed under the wrong category. Since [1], the t-key used in the side bar template is the index of the category which is not reliable. Change it to the id field which is also unique but more reliable. [1]: https://git
Original PR description
Before this PR, live chats were sometimes displayed under the wrong category. Steps to reproduce: - Ensure you have one live chat pinned in the sidebar. - Go to the inbox, fold the live chat category. - Reload the page. - Open the live chat category. - The chat is displayed under the wrong category. Since [1], the t-key used in the side bar template is the index of the category which is not reliable. Change it to the id field which is also unique but more reliable. [1]: https://github.com/odoo/odoo/pull/203150  Forward-Port-Of: odoo/odoo#203416
Before this change, if a jsonrpc handler was successful but returned the value `None` the dispatcher would return a response object containing just the `jsonrpc` and `id` keys. This is an invalid response according to [JSON-RPC 2.0 Specification section 5 "Response Object"][jsonrpc-response]: > Either the result member or error member MUST be included [...] [jsonrpc-response]: https://www.jsonrpc.org/specification#response_object Forward-Port-Of: odoo/odoo#203270
Original PR description
Before this change, if a jsonrpc handler was successful but returned the value `None` the dispatcher would return a response object containing just the `jsonrpc` and `id` keys. This is an invalid response according to [JSON-RPC 2.0 Specification section 5 "Response Object"][jsonrpc-response]: > Either the result member or error member MUST be included [...] [jsonrpc-response]: https://www.jsonrpc.org/specification#response_object Forward-Port-Of: odoo/odoo#203270
Remove empty core file. The file was introduced by mistake in another forwardport Forward-Port-Of: odoo/odoo#202520
Original PR description
Remove empty core file. The file was introduced by mistake in another forwardport Forward-Port-Of: odoo/odoo#202520
- Adjusting fetchmail_server behavior to read specific fuel taxes from vendor bills, which can be extended for other taxes. - Adding the functionality of manually uploading CL EDI documents to account_move. Unrecognized documents are parsed as vendor bills. - Adjusting fetchmail_server methods to work with manual upload process. - Adding relevant tests for specific fuel taxes. task-4359365 Forward-Port-Of: odoo/enterprise#82198 Forward-Port-Of: odoo/enterprise#76630
Original PR description
- Adjusting fetchmail_server behavior to read specific fuel taxes from vendor bills, which can be extended for other taxes. - Adding the functionality of manually uploading CL EDI documents to account_move. Unrecognized documents are parsed as vendor bills. - Adjusting fetchmail_server methods to work with manual upload process. - Adding relevant tests for specific fuel taxes. task-4359365 Forward-Port-Of: odoo/enterprise#82198 Forward-Port-Of: odoo/enterprise#76630
### Steps to reproduce: - Accounting > Dashboard > Bank > Import Statement - Select a QIF file with a transaction having a total of 0 - Traceback ### Cause: The QIF file parser (`_parse_bank_statement_file`) does not return `unique_import_id` for transactions. In [`_create_bank_statements`](https://github.com/odoo/enterprise/blob/316b7bdc7781d5d72d91430f74de35fdafb0bf84/account_bank_statement_import/models/account_journal.py#L261-L269) when the amount is 0, the code tries to read `line_va
Original PR description
### Steps to reproduce: - Accounting > Dashboard > Bank > Import Statement - Select a QIF file with a transaction having a total of 0 - Traceback ### Cause: The QIF file parser (`_parse_bank_statement_file`) does not return `unique_import_id` for transactions. In [`_create_bank_statements`](https://github.com/odoo/enterprise/blob/316b7bdc7781d5d72d91430f74de35fdafb0bf84/account_bank_statement_import/models/account_journal.py#L261-L269) when the amount is 0, the code tries to read `line_vals['unique_import_id']` so an error is raised. ### Solution: The read is done to store the skipped lines in `ignored_statement_lines_import_ids`. This variable is then only used to get the number of skipped lines. https://github.com/odoo/enterprise/blob/316b7bdc7781d5d72d91430f74de35fdafb0bf84/account_bank_statement_import/models/account_journal.py#L291 The fix is to increment a counter instead of storing the lines. opw-4656142 Forward-Port-Of: odoo/enterprise#81944
When drag-and-dropping a CSV in the bank journal, the statements lines don't get reconciled directly while they should (if a reco model allows it). Users have to wait for the auto-reconcile cron to run. After the statement and its lines have been created through import, we now trigger the cron computation. Ticket [link](https://www.odoo.com/odoo/project/967/tasks/4545446) opw-4545446 Forward-Port-Of: odoo/enterprise#81958 Forward-Port-Of: odoo/enterprise#81587
Original PR description
When drag-and-dropping a CSV in the bank journal, the statements lines don't get reconciled directly while they should (if a reco model allows it). Users have to wait for the auto-reconcile cron to run. After the statement and its lines have been created through import, we now trigger the cron computation. Ticket [link](https://www.odoo.com/odoo/project/967/tasks/4545446) opw-4545446 Forward-Port-Of: odoo/enterprise#81958 Forward-Port-Of: odoo/enterprise#81587
In the bank reconciliation widget, when the transaction_details of bank statement lines get formatted by calling json.loads(), an error will show if some strings contain control characters (`\n`, `\t`, `\r`, `\0`). Adding the parameter `strict=False` to the call to json.loads would allow such characters to be kept by the formatting. In the view, they will not be used (any of those 4 chars will simply be considered a whitespace). One could add `style="white-space: pre-line"` as an attribut
Original PR description
In the bank reconciliation widget, when the transaction_details of bank statement lines get formatted by calling json.loads(), an error will show if some strings contain control characters (`\n`, `\t`, `\r`, `\0`). Adding the parameter `strict=False` to the call to json.loads would allow such characters to be kept by the formatting. In the view, they will not be used (any of those 4 chars will simply be considered a whitespace). One could add `style="white-space: pre-line"` as an attribute to the span tag of those element, but this is not necessary. This PR simply aims to patch the already existing data in databases. opw-4480250 Forward-Port-Of: odoo/enterprise#78684
The test requires `stock_dropshipping` to be installed to have sense, but the condition set to avoid the test running without it was insufficient. Since it was only checking on a string in the database, it wouldn't raise a ValueError, but just not find any matching record, thus running the test even without the module installed. Forward-Port-Of: odoo/enterprise#81981
Original PR description
The test requires `stock_dropshipping` to be installed to have sense, but the condition set to avoid the test running without it was insufficient. Since it was only checking on a string in the database, it wouldn't raise a ValueError, but just not find any matching record, thus running the test even without the module installed. Forward-Port-Of: odoo/enterprise#81981