Thursday, December 19, 2024
16 changes · master
Enhancements to existing features
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.
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)
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
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
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
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