Thursday, September 8, 2022
17 changes
Enhancements to existing features
This update makes the Project app easier to use by repositioning an important task conflict filter where users are more likely to find it. It also adds an optional worksheet template column in shared sub-task lists, giving teams more context when reviewing field service work.
Original PR description
Purpose of this PR to improve generic usage of project app. So, in this PR done following changes: - move 'conflict_task' filter position above 'tasks_due_today'. - added optional field in project_sharing_view sub-task list view 'worksheet_template_id'. task - 2889829
This update renames UK-related localization references to GB to align with the official ISO country code standard. It helps keep country-specific reporting and payment configuration consistent with international naming conventions, with minimal expected business impact.
Original PR description
Rename "uk" instances to "gb" in order to respect norm ISO 3166-1 alpha-2 code Task: 2373769
Down payment invoices now keep the same tax field behavior as the original sales order when showing TaxCloud-related tax details. This helps ensure tax breakdowns remain consistent and easier to review during invoicing.
Original PR description
Set attr same as parent in "tax_id" override Task: 2678531
Payroll payslip line and worked-days line editing screens have been updated to a newer interface framework. This should help keep payroll views easier to maintain while preserving the existing payroll editing experience for users.
Original PR description
Converts payslip_line_one2many field. Converts worked_days_line_one2many field. Converts payslip_edit_lines_form view. task-2971404
The Knowledge app removes redundant database indexing on article members. This keeps the underlying data structure simpler and can reduce unnecessary maintenance overhead without changing user-facing behavior.
Original PR description
- duplicate: knowledge_article_member_article_partner_idx, knowledge_article_member_unique_article_partner - article_id unnecessary as it's covered by knowledge_article_member_unique_article_partner
The document accounting demo data now links the reconciliation request activity type to the right business model. This helps ensure reconciliation-related activities are categorized correctly and behave more consistently for users.
Original PR description
Task: 2963861 Signed-off-by: maximilien(malb) <malb@odoo.com>
Resolved issues and error corrections
This fix restores stronger internal checks and clearer error reporting for Documents tests. It helps developers catch issues earlier, reducing the chance of hidden problems reaching users.
Original PR description
community: https://github.com/odoo/odoo/pull/99556
Miscellaneous changes
Partition sale.order.lines by unavailability_period and warehouse_id inside sale.order.lines._compute_qty_at_date. This allows to call product_id.qty.available on bigger recordsets than singletons. When product.product._compute_quantities is slow for a specific DB, grouping products before calling qty_available speeds up the _compute_qty_at_date compute function. #### Speedup Customer DB with 1075 sale.order.lines. Time of calling `_compute_qty_at_date` for these lines. Second colu
Original PR description
Partition sale.order.lines by unavailability_period and warehouse_id inside sale.order.lines._compute_qty_at_date. This allows to call product_id.qty.available on bigger recordsets than singletons.…
Partition sale.order.lines by unavailability_period and warehouse_id inside sale.order.lines._compute_qty_at_date. This allows to call product_id.qty.available on bigger recordsets than singletons. When product.product._compute_quantities is slow for a specific DB, grouping products before calling qty_available speeds up the _compute_qty_at_date compute function. #### Speedup Customer DB with 1075 sale.order.lines. Time of calling `_compute_qty_at_date` for these lines. Second column contains the number of unique triplets, i.e. the number of groups returned by `_partition_lines`. | sale.order.lines | unique (pickup_date, return_date, warehouse) | Before PR | After PR | |:---------------:|:-----------------------------------------------:|:----------:|:---------:| | 25 | 18 | 0.47s | 0.4s | | 100 | 71 | 3.05s | 1.47s | | 250 | 186 | 12.57s | 3.5s | | 500 | 373 | 38.4s | 6.8s | | 1000 | 666 | 110s | 15s | opw-2819878 Forward-Port-Of: odoo/enterprise#26634 Forward-Port-Of: odoo/enterprise#26232
This fixes an unstable automated test for the bank reconciliation widget so it behaves consistently. The change helps reduce false failures in quality checks, making releases and maintenance more predictable without changing user-facing functionality.
Field Service setup tours no longer depend on sample data, so they can run successfully in databases without demo content. The portal signature button alignment was also corrected for a cleaner customer-facing experience.
Original PR description
Prior to this commit, the tour was using a field that is generated from the demo data, which is not right. Indeed, the `x_description` field is created from the demo data, so it is not found during the tour when no demo data is installed and the tour fails. task-2973342
This fixes the spacing around the Instagram link in mass mailing email themes. The change helps social media links appear more consistently and professionally in marketing emails.
Original PR description
task-2739302
[FIX] account_report : ellipsis on reports The problem was that when a text was too long on a table cell, the cell will increase to fit the text in a single line. This made some reports (depreciation schedule for example) hard to read because some columns will be extremely long. The way it works now is that the text will take all the space available in the column without making it grow unless the column is smaller than 320px. In that case, the column will grow until 320px. We also allow
Original PR description
[FIX] account_report : ellipsis on reports The problem was that when a text was too long on a table cell, the cell will increase to fit the text in a single line. This made some reports (depreciation schedule for example) hard to read because some columns will be extremely long. The way it works now is that the text will take all the space available in the column without making it grow unless the column is smaller than 320px. In that case, the column will grow until 320px. We also allow the first column to grow until the next column with text to optimize space. We take into account the level of the line and if the line has children or is a children. That helps keep the report coherent and easy to read. Task-id : 2965841 Signed-off-by: Ruben Gomes <rugo@odoo.com> Forward-Port-Of: odoo/enterprise#30907
Have a CABA tax Create a Bank statement with a line Reconcile with manual operation adding the CABA tax After reconciliation check the journal entries: the tags will be missing opw-2865789 Forward-Port-Of: odoo/enterprise#28254
Original PR description
Have a CABA tax Create a Bank statement with a line Reconcile with manual operation adding the CABA tax After reconciliation check the journal entries: the tags will be missing opw-2865789 Forward-Port-Of: odoo/enterprise#28254
Steps to reproduce: - Have a company with main currency as AED and multicurrency activated - In setting, select as a service UAE Central Bank, interval manually - Run the Update button Issue: - no data recovered Cause: The website has been updated and the URL has been changed. And the website uses JS-generated content. Solution: Use the request used by the website to retrieve the data. The problem is that the table as arabic entries. To solve this issue, I added the arabic entrie
Original PR description
Steps to reproduce: - Have a company with main currency as AED and multicurrency activated - In setting, select as a service UAE Central Bank, interval manually - Run the Update button Issue: - no data recovered Cause: The website has been updated and the URL has been changed. And the website uses JS-generated content. Solution: Use the request used by the website to retrieve the data. The problem is that the table as arabic entries. To solve this issue, I added the arabic entries in the MAP_CURRENCIES dictionnary. opw-2964066 Forward-Port-Of: odoo/enterprise#30983
After 8fe6c96558bc9fb9f3655fa52fcbea3fea38afdd, subscriptions have been merged into the sale_order table, which can make the table cardinality much bigger than it used to be. The former sale.subscription.log model is also re-created as sale.order.log, and is now attached to sales.order rows rather than a subscription. However, in a service company, the number of sales orders may be much larger than the number of actual subscriptions. At the very least, it will accumulate more "transactiona
Original PR description
After 8fe6c96558bc9fb9f3655fa52fcbea3fea38afdd, subscriptions have been merged into the sale_order table, which can make the table cardinality much bigger than it used to be. The former…
After 8fe6c96558bc9fb9f3655fa52fcbea3fea38afdd, subscriptions have been merged into the sale_order table, which can make the table cardinality much bigger than it used to be.
The former sale.subscription.log model is also re-created as sale.order.log, and is now attached to sales.order rows rather than a subscription.
However, in a service company, the number of sales orders may be much larger than the number of actual subscriptions. At the very least, it will accumulate more "transactional" SOs to create/renew/upsell the subscriptions.
The ORM does not know about this, and whenever a domain term refers to the `order_id` of SO logs, it will evaluate term on the full sale_order table, not just the subset of SOs that are subscriptions.
Technically, a domain like this:
```[('order_id.stage_category', '=', 'progress')]```
would be translated into something like the following SQL:
```sql
SELECT id FROM sale_order_log WHERE order_id IN
(SELECT id FROM sale_order where stage_category = 'progress')
```
This can be sub-optimal when the overall number of sale_order rows is much larger than the number of actual subscriptions, i.e. the number of sale_order rows that may actually have sale_order_log lines.
Because of this, the SQL execution times can be much slower than the previous versions using the former sale.subscription.log model.
Activating `auto_join` on the `order_id` relationship is safe permission-wise, because the same ACLs apply to SO logs and to the corresponding SOs. It allows the ORM to build a JOIN query that the database can optimize, if the left side has a much lower cardinality than the right side. For example, it could use a single Nested Loop strategy with PK Index Scans on the right side, rather than a Merge Join based on a costly full Seq Scan of the right side (or even multiple such scans if there are several domain terms using `order_id`).
Forward-Port-Of: odoo/enterprise#30933This commit revert 5efa74c as it introduced an xpath in the arch. Forward-Port-Of: odoo/enterprise#31133
Original PR description
This commit revert 5efa74c as it introduced an xpath in the arch. Forward-Port-Of: odoo/enterprise#31133
Forward-Port-Of: odoo/enterprise#31113
Original PR description
Forward-Port-Of: odoo/enterprise#31113