Monday, December 16, 2024
15 changes
1 change
Resolved issues and error corrections
Duplicating several users at once no longer fails when the Website app is installed. This prevents an error that blocked administrators from copying multiple user accounts from the user list.
Original PR description
Issue: When 'website' is installed a singleton error is thrown when duplicating multiple users In previous versions, such as [17.0] The copy method would be called multiple times, once per record. However, starting with version 17.2+, self becomes a record set that can potentially contain multiple records, which changes the behavior. res.users(1), res.users(2) --> res.users(1,2) see IMP: [#154132](https://github.com/odoo/odoo/pull/154132) Steps to reproduce: - Install 'website' - Navigate to user list view (Settings / Users & Companies / Users) - Select multiple users and try to duplicate them Current behavior before PR: - ValueError: Expected singleton Desired behavior after PR is merged: - Resolves expected singleton error --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
6 changes
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
7 changes
Enhancements to existing features
Accounting reports can now use read-only database replicas when a report does not need temporary write operations. This helps spread system load and can improve report responsiveness without changing the report content users see.
Original PR description
api.readonly allows running the queries of an rpc call in readonly mode, on a replicate of the database, in order to better spread the load. So far, accounting reports didn't use them because, in some cases, their computation requires the creation of a temporary table. We improve that by introducing a new option key telling whether the report can run in readonly mode or not, depending on the fact such temporary table is in use or not. The value of this option key then influences which end point is called to compute the report between the regular one, or an api.readonly version of it.
1 change
Enhancements to existing features
This update enhances the bank reconciliation process by displaying the original statement amount alongside the reference on the open balance line. Previously, the system suggested incorrect matches, leading to confusion. Now, the system only suggests true matches, ensuring accurate reconciliation and reducing errors.
Original PR description
To be more clear, we add the original amount from the statement we are to reconciliating on the open balance line. task-4194671 Forward-Port-Of: odoo/enterprise#70785
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)
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
Resolved issues and error corrections
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
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
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
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
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