Monday, December 16, 2024
23 changes · master
New functionality added to Odoo
Helpdesk teams can now define which team members should handle tickets with specific tags, so new or updated tickets are routed to people with the right expertise. This improves response efficiency for larger support teams while leaving unmatched tickets unassigned and selecting randomly when several specialists match.
Original PR description
Purpose ------- In large support teams, people often have a specific area of expertise. It would be efficient for tickets to be automatically routed to the right people as they know best. This would be especially useful for us in production. Changes ------- - Added a new `helpdesk.tag.assignment` model to map team members to specific tags - It can be configured from the helpesk team form view. - When a ticket is created with that tag, it's assigned to the mapped member. - If there are multiple matches for members, one is chosen at random. - If there is no match, the ticket is left unassigned. - This also works when a tag is added on a existing unassigned ticket. Task-4297562
Enhancements to existing features
When customers book and confirm appointments that create service or project tasks, the resulting tasks now carry the appointment details automatically. Teams can see the linked appointment, assigned people, duration, guest followers, and customer question answers directly from the task, reducing manual follow-up and missing context.
Original PR description
…ter integration with appointment Prior to this commit, when a SO is confirmed through the Appointment Web Interface, for an appointment type which creates a Task in a Field Service project, a task is created but with two issues: 1. There is no link between the Appointment and the related task. 2. Following data are missing in the task: selected users or resources, duration, questions and answers of the appointment. This commit introduce a bridge module for Field Service, Appointment and Websale, allowing to set data on the task according to what was defined in the appointment, and a stat button to navigate to the appointment from the task view. Additionally, it populates the field `allocated_hours` in the bridge module website_appointment_sale_project with the duration of the appointment. Task-3823058
The bank reconciliation screen has been streamlined to make matching transactions clearer and faster. Users get a cleaner layout, fewer irrelevant buttons once items are matched, better use of space, and a simplified mobile experience.
Original PR description
This commit will do multiple things: - Remove empty lines from the right part of the bank rec widget - Remove some buttons in case the transactions is matched - Left side of the bank rec widget now take full width - Reorganisation of the manual operations tab - Remove right part of the bank rec widget in case we are on mobile task: 4367423
The batch payment kanban view has been redesigned to make each payment batch easier to scan and understand. This gives finance users a clearer overview, similar to the sales order layout, helping them find key payment information faster.
Original PR description
Rework batch payment kanban view to mimic sale order clearer kanban view. From:  To:  Community PR: https://github.com/odoo/odoo/pull/189422 Task: 4367188
Odoo spreadsheets now support additional chart types for Odoo data, including radar, waterfall, population pyramid, scatter, combo, horizontal bar, and doughnut charts. This gives users more ways to visualize business information and choose the chart style that best fits their reporting needs.
Original PR description
Task: [4266486](https://www.odoo.com/web#id=4266486&cids=1&menu_id=4720&action=333&active_id=2328&model=project.task&view_type=form)
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
Resolved issues and error corrections
Users can once again like Twitter/X posts directly from the Social kanban view in Odoo. This restores expected engagement tracking and prevents errors caused by a recent backend view change.
Original PR description
This commit fixes an issue with the social kanban view when liking a Twitter/X post from it. Since odoo/odoo#189109, some views encountered issues with disappearing props and various crashes. The social kanban view used the `list` props to update the like counters on potentially several posts. Since this one disappeared it needed to be replaced to be functional again. This is what this commit does: instead of searching records on `this.props.list` the method does it on `this.props.group.model.root`. task-4403372
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