Daily updates from Odoo
Wednesday, March 19, 2025
11 changes · master
Enhancements to existing features
The Field Service Stock test flow was updated to match the new editable task list behavior. This helps ensure automated checks continue opening tasks correctly and reduces the risk of false test failures.
Original PR description
This commit adapts the trigger of a step inside `industry_fsm_stock_test_tour`, the one clicking on a row in the list view of tasks to open the form view of a task, because the list view is now editable and so the trigger should now click on the `View` button on the row. task-4624574
The sales order field that identifies where an extra quotation was created is now labeled as the source task. This helps users choose the right field when building filters or reports and reduces confusion with other task-related fields.
Original PR description
Before this commit, the task_id is confusing for the user who would like to create a custom filter to see the SO linked to a specific project, he does not know if he can use that field or `task_ids` field. Actually, `task_id` field is just used when `Extra Quotations` feature is enabled and the user creates a quotation inside a task form view, which means the field will just contain the task in which the quotation has been created and that's it. This commit changes the label of `task_id` to say the field will contain the **source task**. task-4623653
Marketing automation SMS flows now handle canceled SMS records that are already logged during message preparation. This keeps unsent or canceled SMS messages from cluttering customer conversations while preserving traceability for follow-up checks.
Original PR description
For mailing only, in order to not display most message not sent to the recipient in the chatter, while preparing message to be sent by sms (_prepare_mass_sms_values), we create directly a trace for canceled sms for further investigation (See PR: odoo/odoo#189622). So, we adapt the code of marketing automation accordingly to cope with the already created trace. Task-3264570
Resolved issues and error corrections
Updated spreadsheet tests to reflect a fix that lets pivot search handle values containing quotation marks correctly. This helps ensure users can find matching pivot data even when labels or values include quotes.
Original PR description
Adapt tests after a bug fix in o-spreadsheet repo Task: 4061068
Code cleanup and technical improvements
This update moves test-mode behavior out of shared system components and into the testing framework where it belongs. It reduces internal complexity and helps keep normal application code separate from test-only logic, with no expected impact on everyday users.
Original PR description
`Registry.enter_test_mode` has been removed in favor of a method on `TransactionCase`
Miscellaneous changes
- For a multicompany environment it is useful to be able to restrict the unique emission point and entity point per company. - The support of the commercial partner is needed for electronic and pdf documents. We use the commercial_partner_id for the receiver. - We place the main code and auxiliary code as in the other documents. The main code is the result of the barcode or default_code or N/A (is required field in xml) - We improve the creation of the sequence in a warehouse when the record
Original PR description
- For a multicompany environment it is useful to be able to restrict the unique emission point and entity point per company. - The support of the commercial partner is needed for electronic and pdf documents. We use the commercial_partner_id for the receiver. - We place the main code and auxiliary code as in the other documents. The main code is the result of the barcode or default_code or N/A (is required field in xml) - We improve the creation of the sequence in a warehouse when the record is not yet committed. - To generate the authorization number we use the start date of the delivery guide Forward-Port-Of: odoo/enterprise#80983 Forward-Port-Of: odoo/enterprise#77224
Steps to reproduce the issue: 1. Activate the Odoo Mexican Localization Reports module 2. In a Mexican company, create a new Account with 1 as code 3. Go to Trial Balance and download COA SAT (XML) 5. In the General Settings with developer mode active, Download XSD files 6. Go to Trial Balance and download COA SAT (XML) again 7. You get a UserError with an unclear message Explanation: The Mexican Chart of Accounts have clear rules regarding `account.account.code`. The only way to v
Original PR description
Steps to reproduce the issue: 1. Activate the Odoo Mexican Localization Reports module 2. In a Mexican company, create a new Account with 1 as code 3. Go to Trial Balance and download COA SAT (XML)…
Steps to reproduce the issue: 1. Activate the Odoo Mexican Localization Reports module 2. In a Mexican company, create a new Account with 1 as code 3. Go to Trial Balance and download COA SAT (XML) 5. In the General Settings with developer mode active, Download XSD files 6. Go to Trial Balance and download COA SAT (XML) again 7. You get a UserError with an unclear message Explanation: The Mexican Chart of Accounts have clear rules regarding `account.account.code`. The only way to verify those accounts is through the XSD files check, but they are not automatically downloaded and the error received with those files downloaded is not user friendly. Fix reasoning: Instead of regulating the code when downloading the XML. We'll add warnings on the Chart of Accounts to notify the user when a code is incorrect. To make the report error clearer to the user, we added a RedirectWarning that displays the accounts with faulty codes before generating the xml. opw-4287338 Forward-Port-Of: odoo/enterprise#81723 Forward-Port-Of: odoo/enterprise#73943
Tax lines are not created in cases where Odoo expects them to be $0 [1]. This is problematic for cases where tax is computed externally and the tax is not in fact $0. There is now no tax line to adjust to the right amount. To reproduce: 1. Configure Avatax 2. Configure the Discount product to have the "Non-taxable product" Avatax category 2. Create an invoice to Azure Interior 3. Select the Avatax fiscal position 3. Add 1 FURN_6667 with default unit price $295 4. Add 1 Discount with u
Original PR description
Tax lines are not created in cases where Odoo expects them to be $0 [1]. This is problematic for cases where tax is computed externally and the tax is not in fact $0. There is now no tax line to…
Tax lines are not created in cases where Odoo expects them to be $0 [1]. This is problematic for cases where tax is computed externally and the tax is not in fact $0. There is now no tax line to adjust to the right amount. To reproduce: 1. Configure Avatax 2. Configure the Discount product to have the "Non-taxable product" Avatax category 2. Create an invoice to Azure Interior 3. Select the Avatax fiscal position 3. Add 1 FURN_6667 with default unit price $295 4. Add 1 Discount with unit price -$295 5. Click "Compute Taxes" The invoice is fully discounted but $30.24 tax must still be paid. This is correct. It's reflected in the invoice total, but the tax lines are not in the journal items. `_set_external_taxes()` goes through the summary to set the right tax amounts, but cannot find the line. This solves the issue by using a new hook in accounting that prevents these $0 tax lines from being excluded. opw-4493544 ## PR note Alternative to https://github.com/odoo/enterprise/pull/80095. Forward-Port-Of: odoo/enterprise#81675 Forward-Port-Of: odoo/enterprise#80097
Versions -------- - 17.0+ Community PR: https://github.com/odoo/odoo/pull/201768 Steps ----- 1. Have a internal user with only Sales: Own Documents access; 2. assign the user to a subscription; 3. as admin, create an invoice for the subscription; 4. assign yoursel as salesman on the invoice; 5. confirm the invoice; 6. log in as the other user; 7. try to create an invoice for the subscription assigned to you. Issue ----- Access error. Cause ----- Unlike the the other `_c
Original PR description
Versions -------- - 17.0+ Community PR: https://github.com/odoo/odoo/pull/201768 Steps ----- 1. Have a internal user with only Sales: Own Documents access; 2. assign the user to a subscription; 3. as…
Versions -------- - 17.0+ Community PR: https://github.com/odoo/odoo/pull/201768 Steps ----- 1. Have a internal user with only Sales: Own Documents access; 2. assign the user to a subscription; 3. as admin, create an invoice for the subscription; 4. assign yoursel as salesman on the invoice; 5. confirm the invoice; 6. log in as the other user; 7. try to create an invoice for the subscription assigned to you. Issue ----- Access error. Cause ----- Unlike the the other `_compute_amount_*` methods of sale.order, `_compute_amount_invoiced` isn't computed with `sudo`. This isn't an issue when just using `sale`, as it's computed with only sale order fields, but if an override attempts to check `invoice_ids`, it will throw an error if it has an invoice you don't have access to. Solution -------- In `sale`: - Bring the compute method in line with other `_compute_amount_*` methods, add `compute_sudo=True` to the `amount_invoiced` field. In `sale_subscription`: - Add a test to prevent regression. opw-4554639 Forward-Port-Of: odoo/enterprise#81658 Forward-Port-Of: odoo/enterprise#81461
Description of the issue this commit addresses: A traceback is raised when importing some .cod files for bank transactions because the server tries to create a date element with a string that doesn't match the expected format. --- Steps to reproduce: 1. Install l10n_be_coda 2. Go to the accounting dashboard and import the file `02-minimal-test.cod` from the linked ticket. 3. A traceback is raised --- Desired behavior after this commit is merged: The file import doesn't rai
Original PR description
Description of the issue this commit addresses: A traceback is raised when importing some .cod files for bank transactions because the server tries to create a date element with a string that doesn't…
Description of the issue this commit addresses: A traceback is raised when importing some .cod files for bank transactions because the server tries to create a date element with a string that doesn't match the expected format. --- Steps to reproduce: 1. Install l10n_be_coda 2. Go to the accounting dashboard and import the file `02-minimal-test.cod` from the linked ticket. 3. A traceback is raised --- Desired behavior after this commit is merged: The file import doesn't raise a traceback. --- Note on the fix: The issue happened because in `_get_coda_file_statement()`, the date is expected to be on the index range 115-120 but the the decoding of the file in `_parse_bank_statement_file()` transformed a "€" in "Ôé¼" which moved the date to indexes 117-122. This wrong translation of encoding happened because cp850 was used - which doesn't support currency symbols - instead of utf_8 because the latter was stopped by a non matching regex that was missing the currency symbols. This commits includes currency symbols in the validating regex so that the most appropriate encoding is validated as often as possible. --- opw-4546281 Forward-Port-Of: odoo/enterprise#81329
In the point of sale environnement we want to be able to edit html field in a minimal way. So only core plugins are added to the html_editor. As we have a special assets environnement for the point_of_sale we can directly patch the main `htmlField` definition without impacting main assets of Odoo. Community: 198482 Forward-Port-Of: odoo/enterprise#79984 Forward-Port-Of: odoo/enterprise#79703
Original PR description
In the point of sale environnement we want to be able to edit html field in a minimal way. So only core plugins are added to the html_editor. As we have a special assets environnement for the point_of_sale we can directly patch the main `htmlField` definition without impacting main assets of Odoo. Community: 198482 Forward-Port-Of: odoo/enterprise#79984 Forward-Port-Of: odoo/enterprise#79703