Daily updates from Odoo
Thursday, December 21, 2023
16 changes · master
Features or functions removed from Odoo
Calendar events linked to appointment types will no longer receive the old appointment-related tag, because they can already be found through appointment filters. Recruitment appointment meetings with applicants also avoid the extra interview tag, reducing duplicate or unnecessary tagging while keeping events searchable.
Original PR description
Remove the "Appointment Portal" tag from the calendar events. This tag was automatically added to every meetings linked to an appointment type. Removing it as the meetings linked to an appointment type can be retrieved using a filter on the appointment field. This tag was renamed "Appointment" when website_appointment was installed. Also prevent adding the "Interview" tag on the calendar events related to an appointment type when it has an applicant as those can be retrieved using the "applicant_id" field. Task-3615058
This change updates an internal bank reconciliation component to use the current system method after an older one was removed. It helps keep the accounting tools compatible with the latest core platform changes, with no expected change to day-to-day user workflows.
Original PR description
`convert_to_onchange` has been removed in the community PR. Change the remaining use of it with a `convert_to_read`. It is unused since the refactor of onchange f5e6494da3aedb545ead34d0d7f4b1b86499cb7f. https://github.com/odoo/odoo/pull/145876
Code cleanup and technical improvements
This update aligns Enterprise apps with a platform change that makes user information available directly rather than through a background service. It keeps affected areas such as Documents, Studio, Helpdesk, Accounting, Appointments, HR Appraisal, and spreadsheet features working consistently, including Studio-specific context handling.
Original PR description
This PR adapts the enteprise codebase to a community change [1] where the user service is removed and replaced by a simple object. The `user` object can now be imported directly, without using `useService` (in components) or declaring it as a dependency and accessing it from the env (in services). Some changes were requested in Studio with the way it forces the key `studio: 1` in the context. More information is available in that specific commit. [1] https://github.com/odoo/odoo/pull/145362 Part of task 3621046
Miscellaneous changes
This commit apply the same changes done in commit 9352c74 for the same reason to hr_attendance_gantt. The fix was introduced in 16.0 but this fix is only valid starting from 17.0 Forward-Port-Of: odoo/enterprise#53179
Original PR description
This commit apply the same changes done in commit 9352c74 for the same reason to hr_attendance_gantt. The fix was introduced in 16.0 but this fix is only valid starting from 17.0 Forward-Port-Of: odoo/enterprise#53179
Line 42 in Appendix A is supposed to allow entering a custom name of an operational expense and its value, both of which are manual values to be entered by the user. The name field is supposed to be a string but currently it's a float as the report doesn't specify that it should be a string. Forward-Port-Of: odoo/enterprise#53145
Original PR description
Line 42 in Appendix A is supposed to allow entering a custom name of an operational expense and its value, both of which are manual values to be entered by the user. The name field is supposed to be a string but currently it's a float as the report doesn't specify that it should be a string. Forward-Port-Of: odoo/enterprise#53145
Steps to reproduce: - init a db with [base,web,auth_totp,base_import,base_setup,bus,web_cohort,web_gantt,web_grid,web_tour,iap,mail,web_editor,web_enterprise,web_map,auth_signup,auth_totp_mail,base_install_request,data_recycle,google_gmail,iap_extract,iap_mail,mail_bot,phone_validation,privacy_lookup,web_mobile,web_unsplash,data_cleaning,mail_enterprise,partner_autocomplete,sms,snailmail,data_merge,mail_mobile] - run tests from `data_merge` module Issue: - crash Cause: We inherit a cla
Original PR description
Steps to reproduce: - init a db with [base,web,auth_totp,base_import,base_setup,bus,web_cohort,web_gantt,web_grid,web_tour,iap,mail,web_editor,web_enterprise,web_map,auth_signup,auth_totp_mail,base_install_request,data_recycle,google_gmail,iap_extract,iap_mail,mail_bot,phone_validation,privacy_lookup,web_mobile,web_unsplash,data_cleaning,mail_enterprise,partner_autocomplete,sms,snailmail,data_merge,mail_mobile] - run tests from `data_merge` module Issue: - crash Cause: We inherit a class from `account` module which is not installed Solution: Instead of facing the burden of creating a bridge module, we eliminate the troublesome inheritance and reconstruct the necessary records for the test. runbot-45753 Forward-Port-Of: odoo/enterprise#53141 Forward-Port-Of: odoo/enterprise#52945
Description: =========== Before this commit, when a line in edit mode in a list view is the last tabable element in a dialog, pressing "tab" does not cause a switch to the next line in edit mode. It is therefore not possible to navigate in this dialog using "tab". Problem: ======= Currently, the ListRenderer listens to keydown events using few t-on-keydown.synthetic in order to know whether to switch the next line to edition. For information, the effect of a synthetic is to create a singl
Original PR description
Description: =========== Before this commit, when a line in edit mode in a list view is the last tabable element in a dialog, pressing "tab" does not cause a switch to the next line in edit mode. It…
Description: =========== Before this commit, when a line in edit mode in a list view is the last tabable element in a dialog, pressing "tab" does not cause a switch to the next line in edit mode. It is therefore not possible to navigate in this dialog using "tab". Problem: ======= Currently, the ListRenderer listens to keydown events using few t-on-keydown.synthetic in order to know whether to switch the next line to edition. For information, the effect of a synthetic is to create a single listener on "document" instead of creating a listener for each element. There is a conflict with the ui service which listens to all the "tab" keydowns in order to check whether or not we are on the last tabable element of the current activeElement. If we are, we stop the event and focus on the first tabable element. This feature avoids the need to navigate outside dialogs by pressing tab. In our situation, this has the effect of stopping the keydown event before the synthetic can receive it, as the service ui listener is placed on the dialog and the synthetic listener on the document. Solution: ======== Remove the use of synthetic in the ListRenderer. No significant loss of performance was observed. Issue in Enterprise: =================== Because of our fix in community, the DocumentListRenderer no longer receives the "enter" keydown event first. We therefore need to overwrite "onCellKeydown" to ignore the "enter" event in this situation. Forward-Port-Of: odoo/enterprise#53150 Forward-Port-Of: odoo/enterprise#52920
Introduced in 98544fcf51e7f7e6dd395b8a1221801a683b7c9c, We replaced underscore functions with native JS. When changing 'any' to 'some', we apply the some method to checkboxes, but it is an Object, not an array. -> spread checkboxes to array. Task-3648070 Forward-Port-Of: odoo/enterprise#53118
Original PR description
Introduced in 98544fcf51e7f7e6dd395b8a1221801a683b7c9c, We replaced underscore functions with native JS. When changing 'any' to 'some', we apply the some method to checkboxes, but it is an Object, not an array. -> spread checkboxes to array. Task-3648070 Forward-Port-Of: odoo/enterprise#53118
Before this commit, In [2]: %time _ = env['sale.subscription.pricing'].read_group([('product_template_id', '!=', False)], ['product_variant_ids:array_agg'], ['product_template_id', 'plan_id', 'pricelist_id'], lazy=False) CPU times: user 6.01 s, sys: 136 ms, total: 6.14 s Wall time: 7.11 s After this commit: In [12]: %timeit = self.read_group(['|', ('product_template_id', 'in', self.product_template_id.ids), ('product_variant_ids', 'in', self.product_variant_ids.ids)], ['product_varia
Original PR description
Before this commit,
In [2]: %time _ = env['sale.subscription.pricing'].read_group([('product_template_id', '!=', False)], ['product_variant_ids:array_agg'], ['product_template_id', 'plan_id', 'pricelist_id'], lazy=False)
CPU times: user 6.01 s, sys: 136 ms, total: 6.14 s
Wall time: 7.11 s
After this commit:
In [12]: %timeit = self.read_group(['|', ('product_template_id', 'in', self.product_template_id.ids), ('product_variant_ids', 'in', self.product_variant_ids.ids)], ['product_variant_ids:arrayagg'], ['product
...: template_id', 'plan_id', 'pricelist_id'], lazy=False)
49.4 ms ± 127 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)
Forward-Port-Of: odoo/enterprise#52763**Version:** - saas-16.2 **Step to reproduce:** - upsell a sale order - click on the upsell quotations stat button and change the state=sent quotation - the upsell quotations button will disappear from the confirmed sale order form view **Issue:** The upsell quotations stat button in the subscription module's sale order form view is only visible when the sale order is in the draft state. **Solution:** The upsell quotations stat button will remain visible even when the sale
Original PR description
**Version:** - saas-16.2 **Step to reproduce:** - upsell a sale order - click on the upsell quotations stat button and change the state=sent quotation - the upsell quotations button will disappear from the confirmed sale order form view **Issue:** The upsell quotations stat button in the subscription module's sale order form view is only visible when the sale order is in the draft state. **Solution:** The upsell quotations stat button will remain visible even when the sale order is in the sent state. task-3593973 --- I confirm I have signed the CLA and read the PR guidelines at [www.odoo.com/submit-pr](http://www.odoo.com/submit-pr) Forward-Port-Of: odoo/enterprise#53096
Extra spacing was appearing between two sentences in warning message. Steps to reproduce: ------------------- * Install 'barcode' * On barcode, close the blue message under 'Barcode Scanning' Why the fix: ------------ Since 16.0 the message is shown in 'white-space: pre-wrap style'. Character '\ ' was causing extra spacing. NOTE: ----- The fix doesn't brake translations. Translations weren't working prior to the fix anyway. opw-3608979 Forward-Port-Of: odoo/enterprise#53075 F
Original PR description
Extra spacing was appearing between two sentences in warning message. Steps to reproduce: ------------------- * Install 'barcode' * On barcode, close the blue message under 'Barcode Scanning' Why the fix: ------------ Since 16.0 the message is shown in 'white-space: pre-wrap style'. Character '\ ' was causing extra spacing. NOTE: ----- The fix doesn't brake translations. Translations weren't working prior to the fix anyway. opw-3608979 Forward-Port-Of: odoo/enterprise#53075 Forward-Port-Of: odoo/enterprise#52867
When performing the tax closing in a multi-company environment (either because of a tax unit or branches), the tax report pdf (and possibly XML export, for Belgium) was added as an attachment of each closing entry generated. This was misleading and error-prone: the attachments only need to be on the the main company's closing. Moreover, the posting of those entries was fully decoupled: so there was no guarantee all of them will be posted at the same time, leading to the possibility that the t
Original PR description
When performing the tax closing in a multi-company environment (either because of a tax unit or branches), the tax report pdf (and possibly XML export, for Belgium) was added as an attachment of each…
When performing the tax closing in a multi-company environment (either because of a tax unit or branches), the tax report pdf (and possibly XML export, for Belgium) was added as an attachment of each closing entry generated. This was misleading and error-prone: the attachments only need to be on the the main company's closing. Moreover, the posting of those entries was fully decoupled: so there was no guarantee all of them will be posted at the same time, leading to the possibility that the tax lock dates are not all set at the same time, and some entries impacting the tax reports are added between the posting of each closing. In that case, right the pdf/export file was the one on the last closing posted, all the other ones were outdated. Again, this could cause confusion, and potentially cause big mistakes. To handle both those cases, we now enforce the order in which closings need to be posted: the main company needs to be the last one. Posting the main company's closing move hence posts the closing of every sub-companies directly. Then, attachments are only generated on the main closing. task-id: 3645943 Forward-Port-Of: odoo/enterprise#52706
This commit fixes a bug where an embedded view's title would no longer be saved after being set to an empty value. Meaning that after removing the title it is no longer possible to set as anything else than its default value. This was caused by a condition stating that we could only update the display_name inside the behavior props if its value already existed, which is incorrect when a user removes it. Now we change this value no matter what happens. task-3637710 Forward-Port-Of: odoo/e
Original PR description
This commit fixes a bug where an embedded view's title would no longer be saved after being set to an empty value. Meaning that after removing the title it is no longer possible to set as anything else than its default value. This was caused by a condition stating that we could only update the display_name inside the behavior props if its value already existed, which is incorrect when a user removes it. Now we change this value no matter what happens. task-3637710 Forward-Port-Of: odoo/enterprise#53130 Forward-Port-Of: odoo/enterprise#52690
### Before: Previously, the multi-record selector dropdown occupied an entire line. ### After: This PR addresses this issue by applying the `flex: 1 0 1rem;` property to the auto-complete dropdown. This adjustment confines the dropdown to the necessary space. If the space available is less than 1rem, it will wrap to a new line. Task ID: [3607067](https://www.odoo.com/web#id=3607067&cids=2&menu_id=4720&action=333&active_id=2328&model=project.task&view_type=form) Forward-Port-Of: odoo
Original PR description
### Before: Previously, the multi-record selector dropdown occupied an entire line. ### After: This PR addresses this issue by applying the `flex: 1 0 1rem;` property to the auto-complete dropdown. This adjustment confines the dropdown to the necessary space. If the space available is less than 1rem, it will wrap to a new line. Task ID: [3607067](https://www.odoo.com/web#id=3607067&cids=2&menu_id=4720&action=333&active_id=2328&model=project.task&view_type=form) Forward-Port-Of: odoo/enterprise#53071
Currently, when sending an offer the display name of the offer uses the validity date of the offer instead of the create date. This commit fixes this as displaying the validity date does not make sense. task-3619108 Forward-Port-Of: odoo/enterprise#53115 Forward-Port-Of: odoo/enterprise#51959
Original PR description
Currently, when sending an offer the display name of the offer uses the validity date of the offer instead of the create date. This commit fixes this as displaying the validity date does not make sense. task-3619108 Forward-Port-Of: odoo/enterprise#53115 Forward-Port-Of: odoo/enterprise#51959
Adds HMRC to the exchange rates service providers. task-3260708 Forward-Port-Of: odoo/enterprise#52644 Forward-Port-Of: odoo/enterprise#51470
Original PR description
Adds HMRC to the exchange rates service providers. task-3260708 Forward-Port-Of: odoo/enterprise#52644 Forward-Port-Of: odoo/enterprise#51470