Friday, October 20, 2023
55 changes · master
Enhancements to existing features
This update removes an older shared messaging mechanism used behind the scenes across several website, portal, payment, barcode, and editor features. Replacing it with newer shared communication patterns helps simplify maintenance and reduce obsolete code without introducing a new business feature.
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
Calendar sidebars now use more consistent checkbox styling, avatar presentation, and spacing across Calendar, Time Off, Google Calendar, and Microsoft Calendar. This creates a cleaner, more unified experience when users filter calendar views, without changing the underlying workflow.
Original PR description
*: google_calendar, microsoft_calendar; Replace the customized checkboxes with the original `form-check-input` but using the custom colors for more consistency accross the apps. Before :  After:  Avatars have the `.o_avatar` class added to them. And SCSS has been replaced with utility classes where possible. These commits were initially in PR https://github.com/odoo/odoo/pull/127413 targeting saas-16.3. task-3414750 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Updated several Latin American localization screens with clearer labels, tooltips, and field placement to make country-specific accounting information easier to understand. Some fields are now hidden when they do not apply to the active company, reducing clutter and avoiding confusion for users working across companies.
Original PR description
This PR aims at changing some tooltip, labels and changing the place of some fields. Also adding some invisible tags to avoid the fields to be displayed on other companies task: 3270458 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
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 fixes a small issue in the website editor's history dialog that could reference the wrong item when showing repeated entries. It helps ensure users see reliable history information while editing content.
Original PR description
Fix wrong Qweb foreach key reference in history dialog. task-3560850 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Features or functions removed from Odoo
The Mexican localization no longer keeps separate IVA, IEPS, and ISR tax tags because taxes already have a dedicated tax type field. This simplifies tax setup data and reduces redundant configuration without changing day-to-day workflows.
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/enterprise/pull/48088 https://github.com/odoo/upgrade/pull/5204
Code cleanup and technical improvements
The web codebase was reorganized by moving a shared record-related file into a clearer model folder. This is an internal cleanup that should make future maintenance easier without changing how users work with Odoo.
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
Documentation and clarification updates
This update adds Victor Hachard's contributor license agreement confirmation to the project records. It supports the legal process needed for accepting contributions and has no impact on product features or users.
Original PR description
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Miscellaneous changes
Steps to reproduce: - Install Accounting & Contacts - Go to Contacts and open partner linked to a res.company (e.g. YourCompany) - Select another value for Account Receivable (e.g. Account Receivable (Pos)) - Go to Accounting and create an invoice for YourCompany - Check Journal Items The used Account Receivable is not the one configured on the partner, but the default one from the company. The issue only happens for the "res.partner" linked to a "res.company". Cause: When computing t
Original PR description
Steps to reproduce: - Install Accounting & Contacts - Go to Contacts and open partner linked to a res.company (e.g. YourCompany) - Select another value for Account Receivable (e.g. Account Receivable…
Steps to reproduce:
- Install Accounting & Contacts
- Go to Contacts and open partner linked to a res.company (e.g. YourCompany)
- Select another value for Account Receivable (e.g. Account Receivable (Pos))
- Go to Accounting and create an invoice for YourCompany
- Check Journal Items
The used Account Receivable is not the one configured on the partner, but the default one from the company.
The issue only happens for the "res.partner" linked to a "res.company".
Cause:
When computing the available accounts, a dict is generated with the following structure: {(model, id, account_type): account_id}.
dict of keys: tuple (model, id, account_type)
values: int (account_id)
This dict is generated from several sources that are merged together.
One source (aka "properties") is the accounts configured on the partners.
In our example, such an entry is {('res.partner', 1, 'asset_receivable'): 35}.
Another source (aka "default_properties") is the default accounts configured on the companies.
From these data, entries are generated for the partners linked to the companies.
In our example, YourCompany "res.partner" is linked to YourCompany "res.company and the following entry is generated: {('res.partner', 1, 'asset_receivable'): 6}.
The key of this entry is exactly the same as the key of the entry from the other source and is overriding its value in the final dict once merged.
Solution:
The data from "properties" should be the main ones and the data from "default_properties" should be used as fallback.
This can be done by changing the order of the merge.
opw-3465767
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#136828This fix updates Sales spreadsheet dashboards so scorecard links open the correct sales report menus. It prevents users from landing on broken or empty menu pages after recent menu changes.
Original PR description
Since c418b35 the menu `sale.menu_sale_report` was split into multiple sub-menus. The dasboards weren't changed, which meant that the links of the scorecards in the dashboard were pointing to a menu without an actionID. Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
After setting up Peppol, the purchase journal dashboard now immediately shows the fetch button. This helps users retrieve incoming Peppol documents without needing extra steps or waiting for a later refresh.
Original PR description
Problem --------- Directly after setting up peppol, the fetch button on the purchase journal (in the dashboard) is not showing. Objective --------- Make sure the button is shown directly after the journal is set up. Solution --------- When setting up peppol, the compute function that computes the peppol purchase account is triggered. However, this function would not set up the journal's `is_peppol_journal` to true. Thus, no button was showing. Adding that line solves the issue. linked PR: https://github.com/odoo/odoo/pull/137840 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The demo employee data no longer includes a default PIN code. This avoids blocking access in demo environments for other connected apps, such as Shop Floor, that rely on the same employee records.
Original PR description
We're removing the default pin code on demo data to not restrict access to other apps that depend on it such as the new shop floor app --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Pivot tables imported into spreadsheets now show week-based dates in the expected order, such as "W40 2023" instead of "W2023 40". This avoids confusion when business users review weekly pivot data and keeps imported reports consistent.
Original PR description
When importing a pivot with a date field in week format, the date was formatted as "W2023 40" instead of "W40 2023". Task: [3539629](https://www.odoo.com/web#id=3539629&cids=1&menu_id=4720&action=333&active_id=2328&model=project.task&view_type=form) Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
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
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
Shared Spanish VAT reporting logic is being moved into the core Spanish localization module so it can be reused by future reports. This helps small and medium businesses use the upcoming Libros Registro de IVA export without needing the SII electronic invoicing module installed.
Original PR description
The new Libros Registro de IVA export from l10n_es_reports is very similar to l10n_es_edi_sii We want to reuse things in l10n_es_edi_sii but it will require l10n_es_reports to depend on it first, which is not a good thing since the Libros export will be used mainly by SME that does not have l10n_es_edi_sii installed yet This commit refactor some part from l10n_es_edi_sii to l10n_es so that l10n_es_reports can reuse things from l10n_es_edi_sii while not depending on it community-PR: https://github.com/odoo/odoo/pull/136983 enterprise-PR: https://github.com/odoo/enterprise/pull/47578 task-id: 3394451
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
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
When a user tries to create a leave request without linking an employee with the user and without a configured login user timezone, a traceback will be generated. Steps to reproduce: - Install the "hr_holidays" module. - Create a new user, e.g., "Test user", and login with another browser. - Login as an admin user and go to Settings > Users & Companies. - Search for "Test user" and set Timzone as empty. - Go to the Time Off menu and create a leave request; after that, a traceback will be
Original PR description
When a user tries to create a leave request without linking an employee with the user and without a configured login user timezone, a traceback will be generated. Steps to reproduce: - Install the…
When a user tries to create a leave request without linking an employee with the user and without a configured login user timezone, a traceback will be generated.
Steps to reproduce:
- Install the "hr_holidays" module.
- Create a new user, e.g., "Test user", and login with another browser.
- Login as an admin user and go to Settings > Users & Companies.
- Search for "Test user" and set Timzone as empty.
- Go to the Time Off menu and create a leave request; after that, a traceback will be generated.
Error: AttributeError: 'bool' object has no attribute 'upper'
Sentry Traceback:
```AttributeError: 'bool' object has no attribute 'upper'
File "odoo/http.py", line 2134, in __call__
response = request._serve_db()
File "odoo/http.py", line 1710, in _serve_db
return service_model.retrying(self._serve_ir_http, self.env)
File "odoo/service/model.py", line 133, in retrying
result = func()
File "odoo/http.py", line 1737, in _serve_ir_http
response = self.dispatcher.dispatch(rule.endpoint, args)
File "odoo/http.py", line 1851, in dispatch
return self.request.registry['ir.http']._dispatch(endpoint)
File "addons/website/models/ir_http.py", line 233, in _dispatch
response = super()._dispatch(endpoint)
File "odoo/addons/base/models/ir_http.py", line 191, in _dispatch
result = endpoint(**request.params)
File "odoo/http.py", line 717, in route_wrapper
result = endpoint(self, *args, **params_ok)
File "addons/website/controllers/form.py", line 46, in website_form
return self._handle_website_form(model_name, **kwargs)
File "addons/website/controllers/form.py", line 62, in _handle_website_form
data = self.extract_data(model_record, kwargs)
File "addons/website/controllers/form.py", line 147, in extract_data
authorized_fields = model.with_user(SUPERUSER_ID)._get_form_writable_fields()
File "addons/website/models/website_form.py", line 42, in _get_form_writable_fields
k: v for k, v in self.get_authorized_fields(self.model).items()
File "addons/website/models/website_form.py", line 56, in get_authorized_fields
default_values = model.with_user(SUPERUSER_ID).default_get(list(fields_get))
File "addons/hr_holidays/models/hr_leave.py", line 111, in default_get
defaults['date_from'] = self._get_start_or_end_from_attendance(attendance_from.hour_from, date_from, employee)
File "addons/hr_holidays/models/hr_leave.py", line 1660, in _get_start_or_end_from_attendance
holiday_tz = timezone(employee.tz or self.env.user.tz)
File "__init__.py", line 183, in timezone
if zone.upper() == 'UTC':
```
When a user tries to create a leave request without linking an employee with the user and without a configured login user timezone, the _get_start_or_end_from_attendance() function of the "hr.leave" object will call at that time timzone not getting.
Code reference:
https://github.com/odoo/odoo/blob/c9726d592799a1ed60c0229fa06e3aec3c9edea2/addons/hr_holidays/models/hr_leave.py#L111
Sentry-4441512696
Forward-Port-Of: odoo/odoo#134208
Forward-Port-Of: odoo/odoo#133955#### [FIX] web: add fallback of display_name in `formatMany2one`. Since https://github.com/odoo/odoo/pull/137098, we add a fallback for false display_name in the form view, but we didn't add it for the list view which doesn't instantiate the Many2one component. It uses `formatMany2one` instead. Fix it to be consistent with the Many2one #### [FIX] web: fix `extraLines` for false display_name Since https://github.com/odoo/odoo/pull/137098, in `Accounting > Bank > Tree View`, you get a
Original PR description
#### [FIX] web: add fallback of display_name in `formatMany2one`. Since https://github.com/odoo/odoo/pull/137098, we add a fallback for false display_name in the form view, but we didn't add it for the list view which doesn't instantiate the Many2one component. It uses `formatMany2one` instead. Fix it to be consistent with the Many2one #### [FIX] web: fix `extraLines` for false display_name Since https://github.com/odoo/odoo/pull/137098, in `Accounting > Bank > Tree View`, you get a traceback if one of the bank statements in the view has a false as `display_name` (name is only required in the view not in the model). The traceback comes from the `extraLines` accessor in the Many2one component. The fix is the same as in https://github.com/odoo/odoo/pull/138061 (FW of the first PR). Forward-Port-Of: odoo/odoo#138941
Courtesy of Marianna (cima) Forward-Port-Of: odoo/odoo#139201
Original PR description
Courtesy of Marianna (cima) Forward-Port-Of: odoo/odoo#139201
This commit reduces the size and avoid conflicts caused by the embed live chat bundle: jquery, legacy libs... At the same time, this commit fixes the emoji picker that was wrongly positionned and scrolled up the page when opening. Finally, this commit ensures the chat window is always at the bottom of the screen. opw-3539362 Forward-Port-Of: odoo/odoo#139020
Original PR description
This commit reduces the size and avoid conflicts caused by the embed live chat bundle: jquery, legacy libs... At the same time, this commit fixes the emoji picker that was wrongly positionned and scrolled up the page when opening. Finally, this commit ensures the chat window is always at the bottom of the screen. opw-3539362 Forward-Port-Of: odoo/odoo#139020
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/odoo#138881 Forward-Port-Of: odoo/odoo#137708
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/odoo#138881 Forward-Port-Of: odoo/odoo#137708
This reverts commit b1427153f8c7cc82ae45a9ff8c0a9fed93b51d42. It seems that salesman likes to change payment terms on SO after the confirmation. task-3562396 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#139234
Original PR description
This reverts commit b1427153f8c7cc82ae45a9ff8c0a9fed93b51d42. It seems that salesman likes to change payment terms on SO after the confirmation. task-3562396 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#139234
Significantly improves the usability and the result of the populate for base models and channel/member/message. - make populate of base models re-entrant - adapt size to values that make sense: - small shows something relevant, and can be quickly ran several times - medium is fast enough to be usuable but big enough to highlight performance issues - large is... still not to be attempted - avoid conflicting conditions that either make no sense or can lead to crashes when populating
Original PR description
Significantly improves the usability and the result of the populate for base models and channel/member/message. - make populate of base models re-entrant - adapt size to values that make sense: - small shows something relevant, and can be quickly ran several times - medium is fast enough to be usuable but big enough to highlight performance issues - large is... still not to be attempted - avoid conflicting conditions that either make no sense or can lead to crashes when populating the data or running the database - better spread of data in channel/member/messages Back-ported from https://github.com/odoo/odoo/pull/138330 Forward-Port-Of: odoo/odoo#139244
When `_resetFromClient` returns an error, `_historySyncFinished` should not be set to true since the history was not updated from the requested snapshot. Also await the result of `get_client_avatar` and `get_client_name` during `rtc_data_channel_open` so that no error is produced during tests after calling `removePeers` without properly awaiting those promises. task-3551505 Forward-Port-Of: odoo/odoo#138955 Forward-Port-Of: odoo/odoo#138550
Original PR description
When `_resetFromClient` returns an error, `_historySyncFinished` should not be set to true since the history was not updated from the requested snapshot. Also await the result of `get_client_avatar` and `get_client_name` during `rtc_data_channel_open` so that no error is produced during tests after calling `removePeers` without properly awaiting those promises. task-3551505 Forward-Port-Of: odoo/odoo#138955 Forward-Port-Of: odoo/odoo#138550
Reproduction traceback: 1. Navigate to POS/Sessions 2. Open Studio 3. Navigate to Reports 4. Open Sale Details report After this commit, if the report is open without any session or config the currency used is the one from the company. Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#1385
Original PR description
Reproduction traceback: 1. Navigate to POS/Sessions 2. Open Studio 3. Navigate to Reports 4. Open Sale Details report After this commit, if the report is open without any session or config the currency used is the one from the company. Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#138526
Before, the product reminder in mobile never disappeared, it displayed the last product selected and it was impossible to remove it, even when changing page and returning to the product list. Now, it's displayed when the product is clicked, and when you click on something other than a product, it disappears. When you change page and return to the product list, it's only displayed the next time you click on another product. Forward-Port-Of: odoo/odoo#139036
Original PR description
Before, the product reminder in mobile never disappeared, it displayed the last product selected and it was impossible to remove it, even when changing page and returning to the product list. Now, it's displayed when the product is clicked, and when you click on something other than a product, it disappears. When you change page and return to the product list, it's only displayed the next time you click on another product. Forward-Port-Of: odoo/odoo#139036
Step to reproduce: - Create company specific sequences for purchase agreements. - Create a purchase agreement for Chicago company - Select both comapanies for current user and switch to San francisco - Confirm the call for tender Bug: sequence from San francisco is applied since ir.sequence takes current company by default Fix: for company specific purchase agreements apply their own companies sequence opw-3505571 Forward-Port-Of: odoo/odoo#139126 Forward-Port-Of: odoo/odoo#13865
Original PR description
Step to reproduce: - Create company specific sequences for purchase agreements. - Create a purchase agreement for Chicago company - Select both comapanies for current user and switch to San francisco - Confirm the call for tender Bug: sequence from San francisco is applied since ir.sequence takes current company by default Fix: for company specific purchase agreements apply their own companies sequence opw-3505571 Forward-Port-Of: odoo/odoo#139126 Forward-Port-Of: odoo/odoo#138658
Steps to reproduce ================== - Go to budget analysis - Switch to the pivot view - Unselect the first three measures - Save the current search and set it as default - In the measures dropdown, there is only two measures remaining Cause of the issue ================== - When `context.pivot_measures` is used, the measures are computed from it and those that comes from the metaData are missing. opw-3544823 Forward-Port-Of: odoo/odoo#139221 Forward-Port-Of: odoo/odoo#13
Original PR description
Steps to reproduce ================== - Go to budget analysis - Switch to the pivot view - Unselect the first three measures - Save the current search and set it as default - In the measures dropdown, there is only two measures remaining Cause of the issue ================== - When `context.pivot_measures` is used, the measures are computed from it and those that comes from the metaData are missing. opw-3544823 Forward-Port-Of: odoo/odoo#139221 Forward-Port-Of: odoo/odoo#139108
[FIX] web_editor: enter resets the editor after link insertion Reproduction for creation: 1. Create a link using /link 2. Click after the link, press enter 3. The link and cursor disappear. Reproduction for cancellation: 1. Create a link using /link, don’t save it but cancel it 2. Click after the link, press enter 3. The link and cursor disappear. Fix: After clicking the save button of the link dialog, the next history step is not correctly set up as the history step is not u
Original PR description
[FIX] web_editor: enter resets the editor after link insertion Reproduction for creation: 1. Create a link using /link 2. Click after the link, press enter 3. The link and cursor disappear.…
[FIX] web_editor: enter resets the editor after link insertion Reproduction for creation: 1. Create a link using /link 2. Click after the link, press enter 3. The link and cursor disappear. Reproduction for cancellation: 1. Create a link using /link, don’t save it but cancel it 2. Click after the link, press enter 3. The link and cursor disappear. Fix: After clicking the save button of the link dialog, the next history step is not correctly set up as the history step is not unpaused. This causes the mutation list of the current step to have all the mutations before starting the link insert. Thus after the link creation, whenever the historyRollback is executed, it’s rolled back to the very start The cancellation has two cases, clicking the discard button or clicking the close button. Unfortunately, they have to be handled differently. For clicking the discard button we need to bind the button with a function doing the historystep then close. For the close window button, we have to rewrite the close function by overwriting this.env.dialogData.close. The overwrite method is specified in this commit: https://github.com/odoo/odoo/commit/dc1191f6939c4bbf5cfcc865884813610f4f8f2c task-3446357 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#138517
*: website_crm, website_event, website_event_track Before this commit, when accessing the visitor views without having any event rights, an error was triggered. This commit restricts the display of the `event_registration_count` field on the `website_visitor_view_form` restricted to the `event.group_event_user` group so that its invisible condition does not fail. Similarly it restricts a visibility condition on `event_track_wishlisted_count` to the `event.group_event_manager` group.
Original PR description
*: website_crm, website_event, website_event_track Before this commit, when accessing the visitor views without having any event rights, an error was triggered. This commit restricts the display of…
*: website_crm, website_event, website_event_track Before this commit, when accessing the visitor views without having any event rights, an error was triggered. This commit restricts the display of the `event_registration_count` field on the `website_visitor_view_form` restricted to the `event.group_event_user` group so that its invisible condition does not fail. Similarly it restricts a visibility condition on `event_track_wishlisted_count` to the `event.group_event_manager` group. To avoid encountering the same issue with further extensions of `_compute_email_phone` on the `website.visitor` model, we make its fields `compute_sudo=True`, and revert the specific `sudo` that had been added in [1]. Steps to reproduce: - install `website_event` - set Demo user to have no Events right, but be an "Editor and Designer" for Website - register to an event as an anonymous user - access the Visitors page as Demo user => An error was produced. Steps to reproduce (2): - install `website_event_track` - set Demo user to have no Events right, but be an "Editor and Designer" - access the Visitors page as Demo user => An error was produced. [1]: https://github.com/odoo/odoo/commit/5ba09c2cb2bb180cfb1363c352f35bd8cf3b132b opw-3537849 Forward-Port-Of: odoo/odoo#139122 Forward-Port-Of: odoo/odoo#138911
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
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
The commit(6b5eb6961bccd76c6e25948275499bece2f0075c) that creates a support ticket for the user directly has the side effect that user creates too much tickets for the same issue. After discussion with support team and POs, we decide to add the client id in the support ticket title to allow the support finding duplicate tickets. It's clearly not the best solution, but it will do the job in a short term. no task id Forward-Port-Of: odoo/enterprise#49206
Original PR description
The commit(6b5eb6961bccd76c6e25948275499bece2f0075c) that creates a support ticket for the user directly has the side effect that user creates too much tickets for the same issue. After discussion with support team and POs, we decide to add the client id in the support ticket title to allow the support finding duplicate tickets. It's clearly not the best solution, but it will do the job in a short term. no task id Forward-Port-Of: odoo/enterprise#49206
**Steps to reproduce the bug:** - Activate the packages and lot tracking - Create a new storable product tracked by lot - Add some stock for this product and give a lot and package number - Print the lot (or package) barcode - Open the barcode app and start a new inventory adjustment - Try to create a new line by scanning the lot (or package) barcode **Problem:** A traceback is triggered: “psycopg2.ProgrammingError: can't adapt type 'dict'” When scanning a lot, the function `_proce
Original PR description
**Steps to reproduce the bug:** - Activate the packages and lot tracking - Create a new storable product tracked by lot - Add some stock for this product and give a lot and package number - Print the…
**Steps to reproduce the bug:** - Activate the packages and lot tracking - Create a new storable product tracked by lot - Add some stock for this product and give a lot and package number - Print the lot (or package) barcode - Open the barcode app and start a new inventory adjustment - Try to create a new line by scanning the lot (or package) barcode **Problem:** A traceback is triggered: “psycopg2.ProgrammingError: can't adapt type 'dict'” When scanning a lot, the function `_processBarcode` is called: https://github.com/odoo/enterprise/blob/c0151bce3c60c69e7cadeb719a81c4a702b71c34/stock_barcode/static/src/models/barcode_model.js#L864 In this function, we check if a package has been scanned. If it is the case, then the function `_processPackage` is triggered. Inside this function, we call `_createNewLine` with the package ID, which allows us to use it in the domain, and everything works perfectly: https://github.com/odoo/enterprise/blob/c0151bce3c60c69e7cadeb719a81c4a702b71c34/stock_barcode/static/src/models/barcode_model.js#L891 https://github.com/odoo/enterprise/blob/c0151bce3c60c69e7cadeb719a81c4a702b71c34/stock_barcode/static/src/models/barcode_quant_model.js#L123 However, in this case, when scanning the lot, we have to check if the package has been set, and if so, we are retrieving all the package information into a dictionary instead of just adding his ID to the barcodeData: https://github.com/odoo/enterprise/blob/c0151bce3c60c69e7cadeb719a81c4a702b71c34/stock_barcode/static/src/models/barcode_model.js#L976 As a result, when the function `_createNewLine` is called, we try to use all the package information (dict) into the domain, which generates an error. opw-3439193 Forward-Port-Of: odoo/enterprise#48087 Forward-Port-Of: odoo/enterprise#44580
This is the only place where disabled != deactivated Forward-Port-Of: odoo/enterprise#49177
Original PR description
This is the only place where disabled != deactivated Forward-Port-Of: odoo/enterprise#49177