Wednesday, May 29, 2024
10 changes
7 changes
Enhancements to existing features
Users can now configure automated server actions to send WhatsApp messages, just like they already can for email and SMS. This makes it easier to automate customer communication using approved WhatsApp templates directly from business workflows.
Original PR description
PURPOSE: This commit enables the sending of WhatsApp messages from the server actions, similar to the existing functionalities for emails and SMS. SPECIFICATIONS: This commit adds support for creating server actions of the WhatsApp type. Users can now select `Send WhatsApp` as the action type and specify a WhatsApp template under `ACTION DETAILS` to send WhatsApp messages using Server Action. Task - 3510887
The attendance planning view now shows each employee's schedule directly in the Gantt view, making it easier to understand expected working times. The creation form has also been simplified by showing fewer fields, helping users create attendance entries faster with less confusion.
This update makes it easier to tailor the action buttons shown in Gantt popovers, such as adding delete or custom workflow buttons. It also simplifies related customization code in Appointment and Project, helping teams adapt Gantt interactions with less development effort.
Original PR description
We make several changes in the gantt view in order to ease the customization of the gantt popover buttons: - a tag "footer" can be used inside the template "gantt-popover" to define buttons like it…
We make several changes in the gantt view in order to ease the customization of the gantt popover buttons:
- a tag "footer" can be used inside the template "gantt-popover" to define buttons like it is done in a form view arch:
```xml
<templates>
<div t-name="gantt-popover">
<footer>
<button name="unlink" type="object" string="Delete" icon="fa-trash" />
</footer>
</div>
</templates>
```
By default the buttons defined in the footer will be rendered after the generic buttons (e.g. the "Edit" button). An attribute "replace" can be set to true on the footer to make the generic buttons to be removed.
- buttons can also be used in the popover body itself like in a form view arch:
```xml
<templates>
<div t-name="gantt-popover">
<button name="unlink" type="object" string="Delete" icon="fa-trash" />
</div>
</templates>
```
- if js code is necessary, it is also easier to add new generic buttons via the new prop buttons of the gantt popover. This has been used to simplify the code of the gantt view extensions in appointment and project_enterprise.
Task ID: `3684499`
Co-authored-by: Aaron Bohy <aab@odoo.com>
Co-authored-by: Mathieu Duckerts-Antoine <dam@odoo.com>Rental receipt transfers are now linked to their original delivery transfers, making it easier to manage repair orders for returned rental items. Users can select a rental return as the return transfer for a repair order, and eligible receipt transfers can start a repair order directly from the form.
Original PR description
Enable users to select a rental return transfer as a return transfer of a repair order. COM PR: odoo/odoo#162070 Task-3848611
Appointment-related products are now identified with a dedicated flag instead of a separate booking fee product type. This simplifies product setup and reduces technical complexity across appointments, sales, services, and reporting flows.
Original PR description
### [IMP] website_appointment_sale,*: remove booking_fees type Purpose of this commit to clean up product types. In this commit remove `booking_fees` and create `is_booking_fees` field to check this product is connected to appointment. ### [IMP] product: remove detailed_type field Purpose of this commit to remove `detailed_type` field references. task-3938213
The SODA mapping button is now part of the SODA module, so Belgian payroll accounting users can access it without installing CodaBox. Unmapped or missing account mappings now use the suspense account 499, reducing import issues and keeping entries easier to review.
Original PR description
Decoupled the button "Open SODA Mapping" from the module l10n_be_codabox and moved its view and functionality to the module l10n_be_soda. Moreover, the suspense account (499) is now used for accounts that are not mapped or whose mapping is not found. The button 'Open SODA Mapping" was only visible after installing CodaBox module. It should be visible if only SODA module was installed. task-3813212 Upgrade PR: https://github.com/odoo/upgrade/pull/6074
Attendance and payroll Gantt views now open on the most relevant current period instead of showing extra future periods. This makes planning screens less cluttered and better aligned with how these apps are used day to day.
Original PR description
Following the gantt view rework, you see directly 3 periods of time on your selection, 3 months, 3 days, 3 years, ... But, in attendance and payroll apps, there is no use of that. The current changes address this. In attendance, the start and stop dates are now set to today instead of having the start date as today and the stop date 2 days after. In payroll, the start date is now set to the start of the current month and the end date is now set to the end of the current month instead of having the start date as the start of the current month and the end date as the end of the month that comes after the current month by 2. task-3950880
3 changes
Enhancements to existing features
This update significantly improves the speed of finding contacts by phone number in the VoIP system. Previously, searching for numbers starting with 0 was slow because the system had to scan through millions of records. The fix uses a smarter search approach that leverages existing database indexes, reducing search time from over 12 seconds to just 270 milliseconds—a 46x improvement.
Original PR description
## Description When calling `get_contact_info` searching with a number that starts with `0` will try to do a pattern match with an `=like` + prefix `%`. The problem is that there is only a `btree`…
## Description When calling `get_contact_info` searching with a number that starts with `0` will try to do a pattern match with an `=like` + prefix `%`. The problem is that there is only a `btree` index defined to support the searching that happens via `phone_mobile_search`, but a `btree` index cannot be used with pattern matching `%`/`_` at the *beginning* of the search term. Therefor Postgres will do a `Seq.Scan`, since it's the only criteria there is for this domain. ## Solution To support pattern searching starting with a wildcard, it's required that there is a defined `gin` index with the proper expression (`regexp_replace` support). Since this is the only instance where such searching is needed, adding a whole index for it is overkill. An alternative solution is to do exact matches for all possible country code we have. This is a *sane* operation, as the number of countries is small and fixed. We avoid the `Seq.Scan` by hitting the defined `btree` index. Sadly the `phone_mobile_search` field doesn't implement the `in/not in` operator, so we are forced to use `OR` for each domain leaf, as implementing the `in/not in` ops on the search field is not feasible in a small diff for a stable patch. The where clause from the generated query from the domain will be a disjunction of a bunch of `OR FALSE` or `OR res_partner.id IN (<ids>)`. Thankfully, this is an SQL structure that Postgres can optimize out (removing the redundant `OR FALSE` clauses), reducing the query to a simple `id IN (...)`, which will hit the Pkey index. The only regression is the number of queries executed to resolve the domain of the search field, which +1 query count for each OR leaf of the domain. (would be avoided if the search field implemented the `in` ops). ## Benchmark On a staging database with over 5M `res.partner`, the time taken for the resolution of the searchable field `phone_mobile_search` takes: | | Before | After | |---------|---------|--------| | Timings | 12.43 s | 270 ms | ## Reference task-3942852
This update modifies the 5% VAT tax codes and reporting lines for Ecuador's localization module to comply with May 2024 tax regulations. The changes update tax code references for both goods sales and purchases, and add new standardized report lines for local transactions subject to the 5% VAT rate. This ensures accurate tax reporting and compliance with current Ecuadorian tax requirements.
Original PR description
Update tax codes: - IVA 5% (411, Bienes) -> _IVA 5% (435, Bienes) (code_base: 435, code_applied: 445)_ - IVA 5% (510, Crédito IVA) -> _IVA 5% (550, Crédito IVA) (code_base: 550, code_applied: 560)_ Create Report lines: - _Ventas locales (excluye activos fijos) gravadas tarifa 5%_ - _Adquisiciones y pagos locales (excluye activos fijos) gravados con tarifa 5% (con derecho a crédito tributario)_
This update improves the tax system for Turkish users by adding new accounts, restructuring tax categories and groups, and creating a new tax report. These changes enhance the user experience and make tax management more efficient for businesses operating in Turkey.
Original PR description
[IMP] l10n_tr: improve turkey's tax structure - Adding new accounts. - Adding entirly new taxes - Restructure the tax and tax group - Create new tax report Reason: Enhance the user-experience in turkey Task-3924220 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr