Daily updates from Odoo
Monday, March 30, 2026
28 changes · master
New functionality added to Odoo
This update adds a required audit checklist for the French localization of Odoo Enterprise. It incorporates a spreadsheet provided by the PO (presumably a client) to ensure compliance with French reporting regulations. This ensures accurate and compliant financial reporting for French customers.
Original PR description
The french localization does not have a specific audit checklist The change is to add checks for the FR audit based on spreadsheet provided by PO task: 5411636
This update introduces a new report for French businesses, specifically the 2065 SD corporate tax return. It's part of a broader 'Liasse Fiscale' reporting bundle designed to streamline tax compliance for French companies within the Odoo Enterprise system. This addition supports accurate and timely reporting for French tax authorities.
Original PR description
This commit adds the 2065 SD corporate tax return report part of the "Liasse Fiscale" bundle of reports for France. Task ID: 5417366
Enhancements to existing features
This pull request updates the data files used for generating French report signatures, specifically incorporating new versions for the years 2031-2069. These changes ensure accurate and up-to-date signature templates for French accounting reports within the Odoo Enterprise system. This improves compliance and reporting accuracy for our French clients.
This update enhances how Odoo writes translated data to fields, now supporting dictionaries as field values. This change improves the flexibility and accuracy of translated content within the system, ensuring translations are correctly applied to various data points. It addresses a limitation in the previous code.
Original PR description
the override of `write` and `create` for translated fields, should support dict as field value. https://github.com/odoo/odoo/pull/246357
Resolved issues and error corrections
This update fixes a visual issue on the employee insurance form within the payroll module, ensuring the layout is correctly displayed on smaller screens. The problem stemmed from a technical issue with how input fields were being rendered, and the fix utilizes a different layout structure to resolve this. This ensures a consistent and user-friendly experience for all employees.
Original PR description
Step to reproduce: Employee -> Payrol Tab -> Insurance section -> Company contribution, Employee Contribution, Employee Voluntary Amount -> views not okay in small screens Cause: o_input_box not working with field as o_input_box_overlay_end Solution: using o_row Task: 6070539
This update fixes an issue where manufacturing order notes with only images were being hidden in the Shop Floor view. The change ensures that notes containing images or text are always displayed, improving the clarity and usability of this important production information.
Original PR description
In the Shop Floor view, manufacturing order notes containing only images were being hidden. The logic was stripping all HTML tags to check for text content; if no text was found, the entire note was treated as empty and returned false. This commit: - Updates `logNote` in `MRPDisplayRecord` to ensure the note is returned if it contains either visible text or an `<img>` tag. task-6048473 Forward-Port-Of: odoo/enterprise#111617
This update aligns the user interface of the Sign Now wizard with the Send Request wizard, creating a more uniform experience for users regardless of how they initiate the process (Sign Now or Send Request). This enhances usability and provides a clearer, more consistent workflow for users completing legal agreements.
Original PR description
in this commit i alligned the UI of sign send request wizard to look similar for both cases when the user click sign now and when the user click send request (self sign and send request) Task: 5942397 Forward-Port-Of: odoo/enterprise#108832
This update ensures the Helpdesk module correctly relies on the Portal Rating module following a recent system merge. Explicitly defining this dependency resolves a potential issue and maintains the stability of the Helpdesk functionality. This change is a routine maintenance update.
Original PR description
Before this commit, the helpdesk module now needs `portal_rating` module in its dependencies due to the merge of #112269 This commit updates the dependencies of helpdesk module to explicitly set the `portal_rating` in its dependencies.
This update fixes a visual inconsistency in the Sign app's PDF viewer. Previously, the viewer didn't follow the user's Odoo theme preference. Now, the PDF viewer automatically adapts to light or dark mode based on the user's Odoo settings, ensuring a consistent and professional user experience.
Original PR description
this PR includes 2 Fixes: 1- restore the sign item placeholder initialization that was removed by mistake in a previous refactoring 2- sync the pdf viewer theme with the global odoo theme ( the pdf viewer is an isolated iframe thus its not aware of any theme changes that happens in the parent html so we needed a js bridge to inject the theme values to the viewer) task: 6064905
This update ensures that public holidays are not considered when calculating time off for 'Unpaid' leaves. This change improves the accuracy of leave balances and simplifies the process for employees requesting unpaid leave. It addresses a previous inconsistency in how unpaid leave was handled.
Original PR description
-Public Holidays are set to be ignored in "Unpaid" leaves.
This update resolves problems with the trial balance PDF and working file exports in Odoo Enterprise. Specifically, incorrect dates in the working file exports and issues with the custom template were addressed, ensuring accurate reporting.
Original PR description
Steps to reproduce: - Export the PDF of the trial balance OR - Export a working file Both use the custom template of the trial balance. The date of the working file was also incorrect. Forward-Port-Of: odoo/enterprise#111409
This update resolves a problem where percentage fields in contract salaries were not loading correctly or displaying accurate values. The fix ensures that salary calculations and data display within the HR contract management module are now functioning as intended, improving data accuracy and usability.
Original PR description
Forward-Port-Of: odoo/enterprise#110940 Forward-Port-Of: odoo/enterprise#110785
A test used in the Swiss payroll module (l10n_ch_hr_payroll) was failing due to an incorrect date calculation within the AVS deduction process. This fix adjusts the test's time setting to ensure accurate results, preventing future test failures and maintaining the correct AVS calculations.
Original PR description
[FIX] l10n_ch_hr_payroll_elm_transmission: fix avs test for faketime build
Bug reproduction:
1 - v.17->run test_generic_avs_deductions test with faketime 2027-01-01 12:00 UTC->test fails
Bug cause:
1 - In the test, compute_sheet()->_get_payslip_lines->_compute_rule->_get_avs_rates is called
2 - There is a line like that if line.date_from <= target and (not line.date_to or target <= line.date_to)
3 - I looked to avs_line_ids = fields.One2many(default=_get_default_avs_line_ids)
4 - In _get_default_avs_line_ids -> 'date_from': fields.Date.today().replace(month=1, day=1) date_from is calculated like that -> when the year is 2027, the date_from is 2027-01-01 and it is bigger than the target in the test.
Bug solution:
1 - I used @freeze_time("2026-02-28") in my test to prevent this behavior.
Runbot Error Link: https://runbot.odoo.com/odoo/runbot.build.error/240992
task - 6018940
Forward-Port-Of: odoo/enterprise#109975This update fixes a technical issue that caused a traceback error when generating the 281.10 report in the Belgian payroll module. The fix ensures accurate report generation by adjusting how the system determines if a payslip is associated with a vehicle, resolving a dependency issue related to the absence of the fleet module.
Original PR description
[FIX] l10n_be_payroll: fix traceback in 281.10 sheets
Bug reproduction: Go to any version>=17.0 -> select belgium company -> install only belgium payroll (don't install fleet one) -> fill in niss, certification level, address, Time in R&D -> generate payslip and confirm it -> try to generate 281.10 report -> traceback
Bug cause:
1 - In traceback it was saying payslip doesn't have vehicle_id, in 281.10 sheet preparation (in function _get_atn_nature), there is a term like that
2 - Payslip doesn't have it because fleet module is not there.
Bug solution:
1 - Instead of checking the payslip has vehicle like that, we calculated it by using paylsip line_ids
2 - If the code ATN.CAR is there and the total of it is not zero, which means this payslip has a vehicle indeed.
task - 6037206
Forward-Port-Of: odoo/enterprise#111960
Forward-Port-Of: odoo/enterprise#110860This update allows users to access and view canceled signature requests within the Odoo portal. Previously, canceled requests were hidden, preventing access to important communication history and document details. Now, users will see the document and can review the request's status.
Original PR description
Previously, users were redirected to the home page if they tried to access a signature request in the 'canceled' state. This prevented them from viewing the communication history or the document metadata. This commit: - Removes the 'canceled' state restriction in the portal controller. - Updates the portal template to show "View Document" instead of "Sign" for canceled requests, similar to the completed state. Task: 6034621 Forward-Port-Of: odoo/enterprise#111534 Forward-Port-Of: odoo/enterprise#110974
This update resolves a crash issue when opening tax reports without a linked return type. The system now automatically falls back to the company's tax periodicity, ensuring reports open reliably. This improves the overall stability and usability of our tax reporting functionality.
Original PR description
When a report uses 'previous_return_period' date_scope on one of its expressions, if there's no account.return.type linked to that report, the opening of the report crashes. This is a bit stupid,…
When a report uses 'previous_return_period' date_scope on one of its expressions, if there's no account.return.type linked to that report, the opening of the report crashes. This is a bit stupid, since a return type without periodicity will anyway fallback to the the company's tax periodicity field. When there's no return type, we should simply fallback in the same way. To reproduce: - Make a Belgian company, install the CoA and localization - Manually uninstall l10n_be_reports - Try opening the tax report Another message also checked that we couldn't compute this date_scope in case there was more than one return type linked to the report, arguing they have different periodicities, so we can't infer which one to use. However, it they actually shared the same periodicity, that check failed anyway. We refine it to authorize this case, and only raise if they truly have different periodicities. opw-6022150 Forward-Port-Of: odoo/enterprise#111872 Forward-Port-Of: odoo/enterprise#111796
This update resolves a recurring issue where the Italian POS printer experienced errors when offline. The fix adds a safety mechanism to gracefully handle network disruptions during receipt printing, preventing tracebacks and ensuring smoother operation for users. This improves the reliability of the Italian POS system.
Original PR description
When loosing internet connexion a lot of tracebacks appear is the pos if we use the italian fiscal printer. Steps to reproduce: ------------------- * Setup italian fiscal printer for a shop * Open shop * Turn wi-fi off * Add items to cart * Go to payment screen > Traceback * Add a payment and validate > Traceback Why the fix: ------------ Don't try to reach the printer if we're offline regarding the price to pay. We add a try catch block around the call for printing the receipt. If the try block fails when the network is offline we assume it's just because of the offline mode. If it failed while online we raise the error. opw-5432090 Forward-Port-Of: odoo/enterprise#112076 Forward-Port-Of: odoo/enterprise#105515
This update fixes a potential issue where automated email systems (Mail Defender) could unintentionally cancel or reschedule appointments. The system now uses a form instead of a direct link, preventing these automated actions. This ensures appointments are handled correctly and reliably.
Original PR description
…ointments Mail defender services may click URLs in emails to verify their contents. Additionally they may sometimes interact with the page and visit related pages. For this reason URLs sent in emails should not trigger any action directly nor contain any simple link that could trigger an action. The "cancel/reschedule" anchor URL is replaced with a form which bots should not click. We also port the fix done in appointment to the view in appointment as it replaces the original view in this module. task-4555579 Forward-Port-Of: odoo/enterprise#112202 Forward-Port-Of: odoo/enterprise#79831
This update resolves issues causing warnings and tracebacks in several Odoo reports. By correcting how report parameters are defined, the system now handles warnings correctly, preventing errors and ensuring consistent report data. This improves the reliability and accuracy of key financial and tax reports.
Original PR description
Following odoo/enterprise#110087, `this.` was added before the warningParams, however it's defined in the ctx using t-set resulting in undefined values in a lot of reports. In the worst case, a traceback could occur when the report loaded like in l10n_lu_reports and the best case, the warning would just be missing (which isn't blocking but is wrong). The params to reportAction could also be set to undefined like in account_intrastat.
This update fixes an issue where archived employee versions were incorrectly appearing in payroll pay run reports. The change filters out archived employees from the domain, ensuring that only active employees are included in pay run calculations. This prevents inaccurate payroll reporting and maintains data integrity.
Original PR description
Steps to reproduce: 1. Create an employee with a contract for this month 2. Archive the employee (but not the version) 3. Create a pay run 4. The employee's version will appear in the list Cause: The domain takes versions for archived employees. Fix: Add active_employee in the domain. Task: 6022437 Forward-Port-Of: odoo/enterprise#110709 Forward-Port-Of: odoo/enterprise#110073
This update clarifies the error message displayed when an upsell start date is set too close to the next invoice date. This change ensures users receive clearer guidance, preventing potential issues with subscription setup and improving the overall user experience. It's a simple fix to enhance usability.
Original PR description
Update the error message when an upsell start date is on or after the next invoice date, so it be more clear for the users. task-5893032 Forward-Port-Of: odoo/enterprise#106757
This update fixes an issue where long product names in the Master Production Schedule would cause other schedule columns to disappear. The fix wraps long text within product names to ensure the entire schedule remains visible and functional. This improves the usability of the production planning tool.
Original PR description
Problem: In the master production schedule, if a product on the schedule has a name that would extend to the right edge of the screen, all of the other colums for the schedule will be completely hidden. Solution: We will wrap the text in the <a> tag containing the product name. Steps to Replicate (Runbot v19): 1. Open the Master Production Schedule 2. Click the pencil on one of the products 3. Click into the product and change its name to be something very, very long 4. Navigate back to the MPS and notice that you cannot see the actual schedule elements, even if you scroll to the end. opw-6066088 Forward-Port-Of: odoo/enterprise#112386 Forward-Port-Of: odoo/enterprise#111896
This update resolves an issue where the system incorrectly identified Swift accounts due to changes in Wise's API. By handling both 'swift_code' and 'SwiftCode' variations, the system now reliably processes direct deposit payments, preventing errors and ensuring accurate account identification.
Original PR description
Internally, Wise has changed their return value of their API to sometimes return `swift_code` and other times return `SwiftCode` depending on the create time of the recipient account. If the account is older than a few months it will use `SwiftCode` as the return value of GET /v2/accounts when they are created with type `swift_code` in the POST. As such, to be defensive this code handles both cases to not make any assumptions in case users have old or new accounts. This stops a traceback where the system doesn't think it's a swift account and tries to access abartn even though it doesn't exists. task-6070033 Forward-Port-Of: odoo/enterprise#112075
Features or functions removed from Odoo
This update removes the ability for non-internal users to view the IM status of other users. This change improves user privacy and reduces unnecessary data exposure, aligning with our commitment to responsible data practices. It simplifies the system for all users.
Original PR description
community PR: https://github.com/odoo/odoo/pull/248806 This commit removes the possibility for non-internal users to see the IM status of other users/guests. Non-internal users don't need this information, making it unnecessarily invasive.
This update removes outdated code related to thumbnail synchronization, specifically addressing a forgotten status restriction and a simplified condition. This cleanup improves the efficiency and maintainability of the documents module, ensuring a smoother user experience.
Original PR description
Purpose ======= In e6647b1c198395d6da1ee67f1bf7ac12db97cb95 we always synchronize the thumbail of the target and its shortcuts. But we forgot to remove the status "restricted", and the condition can be simplified. Task-6058483
This update removes outdated code related to the old tablet view for work orders. As the Shop Floor app replaced the tablet view, this cleanup ensures the system remains optimized and avoids unnecessary complexity. It's a routine maintenance task to improve efficiency.
Original PR description
As the tablet view was replaced by the Shop Floor app, it's now time to clean up the remaning tablet view code that wasn't removed at the time.
Miscellaneous changes
This pull request updates the master version of Odoo Enterprise with the latest rolldown, ensuring the system is running on the most current code. This update includes bug fixes and performance improvements, maintaining the stability and functionality of the core Odoo Enterprise platform. It's a routine maintenance task to keep the system up-to-date.
This pull request updates the visual templates used when creating sign requests in the Enterprise version of Odoo. These changes improve the user experience and ensure consistency in the design of sign request workflows. This is an internal update to improve the user interface.