Daily updates from Odoo
Monday, November 20, 2023
34 changes · 17.0
Enhancements to existing features
The desktop icon in kanban cards within the Stock Barcode module was misaligned and has now been corrected. This visual improvement ensures that the interface displays properly and provides a better user experience when managing barcode operations.
Original PR description
Prior to this PR, the `desktop icon` inside a kanban card was misaligned. Task-3586834 | Before | After | |--------|--------| | <img width="343" alt="Screenshot 2023-11-07 at 15 38 16" src="https://github.com/odoo/enterprise/assets/108661430/58a06311-8d73-4bd6-a5a6-9cc1dedec4b4">| <img width="333" alt="Screenshot 2023-11-07 at 15 36 36" src="https://github.com/odoo/enterprise/assets/108661430/011f7334-e37a-4f02-8b91-92a02d7bc38d"> |
This update standardizes how invoice matching works across all accounting import modules. Instead of each module handling matching differently, the system now processes all matching numbers uniformly in the core accounting module when posting transactions. Additionally, a performance fix dramatically speeds up French FEC imports from 15 minutes to 1 second by optimizing how data is processed.
Original PR description
The matching is now done in `account`, when posting, for all lines with a matching number set to `I*` (where `*` can be anything) [task-3593885](https://www.odoo.com/web#id=3593885&model=project.task)
This update improves the performance of spreadsheet pivot and list features by removing unnecessary processing steps. The system was redundantly converting cell formulas twice; this fix eliminates the duplicate work, making spreadsheet operations faster and more efficient.
Original PR description
Update o_spreadsheet library to version 17.0.3 and: The pivot/list helpers were tokenizing the cell's content when trying to find list/pivot formulas. But we can skip the tokenize call as we already have the tokens in the cell's compiledFormula. Task: 3584306
Resolved issues and error corrections
This fix corrects the alignment of the confirmation message that appears when users validate their timesheets. The notification now displays in the proper centered position, improving the visual presentation and user experience when submitting timesheet entries.
Original PR description
Before this PR when we validate timesheet toast notification was not correctly centered. After this PR when we validate timesheet toast notification is correctly centered. task-3433667
Fixed an issue where product information in approval requests was not displaying properly on mobile devices. Previously, only product IDs were shown. Now, a custom view displays product names and quantities clearly, making it easier for users to review approval requests on mobile devices.
Original PR description
Steps to reproduce: - Install approvals. - Go to the app and create a new approval like `Borrow Items`. - Now fill the form with atleast 1 product. - Go to mobile view of the same page and reload. - See the product Lines The issue is that since we don't have any kanban view specific for approvals, we will try to load a generic one which in this case will be only showing the id of the product. Creating a custom kanban view for this lines we can do a proper display like displaying the name of the product and the quantity. Before:  After:  opw-3449483 Forward-Port-Of: odoo/enterprise#49468
This fix resolves an issue where newly created models in Studio could not be edited after creation. When users created a new model and navigated to it, they would receive an error message stating the action is not editable. The problem was that the studio context key was missing when the menu for the new model was created, preventing Studio from recognizing it as an editable item.
Original PR description
Steps to reproduce ================== - Go to invoices - Open studio - Create a new model, validate, etc - Go to another menu - Click on the newly created menu `This action is not editable by Studio` Cause of the issue ================== The newly created menu was created without the studio context key https://github.com/odoo/enterprise/blob/8b5778206effa1f23707bf3eacb326efbec8473f/web_studio/static/src/client_action/editor/new_model_item/new_model_item.js#L24 See https://github.com/odoo/enterprise/pull/48640/commits/53c497f532fe6d94119a3ca54da88dddf26cf2b8 opw-3593825
Fixed an issue where downloading the accounts coverage report would cause an infinite loading spinner. The problem was corrected by changing how the system handles the download action, ensuring the file downloads properly instead of trying to replace the current page.
Original PR description
The aim of this commit is removing the infinite loader once you download the accounts coverage report on account.report. The problem was that we return an ir.actions.act_url with a target to "self". It means that this url should replace the current page by the url. This commit changes the target of the action to "download" according to the [documentation](https://www.odoo.com/documentation/17.0/developer/reference/backend/actions.html#url-actions-ir-actions-act-url). no task id
Fixed an issue that prevented financial reports containing boolean-type expressions (such as the Luxembourg annual tax report) from being printed to PDF. The system now properly converts boolean values to readable "Yes" and "No" text instead of causing a printing error.
Original PR description
When a report contained an expression using "boolean" figure_type (for example, the annual LU tax report), trying to print it to pdf raised an error when rendering the qweb template, since the formatted 'name' key for that column contained a value of type bool instead of str ; and the template tried to call len(bool) at some point. To fix that, we make it so that _format_value now directly returns 'Yes' and 'No'. The owl template of the report also needed to be fixed in order to use that value instead of hardcoding those two strings.
This fix prevents the Documents module from automatically creating duplicate partner records when receiving documents from unknown contacts. Previously, the system would create new partners for documents, which conflicted with accounting's VAT-based contact matching, causing duplicate entries. Now, only existing partners are linked to documents, keeping your contact database clean and accurate.
Original PR description
When receiving a document from an unknown contact, we no longer create a new partner. However, if the contact is known, we assign the already existing partner to the document. We remove that feature because it was creating duplicate partners for documents sent to accounting which uses VAT number as primary matching criterion. Contacts created in Documents were messing up with the ones associated with the VAT numbers. Task-3579869 Forward-Port-Of: odoo/enterprise#50379
This update removes an outdated field called "show_operations" from the manufacturing work order form view. The field was already removed from the core system, and this change ensures the enterprise version stays synchronized with that update, preventing display errors and maintaining consistency across the application.
Original PR description
In COM PR linked, `show_operations` field is removed from the form view inherited here. COM PR: odoo/odoo#140898
This fix resolves issues in the Shop Floor module where manually updated quantities for raw materials and byproducts were not being correctly saved when marking items as picked. Additionally, clicking the button multiple times would incorrectly reduce the quantity to zero. This ensures accurate inventory tracking and prevents data loss during shop floor operations.
Original PR description
In Shop Floor, when you change the details of a raw material or a byproduct, the new quantity is not fully reflected on the move when you click to mark it as 'picked'. Moreover, clicking a second time make the move quantity falls to 0.
This update corrects the French balance sheet financial reporting by adding a missing accounting code (262) to the Participations section. This ensures that participation investments are properly captured in both gross and net value calculations, improving the accuracy of financial reports for French companies using Odoo.
Original PR description
Add code 262 in "brut" and "net" expressions of "Participations" section opw-3545765 Linked community PR: https://github.com/odoo/odoo/pull/142205 Forward-Port-Of: odoo/enterprise#50903 Forward-Port-Of: odoo/enterprise#50745
This update prevents users from editing the follow-up report directly in Studio, since it's composed only of an email template. Users who need to customize follow-up communications can now edit the underlying email template instead, which is the proper way to modify this report's content.
Original PR description
opw-3551400 Forward-Port-Of: odoo/enterprise#50833
Fixed an issue where tax report activities were always assigned to the main administrator instead of the user configured in the activity type settings. Now when creating tax report activities, the system respects the default user assigned to the activity type, ensuring proper task delegation to the right team members.
Original PR description
Steps to reproduce: - Go to "Settings / Technical / Discuss / Activity Types" - Set a default user for "Tax Report" and "Tax Report Ready" (i.e. Marc Demo) - Go to "Accounting / Reporting / Audit Reports / Tax Report" - Click on "CLOSING ENTRY" button => A "Tax Report" activity is created on the closing entry for the main admin (i.e. Mitchell Admin). - Post the closing entry => A "Tax Report Ready" activity is created for the main admin too. In both cases, the default user configured on the activity type is ignored. Solution: Use the default user configured on the activity type and make sure that the user is part of the company and is in group "account.group_account_manager". opw-3496493 Forward-Port-Of: odoo/enterprise#50857 Forward-Port-Of: odoo/enterprise#49486
This update completes the cleanup process for the AvaTax accounting module to ensure it's properly neutralized in non-production environments. The fix removes residual production settings that could confuse users even when the module is disabled, bringing the system in line with how it's handled in earlier versions.
Original PR description
This commit adds a missing part of the neutralisation of the account_avatax app. This brings it back in line with the complete neutralisation script that is used on the PaaS and SaaS in versions < 16.0 Forward-Port-Of: odoo/enterprise#50889
This fix resolves an issue where users with Accountant rights could not access uploaded Mexican CFDI invoices due to missing attachment permissions. When a CFDI invoice was uploaded, a second attachment was created without proper links to the invoice, preventing other users from viewing it. The fix ensures all attachments are properly linked so all authorized users can access uploaded invoices.
Original PR description
Steps to reproduce: - Install l10n_mx_edi - Use an user with Accountant rights in Accounting (e.g. Mitchell Admin) - Switch to a Mexican company (e.g. ESCUELA KEMPER URGATE) - Go to "Accounting / Customers / Invoices" - Click on "Upload" button and upload a CFDI invoice - Connect with another user with Accountant rights in Accounting (e.g. Marc Demo) - Try to open the invoice created from the uploaded CFDI invoice => You will be able to open the invoice, but an Access Error on the attachment will be raised. Cause: When the CFDI invoice is uploaded, an attachment is correctly created from it and linked to the invoice. But another attachment is created from that document to create a "l10n_mx_edi.document" record. This second attachment has no reference to the invoice (i.e. its "res_model" and "res_id" fields are not set). opw-3579253 Forward-Port-Of: odoo/enterprise#50689
This update restores a scroll test in the mail messaging system that was previously removed. The fix ensures that the automatic scrolling behavior in the message chatter works correctly and is properly validated through testing.
Original PR description
Fixes in community PR. https://github.com/odoo/odoo/pull/142308
This update fixes how the configuration button works in accounting reports, particularly for composite reports that combine multiple sections. Previously, clicking the button would only open the current section's settings instead of the main report. The fix also ensures the button appears correctly in debug mode regardless of other display settings.
Original PR description
[FIX] account_reports: use correct cog button target on composite reports In debug mode, a little cog button is displayed next to the report filters. Clicking it open the form view of the report. The…
[FIX] account_reports: use correct cog button target on composite reports In debug mode, a little cog button is displayed next to the report filters. Clicking it open the form view of the report. The problem is the report used as the target of this action was options['report_id'], not options['sections_source_id']. Because of that, when clicking this button on a composite report, only the form view of the currently displayed section was open, while we actually should have opened the form of the whole composite report. -------------------------- [IMP] account_reports: allow opening the sections' form view from the composite report owning them For usability. ------------------------- [FIX] account_reports: don't depend on show_debug_column options to display the cog button The cog button allows opening the form view of the report to reconfigure it. It is only supposed to be displayed in debug mode. For that, the show_debug_column option key was used. Yet, this was wrong, as this option key is not always true in debug mode: for example, if a comparison is being done, it will be False. We now display the cog directly from debug mode info, without depending on options.
A bug was causing the bank statement reconciliation process to run repeatedly in an endless loop. The issue occurred because a counter that tracks reconciled transactions was being incorrectly incremented even when no transactions were actually reconciled. This fix ensures the counter only increases when transactions are genuinely processed, preventing the unnecessary repeated execution.
Original PR description
Issue: When no statement lines were auto reconciled, the false increment of counter variable to update the count of number of reconciled lines causes the cron to execute infinite time as it triggers the same cron by checking the same counter variable. This regression is mainly caused by the commit 0d7d1a2 where some statements were moved inside try...catch statement but forgot to move the counter variable along with it. As a result, it could falsely increment the counter variable when the UserError exception raises. Fix: Updated the reconciled line count variable when some lines were actually reconciled. Forward-Port-Of: odoo/enterprise#50416 Forward-Port-Of: odoo/enterprise#50268
The aged payable audit helper text was displaying as plain text instead of formatted markup. This fix applies proper formatting to the helper content, improving readability and presentation of the audit information in the aged payable report.
Original PR description
This commit makes the helper of the auditing action of the aged payable report markup as it is currently not the case and its content is in plain text.
This update adds a verification check to ensure that helpdesk teams are properly found during testing. Previously, the system would attempt to update a helpdesk team without confirming it existed, which could lead to silent failures. This fix adds a safety check to catch and report any issues when helpdesk teams cannot be located.
Original PR description
Before this commit, the test does a search to fetch a helpdesk team to do a write but we don't check if the helpdesk is found This commit adds an assert to be sure a helpdesk team is found with the search called. runbot-21676 Forward-Port-Of: odoo/enterprise#50997
This update corrects how column labels appear in accounting reports. Previously, column labels were displayed in lowercase, making them harder to read. The fix now displays labels in proper formatting, improving the visual presentation and readability of financial reports for users.
Original PR description
Before this commit we use `column.name` as label of our columns for report lines in the report form view. It caused that the label was in lower case. The aim of this commit is using the `label` instead of the `name` to have the column `label` well formatted. Before:  After:  no task id
This fix resolves an issue in the Australian payroll module that was preventing employee data from being properly accessed and displayed. The fix adds necessary permission settings to employee fields, ensuring that employee information can be retrieved and used correctly throughout the system.
Original PR description
Purpose ======= This is breaking the hr.employee.public prefetching
This fix corrects how taxes are organized in Colombian electronic invoices (EDI format). The system now properly groups taxes by rate within each tax type section, ensuring invoices comply with Colombian tax authority requirements. This resolves an issue that was introduced in a previous update.
Original PR description
There should be one TIM section per Colombian tax type. Each TIM contains [1...*] IMP. These IMP should be grouped by tax rate. This commit ensures this, after a6647aabcd8d3fbfb6a270120bfffad3c4ed7c46 broke it. opw-3598156 Forward-Port-Of: odoo/enterprise#50978 Forward-Port-Of: odoo/enterprise#50920
Fixed an issue where deactivated accounting reports would still automatically open when selected from the menu instead of showing the active alternative report. This ensures that when users disable a specific report variant (like the Belgian VAT Return), the system correctly displays the appropriate active report instead.
Original PR description
On some variants of the reports, marking the reports as inactive wouldn't disable the automatic redirection towards this report when selected from the menu. Example to reproduce : - Open BE Company CoA - Make the belgian VAT Return report inactive (debug mode --> configuration --> accounting reports) - Open the Tax report ==> The belgian vat report was opened while the generic one should be opened, since we deactivated the belgian one. Added a check when compiling the available variants before redirection. task-3577540
This update resolves an unpredictable crash that was occurring in the frontdesk tour feature. The fix improves the reliability of the guided tour experience, ensuring users can complete the frontdesk onboarding process without encountering unexpected errors.
This update resolves memory errors that occurred when viewing large project timelines in the Gantt View, particularly when tasks contain images. The fix optimizes how data is loaded from the database, reducing memory usage from 2GB to 500MB in typical scenarios. This allows users to work with larger projects without system crashes.
Original PR description
When loading up the GanttView from Field of Service and switching to "Year", the number of tasks to load can be quite big. If these tasks' description contains images, it's very likely that a…
When loading up the GanttView from Field of Service and switching to "Year", the number of tasks to load can be quite big. If these tasks' description contains images, it's very likely that a MemoryError will be raised. To avoid that, turn off field prefetching in `_compute_leave_warning` and `_gantt_progress_bar_user_ids` and then use `read` to prefetch all needed fields at once. Because `read` (as oppose to `fetch` in saas-16.2 up) does not check the cache, the query count in `test_performance` has to be increased from 9 to 10, even though creating new tasks inside this test puts their fields' value in cache. Browsing for self.ids prevents AccessErrors with NewIds that don't have values in database yet. But they do in cache so the following calls to `__get__` will simply return the values from the field cache. So no additionnal queries from turning off prefetching in that case. Ideally, the calls to `read` should be replaced by calls to `fetch` from 16.2 up. #### Benchmark In a customer database with 2600 project.task for the current year, loading up the GanttView goes from 2Gb (MemoryError raised) to 500Mb (no MemoryError raised).   Forward-Port-Of: odoo/enterprise#50756 Forward-Port-Of: odoo/enterprise#48912
A recent update removed the "plan" button from the sales planning calendar view to reduce clutter. This fix updates the automated test to work with the new interface by clicking directly on the calendar cell instead of looking for the removed button. This ensures the test continues to work properly with the updated user interface.
Original PR description
Before this commit, a recent generic change removes the "add" and "plan" buttons in each gantt cell to avoid having too many elements available in the gantt view. That changes has not been adapted for the sale_planning tour and so the step failed because it no longer found plan button. This commit removes the step failed and adapt the previous step to just click on the grid cell to display the plan dialog. runbot-25881
This update fixes a bug in the automatic account transfer feature where transaction records were being returned in inconsistent order. By adding proper sorting logic to the data retrieval process, the system now ensures that transfer records are always processed in the same sequence, improving reliability and preventing unexpected behavior.
Original PR description
In the function _get_transfer_move_lines_values, we empty the order of the query, because we do a group by. We should instead define another order, so the results are always returned in the same order. Related to runbot error 25781 Forward-Port-Of: odoo/enterprise#49915
This fix addresses an issue where importing bank statement CSV files with unsorted rows would result in incorrect account balances. The system now validates that imported CSV rows are sorted by date and raises an error if they are not, ensuring data accuracy during the import process.
Original PR description
steps to reproduce: import a csv file where the rows are not sorted by date before this commit: balances are not correctly set as the first row and last row are used, assuming the rows are sorted by date. after this commit: raise an error if the rows are not sorted. opw-3507204 Forward-Port-Of: odoo/enterprise#50847 Forward-Port-Of: odoo/enterprise#50706
This fix resolves two critical issues with Mexican electronic invoices (CFDI) when processing payments with 0% tax rates. First, it ensures that zero-rate tax information is properly included in payment documents. Second, it eliminates a system error that occurred when processing exempt tax invoices. These fixes ensure accurate and reliable payment processing for Mexican businesses.
Original PR description
Issue 1: With a 0% tax 'Tasa' in the invoice, TotalTrasladosBaseIVA0 & TotalTrasladosImpuestoIVA0 must be present in the payment CFDI file. Issue 2: With a 0% tax 'Exento', a traceback was raised when generating the payment CFDI. opw-3574611 Forward-Port-Of: odoo/enterprise#50506
Two automated tests in the Planning and Project Forecast modules were failing when run on weekends because the system's working schedule doesn't include weekends. This fix ensures these tests always run during weekdays by freezing the test execution time, making the tests reliable and consistent regardless of when they're run.
Original PR description
## [FIX] project_forecast: freeze time for test_shift_creation_from_project Before this commit, the `test_shift_creation_from_project` test failed during the weekend because the working schedule of…
## [FIX] project_forecast: freeze time for test_shift_creation_from_project Before this commit, the `test_shift_creation_from_project` test failed during the weekend because the working schedule of the current company considers the weekend is not a working day and so instead of creating a planning template during 2 days, it will create a planning template during one day. This commit freezes the time to be sure, the test is executed during a working day to stay valid and keep the same behavior to test. runobt-41215 ## [FIX] planning: freeze time for test_shift_creation_from_role Before this commit, the `test_shift_creation_from_role` test failed during the weekend because the working schedule of the current company considers the weekend is not a working day and so instead of creating a planning template during 2 days, it will create a planning template during one day. This commit freezes the time to be sure, the test is executed during a working day to stay valid and keep the same behavior to test. runobt-41977 Forward-Port-Of: odoo/enterprise#50999
This fix corrects an issue where vendor bills created from inter-company customer invoices between branches were incorrectly assigned to the wrong company. When a branch creates an invoice for another branch, the corresponding vendor bill now correctly belongs to the receiving branch instead of the originating branch. This ensures accurate financial records across multi-branch organizations using inter-company transactions.
Original PR description
When having a customer invoice from branch 1 to branch 2, the relative vendor bill's company id is wrongly set as branch 1. Steps: - Create two branches for a company - On both branches, activate inter-company transactions ans synchronize invoices/bills - Create an invoice from branch 1 to branch 2, confirm -> The relative vendor bill's company is set as Branch 1 instead of Branch 2 opw-3517000 Forward-Port-Of: odoo/enterprise#49232
Code cleanup and technical improvements
This update removes an unnecessary variable from the account reports module that was redundant with existing functionality. The system now uses a single method to handle report exports, making the code cleaner and easier to maintain without any changes to how reports work for users.
Original PR description
The `export_report` variable is not longer needed since `dispatch_report_action()` is already handling it through the `on_sections_source` parameter.