Thursday, March 20, 2025
15 changes · 17.0
Resolved issues and error corrections
This fix prevents the invoice delivery date from being automatically recalculated after a user manually changes it. It helps businesses keep the intended delivery and taxable supply dates accurate, especially in Czech localization workflows involving sales deliveries and invoices.
Original PR description
With `l10n_cz` and `sale_stock` installed: * create a SO with a deliverable line * confirm * validate the delivery for the SO * create the invoice for the SO * set the payment term for Immediate Payment * update the delivery date and the taxable supply date to different values Issue: the delivery date is recomputed even though we just set it. opw-4462810
This fixes an issue where promotion or reward line quantities could be edited when the event booth sales module was installed. Reward quantities now remain read-only as intended, helping prevent accidental changes to discounts or promotional offers on sales orders.
Original PR description
Steps to reproduce: - Install event_booth_sale module - Create SO. - Add product and apply any reward or promotion. - Try changing the quantity of the reward line. Issue: - Quantity of reward line is editable when event_booth_sale module is installed. Cause: - The readonly attribute was completely overridden instead of adding condition. - As a result, the quantity is only set to readonly when is_event_booth is True. Fix: - Update the readonly attribute by including the is_event_booth condition using the 'or' operator, ensuring that quantity of reward lines remain readonly as intended. opw-4585797 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The Manufacturing app updates the product form's Manufactured smart button so it displays more clearly and consistently. This minor UI fix helps users better understand manufacturing-related product information at a glance.
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
Invoice reports for Mexican electronic invoicing now show the generic VAT when an invoice is marked as CFDI to public. This keeps the printed report consistent with the generated XML for both national and international customers.
Original PR description
Change VAT in invoice report if the invoice is set as cfdi to public to use a generic vat for both national and international clients to have more coherence with the xml that is generated for the invoice. task-4588311
This fix ensures Helpdesk team forms correctly honor existing rules that can stop a record from being saved. It prevents Helpdesk from bypassing or breaking broader form save behavior, reducing the risk of incorrect or unintended saves.
Original PR description
As defined in https://github.com/odoo/odoo/blob/17.0/addons/web/static/src/views/form/form_controller.js#L322 A record save in Form Controllers can be prevented when `onWillSaveRecord` returns `false`. But since the override in `HelpdeskTeamController` did not consider `super`, it would always break such a flow.
Documentation and clarification updates
This pull request updates Odoo's contributor license agreement records for SerpentCS. It is an administrative legal documentation change that helps ensure contribution rights are properly recorded and does not affect product functionality.
Original PR description
Description of the issue/feature this PR addresses: Odoo Individual Contributor License Agreement Current behavior before PR: Odoo Individual Contributor License Agreement Desired behavior after PR is merged: Odoo Individual Contributor License Agreement --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Miscellaneous changes
This reverts commit 43041dfd66e984978ad743c4f720e580f82bd1aa. It looks like Google and Microsoft flag custom headers as Spam. opw-4439329 opw-4458057 opw-4471333 opw-4492740 opw-4501103 opw-4503823 opw-4507802 opw-4517232 opw-4523135 opw-4529415 opw-4547995 opw-4556927 opw-4557754 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 a
Original PR description
This reverts commit 43041dfd66e984978ad743c4f720e580f82bd1aa. It looks like Google and Microsoft flag custom headers as Spam. opw-4439329 opw-4458057 opw-4471333 opw-4492740 opw-4501103 opw-4503823 opw-4507802 opw-4517232 opw-4523135 opw-4529415 opw-4547995 opw-4556927 opw-4557754 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#200193
Nothing prevents from creating templates and composers on non thread models. However most necessary code relies on mail.thread. Here we move code from mail.thread directly to BaseModel. For most business models it does not change anything. For some side models it allows / fixes usage of SMS composer, allowing to dynamically find numbers / partners, ... One notable use case that triggered this PR is sending of SMS to users using their work phone number, or through their partner. Either
Original PR description
Nothing prevents from creating templates and composers on non thread models. However most necessary code relies on mail.thread. Here we move code from mail.thread directly to BaseModel. For most…
Nothing prevents from creating templates and composers on non thread models. However most necessary code relies on mail.thread. Here we move code from mail.thread directly to BaseModel. For most business models it does not change anything. For some side models it allows / fixes usage of SMS composer, allowing to dynamically find numbers / partners, ... One notable use case that triggered this PR is sending of SMS to users using their work phone number, or through their partner. Either we hack user model, either we provide a generic fix. Note that in current master (18.2+) most 'mail' generic features are supported on non-thread models (template usage and sending, mailing using composer, ...). SMS is still thread-specific while phone capabilities have already been moved to generic code. We therefore continue towards generic simple mail / sms usage on business records, while advanced features (followers, logs, direct post using SMS type) require thread-enabled models. Task-4113190 sentry-4681535519 Forward-Port-Of: odoo/odoo#200650
If the target url had duplicate keys in its query params, the redirect url would only contain the key-value pair corresponding to the first occurrence of the key. This is incorrect, as a shop url typically contains multiple attribute values in its query params. The issue was caused by an accidental cast from MultiDict to Dict when handling the query params. opw-4466925 Forward-Port-Of: odoo/odoo#199570
Original PR description
If the target url had duplicate keys in its query params, the redirect url would only contain the key-value pair corresponding to the first occurrence of the key. This is incorrect, as a shop url typically contains multiple attribute values in its query params. The issue was caused by an accidental cast from MultiDict to Dict when handling the query params. opw-4466925 Forward-Port-Of: odoo/odoo#199570
A problem occurs when deleting a cash rounding method linked to a Point Of Sale configuration. After deleting the cash rounding, the following error message appears: “The cash rounding strategy of the point of sale Shop must be: 'Add a rounding line'.” because the rounding method is empty. The main issue arises when the cash rounding method is deleted while the POS session is open: it prevents the session from closing or modifying the cash rounding, locking the user out. Steps to reprod
Original PR description
A problem occurs when deleting a cash rounding method linked to a Point Of Sale configuration. After deleting the cash rounding, the following error message appears: “The cash rounding strategy of the point of sale Shop must be: 'Add a rounding line'.” because the rounding method is empty. The main issue arises when the cash rounding method is deleted while the POS session is open: it prevents the session from closing or modifying the cash rounding, locking the user out. Steps to reproduce: - Add a cash rounding for a POS - Open the POS session - Delete the cash rounding - Try to enter the POS - Error occurs This fix ensures that the deleted cash rounding is no longer linked to any POS configuration. opw-4651976 Forward-Port-Of: odoo/odoo#202477
Upgrade scripts are run only when there is an update of the module version. This is not flexible enough. After a major upgrade developers need to upgrade their custom modules. Unfortunately the tools in `upgrade-util` repo that modify modules (`merge_module`, `rename_module`, ...) should be done before loading base module. The latter is already upgraded after a major upgrade thus no upgrade scripts are run for it. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com
Original PR description
Upgrade scripts are run only when there is an update of the module version. This is not flexible enough. After a major upgrade developers need to upgrade their custom modules. Unfortunately the tools in `upgrade-util` repo that modify modules (`merge_module`, `rename_module`, ...) should be done before loading base module. The latter is already upgraded after a major upgrade thus no upgrade scripts are run for it. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#202014
In #195395, the following test suite should first check if the global_result is already stopped --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#201800
Original PR description
In #195395, the following test suite should first check if the global_result is already stopped --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#201800
Description of the issue/feature this PR addresses: This commit addresses inaccurate calculation of statistics in surveys. The survey fields `answer_score_avg` and `success_ratio` are affected. Current behavior before PR: These are currently using the number of completed surveys as the total number of surveys, but they are gathering data from all surveys, completed or not. This results in broken statistics when there are in progress or incomplete surveys. The values become too high, in
Original PR description
Description of the issue/feature this PR addresses: This commit addresses inaccurate calculation of statistics in surveys. The survey fields `answer_score_avg` and `success_ratio` are affected. Current behavior before PR: These are currently using the number of completed surveys as the total number of surveys, but they are gathering data from all surveys, completed or not. This results in broken statistics when there are in progress or incomplete surveys. The values become too high, including `success_ratio` being above 100%! Desired behavior after PR is merged: The proposed solution is simply to consider all answers to the survey so that the statistics can accurately reflect the scores across all initiated surveys. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#197849
Mercado Pago requires the X-platform-id header to be passed in all requests to their platform to keep track of the amount of odoo customers that exist. This key is not secret and perfectly fine to be committed in this repo without worry. task-4628319 Forward-Port-Of: odoo/odoo#200864
Original PR description
Mercado Pago requires the X-platform-id header to be passed in all requests to their platform to keep track of the amount of odoo customers that exist. This key is not secret and perfectly fine to be committed in this repo without worry. task-4628319 Forward-Port-Of: odoo/odoo#200864
This commit removes the demo data for portal user as a portal user cannot be assigned to tasks. taskid:3703637 Forward-Port-Of: odoo/enterprise#56588
Original PR description
This commit removes the demo data for portal user as a portal user cannot be assigned to tasks. taskid:3703637 Forward-Port-Of: odoo/enterprise#56588