Daily updates from Odoo
Navigate
Branch
Thursday, December 21, 2023
38 changes
17 changes
Enhancements to existing features
The Frontdesk app now includes richer demo data and clearer helper messages on key pages for stations, visitors, and drinks. A guided tour was also added, making it easier for users to understand and evaluate the app.
Original PR description
In this commit, we have made the following improvements: ----------- - Improve the demo data - Add some helpers in the station, visitor, and drink page - Add tour for the app task-3524198
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
21 changes
New functionality added to Odoo
This update adds HMRC (Her Majesty's Revenue and Customs) as a new exchange rate service provider for currency conversions. This gives businesses an additional reliable source for live currency rates, particularly beneficial for UK-based operations that need accurate exchange rate data for financial reporting and transactions.
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
Enhancements to existing features
This update adds automated testing for the carrier type widget in the EasyPost delivery integration. By implementing these tests, the team ensures that carrier selection functionality works correctly and remains reliable as the system evolves. This improves overall quality and reduces the risk of shipping-related issues.
Original PR description
Task: 3596494 Related: odoo/enterprise#51582 odoo/enterprise#52533
This update fixes critical issues with tax closing in multi-company environments (such as tax units or branches). Previously, tax reports were incorrectly attached to every closing entry and postings were not synchronized, risking outdated documents and inconsistent tax lock dates. The fix ensures the main company's closing is posted last, automatically posting all sub-company closings together, with attachments only on the main closing to prevent confusion and errors.
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
Resolved issues and error corrections
This fix resolves an issue where kitchen printers were not printing order changes in the Point of Sale system. The problem occurred because the system was saving changes to the order before sending them to the printer, which meant there was nothing new to print. Now changes are printed first, then saved, ensuring kitchen staff receive the necessary order updates.
Original PR description
Current behavior: When trying to print the changes of an order, nothing was printed. This was happening because we were first saving the changes before sending them to the printer. Because of this when we tried to retrieve the changes to print them, they were already saved and we were not retrieving anything. Steps to reproduce: - Setup a printer to print order changes - Create a new order in PoS restaurant - Add a product to the order - Click on the "Order" button - Nothing is printed opw-3625397
This fix expands access to spreadsheet history viewing beyond administrators to all regular users. Previously, only admin users could open and review the history of spreadsheet changes. This change improves usability by enabling all team members to track spreadsheet modifications and understand the evolution of their data.
Original PR description
Currently, only Admins can open a spreadsheet history Task: 3639902
This update significantly improves the performance of subscription pricing searches in Odoo. A search operation that previously took over 7 seconds now completes in less than 100 milliseconds—roughly 70 times faster. This means users will experience quicker load times when working with subscription pricing data.
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)This update fixes and upgrades expression handling in Turkish localization accounting reports for Odoo 16.3. The changes include updates to translation files and configuration across multiple accounting modules to ensure proper report generation and localization support for Turkish users.
A bug was preventing placeholder changes from being saved when editing sign templates. Users would make changes to placeholders in their sign templates, but these changes would not be persisted. This fix ensures that all placeholder modifications are now properly saved to the template.
Original PR description
After the sign conversion to OWL, changing the placeholder of a sign item while editing a template, would not save the placeholder changes to the sign template. This commit fixes this issue. task-3576993 Forward-Port-Of: odoo/enterprise#53088 Forward-Port-Of: odoo/enterprise#49928
This fix resolves an issue where pressing Tab in a list view inside a dialog would not navigate to the next line as expected. The problem was caused by conflicting keyboard event handlers. The solution removes a technical optimization that was preventing proper Tab key navigation, allowing users to seamlessly navigate through list items in dialogs using the Tab key.
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#53109 Forward-Port-Of: odoo/enterprise#52920
This fix resolves an issue where the upsell quotations button would disappear from sale orders after changing a quotation status. Previously, the button was only visible when sale orders were in draft state. Now the button remains visible regardless of the sale order state, allowing users to continue managing upsell quotations throughout the sales process.
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
A field in the Luxembourg tax report's Appendix A that allows users to enter a custom operational expense name was incorrectly configured as a number field instead of a text field. This fix corrects the field type so users can properly enter expense descriptions as text rather than numbers.
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.
This fix resolves a bug where users couldn't update an embedded view's title after clearing it. Previously, the system would only save title changes if a title already existed, preventing users from setting a new title after removing the old one. The fix now allows title updates to be saved regardless of the previous state.
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#52690
The multi-record selector dropdown in spreadsheets was taking up too much space on the screen. This fix adjusts the dropdown styling so it only uses the space it needs, allowing other content to fit better on the same line. If space is limited, the dropdown will wrap to the next line instead of forcing everything to expand.
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)
Fixed an issue where the WhatsApp button was always displayed in the message area, even when no approved templates were available, which caused error messages. Now the button only appears when templates exist for that model, though administrators can always see it to create new templates. When users click to configure templates, they're taken directly to the template setup filtered for their current model.
Original PR description
**Before this PR:** `WhatsApp` is always displayed even if there are no approved templates for the model which returns a `ValidationError`. Which is just noise. **After this PR:** - Do not display the button if no approved templates for the model - Button should be always visible to admin users as they can create templates. - After clicking on `Configure Templates` button in the warning popup the `Whatsapp Templates` should be opened with a filter for the current model. task-[3497496](https://www.odoo.com/web#id=3497496&cids=2&model=project.task&view_type=form)
This update fixes a sorting issue in the WhatsApp messaging sidebar within Odoo's Discuss application. The fix ensures that conversations are properly organized and displayed in the correct order, improving the user experience when managing multiple WhatsApp conversations.
Original PR description
fixes runbot-47784 community: https://github.com/odoo/odoo/pull/146805
Fixed a bug in the EC Sales Report reminder banner that was displaying at the wrong times. The banner was incorrectly showing when no relevant sales occurred and hiding when sales were actually made. This fix inverts the logic so the reminder appears only when it should, helping users remember to submit their EC Sales Reports when necessary.
Original PR description
Problem --------- Since saas-16.4, the banner reminding a user to submit EC Sales Report was showing when not relevant sales had occured. Furthermore, it would hide when some of those sales were made. Objective --------- Have the opposite behavior. Solution --------- Invert the condition that would show or not the banner by remove the 'not'. task-3645189 Forward-Port-Of: odoo/enterprise#53203
This update resolves a critical issue where the data_merge module's tests were crashing due to an unnecessary dependency on the accounting module. The fix removes the problematic inheritance relationship and reconstructs the required test data independently, allowing the module to function properly without requiring additional modules to be installed.
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
This update corrects how overtime hours are calculated when employees work across multiple companies in the HR Attendance module. The fix ensures accurate overtime reporting regardless of company configuration, improving payroll accuracy and compliance with labor regulations.
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
A bug in the appointment booking form was preventing checkbox questions from being validated correctly. The system was trying to validate checkboxes as a single object instead of treating them as a group, which caused validation to fail. This fix ensures that checkbox questions work properly when customers fill out appointment forms.
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
This fix prevents users from seeing payroll data from companies they don't have access to when viewing payroll reports in a multi-company environment. A security rule has been added to the payroll reporting system to ensure users only see data from their assigned companies, protecting sensitive employee and compensation information.
Original PR description
Steps to reproduce: ------------------- - to be in a multi-company context; - go to pivot view in Payroll reporting; - group by "Company". Issue: ------ We see data from other companies that are not selected for the current user. Solution: --------- Add a multi-company rule for the `hr.payroll.report` model. opw-3620942 Forward-Port-Of: odoo/enterprise#53090 Forward-Port-Of: odoo/enterprise#52145
A bug in the Knowledge module's properties panel has been fixed that was causing the application to crash when debug mode was enabled. The issue was related to an incorrect data type for a button display setting, which has now been corrected to ensure the panel functions properly.
Original PR description
Purpose: -------- When debug mode is activated, opening the properties panel crashes because the "showAddButton" prop is not a boolean as required. This prop is now a boolean. Task-3649459