Thursday, August 22, 2024
36 changes · saas-17.2
Enhancements to existing features
The planning time off app's automated tests were updated to use Odoo's newer testing framework. This is an internal quality improvement that helps keep future changes reliable without changing day-to-day user workflows.
Original PR description
Purpose this PR: This PR aims to convert QUnit tests which rely on mail/test_utils to hoot. Part of task:3818666
Resolved issues and error corrections
This change makes an automated check for document folder access rights more reliable when switching between companies. It helps prevent random test failures, supporting smoother maintenance without changing how users work with Documents.
Original PR description
Added an extra trigger, that will check that the page has properly changed from one company to another, and to let this page to load before finishing the tour.
Miscellaneous changes
Duplicating a pricelist would copy over the price rules, but not the time-based rules. Adding copy to this field allows that to work. opw-4088788 Forward-Port-Of: odoo/enterprise#68426 Forward-Port-Of: odoo/enterprise#68066
Original PR description
Duplicating a pricelist would copy over the price rules, but not the time-based rules. Adding copy to this field allows that to work. opw-4088788 Forward-Port-Of: odoo/enterprise#68426 Forward-Port-Of: odoo/enterprise#68066
Users no longer see an error after leaving chat or WhatsApp discussion channels. The system now safely stops processing channel updates when the user's channel membership has already been removed, improving reliability during normal messaging use.
Original PR description
Issue --> Traceback appears after a user leaves a discuss channel of type `chat` or `whatsapp`. Cause --> `action_unfollow` unlinks the channel member from the `discuss.channel.member` table. When handling new message notification to show "_ has left the channel", method `channel_fetched` attempts to execute a query with an empty `discuss.channel.member` record, which raises a Postgres type mismatch error (`integer` vs ` boolean`) when setting `fetched_message_id`. Solution --> Check if the channel member exists, if not, then exit the method `channel_fetched`. opw-4069813
This change adjusts an internal performance test so it produces consistent results on the stable version. It helps reduce false failures in automated checks, supporting smoother maintenance without changing customer-facing behavior.
Original PR description
Method was refactored in master to get more consistent results. Stable can just get a temporary extra query. runbot-70182
Some pot files were out of date Some modules weren't translated Note that dead pot files (and their associated .po files) were not removed in this PR because 🦥 and removing them doesn't add any value
Original PR description
Some pot files were out of date Some modules weren't translated Note that dead pot files (and their associated .po files) were not removed in this PR because 🦥 and removing them doesn't add any value
### Steps to reproduce: - Create a fiscal position that converts 19% tax-inclusive into 19% tax-exclusive. - Create a product with 19% tax inclusive. - Create a contact and assign the above fiscal position. - Navigate to a field service project and add an employee with a tax-included rate in the employee mapping. - Create a new field service task for the customer with the assigned fiscal position and add one hour for the employee in the mapping. - Add the product with 19% tax included to
Original PR description
### Steps to reproduce: - Create a fiscal position that converts 19% tax-inclusive into 19% tax-exclusive. - Create a product with 19% tax inclusive. - Create a contact and assign the above fiscal…
### Steps to reproduce: - Create a fiscal position that converts 19% tax-inclusive into 19% tax-exclusive. - Create a product with 19% tax inclusive. - Create a contact and assign the above fiscal position. - Navigate to a field service project and add an employee with a tax-included rate in the employee mapping. - Create a new field service task for the customer with the assigned fiscal position and add one hour for the employee in the mapping. - Add the product with 19% tax included to the task. - Mark the task as done. #### Current Behavior: - The product unit price is calculated excluding tax. - The service unit price remains calculated as tax-included. #### Expected Behavior: Both product and service unit prices should be calculated consistently as tax-excluded when the tax is set to 19% exclusive. ### Cause of the issue: When creating a new sale order line if the unit price is not specified "product_id_change" is called which set the correct unit price after applying the fpos by calling `_update_taxes` on the line: https://github.com/odoo/odoo/blob/a09e0c651ea54faa3b41e6012b6d62f143519f07/addons/sale/models/sale_order_line.py#L617-L628 But in our case we are setting the `unit_price` to the employee rate here: https://github.com/odoo/enterprise/blob/e23e01337faeec652d400618cf14aaf3d6d47ef2/industry_fsm_sale/models/project_task.py#L408-L412 and the taxes are not taken into account. ### Fix: The unit price of the employee rate should be updated to reflect the changed taxes from fpos. However, since `_update_taxes` relies on the unit price of the product rather than on the one given to the line: https://github.com/odoo/odoo/blob/a09e0c651ea54faa3b41e6012b6d62f143519f07/addons/sale/models/sale_order_line.py#L685 we can not call the `_update_taxes` directly to update the sol. opw-3853196 Co-authored-by: waha <waha@odoo.com> Forward-Port-Of: odoo/enterprise#67730
Purpose: ------- Currently, clicking several times quickly on the caret to unfold an article in the sidebar may throw an error and show the child articles several times in the sidebar. This commit fixes the issue by preventing to make a new request to load the child articles if one has already been made. Task-4099133 Forward-Port-Of: odoo/enterprise#68013
Original PR description
Purpose: ------- Currently, clicking several times quickly on the caret to unfold an article in the sidebar may throw an error and show the child articles several times in the sidebar. This commit fixes the issue by preventing to make a new request to load the child articles if one has already been made. Task-4099133 Forward-Port-Of: odoo/enterprise#68013
**Before this PR:** The style of some knowledge templates was broken when attempting to export or print, lacking proper formatting as per the templated structure. It seemed like there was an issue with the template's responsiveness. **After this PR:** Now, the issue has been addressed, and now the template is appropriately formatted and styled, ensuring correctness during export. **Task**-3664950 Forward-Port-Of: odoo/enterprise#56221
Original PR description
**Before this PR:** The style of some knowledge templates was broken when attempting to export or print, lacking proper formatting as per the templated structure. It seemed like there was an issue with the template's responsiveness. **After this PR:** Now, the issue has been addressed, and now the template is appropriately formatted and styled, ensuring correctness during export. **Task**-3664950 Forward-Port-Of: odoo/enterprise#56221
Commit fixes appointment description styling task-3446959 Forward-Port-Of: odoo/enterprise#65897
Original PR description
Commit fixes appointment description styling task-3446959 Forward-Port-Of: odoo/enterprise#65897
Steps to reproduce: - Create a project and a task - Attach a file to the task - Share the task with Joel Willis (portal user) - DO NOT share the project with him - Log in as Joel Willis (portal user) - Click Tasks > '1 Document' button next to project name This redirects back to portal home menu. This happens because the button leads to projects/id/documents, which Joel Willis has not been granted access to. The expectation would be a redirection to tasks/id/documents instead, as por
Original PR description
Steps to reproduce: - Create a project and a task - Attach a file to the task - Share the task with Joel Willis (portal user) - DO NOT share the project with him - Log in as Joel Willis (portal user) - Click Tasks > '1 Document' button next to project name This redirects back to portal home menu. This happens because the button leads to projects/id/documents, which Joel Willis has not been granted access to. The expectation would be a redirection to tasks/id/documents instead, as portal > projects handles this use case, and we curently do not have a way to share documents attached to a specific task through portal. opw-4009258 Forward-Port-Of: odoo/enterprise#67849
Purpose of this PR: CoA Report trial balance test adjusted to accommodate for the new account, 173.01 Deferred expenses Community PR that adds new account: #176681 opw-4105993 Forward-Port-Of: odoo/enterprise#68578
Original PR description
Purpose of this PR: CoA Report trial balance test adjusted to accommodate for the new account, 173.01 Deferred expenses Community PR that adds new account: #176681 opw-4105993 Forward-Port-Of: odoo/enterprise#68578
Version: 17.0+ Current behavior: The default account for Deferred Expense on res.config.setting is "inappropriate". A new account should be established according to account codes by SAT mexico, http://omawww.sat.gob.mx/fichas_tematicas/buzon_tributario/Documents/codigo_agrupador.pdf Purpose of this PR: To introduce an appropriate account to be used for Deferred expenses and automatically selected upon l10n_mx installation. Steps to reproduce on Runbot: 1) install l10n_mx 2) Accoun
Original PR description
Version: 17.0+ Current behavior: The default account for Deferred Expense on res.config.setting is "inappropriate". A new account should be established according to account codes by SAT mexico, http://omawww.sat.gob.mx/fichas_tematicas/buzon_tributario/Documents/codigo_agrupador.pdf Purpose of this PR: To introduce an appropriate account to be used for Deferred expenses and automatically selected upon l10n_mx installation. Steps to reproduce on Runbot: 1) install l10n_mx 2) Accounting Settings > incorrect account selected for Deferred Expense opw-4105993 Forward-Port-Of: odoo/odoo#176681
Improving tax scopes and EC sales tax report tags for `l10n_at` Old PR: odoo/odoo#171606 Info: @wt-io-it Ticket link: https://www.odoo.com/odoo/project.task/3916300 opw-3916300 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#177074 Forward-Port-Of: odoo/odoo#171702
Original PR description
Improving tax scopes and EC sales tax report tags for `l10n_at` Old PR: odoo/odoo#171606 Info: @wt-io-it Ticket link: https://www.odoo.com/odoo/project.task/3916300 opw-3916300 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#177074 Forward-Port-Of: odoo/odoo#171702
This feature is not available in mobile OS at the time of this commit [1]: - Safari on iOS 17.5 - Chrome for Android 127 - Firefox for Android 127 Therefore the button should not be shown, otherwise it mistakenly gives the impression that user could make it work by enabling screen-sharing permission which is not possible on mobile OS. opw-4108833 [1]: https://caniuse.com/mdn-api_mediadevices_getdisplaymedia <img width="333" alt="Screenshot 2024-08-21 at 13 26 13" src="https://gi
Original PR description
This feature is not available in mobile OS at the time of this commit [1]: - Safari on iOS 17.5 - Chrome for Android 127 - Firefox for Android 127 Therefore the button should not be shown, otherwise it mistakenly gives the impression that user could make it work by enabling screen-sharing permission which is not possible on mobile OS. opw-4108833 [1]: https://caniuse.com/mdn-api_mediadevices_getdisplaymedia <img width="333" alt="Screenshot 2024-08-21 at 13 26 13" src="https://github.com/user-attachments/assets/ead3281d-2ef4-412e-8d4f-edab4a85b1e9"> Forward-Port-Of: odoo/odoo#177372
Backport of odoo/odoo#166532 Forward-Port-Of: odoo/odoo#177090 Forward-Port-Of: odoo/odoo#177052
Original PR description
Backport of odoo/odoo#166532 Forward-Port-Of: odoo/odoo#177090 Forward-Port-Of: odoo/odoo#177052
A Factur-X XML generated in Germany should not falsely claim to be compliant to the KoSIT XRechnung. Forward-Port-Of: odoo/odoo#177330
Original PR description
A Factur-X XML generated in Germany should not falsely claim to be compliant to the KoSIT XRechnung. Forward-Port-Of: odoo/odoo#177330
Ticket: 1239 Adhoc-task: 41734 Description of the issue/feature this PR addresses: This task was created to modify the demo data for Uruguay, to avoid using real partner information. 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#176807
Original PR description
Ticket: 1239 Adhoc-task: 41734 Description of the issue/feature this PR addresses: This task was created to modify the demo data for Uruguay, to avoid using real partner information. 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#176807
Simple patch that prevent the prefetch of the oauth token Forward-Port-Of: odoo/odoo#177259
Original PR description
Simple patch that prevent the prefetch of the oauth token Forward-Port-Of: odoo/odoo#177259
Steps to reproduce: - Open website menu editor - Add a child menu to a menu - Delete the parent menu - Save Old behavior: a traceback appears New behavior: no traceback, parent and children menus are correctly deleted. This commit fixes the issue by properly deleting children menus recursively before deleting the parent. opw-4119441 Forward-Port-Of: odoo/odoo#177243
Original PR description
Steps to reproduce: - Open website menu editor - Add a child menu to a menu - Delete the parent menu - Save Old behavior: a traceback appears New behavior: no traceback, parent and children menus are correctly deleted. This commit fixes the issue by properly deleting children menus recursively before deleting the parent. opw-4119441 Forward-Port-Of: odoo/odoo#177243
Steps to reproduce: - Install module 'France - Adding Mandatory Invoice Mentions' - Switch to FR company - Contacts > Create french company - Sales & Purchase tab > set SIRET value - Create an invoice for this company > Print it The SIRET number does not show up anywhere on the invoice, despite the conditions being met. The SIRET number has been mandatory since July 1st 2024 in France This sometimes happens because the xpath only edits one of the 3 possible address tags added in 16.
Original PR description
Steps to reproduce: - Install module 'France - Adding Mandatory Invoice Mentions' - Switch to FR company - Contacts > Create french company - Sales & Purchase tab > set SIRET value - Create an invoice for this company > Print it The SIRET number does not show up anywhere on the invoice, despite the conditions being met. The SIRET number has been mandatory since July 1st 2024 in France This sometimes happens because the xpath only edits one of the 3 possible address tags added in 16.0. There is no need to edit the margin because the address already has mb-0 in its classes. opw-3865644 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#177060
Steps to reproduce the bug: - Enable by-porduct option in manufacturing settings - Create a storable product “P1” with a BoM: - Components: C1 - by-product: C2 tracked by serial number - Create a manufacturing order (MO) to produce one unit of P1. - Confirm the MO. - Click on the detailed operation to select the serial number for C2. Problem: the field "lot_id" should be displayed instead of "lot_name". because we should be able to create and use existing SN with byproduct mov
Original PR description
Steps to reproduce the bug: - Enable by-porduct option in manufacturing settings - Create a storable product “P1” with a BoM: - Components: C1 - by-product: C2 tracked by serial number - Create a manufacturing order (MO) to produce one unit of P1. - Confirm the MO. - Click on the detailed operation to select the serial number for C2. Problem: the field "lot_id" should be displayed instead of "lot_name". because we should be able to create and use existing SN with byproduct moves. opw-[4113887](https://www.odoo.com/web#id=4113887&view_type=form&model=project.task) Forward-Port-Of: odoo/odoo#177361 Forward-Port-Of: odoo/odoo#177061
This commit restores the context passing that was lost in the rework of `calendar.event` quick create #114827. Current behavior before PR: Action context is not passed to the `calendar.event` form view when accessed via the calendar popover `View` button. The `New` button above the calendar view passes the context as expected. For example: this button opens the calendar view but the keys `example_context`, `active_id` and `active_model` are not available in the context when an existing cal
Original PR description
This commit restores the context passing that was lost in the rework of `calendar.event` quick create #114827.
Current behavior before PR:
Action context is not passed to the `calendar.event` form view when accessed via the calendar popover `View` button. The `New` button above the calendar view passes the context as expected.
For example: this button opens the calendar view but the keys `example_context`, `active_id` and `active_model` are not available in the context when an existing calendar event is then viewed in a form. `<button name="calendar.action_calendar_event" type="action" context="{'example_context': True}"/>`
Desired behavior after PR is merged:
Action context is available in the `calendar.event` form view when the form is accessed via the calendar popover form.
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#176896
Forward-Port-Of: odoo/odoo#176130### Steps to reproduce: - Activate developer mode - Go in Accounting > Configuration > Accounting > Account Groups - Create 4 account groups in a specific λ configuration, for example: ``` 2 \ 21 / \ 210 211 ``` - Go in Accounting > Reporting > Audit Reports > Trial Balance - In options, select "Hierarchy and Subtotals" to see the hierarchy - The hierarchy might be wrong or not, but each time recreating the 211 group, the hierarchy will switch between these two tre
Original PR description
### Steps to reproduce: - Activate developer mode - Go in Accounting > Configuration > Accounting > Account Groups - Create 4 account groups in a specific λ configuration, for example: ``` 2 \ 21 / \…
### Steps to reproduce:
- Activate developer mode
- Go in Accounting > Configuration > Accounting > Account Groups
- Create 4 account groups in a specific λ configuration, for example:
```
2
\
21
/ \
210 211
```
- Go in Accounting > Reporting > Audit Reports > Trial Balance
- In options, select "Hierarchy and Subtotals" to see the hierarchy
- The hierarchy might be wrong or not, but each time recreating the 211 group, the hierarchy will switch between these two trees:
```
2 2
\ / \
21 <--> 210 21
/ \ \
210 211 211
```
### Cause:
The way the `parent_id` field is computed is by doing a [SQL query](https://github.com/odoo/odoo/blob/5c39004a1e37b35a47ed95933060c0aa5dd83803/addons/account/models/account_account.py#L954C9-L975C33) that will:
1. retrieve all combinations of (parent group, child group) for each child, for example [(2, 210), (21, 210)]
2. sort them in decreasing order of parent code_prefix_start length, for example [(21, 210), (2, 210)]
3. select only the first one : [(21, 210)]
4. change the `parent_id` field of the child according to the values retrieved
But a [performance improvement](https://github.com/odoo/odoo/commit/82714afa463adda2b404b4dae81a27423880e499) was applied that only selected the combinations that had `child.parent_id IS DISTINCT FROM parent.id` to avoid updating if nothing changed. This caused the retrieve combinations at step 2 to only be [(2, 210)] in the example. So when updating it breaks the hierarchy.
### Solution:
Filter the records to be updated in the UPDATE.
opw-4066976
Forward-Port-Of: odoo/odoo#176945Before this commit, the user would get a UserError when multiple attachments are merged for export and one of them is corrupted. The error message did not contain information helping the user identify the problematic records. After this commit, the user will get a RedirectWarning stating the number of corrupted files and a link to a form view (if single) or a list view (if multiple) of problematic record(s). ### Example workflow: 1. Go to Accounting > Vendors > Bills. 2. Create a bill wi
Original PR description
Before this commit, the user would get a UserError when multiple attachments are merged for export and one of them is corrupted. The error message did not contain information helping the user…
Before this commit, the user would get a UserError when multiple attachments are merged for export and one of them is corrupted. The error message did not contain information helping the user identify the problematic records. After this commit, the user will get a RedirectWarning stating the number of corrupted files and a link to a form view (if single) or a list view (if multiple) of problematic record(s). ### Example workflow: 1. Go to Accounting > Vendors > Bills. 2. Create a bill with a corrupted attachment. 3. Select the corrupted bill amongst other bills with valid attachments. 4. Click on Print > Original Bills. 5. The error is: "Odoo is unable to merge the generated PDFs." ### Cause: Errors raised by instantiating a PdfFileReader of a corrupted file were handled with a UserError with a static error message. ### Solution: In `_merge_pdfs` method signature, add an optional callback to define the way errors are handled. The default callback reproduces the default behavior. In `_render_qweb_pdf`, a custom callback is defined to keep track of the corrupted streams and log them in the RedirectWarning popup. opw-4067992 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#177228 Forward-Port-Of: odoo/odoo#174701
Steps to reproduce the issue: ============================= - Install website and events - Go to events page and enable editor - Click on customize and enable sidebar - enable Follow us option - Select a social media icon and enable open in a new window option - Save - Click on the updated icon, it still opens in the same page => the changes aren't saved. Origin of the issue: ==================== The `target` attribute was ignored when saving and `arch_section`. Solution =======
Original PR description
Steps to reproduce the issue: ============================= - Install website and events - Go to events page and enable editor - Click on customize and enable sidebar - enable Follow us option - Select a social media icon and enable open in a new window option - Save - Click on the updated icon, it still opens in the same page => the changes aren't saved. Origin of the issue: ==================== The `target` attribute was ignored when saving and `arch_section`. Solution ======== Add `target` attribute to the allowed root attrs. opw-4077657 Forward-Port-Of: odoo/odoo#177269 Forward-Port-Of: odoo/odoo#177035
This PR aims at improving batch generation support in mail -- Add / Improve configuration parameters support for email queue Ease email queue configuration with better support of two parameters * 'mail.mail.queue.batch.size' which is the email queue size that will be used to search for outgoing emails (matching optional filters and IDs) and then given to 'send'; * 'mail.session.batch.size' which is the batch size of a given segment of email to send using a specific s
Original PR description
This PR aims at improving batch generation support in mail -- Add / Improve configuration parameters support for email queue Ease email queue configuration with better support of two parameters *…
This PR aims at improving batch generation support in mail
-- Add / Improve configuration parameters support for email queue
Ease email queue configuration with better support of two parameters
* 'mail.mail.queue.batch.size' which is the email queue size that will
be used to search for outgoing emails (matching optional filters and IDs)
and then given to 'send';
* 'mail.session.batch.size' which is the batch size of a given segment of
email to send using a specific server, used when splitting emails to send
based on configuration (see '_split_by_mail_configuration');
-- Better email queue usage for mail composer
Current situation
* post a message on a document
* emails are sent in the same transaction if less than 50 followers and
are postponed otherwise (using post-commit hook);
* emails are generated by batch of 50;
* use composer in mass mailing mode
* emails are always sent in the same transaction;
* emails are generated by batch of 500 (configurable using configuration
parameter "mail.batch_size");
What we want: mass mail mode should have the same kind of behavior and force
usage of email queue if number of recipients is more than a threshold, and
use the same parameter for emails generation batch.
Changes
* force_send threshold is now set to 100, and configurable using
"mail.mail.force.send.limit" configuration parameter. It is used in both
main flows: posting a message (and notifying followers), and sending a
mailing.
* emails generation in both flows is done by batches of 500, configurable
using "mail.batch_size" configuration parameter. For notification emails
it was done by batches of 50 but 500 seems acceptable, behaving like
the mail composer;
-- Performance
When possible create mails in batch, using configurable parameters when
iterating on large number of records.
Task-3768123: Mail: Configurable cron queue size
Task-3164278: Mail: Batch send: ensure limit, avoid force
Part of Task-3084943: Event: Improve communication scheduler scalability
Forward-Port-Of: odoo/odoo#177276
Forward-Port-Of: odoo/odoo#177046Currently, the editor uses the bootstrap grid system for the column layouts and the editor CSS rules changes the paddings and the margins of the columns. When the user prints a document, the columns can go one under the other but the paddings and margins set are still applied. As a result, the columns appear off-centered on printing devices. To fix that issue, we will scope the CSS rules that adjust the paddings and margins of the columns to the screen devices. This way, the rules won't be ap
Original PR description
Currently, the editor uses the bootstrap grid system for the column layouts and the editor CSS rules changes the paddings and the margins of the columns. When the user prints a document, the columns can go one under the other but the paddings and margins set are still applied. As a result, the columns appear off-centered on printing devices. To fix that issue, we will scope the CSS rules that adjust the paddings and margins of the columns to the screen devices. This way, the rules won't be applied when printing the document. task-3664950 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#168814
The technical refactor in [1] renamed the tax amount in currency from `amount_tax` to `tax_amount_currency`. However, in some instances, it was mistakenly renamed to `tax_amount`, including in the commit description. This commit corrects this minor oversight. [1]: https://github.com/odoo/odoo/commit/68fbdc96 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#177318
Original PR description
The technical refactor in [1] renamed the tax amount in currency from `amount_tax` to `tax_amount_currency`. However, in some instances, it was mistakenly renamed to `tax_amount`, including in the commit description. This commit corrects this minor oversight. [1]: https://github.com/odoo/odoo/commit/68fbdc96 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#177318
- Intall website_sale_product_configurator - Create a product A with price 3 999.00 € - Add an optional product on product A - Go to shop page - Go to product A - Add to cart - A modal popup appear - Finelize cart --> Issue the price send to datalayer is 3. Because "3 999,00" is send in the json, endead 3999.00. Co-Authored-By: "Louis (loti)" <loti@odoo.com> Forward-Port-Of: odoo/odoo#177387 Forward-Port-Of: odoo/odoo#167962
Original PR description
- Intall website_sale_product_configurator - Create a product A with price 3 999.00 € - Add an optional product on product A - Go to shop page - Go to product A - Add to cart - A modal popup appear - Finelize cart --> Issue the price send to datalayer is 3. Because "3 999,00" is send in the json, endead 3999.00. Co-Authored-By: "Louis (loti)" <loti@odoo.com> Forward-Port-Of: odoo/odoo#177387 Forward-Port-Of: odoo/odoo#167962
Issue ----- Changing the color of the product's ribbon to a custome one in eCommerce has no effect outside of the editor (after clicking "Save", the background color of the ribbon returns to the default one). Change ----- Since the bg-primary class is now set on the ribbon HTML at creation. https://github.com/odoo/odoo/blob/56fd8440707a0f3f2ba298f8bf016577ca08796b/addons/website_sale/static/src/js/website_sale.editor.js#L180 Remove the bg-primary class from the ribbon. opw-4069818
Original PR description
Issue ----- Changing the color of the product's ribbon to a custome one in eCommerce has no effect outside of the editor (after clicking "Save", the background color of the ribbon returns to the default one). Change ----- Since the bg-primary class is now set on the ribbon HTML at creation. https://github.com/odoo/odoo/blob/56fd8440707a0f3f2ba298f8bf016577ca08796b/addons/website_sale/static/src/js/website_sale.editor.js#L180 Remove the bg-primary class from the ribbon. opw-4069818 Forward-Port-Of: odoo/odoo#175687
Export routes ('/web/export/csv' and '/web/export/xlsx') are marked as read-only, but the _export_rows() can actually create ir_model_data rows in the database. If import-compatible export is enabled and you export a row without an external ID, you will get a traceback if the readonly replica feature is enabled. The fallback mechanism of the readonly transaction to retry the current request doesn't work because the `except Exception as exc` in export routes changes the exception type (=> trac
Original PR description
Export routes ('/web/export/csv' and '/web/export/xlsx') are marked as read-only, but the _export_rows() can actually create ir_model_data rows in the database. If import-compatible export is enabled and you export a row without an external ID, you will get a traceback if the readonly replica feature is enabled.
The fallback mechanism of the readonly transaction to retry the current request doesn't work because the `except Exception as exc` in export routes changes the exception type (=> traceback).
=> Remove the readonly flag from export routes.
Forward-Port-Of: odoo/odoo#177262Summary ----- Normally, in the load.py method, when there is an error in creating the recordset to be imported, the records are then created one by one. The following commit prevents this behavior in case of a failure to create the recordset in one go: https://github.com/odoo/odoo/pull/173094/commits/ced1ec251d361d8a3ca32ad51e8516668447ca0e. Steps to reproduce ----- Create a module that redefines the create method of the res.users model to throw an error if vals_list contains at least 2
Original PR description
Summary ----- Normally, in the load.py method, when there is an error in creating the recordset to be imported, the records are then created one by one. The following commit prevents this behavior in case of a failure to create the recordset in one go: https://github.com/odoo/odoo/pull/173094/commits/ced1ec251d361d8a3ca32ad51e8516668447ca0e. Steps to reproduce ----- Create a module that redefines the create method of the res.users model to throw an error if vals_list contains at least 2 elements. Import a file containing at least 2 users (by adding the suffix /web#model=res.users&action=import to the URL). Cause ----- The global error message has been logged since the commit cited in the summary. However, a rollback is performed if there are error messages. Fix ----- If we see that there are no errors when creating the records one by one, we then remove the logged error messages. opw-4102745 Forward-Port-Of: odoo/odoo#176901
Some pot files were out of date, at least 1 had a duplicate msgid in it Some modules weren't translated Note that dead pot files (and their associated .po files) were not removed in this PR because 🦥 and removing them doesn't add any value --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Original PR description
Some pot files were out of date, at least 1 had a duplicate msgid in it Some modules weren't translated Note that dead pot files (and their associated .po files) were not removed in this PR because 🦥 and removing them doesn't add any value --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This commit ensures that creating an invoice PDF always uses the invoice company paperformat. Invoice PDF could be generated in one of 2 ways (after clicking the invoice `send & print` button): 1. Non-cron: Either use a single invoice, or multiple invoices with the `download` option checked. 2. Cron: Create PDFs for multiple invoices with no `download` option. The 2 ways would generate differently styled PDFs if the default company had a different paperformat from that of the invoice com
Original PR description
This commit ensures that creating an invoice PDF always uses the invoice company paperformat. Invoice PDF could be generated in one of 2 ways (after clicking the invoice `send & print` button): 1. Non-cron: Either use a single invoice, or multiple invoices with the `download` option checked. 2. Cron: Create PDFs for multiple invoices with no `download` option. The 2 ways would generate differently styled PDFs if the default company had a different paperformat from that of the invoice company. This happened because the paperformat for cron-generated PDFs would be retrieved from the default company and not from the invoice company. task-4046055 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#176947
**Versions:** 17.0 **Steps to reproduce:** 1. Enable debug mode. 2. Go to the calendar. 3. Create an event using the quick create form. 4. Click on the Odoo meeting link. 5. Try to clear the meeting. **Issue:** A traceback occurs when attempting to clear a meeting in debug mode. **Cause:** The 'CopyButton' component expects the content to be a string but receives `false`. **Solution:** In the form controller, set `videocall_location` to an empty string instead of `false
Original PR description
**Versions:** 17.0 **Steps to reproduce:** 1. Enable debug mode. 2. Go to the calendar. 3. Create an event using the quick create form. 4. Click on the Odoo meeting link. 5. Try to clear the meeting. **Issue:** A traceback occurs when attempting to clear a meeting in debug mode. **Cause:** The 'CopyButton' component expects the content to be a string but receives `false`. **Solution:** In the form controller, set `videocall_location` to an empty string instead of `false` in `beforeExecuteActionButton`. Task-4091314 Forward-Port-Of: odoo/odoo#177447 Forward-Port-Of: odoo/odoo#175496