Monday, December 16, 2024
51 changes
7 changes
Resolved issues and error corrections
Fixes an issue that caused an error when duplicating multiple users at once while the signup module is installed. This helps administrators manage user records in bulk without interruptions.
Original PR description
When we try to duplicate users in the Users section, this error occurs. Steps to reproduce: - Install the ``auth_signup`` module - Go to users and select ``Mitchell Admin`` and ``Marc Demo`` - Now duplicate both of them Traceback: ``ValueError: Expected singleton: res.users(2, 6)`` This error occurs at [1], where we are receiving multiple values in ``self``. This commit will fix the above error by changing the method name from ``copy`` to ``copy_data``. [1]- https://github.com/odoo/odoo/blob/0a52ad52b1a17f2732f92a5e24ec0814d929329b/addons/auth_signup/models/res_users.py#L348 sentry-5635211309 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Miscellaneous changes
When creating a supplier invoice for a provider of type "2nd category voucher issuer," the system incorrectly defaults the document type to 56 (Electronic Debit Note) instead of 71 (Electronic Fee Receipt). This results in additional manual corrections and risks errors if the document type is not updated before confirmation. This fix ensures the system automatically selects document type 71 for providers of this category, streamlining the process and reducing error potential. opw-4217228
Original PR description
When creating a supplier invoice for a provider of type "2nd category voucher issuer," the system incorrectly defaults the document type to 56 (Electronic Debit Note) instead of 71 (Electronic Fee Receipt). This results in additional manual corrections and risks errors if the document type is not updated before confirmation. This fix ensures the system automatically selects document type 71 for providers of this category, streamlining the process and reducing error potential. opw-4217228 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#188166
17 changes
Enhancements to existing features
This update introduces a shared Discuss header component used by WhatsApp and Website Helpdesk Live Chat. It improves consistency and maintainability of the chat interface, with class name updates to align with the project's styling conventions.
Original PR description
added new component called `DiscussHeader` to improve re-usability in discuss to follow BEM its required to change classNames. related PR: [odoo/ #172042](https://github.com/odoo/odoo/pull/172042) task-3764236
26 changes
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
1 change
Resolved issues and error corrections
This update corrects a formatting issue within the WhatsApp composer, ensuring phone numbers are correctly displayed without spaces or dashes. Previously, incorrect formatting caused errors preventing message delivery and channel linking. Now, users can reliably send WhatsApp templates from within Odoo.
Original PR description
**Before this Commit :** - When using the whatsapp composer on a record to send a whatsapp template, the number (phone/mobile) taken from the partner comes with the phone widget format (including spaces and dashes). - This would cause an error when linking the response received to the associated record, thus not creating an associated whatsapp channel, printing a link to the related SO,lead,etc and not posting a message on the record with a link to the whatsapp channel. **With this Commit :** - The composer phone field has the correct format when opened, preventing this behaviour to occur.
--- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#190489
Original PR description
--- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#190489
Description of the issue/feature this PR addresses: - The last update on Mexican banks was five years ago. Since then, several new banks have emerged, while others have closed. Current behavior before PR: - 3 banks in our data no longer exist in real life. - 3 banks have outdated names. - 15 new banks aren't included, since they emerged after our bank data was updated. Desired behavior after PR is merged: - To align the bank list with those specified by the SAT (_Servicio de Administr
Original PR description
Description of the issue/feature this PR addresses: - The last update on Mexican banks was five years ago. Since then, several new banks have emerged, while others have closed. Current behavior before PR: - 3 banks in our data no longer exist in real life. - 3 banks have outdated names. - 15 new banks aren't included, since they emerged after our bank data was updated. Desired behavior after PR is merged: - To align the bank list with those specified by the SAT (_Servicio de Administración Tributaria_, Mexico's highest tax authority responsible for tax collection), you can refer to their [official documentation](http://omawww.sat.gob.mx/fichas_tematicas/buzon_tributario/Documents/catalogo_bancos.pdf). opw-[4327242](https://www.odoo.com/odoo/project.task/project.task/4327242) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#189387
Steps to reproduce the bug: - Create “route 1”: - applicable on: product - Rule: - Pull from - Operation type: internal transfer - Source Location: WH/Stock/Shelf 1 - Destination Location: WH/Stock/Shelf 2 - Supply Method: Take from stock - Create a storable product “P1”: - Orderpoint: - Location: WH/Stock/Shelf 2 - Min qty: 0 - route: “route 1” - create a repair order: - product to repair: selec
Original PR description
Steps to reproduce the bug: - Create “route 1”: - applicable on: product - Rule: - Pull from - Operation type: internal transfer - Source Location: WH/Stock/Shelf 1 - Destination Location:…
Steps to reproduce the bug:
- Create “route 1”:
- applicable on: product
- Rule:
- Pull from
- Operation type: internal transfer
- Source Location: WH/Stock/Shelf 1
- Destination Location: WH/Stock/Shelf 2
- Supply Method: Take from stock
- Create a storable product “P1”:
- Orderpoint:
- Location: WH/Stock/Shelf 2
- Min qty: 0
- route: “route 1”
- create a repair order:
- product to repair: select any one
- Part: Add one unit of P1
- Go to miscellaneous:
- source location: WH/Stock/Shelf 2
- Confirm the MO
Problem:
The order point will be triggered, and a stock move will be created
but not linked to a picking. This occurs because the product to be
repaired is storable and out of stock. As a result, the wizard
indicating insufficient quantity for the product is launched, and
default_repair_id is added to the context. Consequently, the move will
be created with the repair order field set and does not need to be
assigned.
https://github.com/odoo/odoo/blob/17.0/addons/repair/models/stock_move.py#L179-L182
opw-4224710
Forward-Port-Of: odoo/odoo#188280Have a list or kanban views with more than 10k records such that the count limit is reached, and the pager displays something like "1-80/10000+". Click on "10000+" to compute the real count. Before this commit, the context wasn't given to that call, which could obviously return a wrong result, for instance if the context has the "active_test" key set to false. task~4331708 Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is mer
Original PR description
Have a list or kanban views with more than 10k records such that the count limit is reached, and the pager displays something like "1-80/10000+". Click on "10000+" to compute the real count. Before this commit, the context wasn't given to that call, which could obviously return a wrong result, for instance if the context has the "active_test" key set to false. task~4331708 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#190721
Improve loop detection and break. Indeed heavy usage of mailgateway on Odoo servers lead us to face email loops. Those lead to email being disabled on our servers due to email limit, and to other issues (spam, never ending notifications, ...) on hosted servers. Three scenarios are fixed with this PR. See individual commits for more details. Those are * having followers using alias email, and using a mail provider that rewrites msg-id: we cannot detect message duplication and this ma
Original PR description
Improve loop detection and break. Indeed heavy usage of mailgateway on Odoo servers lead us to face email loops. Those lead to email being disabled on our servers due to email limit, and to other…
Improve loop detection and break. Indeed heavy usage of mailgateway on Odoo servers lead us to face email loops. Those lead to email being disabled on our servers due to email limit, and to other issues (spam, never ending notifications, ...) on hosted servers. Three scenarios are fixed with this PR. See individual commits for more details. Those are * having followers using alias email, and using a mail provider that rewrites msg-id: we cannot detect message duplication and this may generate loops. Several mail providers rewrite message IDs and that is a pain for us. We therefore add a custom header allowing to keep message ID in envelope; * replying to bounce may create bounce in loops: this is fixed using the loop detection custom reference; * detect loops on record update in addition to record creation: do not limit loops detection on aliases creating records, also check updated records; Task-3895869 OPW-4051539 OPW-4295745 OPW-4302257 Forward-Port-Of: odoo/odoo#190516 Forward-Port-Of: odoo/odoo#187696
Resolved issues and error corrections
The Moroccan reports module now allows users to manually edit the Payment Channel even though it is automatically calculated. This fixes cases where the calculated value needs to be adjusted, helping keep payment reporting accurate during upgrades and daily use.
Original PR description
Upgrade PR: https://github.com/odoo/upgrade/pull/6842 task-4226448
This corrects a typo introduced during an earlier code cleanup in the Chilean electronic invoicing integration for Point of Sale. It helps ensure the POS order process continues calling the right function, reducing the risk of failures for businesses using Chilean localization.
Original PR description
Fix : ------- A previous refactor [PR](https://github.com/odoo/odoo/pull/185252) introduced a typo in a function name. This fixes it. Related Community PR: https://github.com/odoo/odoo/pull/189565
Clicking a line in the Accounting amounts to settle view no longer opens a detailed record form. This keeps the view aligned with its intended purpose and avoids confusing navigation for users reviewing unpaid or late invoices and bills.
Original PR description
Description of the issue this commit addresses: The amounts to settle view which is accessible via the accounting dashboard upon clicking on unpaid or late invoice or bills hyperlink and is an modified version of the journal items view has a different behavior than the original journal items view upon clicking a record. In the amounts to settle view, it opens a form view of the record which is not wanted. --- Steps to reproduce: 1. Install Accounting 2. Go to the accounting dashboard with demo data 3. Click on "Late bills" to open the amounts to settle 4. Click on a line 5. A form view opens --- Desired behavior after this commit is merged: When clicking on a record in the amounts to settle view, nothing should happen. --- Note on the fix: This bug happend because a js_class was missing to disable the reactiveness of the record lines. --- task-4164683
Code cleanup and technical improvements
The subscription app's automated tests were reorganized into smaller, clearer groups without changing how the product works. This helps developers maintain the subscription area more efficiently and reduces future risk when making changes.
Original PR description
The TestSubscription class from test_sale_subscription.py was too large (~4000 LOC), so the code has been refactored to improve maintainability and readability. The test cases have been divided into more focused classes: - testSubscriptionInvoice: For invoice-related test cases. - testSubscriptionUpsell: For upsell-related test cases. - testSubscriptionRenew: For renewal-related test cases. - testSubscriptionInvoiceSignature: Moved to a new file for signature-related invoicing tests. This refactor ensures better organization and ease of understanding without changing the test logic.
Miscellaneous changes
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 a
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: 4366583
Forward-Port-Of: odoo/enterprise#75652Make 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) Forward-Port-Of: odoo/enterprise#72708
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) Forward-Port-Of: odoo/enterprise#72708
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 Forward-Port-Of: odoo/enterprise#75378
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 Forward-Port-Of: odoo/enterprise#75378
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 Forward-Port-Of: odoo/enterprise#75559
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 Forward-Port-Of: odoo/enterprise#75559
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 Forward-Port-Of: odoo/enterprise#7549
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 Forward-Port-Of: odoo/enterprise#75497
taskid: 4376927 Forward-Port-Of: odoo/enterprise#75047
Original PR description
taskid: 4376927 Forward-Port-Of: odoo/enterprise#75047
In this commit, we prefer to use tour helpers instead of jQuery. Forward-Port-Of: odoo/enterprise#75615
Original PR description
In this commit, we prefer to use tour helpers instead of jQuery. Forward-Port-Of: odoo/enterprise#75615
Version: - 17.0 Step to reproduce: - upload sign template - click on sign now button on template Issue: - two sign now buttons are visible to user Cause: - there is an issue in condition to make button invisible as it require both the condition to be true to make button invisible Solution: - change condition which will make button invisible when any one condition true. task-4234996 Forward-Port-Of: odoo/enterprise#75608 Forward-Port-Of: odoo/enterprise#71350
Original PR description
Version: - 17.0 Step to reproduce: - upload sign template - click on sign now button on template Issue: - two sign now buttons are visible to user Cause: - there is an issue in condition to make button invisible as it require both the condition to be true to make button invisible Solution: - change condition which will make button invisible when any one condition true. task-4234996 Forward-Port-Of: odoo/enterprise#75608 Forward-Port-Of: odoo/enterprise#71350
Currently when receiving incoming calls, it's possible that all opened tabs will play the ringtone. To reduce the chaos, we now only play the incoming ringtone on the master tab. Task-4402909 Forward-Port-Of: odoo/enterprise#75534
Original PR description
Currently when receiving incoming calls, it's possible that all opened tabs will play the ringtone. To reduce the chaos, we now only play the incoming ringtone on the master tab. Task-4402909 Forward-Port-Of: odoo/enterprise#75534
Forward-Port-Of: odoo/enterprise#75573
Original PR description
Forward-Port-Of: odoo/enterprise#75573
pos*: pos_blackbox_be, pos_urban_piper This commit adds the possibility to use the multi-company feature with the pos_blackbox_be module. Community PR: odoo/odoo#186296 Forward-Port-Of: odoo/enterprise#73325
Original PR description
pos*: pos_blackbox_be, pos_urban_piper This commit adds the possibility to use the multi-company feature with the pos_blackbox_be module. Community PR: odoo/odoo#186296 Forward-Port-Of: odoo/enterprise#73325
Steps to reproduce: - Install the planning module. - Open Gantt view in day scale. - Create a planning slot from 11am to 12pm for an employee whose working hours are 8-12 and 13-17 - The default hours will be shown as 13 to 12 Issue: - When an employee works two shifts for example 8-12 and 13-17, and we are creating a slot from 11-12, the slot timing will show as 13-12 instead of 8-12. Cause: - here is an example of how the planning slot will be calculated and what i
Original PR description
Steps to reproduce: - Install the planning module. - Open Gantt view in day scale. - Create a planning slot from 11am to 12pm for an employee whose working hours are 8-12 and 13-17 - The default…
Steps to reproduce: - Install the planning module. - Open Gantt view in day scale. - Create a planning slot from 11am to 12pm for an employee whose working hours are 8-12 and 13-17 - The default hours will be shown as 13 to 12 Issue: - When an employee works two shifts for example 8-12 and 13-17, and we are creating a slot from 11-12, the slot timing will show as 13-12 instead of 8-12. Cause: - here is an example of how the planning slot will be calculated and what is miscalculation - When click on cell 9-10 the calculated hours <table><thead><tr><th>Cell</th><th>shift start time </th><th>shift end time </th></tr></thead><tbody><tr><td>9-10</td><td>|8 - 9| = 1<br>|13 - 9| = 4<br></td><td>|12 - 10| = 2<br>|17 - 10| = 5<br></td></tr><tr><td>minimum</td><td>8</td><td>12</td></tr></tbody></table> so that slot timining will be 8 - 12 - When click on cell 11-12 <table><tbody><tr><td>Cell</td><td>shift start time </td><td>shift end time </td></tr><tr><td>11-12</td><td>|8 - 11| = 3<br>|13 - 11| = 2<br></td><td>|12 - 12| = 0<br>|17 - 12| = 5<br></td></tr><tr><td>minimum</td><td>13</td><td>12</td></tr></tbody></table> So that the slot timining will be 13-12 which should not be possible Fix: - We previously relied on the ```_adjust_to_calendar``` method to calculate the resource's working hours. However since the working hour intervals are already computed using ```_work_intervals_batch```, we are removing the method call to reduce code duplication. Calculate the working hours using ```_work_intervals_batch``` and return the appropriate work intervals based on the resource's working calendar. task-3916687 Forward-Port-Of: odoo/enterprise#75594 Forward-Port-Of: odoo/enterprise#64961
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" />
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
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.
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.
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
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
Code cleanup and technical improvements
Automated guided checks now wait 300ms instead of 400ms between default checks, helping test runs complete faster. This reduces runbot execution time without changing customer-facing business features.
Original PR description
By default, the checkdelay is 400ms when it is not stipulated in a tour. For performance reasons (runbot time), we reduce this delay to 300ms. 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 Colombian e-invoicing checkout test automation was updated to use newer testing helpers instead of older jQuery-based code. This is an internal cleanup that helps keep tests easier to maintain without changing the customer checkout experience.
Original PR description
In this commit, we prefer to use tour helpers instead of jQuery.
Miscellaneous changes
In this commit we fix to two things: 1. For SEZ(intra state) with payment of `IGST`, the `IGST` on Intra used to be sent `False` for E-Invoice 2. For Overseas export, refund claimable is also used to be sent as `False` with same situation payable of `IGST` in case of export In this commit resolve the above issues 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
Original PR description
In this commit we fix to two things: 1. For SEZ(intra state) with payment of `IGST`, the `IGST` on Intra used to be sent `False` for E-Invoice 2. For Overseas export, refund claimable is also used to be sent as `False` with same situation payable of `IGST` in case of export In this commit resolve the above issues 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#190567 Forward-Port-Of: odoo/odoo#190151
To reproduce the issue: (Need more than one company) 1. Create a partner and link him to a specific company 2. In "Contacts & Addresses", add a new partner 3. Open this "child partner" Error: the child partner does not belong to the company defined at step 1 Commit [1] removed the field from the company, but this field is needed so we can define its value thanks to the onchange https://github.com/odoo/odoo/blob/988b47c0ca409a38c2f429a6db017eef17053c04/odoo/addons/base/models/res_par
Original PR description
To reproduce the issue: (Need more than one company) 1. Create a partner and link him to a specific company 2. In "Contacts & Addresses", add a new partner 3. Open this "child partner" Error: the child partner does not belong to the company defined at step 1 Commit [1] removed the field from the company, but this field is needed so we can define its value thanks to the onchange https://github.com/odoo/odoo/blob/988b47c0ca409a38c2f429a6db017eef17053c04/odoo/addons/base/models/res_partner.py#L529-L532 [1] https://github.com/odoo/odoo/commit/5639ed865c5a3b82bab25b0ecac28c68c02e9306 OPW-4247914 Forward-Port-Of: odoo/odoo#189324
Description of the issue/feature this PR addresses: - The last update on Mexican banks was five years ago. Since then, several new banks have emerged, while others have closed. Current behavior before PR: - 3 banks in our data no longer exist in real life. - 3 banks have outdated names. - 15 new banks aren't included, since they emerged after our bank data was updated. Desired behavior after PR is merged: - To align the bank list with those specified by the SAT (_Servicio de Administr
Original PR description
Description of the issue/feature this PR addresses: - The last update on Mexican banks was five years ago. Since then, several new banks have emerged, while others have closed. Current behavior before PR: - 3 banks in our data no longer exist in real life. - 3 banks have outdated names. - 15 new banks aren't included, since they emerged after our bank data was updated. Desired behavior after PR is merged: - To align the bank list with those specified by the SAT (_Servicio de Administración Tributaria_, Mexico's highest tax authority responsible for tax collection), you can refer to their [official documentation](http://omawww.sat.gob.mx/fichas_tematicas/buzon_tributario/Documents/catalogo_bancos.pdf). opw-[4327242](https://www.odoo.com/odoo/project.task/project.task/4327242) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#189387
--- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#190489
Original PR description
--- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#190489
When creating a supplier invoice for a provider of type "2nd category voucher issuer," the system incorrectly defaults the document type to 56 (Electronic Debit Note) instead of 71 (Electronic Fee Receipt). This results in additional manual corrections and risks errors if the document type is not updated before confirmation. This fix ensures the system automatically selects document type 71 for providers of this category, streamlining the process and reducing error potential. opw-4217228
Original PR description
When creating a supplier invoice for a provider of type "2nd category voucher issuer," the system incorrectly defaults the document type to 56 (Electronic Debit Note) instead of 71 (Electronic Fee Receipt). This results in additional manual corrections and risks errors if the document type is not updated before confirmation. This fix ensures the system automatically selects document type 71 for providers of this category, streamlining the process and reducing error potential. opw-4217228 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#188166
### Steps to reproduce: - Install "l10n_hu_edi" and switch to a Hungarian company - Create an invoice - Click "Send & Print", uncheck "NAV 3.0" and send it - Repeat step 3 - Error ### Cause: With l10n_hu_edi, Odoo is supposed to regenerate the invoices at each Send&Print. The way it was done is by overriding `_need_invoice_document` to not check anymore if `invoice.invoice_pdf_report_id` is empty. As the function `_prepare_invoice_pdf_report` from `account` is called when `_need_invoice
Original PR description
### Steps to reproduce: - Install "l10n_hu_edi" and switch to a Hungarian company - Create an invoice - Click "Send & Print", uncheck "NAV 3.0" and send it - Repeat step 3 - Error ### Cause: With…
### Steps to reproduce:
- Install "l10n_hu_edi" and switch to a Hungarian company
- Create an invoice
- Click "Send & Print", uncheck "NAV 3.0" and send it
- Repeat step 3
- Error
### Cause:
With l10n_hu_edi, Odoo is supposed to regenerate the invoices at each Send&Print. The way it was done is by overriding `_need_invoice_document` to not check anymore if `invoice.invoice_pdf_report_id` is empty. As the function `_prepare_invoice_pdf_report` from `account` is called when `_need_invoice_document` returns True, it is always called. But this function checks again if `invoice.invoice_pdf_report_id` is empty (https://github.com/odoo/odoo/blob/17.0/addons/account/wizard/account_move_send.py#L394-L395). So `invoice_data` doesn't have the key 'pdf_attachment_values' and it crashes at this line:
`pdf_values = invoice_data.get('pdf_attachment_values') or invoice_data['proforma_pdf_attachment_values']`
because it tries reading 'proforma_pdf_attachment_values' but the key is not there either.
### Solution:
Extend `_prepare_invoice_pdf_report` to remove `invoice.invoice_pdf_report_id`.
opw-4363559
Forward-Port-Of: odoo/odoo#190293
Forward-Port-Of: odoo/odoo#189442Steps to reproduce =================== - Open the barcode interface by selecting attendee from the barcode in the registration desk. - Click on any record it will open a dialog and the attendee is registered. - Now refresh the page again click on any record. - Form view will be opened this time instead of dialog. Technical ========== Context is added to the action from the js side when we click on the `select attendee` button and we loose that when we refresh the page. This commit r
Original PR description
Steps to reproduce =================== - Open the barcode interface by selecting attendee from the barcode in the registration desk. - Click on any record it will open a dialog and the attendee is registered. - Now refresh the page again click on any record. - Form view will be opened this time instead of dialog. Technical ========== Context is added to the action from the js side when we click on the `select attendee` button and we loose that when we refresh the page. This commit resolves the issue by adding the context directly in the action from XML side so when we refresh the page, the action will be loaded again and we will not lose the context. task-4273707 Forward-Port-Of: odoo/odoo#184472
Currently, an error occurs when trying to load onboarding 'Furnitures' without a product name 'Down Payment (POS). Step to produce: - Install the 'pos_sale' module. - Delete a product name 'Down Payment (POS)'. - Open a point of sale and archive all sessions, Click on the 'Furnitures' scenario card. Traceback On Sentry: ``` ValueError: No record found for unique ID pos_sale.default_downpayment_product. It may have been deleted. File "odoo/http.py", line 2373, in __call__ r
Original PR description
Currently, an error occurs when trying to load onboarding 'Furnitures' without a product name 'Down Payment (POS). Step to produce: - Install the 'pos_sale' module. - Delete a product name 'Down…
Currently, an error occurs when trying to load onboarding 'Furnitures' without a product name 'Down Payment (POS).
Step to produce:
- Install the 'pos_sale' module.
- Delete a product name 'Down Payment (POS)'.
- Open a point of sale and archive all sessions, Click on the 'Furnitures' scenario card.
Traceback On Sentry:
```
ValueError: No record found for unique ID pos_sale.default_downpayment_product. It may have been deleted.
File "odoo/http.py", line 2373, in __call__
response = request._serve_db()
File "odoo/http.py", line 1903, in _serve_db
return self._transactioning(
File "odoo/http.py", line 1966, in _transactioning
return service_model.retrying(func, env=self.env)
File "odoo/service/model.py", line 134, in retrying
result = func()
File "odoo/http.py", line 1933, in _serve_ir_http
response = self.dispatcher.dispatch(rule.endpoint, args)
File "odoo/http.py", line 2177, in dispatch
result = self.request.registry['ir.http']._dispatch(endpoint)
File "odoo/addons/base/models/ir_http.py", line 223, in _dispatch
result = endpoint(**request.params)
File "odoo/http.py", line 754, in route_wrapper
result = endpoint(self, *args, **params_ok)
File "addons/web/controllers/dataset.py", line 35, in call_kw
return call_kw(request.env[model], method, args, kwargs)
File "odoo/api.py", line 459, in call_kw
result = getattr(recs, name)(*args, **kwargs)
File "addons/pos_sale/models/pos_config.py", line 35, in load_onboarding_furniture_scenario
self._ensure_downpayment_product()
File "addons/pos_sale/models/pos_config.py", line 30, in _ensure_downpayment_product
pos_config.write({'down_payment_product_id': self.env.ref('pos_sale.default_downpayment_product').id})
File "odoo/api.py", line 593, in ref
raise ValueError('No record found for unique ID %s. It may have been deleted.' % (xml_id))
```
An error occurs when the system tries to retrieve an external ID of product 'Down Payment (POS)' at [1] When opening a 'Furnitures' scenario card in POS, but it is not available.
To handle this issue, add 'raise_if_not_found=False' so that if the external id of a product 'Down Payment (POS)' is not found, then it will return a None value instead of raising an error.
Sentry-5690826936
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#176272when creating a new spreadsheet in document, the user is prompted to either choose a blank spreadsheet or choose to create them from a template. The view didn't list the name of the template. This commit shows the name of the template Task: 4363974 Forward-Port-Of: odoo/enterprise#74694
Original PR description
when creating a new spreadsheet in document, the user is prompted to either choose a blank spreadsheet or choose to create them from a template. The view didn't list the name of the template. This commit shows the name of the template Task: 4363974 Forward-Port-Of: odoo/enterprise#74694
Currently when receiving incoming calls, it's possible that all opened tabs will play the ringtone. To reduce the chaos, we now only play the incoming ringtone on the master tab. Task-4402909 Forward-Port-Of: odoo/enterprise#75534
Original PR description
Currently when receiving incoming calls, it's possible that all opened tabs will play the ringtone. To reduce the chaos, we now only play the incoming ringtone on the master tab. Task-4402909 Forward-Port-Of: odoo/enterprise#75534
Version: - 17.0 Step to reproduce: - upload sign template - click on sign now button on template Issue: - two sign now buttons are visible to user Cause: - there is an issue in condition to make button invisible as it require both the condition to be true to make button invisible Solution: - change condition which will make button invisible when any one condition true. task-4234996 Forward-Port-Of: odoo/enterprise#75608 Forward-Port-Of: odoo/enterprise#71350
Original PR description
Version: - 17.0 Step to reproduce: - upload sign template - click on sign now button on template Issue: - two sign now buttons are visible to user Cause: - there is an issue in condition to make button invisible as it require both the condition to be true to make button invisible Solution: - change condition which will make button invisible when any one condition true. task-4234996 Forward-Port-Of: odoo/enterprise#75608 Forward-Port-Of: odoo/enterprise#71350