Thursday, December 19, 2024
24 changes · master
New functionality added to Odoo
Spreadsheets can now display geographic map charts that highlight countries based on sheet values. This helps users visualize regional performance or distribution directly in Odoo documents and spreadsheet dashboards.
Enhancements to existing features
Users can now preview a Sign template before starting the signing process, helping them verify the document layout and fields in advance. This also makes it easier to review and adjust completed template content, reducing mistakes and rework.
Original PR description
Before this commit, it wa snot possible to preview a template before signing it. And once filled, it wasnot posible to edit it easily. taskid: 4283945
Resolved issues and error corrections
The Brazilian electronic invoicing flow now handles the send wizard correctly after a change in the default sending method. This helps avoid incorrect assumptions when users send documents and keeps the invoicing process working as expected.
Original PR description
[FIX] l10n_br_edi: send wizard sending methods 'manual' is no longer the default sending method. task-4276549
Code cleanup and technical improvements
This update adjusts payroll-related screens and fields for the Kenya and Luxembourg localisations so they carry the required localisation metadata. It supports more consistent country-specific payroll configuration and helps the system identify localised fields correctly.
Original PR description
Add the necessary l10n attributes on the fields and nodes of the localisation. Task: 4402874
Miscellaneous changes
In the datev export, we cannot use any linebreak. But in the aml name you could have some, to fix this we just replace any linebreak by a simple space task: 4358246 Forward-Port-Of: odoo/enterprise#74556
Original PR description
In the datev export, we cannot use any linebreak. But in the aml name you could have some, to fix this we just replace any linebreak by a simple space task: 4358246 Forward-Port-Of: odoo/enterprise#74556
This update cleans up an automated test for the Helpdesk live chat chatbot ticket creation flow. It helps keep quality checks easier to maintain, reducing the risk of future regressions without changing customer-facing behavior.
Original PR description
Enterprise counter-part. task-4354325 https://github.com/odoo/odoo/pull/191076
This update improves how Odoo retrieves multiple internal references, reducing unnecessary database queries in accounting, payroll, helpdesk, delivery, field service, localization, and marketing areas. It also standardizes how missing references are handled, making the system more consistent and less prone to hidden errors.
Original PR description
The `ref` method both in Environment and in ChartTemplate can now accept multiple `xml_ids`, reducing the number of queries necessary. The `xml_ids` must all refer to the same model, or `ValueError` is raised. `raise_if_not_found` argument is made a keyword-only argument so now it's mandatory for the function calls to include the argument name. Community PR: odoo/odoo#179692 Documentation PR: odoo/documentation#10992
Payment numbering can now be managed separately for each payment method within the same journal, instead of using only one sequence per journal. This gives finance teams clearer tracking and reporting when a journal handles multiple payment types.
Original PR description
Currently, the sequencing ganularity for payments is set at journal level. With this commit, the granularity is moved down to the payment method of a journal. Now, one journal can have several sequences (1 for each payment method and a default one for the journal itself). odoo/odoo/pull/175330 odoo/upgrade/pull/6334 task-3925608
The update removes a duplicated company-switching flag from the user session and relies on the existing company service instead. This reduces duplicated data and helps keep company access behavior consistent without changing the visible workflow for users.
Original PR description
This commit removes the display_switch_company_menu from the session, and uses the company service. Note that, the company service already has the information about the allowed companies. part-of task-id 2224776
Spreadsheet autocomplete suggestions now show the pivot or list name alongside its ID before selection. This makes it easier for users to identify the correct spreadsheet data source and reduces confusion when multiple pivots or lists exist.
Original PR description
Unless the auto complete suggestion is selected, it only shows the id of the pivot/list and not the name. This commit changes that to always show the name of the pivot/list is addition to its id. Task: [3953742](https://www.odoo.com/web#id=3953742&cids=1&menu_id=4720&action=333&active_id=2328&model=project.task&view_type=form)
Point of Sale and preparation display screens get several usability improvements for restaurant workflows, including clearer order timing, better ticket navigation, and easier access to actions. Staff can also reprint the last preparation ticket and adjust the preparation display zoom, helping teams work more comfortably during service.
Original PR description
Point of sale: - Adding margin left on preset time on product screen. - Replacing ActionPad button "action" by 3 vertical dots - Allow to reprint the last prepration ticket - Adding number of orders by pages on ticket screen. - Removing seconds on the time of the order. - Resizing search bar on ticket screen. Preparation display: - Adding zoom parameter on the navbar - Removing waiter name. - Adding order floating name. - Adding preset name and time on orders. taskId: 4398826
Users can now sort spreadsheet pivot tables by right-clicking any pivot cell and sorting based on that column. This makes pivot analysis more flexible and easier to use, especially when comparing values across multiple columns.
Original PR description
This commit allows the user to right click on a pivot cell to sort the pivot on that column. We now stopped using the sorting from the web's `pivot_model` and use the sorting that is in `o-spreadsheet/SpreadsheetPivotTable` instead. Task: [3989395](https://www.odoo.com/web#id=3989395&cids=1&menu_id=4720&action=333&active_id=2328&model=project.task&view_type=form)
The Trial Balance report now uses a dedicated reporting engine, making it easier to extend, localize, and audit report figures. Users will see clearer balance columns, better comparison handling, and improved country-specific variants for Colombia and Spain.
Original PR description
This update replaces the dynamic lines generator in the Trial Balance report with a custom reporting engine, offering enhanced flexibility and integration. Key benefits include support for…
This update replaces the dynamic lines generator in the Trial Balance report with a custom reporting engine, offering enhanced flexibility and integration. Key benefits include support for non-standard groupbys, seamless compatibility with the report engine, and risk-free combination with specific filters and horizontal groupbys. The custom engine also simplifies localization-specific customizations and allows for easier extensions. Additionally, this refactor fully decouples the Trial Balance from the General Ledger, resulting in independent, streamlined codebase for both reports. Cell-level auditing has been introduced, further enhancing report accuracy and traceability. Functionally, the report has minor changes. The initial and end balance columns are now displayed in a single column instead of two. In addition, an initial and end balance columns are displayed when comparing periods that are either non-adjacent or part of different fiscal years. The Colombian Trial Balance has seen significant improvements, now implemented as a Trial Balance variant with custom groupby keys. This refactoring has drastically reduced the custom code needed for the localization, making maintenance easier and the report more robust. Spain also see the introduction of a new variant for the trial balance. This variant simply adds a column "Period Total" which equals to Debit-Credit. Task-4256374 -> Spain new variant Task-3748928 -> General refactoring of the Trial Balance
Field Service task and reporting views now stay aligned with recent Project app view changes. The update ensures task analysis and task lists show the intended Field Service tasks instead of including unrelated subtasks.
Original PR description
Also, change "all_task", which was also falsy, for "my_tasks" with a truthy value. Related: https://github.com/odoo/odoo/pull/185912 task-4295713
This update strengthens automated testing around helpdesk, timesheet tracking, and live chat support flows. It helps reduce the risk of regressions in customer support and time logging features without introducing direct user-facing changes.
Original PR description
_*=helpdesk,website_helpdesk_livechat task-4354287
Appointment and Studio pages opened from shortcut buttons now keep the same filtered results after a page reload. This prevents users from seeing unrelated records and makes navigation more predictable.
Original PR description
**Before this commit:** When a user was redirected to a window through a stat button, the window displayed only filtered data using a domain set by a Python function. However, when the user reloaded the page, the window displayed unfiltered data. **After this commit:** - After a reload, the window will display the same filtered data by creating a new XML action window with a specified domain. - For dedicated action windows related to stat buttons, the domain and context have been directly added to the action window. - Redundant and unused functions have been removed from the codebase to improve efficiency. Community: https://github.com/odoo/odoo/pull/189270 Task-4229211
This update refreshes internal worksheet test cases to use the correct worksheet template naming instead of a generic partner name. It helps keep automated checks aligned with the worksheet feature, reducing maintenance risk without changing user-facing behavior.
Original PR description
Note: - Replaced the model name `Partner` with `WorksheetTemplate`. task-4394297
…ocument bridge Will be removed in master, in the meantime we don't auto-install the module. task-4332306 Forward-Port-Of: odoo/enterprise#74524
Original PR description
…ocument bridge Will be removed in master, in the meantime we don't auto-install the module. task-4332306 Forward-Port-Of: odoo/enterprise#74524
### Issue: Worksheet quality checks can not be validated if they bypass the Quality wizzard, e.g. when when there is no notes on the QC and it is not related to worksheet data's. ### Steps to reproduce: - Install `quality_control_worksheet` - Create a BOM for a product with an operation + add instr (list icon): - Control per operation, type: worksheet, template: Quality issues - Create ans confirm an MO for 1 unit of your product - Go to the shopfloor and fill the worksheet > Sa
Original PR description
### Issue: Worksheet quality checks can not be validated if they bypass the Quality wizzard, e.g. when when there is no notes on the QC and it is not related to worksheet data's. ### Steps to…
### Issue:
Worksheet quality checks can not be validated if they bypass the Quality wizzard, e.g. when when there is no notes on the QC and it is not related to worksheet data's.
### Steps to reproduce:
- Install `quality_control_worksheet`
- Create a BOM for a product with an operation + add instr (list icon):
- Control per operation, type: worksheet, template: Quality issues
- Create ans confirm an MO for 1 unit of your product
- Go to the shopfloor and fill the worksheet > Save
#### > You are never able to validate the instruction and hence the WO can never be marked as done.
### Cause of the issue:
Since ee1913d7080f6aee06dac004d56203f2c09d4bad (saas-17.2) e.g the change on the "if" condition:
https://github.com/odoo/enterprise/blob/4238d6b071a57b3378968064ad322ea39a8b1294/quality_control_worksheet/static/src/views/quality_worksheet_fromview.js#L23-L28
the worksheet quality check is not marked as passed by the `action_worksheet_check` when the record is saved if no `quality_wizard_id` is set in the context. It is therefore expected to mark the quality check as passed only if it set through the validate button of the worksheet dialog. However, if the quality check does not have specific data's such as notes or a worksheet url, the worksheet dialog will be bypassed and there will not be a `quality_wizard_id` in the context of the action returned by `this.openWorksheet`:
https://github.com/odoo/enterprise/blob/4238d6b071a57b3378968064ad322ea39a8b1294/mrp_workorder/static/src/mrp_display/mrp_display_record.js#L357-L362
https://github.com/odoo/enterprise/blob/0353a4c4307c2ac8d5a109a0e49be34a510e99ef/mrp_workorder/static/src/mrp_display/dialog/mrp_quality_check_confirmation_dialog.js#L82-L85
https://github.com/odoo/enterprise/blob/0353a4c4307c2ac8d5a109a0e49be34a510e99ef/quality_mrp_workorder_worksheet/models/quality.py#L25-L27
It is therefore impossible to validate the quality check by any mean. Furthermore, the mark as done button of the WO is only visible once all the QC are either "pass" or "fail".
### Fix:
If we were to call the `action_open_quality_check_wizard` rather than the `action_quality_worksheet` the same action would be used but with an additional wizard would be in the context:
https://github.com/odoo/enterprise/blob/0353a4c4307c2ac8d5a109a0e49be34a510e99ef/quality_control_worksheet/models/quality.py#L53-L67
That way, if the `this.openWorksheet` is called without a worksheet dialog we will always have a wizard to rely on for the `action_worksheet_check` to be performed `onRecordSaved`.
### Other issue:
In the bypass condition is wrongly set since the `operation_note` field is used but is not defined on the `quality.check` model: https://github.com/odoo/enterprise/blob/4238d6b071a57b3378968064ad322ea39a8b1294/mrp_workorder/static/src/mrp_display/mrp_display_record.js#L358 This condition should rather refer to the `note` field and the length should be used to determine if the string is falsy...
opw-4347352 and opw-4354876
---
Forward-Port-Of: odoo/enterprise#75624
Forward-Port-Of: odoo/enterprise#75137When creating a PO/SO with inter-company rules, the related SO/PO has no fiscal position set, unless having one set on the partner. Removing the `fiscal_position_id` from the values dict allows it to be computed directly at the creation of the related SO/PO Steps: - Have 2 companies A and B - Activate inter-company rules and synchronize sale/purchase orders - With A, create a SO for B, confirm - With B, go to PO and select the related PO newy created -> There is no fiscal position opw-4247948
Original PR description
When creating a PO/SO with inter-company rules, the related SO/PO has no fiscal position set, unless having one set on the partner. Removing the `fiscal_position_id` from the values dict allows it to be computed directly at the creation of the related SO/PO Steps: - Have 2 companies A and B - Activate inter-company rules and synchronize sale/purchase orders - With A, create a SO for B, confirm - With B, go to PO and select the related PO newy created -> There is no fiscal position opw-4247948 Forward-Port-Of: odoo/enterprise#75795 Forward-Port-Of: odoo/enterprise#73392
* From OXP feedback, there was no way to view partners with missing ICE/Tax ID when exporting reports as XML. * Fix ICE numbers in tests. task-4226448 Forward-Port-Of: odoo/enterprise#74005
Original PR description
* From OXP feedback, there was no way to view partners with missing ICE/Tax ID when exporting reports as XML. * Fix ICE numbers in tests. task-4226448 Forward-Port-Of: odoo/enterprise#74005
Steps to reproduce: - Create a pos order with multiple line order notes - Send the order to preparation - Open preparation display screen Current behaviour: - Blank preparation display screen Expected behaviour: - Show the order with mutliple lines order notes Explanation: - Order note is using split to display the note in point form. So inside the t-foreach loop, the t-key should be the value of the splited note value. Instead of using generate_note which is underfined. I
Original PR description
Steps to reproduce: - Create a pos order with multiple line order notes - Send the order to preparation - Open preparation display screen Current behaviour: - Blank preparation display screen Expected behaviour: - Show the order with mutliple lines order notes Explanation: - Order note is using split to display the note in point form. So inside the t-foreach loop, the t-key should be the value of the splited note value. Instead of using generate_note which is underfined. If multiple lines of order note, all lines generate_note will be underfined thus error thrown because t-key needs to be unique. X-original-commit: de85be7 Forward-Port-Of: odoo/enterprise#75526
Steps to reproduce: - Install helpdesk_stock and Studio - Create 3 contacts, 1 company and two child employees - Create a quotation for each contact with a different product - Helpdesk app > Create a ticket - Add the Product ('product_id') field with studio - (Under 'Existing Fields' search product) - (View tab > Show invisible elements > Find product field > untick invisible) The products from contacts linked to the parent company should appear, but only those related to SOs from the
Original PR description
Steps to reproduce:
- Install helpdesk_stock and Studio
- Create 3 contacts, 1 company and two child employees
- Create a quotation for each contact with a different product
- Helpdesk app > Create a ticket
- Add the Product ('product_id') field with studio
- (Under 'Existing Fields' search product)
- (View tab > Show invisible elements > Find product field > untick invisible)
The products from contacts linked to the parent company should appear, but only those related to SOs from the contact itself or its parent company are shown (i.e. We should see all 3 products no matter which contact is set as customer).
This is related to https://github.com/odoo/enterprise/pull/73391, which was a step in the right direction but still insufficient. Unlike that fix however this one is relevant up to master.
opw-4285382
Forward-Port-Of: odoo/enterprise#75766
Forward-Port-Of: odoo/enterprise#74361When creating an order from the kiosk and pay it at the counter, it should be sent to PDIS when creating it. opw-4364309 Forward-Port-Of: odoo/enterprise#75812
Original PR description
When creating an order from the kiosk and pay it at the counter, it should be sent to PDIS when creating it. opw-4364309 Forward-Port-Of: odoo/enterprise#75812