Friday, October 25, 2024
20 changes
1 change
Enhancements to existing features
Commission purchase orders are now grouped across multiple salespeople when they relate to the same partner, reducing the number of documents created. This lowers processing effort for accounting teams while keeping salespeople able to access the relevant purchase orders.
Original PR description
Previously, commission POs would be grouped per salesperson. In large companies commission is generated through different salespeople which leads to many POs to the same partner. This causes more overhead for the accounting teams on both sides: there are more POs to process on one side, and more invoices to process on the other. To minimize the number of POs, we remove the salesperson from the domain and stop assigning them as user_id (there can now be multiple). To ensure they keep access to the same POs as before, we add them as a follower on the PO and modify the record rule to take this into account. task-4250635
12 changes
Enhancements to existing features
The chatter composer now presents sending guidance and action buttons in a cleaner, more compact layout. This makes writing, sending, and editing messages easier to understand and keeps common actions more visible for users.
Original PR description
- Reword "Ctrl-Enter to send" to "or press Ctrl + Enter" - Show emoji action inline with 1st line of composer textarea - Other actions have been moved in same row as "Send message"/ "Log note", at the very end. Similar change has been made to editing message. Part of task-4260440 https://github.com/odoo/enterprise/pull/72074 <img width="795" alt="Screenshot 2024-10-18 at 12 48 11" src="https://github.com/user-attachments/assets/38d74a0b-3671-49dd-b7c0-cdc5d38b719f"> <img width="354" alt="Screenshot 2024-10-18 at 12 48 42" src="https://github.com/user-attachments/assets/acde081f-805f-4c18-8cc4-a838f4c2646e">
Invoice forms now open much faster on large databases when Indian withholding is installed. The change improves lookup performance for related withholding entries, reducing delays for users working with invoices.
Original PR description
## Description Opening of the form view for invoices is slow on large databases. It's due to the presence of the `l10n_in_withhold_move_ids` in the form view. It's inverse `l10n_in_withholding_ref_move_id` isn't indexed, defaulting to a Seq.Scan on `account.move`. ## Benchmark On next.odoo.com, opening an invoice form view | web_read > read | Before | After | |-----------------|--------|--------| | Timings | 3.35s | 0.02ms | --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Stock deliveries to customers and production now default to being made to order rather than using the previous mixed stock-or-order behavior. This makes replenishment behavior clearer and updates related labels and messages so users better understand how quantities and procurement groups are handled.
Original PR description
This PR introduces a couple of modifications regarding procurement methods, namely - Stock to Customer/Production rules are now using make to order procurement method instead of `mts_else_mto` - `mts_else_mto` message has been modified to better reflect its behavior now task-4150122 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The messaging composer styling has been refined to provide a cleaner and more consistent experience in WhatsApp-related chatter interactions. This helps users write and review messages more comfortably without changing the underlying workflow.
Original PR description
https://github.com/odoo/odoo/pull/183823
Resolved issues and error corrections
The web interface now safely removes outdated breadcrumb entries when the server no longer returns data for them. This prevents users from seeing an error after refreshing certain pages, such as subcontracting views opened from a Bill of Materials overview.
Original PR description
When a breadcrumb contains a client action without a multi-record view, load_breadcrumbs skips this action, returning nothing for that key. However, on the frontend, we are not removing these…
When a breadcrumb contains a client action without a multi-record view, load_breadcrumbs skips this action, returning nothing for that key. However, on the frontend, we are not removing these controllers and attempt to access display_name each time the user reloads the page. This PR resolves this issue. If the backend result is undefined for a key stored in a breadcrumb cache, we remove it. Steps to test: We can open any sub-view from the BoM overview, as it is an action without a multi-record view. 1. Activate the Subcontracting feature in the settings tab. 2. Go to the Manufacturing app. 3. Click on the Product tab. 4. Select the Bills of Materials 5. Select Office Lamp BoM, for example 6. Click on BoM Overview 7. Click on Subcontracting 8. Refresh the page An error should appear, indicating an attempt to access display_name on an undefined object. Related Commit: https://github.com/odoo/odoo/commit/5047d1b3f4b2bd8061a15457350a0250bf93145f https://github.com/user-attachments/assets/57633318-cc24-4e0d-acb2-0f27f7ccd847 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix prevents an error when checking OCR processing status for accounting documents that have no tax group data. It helps users avoid unexpected crashes while invoices or documents are being processed by OCR.
Original PR description
The error occurs at [1] because we are attempting to fetch the first record of ``tax_groups`` from ``subtotal``, but ``tax_groups`` is empty. As a result, there is no valid index for…
The error occurs at [1] because we are attempting to fetch the first record of ``tax_groups`` from ``subtotal``, but ``tax_groups`` is empty. As a result, there is no valid index for ``subtotal['tax_groups']``, leading to an index error.
Traceback:
---
```
IndexError: list index out of range
File "odoo/http.py", line 2365, in __call__
response = request._serve_db()
File "odoo/http.py", line 1892, in _serve_db
return self._transactioning(
File "odoo/http.py", line 1955, in _transactioning
return service_model.retrying(func, env=self.env)
File "odoo/service/model.py", line 137, in retrying
result = func()
File "odoo/http.py", line 1922, in _serve_ir_http
response = self.dispatcher.dispatch(rule.endpoint, args)
File "odoo/http.py", line 2169, in dispatch
result = self.request.registry['ir.http']._dispatch(endpoint)
File "odoo/addons/base/models/ir_http.py", line 329, in _dispatch
result = endpoint(**request.params)
File "odoo/http.py", line 728, 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 517, in call_kw
result = getattr(recs, name)(*args, **kwargs)
File "home/odoo/src/enterprise/18.0/iap_extract/models/extract_mixin.py", line 214, in check_ocr_status
record._check_ocr_status()
File "home/odoo/src/enterprise/18.0/iap_extract/models/extract_mixin.py", line 338, in _check_ocr_status
self.with_company(self.company_id)._fill_document_with_results(ocr_results)
File "home/odoo/src/enterprise/18.0/account_invoice_extract/models/account_invoice.py", line 732, in _fill_document_with_results
self._save_form(ocr_results)
File "home/odoo/src/enterprise/18.0/account_invoice_extract/models/account_invoice.py", line 938, in _save_form
self._check_total_amount(total_ocr)
File "addons/account/models/account_move.py", line 3738, in _check_total_amount
subtotal['tax_groups'][0]['tax_amount_currency'] += tax_amount_rounding_error
```
[1]- https://github.com/odoo/odoo/blob/c047bf3d89e630c98c61bc45df7391fe0732c343/addons/account/models/account_move.py#L3747
sentry-6012011017
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-prThis update prevents pending local edits in embedded content from accidentally overwriting changes made by collaborators. It also streamlines how editor history updates are handled, improving consistency and reducing unnecessary processing.
Original PR description
### Issue: There was an issue when applying embedded state changes from a peer while there was a pending local embedded state change. Old unchanged properties of the local embedded change would…
### Issue: There was an issue when applying embedded state changes from a peer while there was a pending local embedded state change. Old unchanged properties of the local embedded change would overwrite peer changes. Instead, `commitStateChange` must check if a property has changed and replace the property only if that is the case. --- Furthermore, this PR introduces another small improvement: remove editor command "ADD_EXTERNAL_STEP" This command's purpose was to dispatch the event at each individual external step, but it was only used for embedded components, and `onExternalHistorySteps` resource (which handles every batch of collaborative steps) is enough for embedded components, and it is called less often. This commit therefore removes `ADD_EXTERNAL_STEP` command. Small fix to the table of content plugin, only `STEP_ADDED` has a `stepCommonAncestor` payload property, therefore commands which don't have it will use `this.editable` instead to search for new headings. task-4281356
This fixes an access error that prevented users with Invoicing Administrator rights from creating a company branch. Branch creation now works without requiring extra technical accounting permissions, reducing setup friction for finance administrators.
Original PR description
**Steps to reproduce:** - Install Invoicing - Make sure that current user has "Invoicing: Administrator" rights - Go to the configuration of a company - Create a branch - Save **Issue:** An Access Error is raised because a write is performed on an "account. reconcile.model.line" record while loading the chart template during the creation of the branch, but the user has not the appropriate group (i.e. Technical/Show Full Accounting Features). The creation of a branch should be possible for a user with the "Invoicing: Admnistrator" rights, even if he has no edition right on "account.reconcile. model.line" model. opw-4247717 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Updates the spreadsheet component with fixes and usability improvements for charts, pivots, formatting, and collaboration. Business users should see more accurate chart labels and tooltips, more reliable pivot behavior, and smoother formatting actions in spreadsheets.
Original PR description
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/788df9213 [REL] 18.0.2 Task: 0 https://github.com/odoo/o-spreadsheet/commit/977b8f265 [IMP] charts: limit trending…
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/788df9213 [REL] 18.0.2 Task: 0 https://github.com/odoo/o-spreadsheet/commit/977b8f265 [IMP] charts: limit trending line degree range Task: 4207820 https://github.com/odoo/o-spreadsheet/commit/9f337f326 [FIX] Charts: Fix tooltip value when data is zero Task: 4251681 https://github.com/odoo/o-spreadsheet/commit/f51993403 [IMP] pivot: disable automatic autofill Task: 4256700 https://github.com/odoo/o-spreadsheet/commit/4f2950a8b [FIX] paint format: copy conditional formats Task: 4226853 https://github.com/odoo/o-spreadsheet/commit/b977d1f66 [FIX] test: skipped test in `renderer_plugin.test.ts` Task: 4276968 https://github.com/odoo/o-spreadsheet/commit/5953d29a4 [FIX] format painter: use a single history step Task: 4277362 https://github.com/odoo/o-spreadsheet/commit/8ee4266a9 [FIX] logs: log performance information at debug level Task: 0 https://github.com/odoo/o-spreadsheet/commit/a81189ba1 [FIX] chart: avoid overlapping values on charts Task: 4207889 https://github.com/odoo/o-spreadsheet/commit/2e95535f0 [FIX] pivots: don't translate pivot titles Task: 4239967 https://github.com/odoo/o-spreadsheet/commit/b50c0f286 [FIX] pivot: autocomplete dimension after positional Task: 4235329 https://github.com/odoo/o-spreadsheet/commit/ab8b491c9 [FIX] chart: cleanup tooltip title code Task: 4269632 https://github.com/odoo/o-spreadsheet/commit/187843ed1 [FIX] side_panel: unify font weight across side panels Task: 4194259 https://github.com/odoo/o-spreadsheet/commit/3a77fe228 [FIX] pivot: divergent collaborative duplicated pivot name Task: 4199949 Co-authored-by: Anthony Hendrickx (anhe) <anhe@odoo.com> Co-authored-by: Alexis Lacroix (laa) <laa@odoo.com> Co-authored-by: Lucas Lefèvre (lul) <lul@odoo.com> Co-authored-by: Dhrutik Patel (dhrp) <dhrp@odoo.com> Co-authored-by: Adrien Minne (adrm) <adrm@odoo.com> Co-authored-by: Mehdi Rachico (mera) <mera@odoo.com> Co-authored-by: Rémi Rahir (rar) <rar@odoo.com> Co-authored-by: Pierre Rousseau (pro) <pro@odoo.com> Co-authored-by: Vincent Schippefilt (vsc) <vsc@odoo.com>
Financial report variants that depend on a matching chart of accounts are now available when users work across multiple companies. This prevents valid reports, such as localized profit and loss or balance sheet variants, from disappearing simply because several companies are selected.
Original PR description
### Steps to reproduce the issue: 1. In a Multi-Company setup with different Charts of Accounts, create (or find) a Report with Availability set to Chart of Account Matches - For example, you can use…
### Steps to reproduce the issue:
1. In a Multi-Company setup with different Charts of Accounts, create (or find) a Report with Availability set to Chart of Account Matches
- For example, you can use Belgian Profit and Loss or Balance Sheet reports
2. With multiple companies visible, including the one with the correct Chart of Accounts, go to the Root Report of the one you created (or found)
3. Under the Report Variants filter, the "coa" Report can not be found, or the filter is simply not displayed
### Explanation:
When looking for variants with `availability_condition="coa"`, the current condition is for `companies.mapped("chart_template")` to consist of only `account.report.chart_template`.
Before 18.0, `account.report` using `account.account.code` as filter retrieved accounts from all active companies. `account.account` with a `code` corresponding to the request, even if their function is not the same, would be added into the report, falsing the amounts as a result.
### Fix reasoning:
Since 18.0, with commits odoo/odoo@854c3b27aa5476c208572f19e64f8f3364bfc381 and odoo/enterprise@92bf8e36c40f99c697318ddc9784cde0a1b3736e, `account.account.code` became company dependent, and only `self.env.company` is used to retrieve them in `account.report`.
Thanks to this change, `availability_condition="coa"` does no longer require a restriction to environments where all companies have `account.report.chart_template`.
opw-4263627The HR contract dashboard now uses contract start and end dates instead of fixed dates or current status when showing historical contract data. This makes past reporting more accurate, including for archived employees who should still appear in historical figures.
Original PR description
Column L and M were static (hardcoded dates) Task: 4268760
Code cleanup and technical improvements
Odoo notification emails no longer show extra action links in the standard layout. This reduces clutter, makes messages easier to read, and helps email conversations feel more natural while keeping compatibility behind the scenes.
Original PR description
RATIONALE Improve email management and composition in Odoo, ease understanding and make flow more looking like email discussions. SPECIFICATIONS We consider actions to be mainly noise in notification emails as it bloats email content and hide real content. For Odoo v18 standard notification layout does not display them anymore but mechanism is kept for backward compatibility. It is going to be removed in master completely. Task-4284064
7 changes
New functionality added to Odoo
This update adds support for Zengin, Japan's primary bank payment system, enabling businesses to process batch payments and import bank statements directly through Odoo. The integration currently supports text file formats and streamlines payment processing for Japanese companies using the platform.
Original PR description
- Add support for batch payment via Zengin and bank statement import - Currently only support txt files task-3304270
Enhancements to existing features
This update enhances the performance of the VAT Book report by limiting the number of displayed lines, preventing browser overload. A warning message is now shown if lines are hidden, ensuring users are informed and avoiding unexpected behavior. The change improves report loading times for large datasets.
Original PR description
When this report contained too many lines (~6000), the browser couldn't handle the load and did not manage to render it. This is a known case, which normally only happens with line expansion, for…
When this report contained too many lines (~6000), the browser couldn't handle the load and did not manage to render it. This is a known case, which normally only happens with line expansion, for which the prefix groups and load more features have been made. In this case, though, it's a bit different, as those lines are directly at the root of the report (they don't come from a line expansion). We make the choice here to use the load_more_limit anyway as a means to put a limit to the number of lines that are shown. When this limit is reached, we just don't display the exceeding lines, and replace them by a summary line. To avoid confusion, a warning is now shown on top of the report when some lines need to be hidden. Since such a warning requires a module update (because it's a template, and needs to exist in db), we only apply our new trimming mechanism if the warning template exists (and can hence be displayed). This way, we won't change the behavior on existing databases without being sure the user is properly notified. Plus, thanks to that, we're sure the old load_more_limit value (originally 80 by default) set on the VAT Book will have been increased to a value fitting our use case more, so we won't bother people with excessive trimming. Original fix suggestion raised here by Adhoc: https://github.com/odoo/enterprise/pull/45936 Forward-Port-Of: odoo/enterprise#72096
This update optimizes how Odoo searches for documents, making it faster to find files based on the related model and ID. Similar to how attachments are searched, this change enhances the efficiency of document retrieval, particularly when using complex search criteria. This improves overall user experience and system performance.
Original PR description
Add a compound index on (`res_model`, `res_id`) to support domains searching documents based on those criteria, similarly to `ir_attachment_res_idx` on `ir.attachment`.
Resolved issues and error corrections
This pull request addresses several minor issues impacting the shop floor experience in Odoo Enterprise. Specifically, it corrects inaccurate quantity displays during production steps and improves filtering of workorders linked to shop floor workcenters, ensuring data consistency and a more reliable workflow. These changes enhance the accuracy of production tracking and reporting.
Original PR description
Collection of small shop floor fixes for v17. Please refer to the individual feature commits for details.
This update fixes a bug where the 'past' filter on the Odoo portal's appointment section was being unintentionally removed from the URL, causing users to lose their filter settings. The fix ensures that the 'past' filter remains active and persistent across multiple pages of appointments, improving the user experience. This resolves a reported issue impacting appointment scheduling functionality.
Original PR description
steps: -> populate the portal user's appointments with enough appointments to have multiple pages in the portal -> go on the portal, filter by "past" -> go to page 2 --> the filter by "past" is removed from the url opw-4236596 Forward-Port-Of: odoo/enterprise#71965
This update resolves an issue where Brazilian service invoices were incorrectly generating HS codes, leading to validation errors with Avalara. Avalara support clarified that service invoices require periods to be kept but leading zeroes to be removed, a change now implemented to ensure compliance with local tax regulations.
Original PR description
Some cities that process service invoices [1] have stricter hsCode validations than others and error on the hsCode we send. Avalara requires periods to be removed from the hsCode field for goods transactions. This was already the case. For services they inform us that the periods should be kept but leading zeroes should be stripped [2]. [1] e.g. Belo Horizonte [2] There's no documentation on this. This was specified by Avalara support in an internal support ticket. opw-4009684
This fix prevents the salary configurator from overwriting existing employee user names and identifiers (like trigrams). When an employee already has a user account set up with specific naming conventions, the system will now preserve that information instead of replacing it with values entered in the salary configurator.
Original PR description
Purpose ======= If there is already a user for a given employee (including a trigram for instance), we should avoid erasing it to the value the employee encodes on the salary configurator.