Friday, October 20, 2023
28 changes
Enhancements to existing features
This update adds test coverage for a collaboration scenario in Knowledge where content may be reloaded after a shared editing session starts. It helps ensure editing behavior remains consistent for users working together on the same article.
Original PR description
Add a test to ensure that `_notifyNewBehavior` is correctly executed twice in case the content is reset because of a resynchronization after opening a channel in collaboration. task-3551505 Forward-Port-Of: #49112 Forward-Port-Of: #49164
The SEPA payment and payroll SEPA features have been consolidated into their main modules, reducing the number of separate add-ons to maintain. This should make future updates easier while keeping SEPA payment capabilities available in the standard modules.
Original PR description
In an effort to simplify the codebase and enhance maintainability, this commit merges account_sepa_pain_001_001_09 into account_sepa and hr_payroll_account_sepa_09 into hr_payroll_account_sepa. Task-3455391
Odoo removed an older internal messaging mechanism and updated affected areas to use newer shared communication paths. This reduces outdated code and helps keep features like push notifications and barcode workflows easier to maintain without changing expected business behavior.
Original PR description
This commit removes the legacy global bus (core bus) and the places where it was used. The main users of this bus were the public widgets, a shared bus has been added on PublicWidget. Some of the uses were dead code and has been removed. task: 3439226
This update modernizes internal data query handling across accounting, data merge, and manufacturing reporting. It should help keep business reports and data operations reliable as the platform’s underlying database tools evolve, with little direct change for end users.
Original PR description
Companion of https://github.com/odoo/odoo/pull/138019.
Resolved issues and error corrections
This change removes outdated IVA, IEPS, and ISR tax tags that are no longer needed because Mexican taxes now use a dedicated tax type field. It reduces duplicate configuration and helps keep Mexican electronic invoicing tests aligned with the current tax setup.
Original PR description
The iva, ieps, isr tags are useless since there is the selection field `l10n_mx_tax_type` on the taxes. task-3100679 https://github.com/odoo/odoo/pull/136948 https://github.com/odoo/upgrade/pull/5204
Code cleanup and technical improvements
This update moves an internal web record file into a more appropriate model folder and adjusts related references across several Odoo apps. It should not change day-to-day functionality, but it helps keep the codebase cleaner and easier to maintain for future improvements.
Original PR description
This commit is part of a serie of commits which aims at simplifying and reorganizing js files in the web addon task-id: 3508223
Miscellaneous changes
Steps to reproduce ================== - Go to the project task form view - Open studio - Drag a new Integer field at the last position of the last column (After the Planned Date field). - Click on "Undo" ``` TypeError: Cannot read properties of null (reading 'arch') at get nodeType [as nodeType] at get propertiesComponent [as propertiesComponent] ... ``` Cause of the issue ================== The old `activeNodeXpath` is used and since we cancelled the last operation,
Original PR description
Steps to reproduce ================== - Go to the project task form view - Open studio - Drag a new Integer field at the last position of the last column (After the Planned Date field). - Click on "Undo" ``` TypeError: Cannot read properties of null (reading 'arch') at get nodeType [as nodeType] at get propertiesComponent [as propertiesComponent] ... ``` Cause of the issue ================== The old `activeNodeXpath` is used and since we cancelled the last operation, it doesn't match anything anymore. opw-3478585 Forward-Port-Of: odoo/enterprise#49247 Forward-Port-Of: odoo/enterprise#48688
This fix ensures Gantt chart rows can be selected reliably even when their identifiers contain special characters. It prevents selection glitches for schedules or planning views that use unusual row names or generated IDs.
Original PR description
This commit adds css escaping to the rowId string when it is used in selectors as it should have.
Expense reports paid by employees can create vendor bills with receipt attachments already populated from the report. This fix prevents OCR from running again on those generated bills, avoiding unnecessary processing and possible duplicate or conflicting data extraction.
Original PR description
When posting entries from a report paid by employee that has receipts attached, a bill is generated with the receipts copied in the bill attachments. Since the vendor bill is already filled with the data from the report, the OCR shouldn't be used again for the bill. task-3550037
This fixes a case where a fallback pro forma PDF could be saved as the official invoice report after a Send & Print error. Only successfully generated invoice PDFs are now linked, helping prevent incorrect documents from being treated as final invoices.
Original PR description
When triggering the Send & Print with the allow_fallback_pdf=True, if an error occurs (e.g.: no UNSCPC code on the product with CFDI), the proforma PDF is generated instead and is assigned to `invoice_report_file_id`. However, only a successful PDF should be bound to this field. task-3542881 related-https://github.com/odoo/odoo/pull/138206
The Peruvian electronic invoicing module now reuses Odoo's shared UBL 2.1 invoice format instead of maintaining separate duplicate templates. This simplifies future maintenance and helps keep Peru e-invoicing aligned with common invoice format updates, with little direct change expected for users.
Original PR description
Currently the Peruvian EDI module defines its own UBL templates. Since the Peruvian electronic invoices use UBL 2.1, it makes a lot more sense to inherit from our generic UBL 2.1 format defined in `account_edi_ubl_cii` to remove code duplication and have a single point to edit the generic UBL parts. [task-3415758](https://www.odoo.com/web#id=3415758&cids=1&menu_id=4720&action=333&active_id=967&model=project.task&view_type=form) Related to https://github.com/odoo/odoo/pull/132529 Related to https://github.com/odoo/upgrade/pull/5131
Steps to reproduce: ------------------- - create an application for a job; - click on "Generate Offer"; - choose an other date for "Contract Start Date"; - save and open the link in another session; - complete the salary configuration; - open the new contract. Issue: ------ The start date is not correct. Cause: ------ we force the date to be the first of the current month. Solution: --------- Use offer date with a fallback of the first of the month because the field `contra
Original PR description
Steps to reproduce: ------------------- - create an application for a job; - click on "Generate Offer"; - choose an other date for "Contract Start Date"; - save and open the link in another session; - complete the salary configuration; - open the new contract. Issue: ------ The start date is not correct. Cause: ------ we force the date to be the first of the current month. Solution: --------- Use offer date with a fallback of the first of the month because the field `contract_start_date` is not required. opw-3544803 Forward-Port-Of: odoo/enterprise#49165
The fields were not translatable but displayed on the /salary_package/simulation page
Original PR description
The fields were not translatable but displayed on the /salary_package/simulation page
As the timezone is not a required field we should check first that it is set before using it. task-3555709 Forward-Port-Of: odoo/enterprise#48974
Original PR description
As the timezone is not a required field we should check first that it is set before using it. task-3555709 Forward-Port-Of: odoo/enterprise#48974
Steps to reproduce: - Install l10n_ec_edi - Switch to an Ecuadorian company (e.g. EC Company) - Create a vendor bill: * Vendor: [a contact not in Ecuador] (e.g. Azure Interieur) * Journal: 001-001 Liquidaciones de Compra * Document Type: (03) Liquidación de compra de Bienes o Prestación de servicios * Payment Method (SRI): [any] (e.g. Sin utilización del sistema financiero) * Invoice Lines => Product: [any] - Taxes: [an EC tax] (e.g. IVA 12% (510, 01 Crédito IVA)) - Confirm in
Original PR description
Steps to reproduce: - Install l10n_ec_edi - Switch to an Ecuadorian company (e.g. EC Company) - Create a vendor bill: * Vendor: [a contact not in Ecuador] (e.g. Azure Interieur) * Journal: 001-001…
Steps to reproduce: - Install l10n_ec_edi - Switch to an Ecuadorian company (e.g. EC Company) - Create a vendor bill: * Vendor: [a contact not in Ecuador] (e.g. Azure Interieur) * Journal: 001-001 Liquidaciones de Compra * Document Type: (03) Liquidación de compra de Bienes o Prestación de servicios * Payment Method (SRI): [any] (e.g. Sin utilización del sistema financiero) * Invoice Lines => Product: [any] - Taxes: [an EC tax] (e.g. IVA 12% (510, 01 Crédito IVA)) - Confirm invoice - Click on "ADD WITHHOLD" - Add a withhold line with a tax having its l10n_ec_code_base value in L10N_EC_WTH_FOREIGN_GENERAL_REGIME_CODES list (e.g. 501-422 22% Pago al Exterior - Beneficios Empresariales (Sin Convenio de Doble Tributación) - Create and post Withhold - Check the EDI xml linked to the withhold => "paisEfecPago" element has a "NA" value, but it should be the "l10n_ec_code_ats" value of the vendor country as we have used a tax having its "l10n_ec_code_base" code in L10N_EC_WTH_FOREIGN_GENERAL_REGIME_CODES list Cause: Only the first tax from the withhold lines is checked to determine if it is in L10N_EC_WTH_FOREIGN_GENERAL_REGIME_CODES list or not. So, if the first tax is not in the list, the system considers that all taxes are not in the list (even if the second one is in the list) and it doesn't populate the correct data for "paisEfecPago" element in the edi xml. (same issue for "aplicConvDobTrib" and "pagExtSujRetNorLeg" elements) Solution: Check all the taxes instead of just the first one. opw-3478597 Forward-Port-Of: odoo/enterprise#48463
The leave wizard was using an older field name for its date widget. The menus for appointment were not ordered properly. And the name of the menus did not match the name of the actions. task-3434098 Forward-Port-Of: odoo/enterprise#44400
Original PR description
The leave wizard was using an older field name for its date widget. The menus for appointment were not ordered properly. And the name of the menus did not match the name of the actions. task-3434098 Forward-Port-Of: odoo/enterprise#44400
to make UI less confusing, we hide the processing date field when multi mode is selected, also added a tooltip to the multi mode checkbox to explain what it does Task-3557829 Forward-Port-Of: odoo/enterprise#49069
Original PR description
to make UI less confusing, we hide the processing date field when multi mode is selected, also added a tooltip to the multi mode checkbox to explain what it does Task-3557829 Forward-Port-Of: odoo/enterprise#49069
Current behavior: When you create an invoice through the QRCode on the tickets, you can select an usage for it. But the usage was never taken into account when creating the invoice, so the invoice was always created with the default usage. Steps to reproduce: - Install l10n_mx_edi_pos - Go in the Mexican company - Create a PoS and activate the QRCode on receipts - Open the PoS - Create an order and pay it but don't invoice it - Scan the QRCode (in private mode so you are not connected
Original PR description
Current behavior: When you create an invoice through the QRCode on the tickets, you can select an usage for it. But the usage was never taken into account when creating the invoice, so the invoice was always created with the default usage. Steps to reproduce: - Install l10n_mx_edi_pos - Go in the Mexican company - Create a PoS and activate the QRCode on receipts - Open the PoS - Create an order and pay it but don't invoice it - Scan the QRCode (in private mode so you are not connected to Odoo) - Fill in the form and select an usage different from the default one - Validate the form - Go in the invoices and check the usage of the invoice opw-3505203 Forward-Port-Of: odoo/enterprise#49116 Forward-Port-Of: odoo/enterprise#48708
Previously, when installing the `pos_restaurant_appointment` module after creating new tables in `pos_restaurant`, the module did not create ppointment resources automatically. Now we've added a `post_init_hook` that will automatically create these resources for tables that don't have any. Forward-Port-Of: odoo/enterprise#49103
Original PR description
Previously, when installing the `pos_restaurant_appointment` module after creating new tables in `pos_restaurant`, the module did not create ppointment resources automatically. Now we've added a `post_init_hook` that will automatically create these resources for tables that don't have any. Forward-Port-Of: odoo/enterprise#49103
**Steps:** - Open Planning without demo data - Add a role - Now look at the row containing the 'Total' **Issue:** - The corner of the frame around today's date is missing when the view is empty **Cause:** - Due to the border-left given for cells with not first-of-type, it's not showing the border around the total in all cells and showing just the left border in the first cell. **Fix:** - Remove the border-left given for the cell with not first-of-type because it's better to have a
Original PR description
**Steps:** - Open Planning without demo data - Add a role - Now look at the row containing the 'Total' **Issue:** - The corner of the frame around today's date is missing when the view is empty **Cause:** - Due to the border-left given for cells with not first-of-type, it's not showing the border around the total in all cells and showing just the left border in the first cell. **Fix:** - Remove the border-left given for the cell with not first-of-type because it's better to have a border around the total when it's highlighted. **Task:** 3446994 Forward-Port-Of: odoo/enterprise#45460
Turns out that commit 25645eb0 only partly fixed the dependency issue as the breadcrumbs template depens on both `Dropdown` and `DropdownItem`. Task: / Forward-Port-Of: odoo/enterprise#49138
Original PR description
Turns out that commit 25645eb0 only partly fixed the dependency issue as the breadcrumbs template depens on both `Dropdown` and `DropdownItem`. Task: / Forward-Port-Of: odoo/enterprise#49138
Since the new milk theme, the clickbot for click everywhere, didn't set the filters on the views. Now, the clickbot set all the filters on the views. This commit also add a test suit, to avoid future downgrades. This commit transform the clickbot to a module ES6. task-id 3535596 Forward-Port-Of: odoo/enterprise#49022 Forward-Port-Of: odoo/enterprise#48704
Original PR description
Since the new milk theme, the clickbot for click everywhere, didn't set the filters on the views. Now, the clickbot set all the filters on the views. This commit also add a test suit, to avoid future downgrades. This commit transform the clickbot to a module ES6. task-id 3535596 Forward-Port-Of: odoo/enterprise#49022 Forward-Port-Of: odoo/enterprise#48704
When enterprise is installed as a package, importing this `odoo.addons.account_avatax` will raise an `ImportError` due to this missing file. @moduon MT-1075 Forward-Port-Of: odoo/enterprise#48613
Original PR description
When enterprise is installed as a package, importing this `odoo.addons.account_avatax` will raise an `ImportError` due to this missing file. @moduon MT-1075 Forward-Port-Of: odoo/enterprise#48613
The BACS settings in the account_bacs module were not searchable following a forward port to the saas-16.1 branch. This commit updates the outdated syntax to make the settings searchable and functional again. task-3550949 Forward-Port-Of: odoo/enterprise#49084 Forward-Port-Of: odoo/enterprise#48930
Original PR description
The BACS settings in the account_bacs module were not searchable following a forward port to the saas-16.1 branch. This commit updates the outdated syntax to make the settings searchable and functional again. task-3550949 Forward-Port-Of: odoo/enterprise#49084 Forward-Port-Of: odoo/enterprise#48930
[FIX] global_filters: prevent unwanted errors while saving In global filters of type 'relation', changing set domains of model X to model Y, followed by changing the related model from X to Y generated a field validation error while saving. This issue occured because index of type 'number' was passed to `add` method whereas index of type 'string' was passed to `delete` method. As a result, '_wrongFieldMatchingsSet' was never emptied as 'delete' method did not work as intended due to
Original PR description
[FIX] global_filters: prevent unwanted errors while saving In global filters of type 'relation', changing set domains of model X to model Y, followed by changing the related model from X to Y generated a field validation error while saving. This issue occured because index of type 'number' was passed to `add` method whereas index of type 'string' was passed to `delete` method. As a result, '_wrongFieldMatchingsSet' was never emptied as 'delete' method did not work as intended due to strict equality. This PR fixes the issue by ensuring that the type of index passed in params of `selectedField` method is always `number`. Task ID : 3272667 Forward-Port-Of: odoo/enterprise#49154 Forward-Port-Of: odoo/enterprise#43424