Monday, December 1, 2025
38 changes · master
Enhancements to existing features
This update modifies the VAT report process to include tracking of payment steps. The change adjusts a setting within the accounting system to specifically flag the 'pay' stage for VAT reports, ensuring accurate reporting of payments. This improves the visibility and tracking of VAT payments within the system.
Original PR description
removed states_workflow `generic_state_review_submit` value from `account.return.type` to default `generic_state_tax_report` in order to add pay step in reports. task-5126401
This update makes a small visual adjustment to the offline systray item in the Odoo interface. The change enhances the user experience by refining the design for better clarity and visual appeal. This is a cosmetic improvement focused on presentation.
This update enhances the debugging experience by enabling a fuzzy search for technical field names within the Odoo Enterprise application. Previously, debugging relied on exact matches, which could be cumbersome. Now, developers can quickly find the relevant technical names during debugging, streamlining the troubleshooting process.
Original PR description
This commit adds the technical names of fields to the fuzzy search keys when in debug mode, to match the behavior of row/col. Task: 5226786
This update standardizes the naming of 'Working Schedule' instances to 'Working Hours' across the Odoo Enterprise system. This change enhances clarity and consistency within the HR recruitment integration, making it easier to manage job hour information.
Original PR description
- renamed the instances of Working Schedule to be Working Hours to be more consistent with other places task-id: 5167551
Resolved issues and error corrections
A test case in the Odoo Enterprise accounting module was failing due to differences in payment state handling between the community and enterprise versions. This change moved the test case to the enterprise environment to ensure it accurately reflects the expected behavior, resolving the reported error.
Original PR description
Community build was failing with: ``` test_bill_state_change_on_payment_state self.assertEqual(payment.invoice_ids.payment_state, 'not_paid') AssertionError: 'paid' != 'not_paid' - paid + not_paid ``` [Commit](https://github.com/odoo/odoo/pull/234725/commits/5dc43a2156e5b176e3236583b45b4838a987ee7d) In community there is no any `in_payment` state for account move records. As on changing payment state to draft It stayed in the `paid` only. `in_payment` state introduced in the enterprise module. So the test case is failing for the community version. To fix this I've moved the test case to the enterprise to retain the expected behaviour. runbot error: 234453 Forward-Port-Of: odoo/enterprise#100865 Forward-Port-Of: odoo/enterprise#100834
Features or functions removed from Odoo
This update removes the use of the pytz library from Odoo Enterprise. The change addresses inconsistencies in timezone handling, improving the stability and reliability of date and time operations within the system. This resolves a potential issue related to timezone conversions.
Code cleanup and technical improvements
This update streamlines the management of proxy status within Odoo's Point of Sale system. Previously, proxy status information was duplicated, now it's consolidated within the dedicated `pos_iot` module for better organization and consistency. This change ensures a cleaner and more reliable system.
Original PR description
For consistency reasons, we removed the proxy status from `point_of_sale`, to move it to `pos_iot`. odoo/odoo#238085
This update corrects a bug in Odoo where setting an employee's timezone to 'None' would cause an error. Now, the system will display a validation error, ensuring the 'Timezone' field is always populated. This prevents data inconsistencies and ensures accurate employee timezone tracking.
Original PR description
Description of the issue/feature this PR addresses: On Odoo 19.0 and master, setting an employee’s timezone to None would cause a traceback when creating or updating the employee. Current behavior before PR: a traceback when creating or updating the employee. Desired behavior after PR is merged: A Validation Error occurs because it missing required value for the field 'Timezone' (tz). Model: 'Resources' (resource.resource) task-5257749
This update resolves visual inconsistencies and display issues within the skill table across the employee, recruitment, and appraisal forms. Specifically, cropped elements and styling problems have been corrected, and outdated code for sample data display has been removed, streamlining the user experience.
Original PR description
This PR fixes various issues with how the skill table is displayed in hr, hr_recruitment, and hr_appraisal. Additionally, all code related to displaying sample data for the appraisal skills is removed in this PR, as the skills page has been hidden (rather than showing sample data) since at least v18. Issues: 1. The skills table on the employee form view is cropped on the sidees when viewing in Firefox. 2. The skills table header and the resume header on the employee form view is not aligned and styled the same way. 3. The skills table header on the employee form view is missing the separator below it when viewing in Chrome. 4. The skills table header on the applicant form view is missing the separator below it when viewing in Firefox. 5. The skills table on the appraisal form view is missing a separator when viewing on Firefox. Task-5033427
This update simplifies the HR payroll process by removing a redundant action from list views. Previously, the 'Working Schedule Change' action was unnecessary and caused validation errors when attempting to modify schedules for multiple employees. This change streamlines the workflow and improves user experience.
Original PR description
The 'Working Schedule Change' server action can only be used on a single employee, so having it in the list view does not make sense. This also avoids having a validation error when the user tries to use the action on multiple selected employees. Task: 5358499
This update resolves an issue where website generation requests could fail silently, preventing results from being fetched. Additionally, a redundant cron trigger was eliminated, reducing potential frontend errors. This ensures website generation processes run reliably and efficiently.
Original PR description
It is possible to get a serialization error when creating the website generator request. This caused the request call to go off without the record being saved. The server would start the process but the result would never be fetched. In order to avoid this scenario, we send the request in a post commit hook. Also fixed issue where we triggered the cron even when not necessary (error_still_proccessing). This was an issue because the frontend js calls this method every 10 seconds so it was easy to get a concurrent access a few times and then receiving a traceback in the frontend. (Altough the process still succeeded in the end).
This update fixes an issue where a header on the spreadsheet dashboard action pushed content downwards, obscuring the bottom of the spreadsheet. The change ensures the full spreadsheet view is consistently displayed, improving usability and data visibility. This resolves a minor visual inconsistency.
Original PR description
The current rule applied on the spreadsheet action assumes that the action takes the full page but if we add a header , the full action is pushed downwards, which hides the bottom of the spreadsheet. Task: 5212448 Forward-Port-Of: odoo/enterprise#99654
This update resolves an access error that prevented managers from marking appraisals as complete. The issue occurred when users lacked the necessary HR permissions. This fix ensures that managers can correctly finalize appraisals, improving workflow efficiency.
Original PR description
STEP TO REPRODUCE: 1- Set Marc demo as a manager on an employee 2- Be sure he doesn't have the group group_hr_user 3- Log as Marc Demo 4- Create an appraisal for this employee 5- Confirm this appraisal 6- Click on "mark as done" You will have an access error; you shouldn't have it task-5349554 Forward-Port-Of: odoo/enterprise#100145
This update addresses a visual issue within the Account Online Synchronization module. The entire column displaying company information was previously partially visible; this fix now completely hides the column, improving the user interface's clarity and professionalism. This change ensures a cleaner and more consistent user experience.
Original PR description
The whole column needs to be invisible, not just the content of it Forward-Port-Of: odoo/enterprise#100446
This update resolves an error that occurred when generating the payment report from a pay run. The issue stemmed from an empty data set being returned for certain pay run configurations, leading to a key error. This fix ensures the payment report function now works correctly for all pay run scenarios.
Original PR description
When user clicks the payment report button in pay run, a traceback will appear. Steps to reproduce the error: - Install ``hr_payroll`` module - Open ``Administrator`` Employee > In Payroll tab, Set…
When user clicks the payment report button in pay run, a traceback will appear.
Steps to reproduce the error:
- Install ``hr_payroll`` module
- Open ``Administrator`` Employee > In Payroll tab, Set ``Contract, Wage`` > In Personal tab, ``Set Bank account`` > Save
- Go to Payroll > Configuration > Structures > Regular Pay > Open Net Salary rule > ``Amount Type: Fixed Amount`` and
``Fixed Amount: 0.0`` > Save
- Now, Go to Payroll > Payslips > Pay runs > Create a new Pay run > Select record > (One payslip will be created with the regular pay structure)
- Open that pay run > Click new > ``employee: Administrator`` >
``structure: worker pay`` > save
- Now, Open that pay run again > Compute > Confirm > Payment Report
Traceback:
```py
KeyError: '2'
```
https://github.com/odoo/enterprise/blob/7d90ece2756c1d8434f90a29ee6b34015a349acb/hr_payroll/models/hr_payslip.py#L2192-L2199
Here, the method ``compute_salary_allocations`` returns an ``empty dict {}`` for payslips with ``net_wage = 0.0``
https://github.com/odoo/enterprise/blob/7d90ece2756c1d8434f90a29ee6b34015a349acb/hr_payroll/wizard/hr_payroll_payment_report_wizard.py#L39-L41
So, ``allocations`` becomes an ``empty dict``, so accessing a key in it causes the above traceback.
sentry-6931674861
Forward-Port-Of: odoo/enterprise#96805This update corrects a technical issue where duplicate methods were introduced in several Odoo modules. The problem stemmed from a missed custom build step, and this fix ensures the integrity of the codebase by removing these redundant methods. This improves stability and prevents potential conflicts.
Original PR description
Followup of #100053 because I forgot to run the custom build, and thus missed newly introduced duplicate methods. Forward-Port-Of: odoo/enterprise#100655 Forward-Port-Of: odoo/enterprise#100599
A bug in the rental order system was causing incorrect quantity calculations when returns were processed within linked pickings. This update fixes a calculation error, ensuring rental order quantities accurately reflect product movement, particularly after returns. This resolves an issue impacting rental order accuracy.
Original PR description
Steps to reproduce: - Enable multi-step & Rental transfers - Set warehouse to 2 steps reception/delivery - Create a rental order for a product with a qty of 5 - Process the PICK - Change the quantity in the rental order to 3 and save - Change the quantity back to 5 and save again Issue: The Rental IN picking has now a `product_uom_qty` of 1. This is due to a wrong computation of incoming/outgoing moves when there are returns (e.g. here a return PICK) in the linked pickings. opw-5028794 Forward-Port-Of: odoo/enterprise#100645 Forward-Port-Of: odoo/enterprise#98473
The Original Bills report was producing empty results in Odoo Studio. This was due to the report's complex process of combining multiple streams to create the PDF. To resolve this, the Studio module has been configured to simply blacklist this specific report, preventing errors and ensuring correct functionality.
Original PR description
Steps to reproduce ================== - Install account_accountant,web_studio - Go to Invoices - Open studio - Click on "Reports" - Select the "Original Bills" report => The report is empty Cause of the issue ================== The Original Bills is a very specific report. Multiple streams are created and then combined to make the final PDF See: odoo/odoo#85150 Solution ======== Since studio cannot handle this usecase, we blacklist this report opw-5108198 Forward-Port-Of: odoo/enterprise#100769 Forward-Port-Of: odoo/enterprise#100729
This update corrects a reporting issue where payment reports incorrectly included bank accounts with zero allocations. The change now ensures that reports only display accounts with positive allocations, providing more accurate and reliable payment information. This improves the clarity and trustworthiness of financial reports.
Original PR description
-In case of creating payment report for an employee with multiple bank accounts, if one of the accounts has an allocation of 0%, it still appears in the report. -This approach has been changed to include only accounts with positive allocations.
This update resolves visual inconsistencies and display issues within the skill tables used in the employee, recruitment, and appraisal modules. Specifically, the tables are now correctly aligned and styled across different browsers, addressing prior cropping and formatting problems. The removal of outdated sample data code further streamlines the skill table presentation.
Original PR description
This PR fixes various issues with how the skill table is displayed in hr, hr_recruitment, and hr_appraisal. Additionally, all code related to displaying sample data for the appraisal skills is removed in this PR, as the skills page has been hidden (rather than showing sample data) since at least v18. Issues: 1. The skills table on the employee form view is cropped on the sidees when viewing in Firefox. 2. The skills table header and the resume header on the employee form view is not aligned and styled the same way. 3. The skills table header on the employee form view is missing the separator below it when viewing in Chrome. 4. The skills table header on the applicant form view is missing the separator below it when viewing in Firefox. 5. The skills table on the appraisal form view is missing a separator when viewing on Firefox. Task-5033427 Forward-Port-Of: odoo/enterprise#100738
This update resolves a usability issue in the annual corporate tax return reports by adding 'reviewed bubble' and 'Mark as completed' buttons. These additions streamline the reporting process for users, making it easier to track and finalize tax returns.
Original PR description
Missing: - reviewed bubble - Mark as completed button Forward-Port-Of: odoo/enterprise#100721 Forward-Port-Of: odoo/enterprise#100039
This update resolves an issue where tests were using incorrect dates, causing instability. The team removed explicit 'today' dates from test files and corrected date references within invoice test files. This ensures more reliable test execution and improved stability of the Mexican invoice processing module.
This pull request removes outdated files related to FedEx, UPS, and USPS delivery configurations within the Odoo Enterprise system. These files were identified as no longer needed and were removed to streamline the codebase and improve performance. This change ensures the system remains efficient and focused on current delivery functionalities.
Original PR description
Oversight of 83d5bc4b0df37e0786348238b7379cb9f62fd5e4 and fw ports Forward-Port-Of: odoo/enterprise#100482
This update removes an outdated and confusing reference to a previous module name ('finkok') within the l10n_mx_edi module. The change simplifies the codebase and avoids potential confusion for developers. This is a routine maintenance fix.
Original PR description
It has been some time since finkok changed its name to quadrum, and now no one remembers quadrum as finkok. Having it in the name only causes more confusion, so we decided to simply remove it. I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/enterprise#100663
This update removes outdated styles specifically designed for dark mode within the global filters component. These overrides were no longer needed after a recent change, streamlining the codebase and improving performance. This ensures a consistent user experience across all Odoo Enterprise versions.
Original PR description
Remove dark mode override styles for the global filters component, as they are no longer required. Task: 5322179