Monday, December 16, 2024
19 changes · 18.0
Resolved issues and error corrections
This fixes an error that could occur in the accounting currency logic after a recent change. It helps keep accounting workflows stable by preventing an unexpected system failure in affected cases.
Original PR description
Fix an UnboundLocalError introduced by c440bb52d19b8dcec8b708509973c4095a577b34
The emoji picker now uses the intended background color so it appears correctly when dark theme is enabled. This fixes a visual inconsistency from a previous backport and keeps the picker easier to read without changing functionality.
Original PR description
Follow-up of https://github.com/odoo/odoo/pull/190586 Backport mistakenly removed the `.bg-view` on EmojiPicker rather than replacing it to `.bg-100`. As a result, the style of emoji picker is off in dark theme. White theme color is slightly off but the difference is barely visible, so this is a non-issue in white theme. This commit makes the correct intended change: replace `.bg-view` by `.bg-100`. Also in master the component PickerContent is no more, but in 18.0 we have to take into account for the overall bg-color. This commit also makes this change. Before <img width="307" alt="Screenshot 2024-12-16 at 12 48 09" src="https://github.com/user-attachments/assets/f4bc0a49-9e63-43c6-acb5-1fb2c41bb0fb" /> After <img width="306" alt="Screenshot 2024-12-16 at 12 48 36" src="https://github.com/user-attachments/assets/2b2ff197-e0f3-48bd-9830-9715142fbebe" />
Portal users can now create API keys without encountering an error after the related setting is enabled. This restores the expected self-service flow for customers who need API access.
Original PR description
Reproduce --- - tick "Customers can generate API Keys" in settings - login as portal user - Connection & Security -> New API key -> give name -> Confirm ->BUG ``` TypeError: APIKeyDescription.create() missing 1 required positional argument: 'vals_list' ``` opw-4385632
This fixes an automated donation checkout test so it now confirms that the donation process has fully completed. The change helps prevent false test failures, improving confidence in website payment quality without changing the customer-facing donation flow.
Original PR description
In this commit, we fix the tour test_01_donation by adding a final step that attest the donation has successfully completed. By adding this final step, we avoid a "failed to fetch" type error. 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
Point of Sale refunds now calculate cash rounding consistently with normal sales. This prevents valid refunds from being blocked or left unpaid when cash rounding is applied, improving checkout reliability for stores using rounding rules.
Original PR description
The tax totals helper has been designed to manage business document expressed with positive lines. A refund in the pos is negative. So when dealing with cash rounding up and down, the computation wasn't the same for a refund than a regular sale. Then, the customer wasn't able to validate the refund because the cash rounding was consider as wrong and then, the refund wasn't paid even when making the same input as a sale pos order. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Payments in Invoicing-only setups now remain in process instead of being automatically marked as paid when no reconciliation is required. This prevents payments from being blocked from batch payments while still allowing them to be marked paid manually or when a batch is validated.
Original PR description
Currently, a payment without outstanding is set as paid as soon as the invoice is paid, most likely through the reconciliation widget. However, the decision was made to not require the reconciliation when using the enterprise Invoicing[^1]. These two facts are conflicting with batch payments since they can be used in Invoicing, but a payment cannot be added to a batch payment if it is already paid. The fix is to always keep a payment as "in process" if the full Accounting is not installed. They will still be marked if the user sets it manually, or through the batch payment when it is validated. [runbot-104545](https://runbot.odoo.com/web#id=104545&model=runbot.build.error) [^1]: odoo/enterprise@adfe6c2d5feb431043e78c423748ab87fae64084
This update fixes an internal automated test so it checks the intended device-detection path after route names changed. It helps ensure the test properly verifies that no tracking trace is created when the session flag disables it, reducing the risk of unnoticed regressions.
Original PR description
The `test_detection_no_trace_mechanism` test checks that no trace is created with the flag in the session. Commit 7aa53005688291a6c903ba759f76574cd35bff77 renamed the routes in `test_http`. This test does not fail, because even if the route does not exist, no trace is created. It is necessary to correct the route so that the test covers the use of the flag in the session.
Exporting all records from a grouped list now shows accurate group totals. Archived records are no longer counted unless they are actually included in the export, preventing misleading spreadsheet results.
Original PR description
Before this commit, exporting all records in a grouped list view generated wrong group counts in the sheet, because archived records where taken into account (even though they weren't exported). The issue comes from [1], which we kind of revert. [1] https://github.com/odoo/odoo/pull/166097 task~4375142 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
The Sign module now ensures its guided test tour can continue correctly after redirecting to the documents page. This prevents automated checks from timing out, improving reliability without changing normal user workflows.
Original PR description
When tour resume at redirect step, the route is /sign/documents/. For this route, tour js file is not in manifest. Then the tour abort and is not resumed. After this commit, the tour is not aborted and the error "Script timeout exceeded" is avoided.
Users on phones and other small screens can now start new comment threads in Knowledge articles. This fixes a mobile editing issue so feedback and collaboration work consistently across devices.
Original PR description
In small UI mode (designed for smartphones and mobile devices), new comment threads could not be added (through they could be replied to). Steps to reproduce: - Access a Knowledge article in mobile UI mode - Tap and hold on a word in an article body to create a selection - Scroll the toolbar at the bottom of the screen - Click on the Comment button This commit makes it so that users of mobile devices can now add new comment threads to a Knowledge article. task-4399014
Installing Website Product Barcode Lookup no longer fails when users have previously removed manufacturer or brand product attributes. This prevents setup interruptions and makes the module more reliable for databases with customized product attributes.
Original PR description
Currently an error occurs when a user deletes 'manufacturer' or 'brand' product attributes and tries to install `website_product_barcodelookup`. error: `Exception: Cannot update missing record 'product_barcodelookup.product_attribute_lookup_5'` This error is generated because at the time of installing above mentioned module, it tries to update the value of the above-deleted product attribute. This commit solves the above issue by using `forcecreate="False"` to bypass record creation if it violates checks. sentry-5771768396
The payroll payment report now uses the correct SEPA credit transfer format instead of the broader ISO 20022 format. This helps ensure payroll payment files match bank expectations and reduces the risk of rejected payment submissions.
Original PR description
The format of the payment report was iso20022 but it should be sepa_ct. Task: 4392276
The Re-Generate button now stays available when the online payment module is installed, so users can still regenerate SEPA payment files when needed. The button remains hidden for online payments, preventing it from appearing where it is not relevant.
Original PR description
This commit ensures the Re-Generate button remains accessible even when the account_online_payment module is installed. Previously, the button would disappear upon installation of the module. The updated logic ensures the button is available for SEPA payments while remaining hidden for online payments. task-4382642
SEPA Direct Debit payments now correctly find a customer's mandate when an invoice is issued to one of that customer's invoice addresses. This prevents valid direct debit payments from being blocked simply because the mandate and bank details are stored on the main customer record.
Original PR description
**Steps to reproduce:** - Install contacts, accountant and l10n_be - Switch to a Belgian company - In Accounting settings, activate "Customer Addresses" and "SEPA Direct Debit (SDD)" - Create a contact: * Country: Belgium * Bank Account: [a Belgian IBAN] - Add an invoice address to the created contact - Go to "Accounting / Customers / Direct Debit Mandates" - Create a mandate for the created contact - Create an invoice with the invoice address as customer - Confirm the invoice - Try to pay with "SEPA Direct Debit" **Issue:** No valid SEPA mandate is found for the customer. **Cause:** The mandate search is performed on the ID of the customer. As the customer is an invoice address, he is not associated to a bank account and a SEPA mandate. All these data are configured for his commercial partner. **Solution:** Search the mandates based on the ID of the commercial partner. opw-4276655
Fixes an issue where sign request emails could fail when linked to a record that does not have a name field. This improves reliability for custom or unusual records connected to signing workflows.
Original PR description
Before this commit the following traceback could be observed if a record did not had any name field and was linked to a sign request: `` 2024-12-16 08:41:09,063 27947 INFO…
Before this commit the following traceback could be observed if a record did not had any name field and was linked to a sign request:
``
2024-12-16 08:41:09,063 27947 INFO 18.0-sale_commission-next-sub-arj odoo.addons.mail.models.mail_render_mixin: Failed to render template: 683 Traceback (most recent call last):
File "<683>", line 44, in template_683
File "<683>", line 12, in template_683_content
AttributeError: 'x_toto' object has no attribute 'name'. Did you mean: '_name'?
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/arj/PycharmProjects/worktree/18.0/odoo/addons/mail/models/mail_render_mixin.py", line 415, in _render_template_qweb_view
render_result = self.env['ir.qweb']._render(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/arj/PycharmProjects/worktree/18.0/odoo/odoo/tools/profiler.py", line 306, in _tracked_method_render
return method_render(self, template, values, **options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/arj/PycharmProjects/worktree/18.0/odoo/odoo/addons/base/models/ir_qweb.py", line 601, in _render
result = ''.join(rendering)
^^^^^^^^^^^^^^^^^^
File "<683>", line 52, in template_683
odoo.addons.base.models.ir_qweb.QWebException: Error while render the template AttributeError: 'x_toto' object has no attribute 'name' Template: 683
Path: /t/p/t
Node: <t t-esc="request.reference_doc.name"/>
```
OPW-ticket: 4366583Resizing a Gantt chart item so its dates would become invalid is now safely cancelled. Users receive a clear warning instead of encountering an error, reducing disruption when adjusting schedules.
Original PR description
This commit fixes an issue with pill resizing: if the result of the resize would have the start date after the end date or the end date before the start date, it would result in an invalid operation error. After this commit, such an operation will only result in being cancelled with a warning notification to explain the problem. task-4320664
Batch payment checks were updated to ensure the feature continues to work even when the full Accounting app is not installed. This prevents related failures and supports smoother use for customers using a lighter accounting setup.
Original PR description
Make sure that the batch payments are working even if Accounting is not installed, related to a fix in community. [runbot-104545](https://runbot.odoo.com/web#id=104545&model=runbot.build.error)
Knowledge articles without a title now receive the expected name when users save changes with the save button. This prevents untitled articles from remaining unnamed and keeps article behavior consistent across save flows.
Original PR description
This commit fixes an issue with the knowledge controller when a record is saved without a name. Usually when an article has no name we ensure that it has the name when saving. One case where this issue wasn't covered is when you save the changes done via the save button. Before, the name of the article wasn't updated if it was not yet set and when they clicked on save. Now, the title is updated according to the logic applied everywhere. task-4398229
Fixed an error that occurred when users started a timer in Timesheets, selected a Helpdesk project, and then chose a task. This restores a missing background field so task selection works normally and reduces disruption for service teams tracking time.
Original PR description
Steps to reproduce: - In Timesheets app, go to kanban view. - Start the timer. - Select any Helpdesk project. - Try to select a task. Issue: - A traceback is thrown. Fix: - It is due to the fact that company_id field is removed from the kanban xml. - Thus not getting the value is throwing out a traceback. Solution: - Inject back the field into the kanban view. Issue from the PR: https://github.com/odoo/odoo/pull/172375 task-4382051