Daily updates from Odoo
Thursday, December 21, 2023
21 changes · 17.0
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