Daily updates from Odoo
Tuesday, May 5, 2026
23 changes
3 changes
Enhancements to existing features
This update adjusts the reporting of COA and TB data to align with Mexican government specifications. This ensures compliance with tax regulations and reduces the risk of reporting errors. The changes are focused on data formatting for improved accuracy.
Original PR description
Reordered COA and TB attributes to be more according on what government expects on those reports task-5422228
This update adds the delivery address to the TicketScreen in Point of Sale, making it easier for staff to quickly see and use customer addresses when scheduling deliveries. This enhancement streamlines the delivery process and improves order accuracy by providing all necessary address information directly on the screen.
Original PR description
In this commit: =============== - Added address details on the TicketScreen when the order preset identification type is `address`. - This helps to easily see the delivery address while scheduling the delivery. Task-5974595 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#257302 Forward-Port-Of: odoo/odoo#251389
This update enhances the website builder's flexibility by allowing users to define custom ratios for background and image shape speeds. Additionally, it automatically sets a default animation speed for image shapes, resolving a previous issue where the minimum speed was applied by default. This improves the user experience and allows for more precise control over visual elements.
Original PR description
This PR makes the following changes:
1. Add support of custom ratio in builderRange
- Earlier, the values in `BuilderRange` component were normalized between 0 and 100 (when `displayNormalizedValue` prop is true) and did not support custom ratios.
- This PR adds support for custom ratios by introducing the `convertorRatio` object prop.
- This is used for background and image shape speed, where values are normalized between 0.33 and 3.
2. Set default animation speed on image shapes
- Previously, when an animated shape was applied to image, the animation speed dataset was not initialized until the user modified it via the sidebar. This caused a fallback to apply the minimum speed value.
- This PR ensures that the animation speed dataset is initialized to "0" by default when an animated shape is applied to an image.
task-61389811 change
Enhancements to existing features
This update automatically sets the first available printer as the default for Point of Sale transactions. Previously, users had to manually select a printer, and this change simplifies the process. Additionally, restrictions have been added to prevent incorrect printer configurations, ensuring data integrity within the POS system.
Original PR description
Following this commit: ===== - Set first printer as default printer from the list configured. - Updated the help tooltip. - Added placeholder "None" to field product_categories_ids. - Restrict quick create for `receipt_printer_ids` and `default_receipt_printer_id` for pos.config and res.config.settings views task-5494313 Forward-Port-Of: odoo/odoo#246448
1 change
Enhancements to existing features
This update simplifies the process for users experiencing issues downloading the SSL certificate. The homepage now displays a clear warning message, eliminating the need to manually check logs and reducing potential user frustration. This improves the overall user experience and troubleshooting.
Original PR description
We improved the certificate status warning displayed on the homepage to avoid having to check the logs to know what went wrong while downloading the SSL certificate. Forward-Port-Of: odoo/odoo#232670 Forward-Port-Of: odoo/odoo#232471
17 changes
Enhancements to existing features
This update adds more thorough tests for the longpolling functionality within Odoo Enterprise. Specifically, the tests now verify how the system handles network errors, ensuring a more reliable response when connectivity issues occur. This improves the overall stability and robustness of the IoT integration.
Original PR description
This commit adds tests for the `onMessage` method of the longpolling JS class, and in particular tests the recently added behaviour where the polling request returns an 'unreachable' result when a network error occurs.
This update ensures accurate tax calculations for employees with Income from Let-Out Property, aligning with Indian tax regulations. A 30% standard deduction is now applied to rental income, and a new configuration option allows for future adjustments. This change improves compliance and reporting accuracy for Indian users.
Original PR description
Purpose: Ensure correct tax computation for Income from Let-Out Property by applying the standard 30% deduction as per Indian tax regulations. This PR includes: - Applied 30% standard deduction on let-out property during tax input value computation. - Added rule parameter for let-out property deduction to allow future changes via configuration. - Updated tax input values to consider only 70% of the declared rental income for tax calculation. - Added tooltip on let-out property field to clarify that a 30% standard deduction is applied on gross rental income for tax computation. This change aligns the payroll tax computation with Indian income tax rules, Income from Let-Out Property is calculated after deducting the standard maintenance deduction of 30% from the gross annual rental income. task-5848157 Forward-Port-Of: odoo/enterprise#112969
This update introduces a 'Changes Summary' report for Engineering Change Orders (ECOs), streamlining the process of reviewing updates to Bills of Materials. Previously, users had to navigate multiple tabs to understand component, operation, and by-product changes. This new report consolidates all relevant information into a single, easily digestible view, improving efficiency.
Original PR description
This commit introduces a new report "Changes Summary" to Engineering Change Order (ECO) model. Previous to this commit, users had to navigate through 4 different tabs to analyze the changes of the new versions of the BoM: components, operations, instructions and by-products. This commit removes these tabs and replaces them with one comprehensive report that shows all the changes next to each other. Task-5343222
This update allows administrators to modify payroll warnings and salary structures directly within Odoo, streamlining payroll management. Previously, these settings were immutable, requiring manual updates through technical channels. A new test ensures data integrity and prevents unintended changes.
Original PR description
This commit makes payroll warnings and salary structures updatable by removing the noupdate flag on them. A test is added to check that no warnings, salary structures, or salary rule categories have the noupdate flag. task-6120462
This update enhances the visual appearance of Gantt chart connections by replacing curved lines with cleaner, right-angled connectors featuring rounded corners. The changes also include real-time updates to connector positions during drag-and-drop actions, providing a more responsive and intuitive user experience. This improves the overall professionalism and usability of the Gantt chart.
Original PR description
In this commit added below changes: - Replace Bezier curves with orthogonal paths featuring rounded corners for clearer connectors. - Added dynamic connector target updates during pill drag for better UX. ## Technical details: * **Path Structure**: Changed SVG connector path from cubic Bezier curves to orthogonal routing with rounded corners - **Before**: `M 100,50 C 150,50 200,100 250,100` (curved path) - **After**: `M 100,50 L 175,50 Q 175,75 175,100 L 250,100` (orthogonal with curves at corners) task-4648686
This update automatically removes 'Request' documents when the related record (like a Lead) is deleted. Previously, these documents lingered uselessly after a record was removed, creating confusion. This change improves data cleanliness and efficiency.
Original PR description
Scheduling an "Upload Document" activity for a record (e.g., a Lead) creates a "Request" document that is linked to that record. Previously, the request document would remain after the record was deleted, leaving it meaningless without its related record. With this change, the request is automatically archived (moved to the Trash) when its related record is removed. Note that if a file has already been uploaded for the request, no further action is taken here: the fulfilled document request will be deleted if the record does not inherit from `documents.unlink.mixin` if we delete the record "owning" the attachment of the document; otherwise the document request will be moved to the Trash. Task-5259439
This update enhances the payslip account preview feature, allowing users to see a simulated account move before validation. It includes UX improvements for salary calculations and adds optional credit/debit account assignments. This provides greater transparency and control over payroll accounting.
Original PR description
This commit serves multiple purposes: - Making the "obvious" values in the salary computation tab of a payslip invisible. This means that in the list view of the rules, only values != 1 will be shown…
This commit serves multiple purposes: - Making the "obvious" values in the salary computation tab of a payslip invisible. This means that in the list view of the rules, only values != 1 will be shown in the Quantity column, values != 100 in Rate and values != Total in the Base column. - Adding credit and debit accounts on the payslip line, optional by default. - If the Anonymize flag is set on the company, adding a way to preview the account move that would be created if we validated the payslips. To do this, a new button Journal Entry (Preview) is added to the ellipses, which triggers the form view of a newly added model MockAccountMoveWizard. This is a model used to simulate the Account Move without risking the records being saved in the db and bloating everything. All of the fields of this new model are computed, so when the form view is called on a new record, the compute function is triggered and used to fill all the values we will need in the view later. The values are taken from the same function that is used when creating an actual move, which we have split to separate the value computation part and the record creation. An additional model for mock lines is also created to be able to have the One2many relation. Task: 5965802
This update enhances the Studio approval entry list and form views to better support audit trails and improve usability. The changes make these views more practical for tracking and managing approval processes within Odoo Enterprise.
Original PR description
The list and form views are too basic to be of any use for audit purposes. This commit aims at making them more useful and user-friendly task-5961149
This update prevents students and PFIs from being assigned BIK (Bank Identification Numbers) that are not permitted under Belgian tax regulations. This ensures compliance with local tax laws and reduces the risk of errors related to incorrect BIK assignments.
Original PR description
Hiding the BIKs that cannot be given to students or PFIs. task-6172231
This update improves the speed of the payroll dashboard by loading warnings asynchronously. Previously, the dashboard would lag due to waiting for all warnings to load at once. Now, warnings are displayed one by one, resulting in a much quicker and more responsive user experience.
Original PR description
Prior to this commit, the payroll dashboard would take too long to load the warnings. This commit makes the loading asynchronous, so warnings are loaded one by one instead of waiting for all of them to be loaded before displaying them. task-6117352
This update enhances the 274.xx report by organizing employee tax information into clearer categories based on their certificate type. This improves readability and simplifies tax reporting while still providing an overall tax summary. The changes were made to streamline the report for better business understanding.
Original PR description
The commit aims to improve the 274.xx report layout through separating the different entries based on the nature of their obtained certificate and grouping them separately while still maintaining an aggregate summary of their taxes. Task: 6102983
This update simplifies the user experience for submitting Belgian HR payroll declarations to ONSS. The changes include a cleaner interface by hiding batch-specific options, a progress status bar to track declaration status, and enhanced tracking of declaration history, making the process more efficient and transparent.
Original PR description
Before: - Post ONSS Declaration button was visible in both web and batch mode - ONSS Declarations smart button was visible regardless of declaration type - DMFA had no status bar to track declaration…
Before: - Post ONSS Declaration button was visible in both web and batch mode - ONSS Declarations smart button was visible regardless of declaration type - DMFA had no status bar to track declaration progress - ONSS Declaration list had no creation date or download option - Draft state existed on ONSS declaration requiring manual posting - DMFA column in ONSS list showed wrong name After: - Post ONSS Declaration button only visible in batch mode - ONSS Declarations smart button only visible in batch mode - DMFA statusbar added showing: To Submit, Posted, In Progress, Refused, Approved based on latest ONSS declaration state - Refused and In Progress states only visible when current state - ONSS Declaration list now shows XML filename, creation date and download button for XML file - Draft state removed, declarations posted directly from DMFA screen - DMFA column now shows XML generated filename Impact: - Cleaner UI by hiding batch-only features in web mode - Better visibility of declaration progress through statusbar - Easier tracking of ONSS declaration history from list view Task: 5937242
This update enhances the user experience by adding options to set date fields as read-only and control their alignment directly within the form view. This provides greater flexibility and accuracy when entering date information, streamlining data entry processes.
Original PR description
Before: - Read-only and alignment option was not available for date field in form view. After: - Read-only and alignment option is now visible for date field in form view. this will allows users to set date fields as read-only and control their alignment directly from the form view. task-6179970
This update adjusts the tax report handlers to align with recent changes in the tax tag system used within Odoo. This ensures accurate reporting of taxes, reflecting the latest tax regulations and improving the reliability of financial data. It's a necessary update related to a broader change in the tax tag definitions.
Original PR description
Before this pr: - The tax tags used in the report_grid_map in custom tax report handlers are codified. After this pr: - So now we are updating the report_grid_map according to the change in the tax tags. Related Com PR: https://github.com/odoo/odoo/pull/255802 Task-6008302
This update optimizes appointment scheduling by calculating availability only for the current month, rather than pre-computing slots for the entire booking period. This change significantly reduces server load and improves the responsiveness of the appointment booking process. It's a performance enhancement that makes scheduling appointments faster and more efficient.
Original PR description
Generate all slots and compute only availabilities for the display month instead of pre-computing all slots for the whole booking period. task-4144524 Forward-Port-Of: odoo/enterprise#115986
This update automatically handles contract amendments for offers that overlap with existing contracts, creating new versions to maintain accurate records. It also cleans up outdated contract versions, preventing data inconsistencies and providing a clearer audit trail. A warning alerts users to potential replacements of existing versions.
Original PR description
**Contract Amendment & Versioning Logic** * When an offer's contract start date falls within an existing contract period, it is treated as a contract amendment (new version) rather than a new…
**Contract Amendment & Versioning Logic** * When an offer's contract start date falls within an existing contract period, it is treated as a contract amendment (new version) rather than a new contract. * For contract amendments, the offer's contract end date is read-only and automatically inherited from the existing contract. * When creating a new offer, any existing versions with effective dates **on or after** the new offer's contract start date are automatically archived, as they likely contain outdated data. * Added a warning to notify users when a new offer will replace existing future versions. **Technical Refactoring** * Refactored the `employee_version_id` computation (used as a fallback for contract templates) to sort by the contract's effective date (`date_version`) and strictly select the most recent version that was active prior to the new offer's `contract_start_date`. Previously, it was determined based on the version active at the offer creation date. This ensures the selected employee version matches the contractual state effective at the new offer's `contract_start_date`, preventing inconsistencies caused by relying on the offer creation date. * For personal info we now use `employee_version_id` as the latest version, falling back to `version` for applicants. * Ensured cache invalidation after rollback savepoints to prevent stale data. The overridden `_get_version` in `hr_contract_salary_payroll` writes to `employee.version_id` and the `contract_template_id`; although rolled back, it polluted the cache. We now always invalidate the cache after rollbacks to avoid inconsistencies, including later module installation. **Simulation & Chatter** * Inside the simulation, when calling `_get_version`, we need to adjust the contract dates of the version being simulated. The main challenge is allocating this simulated version between existing employee versions without creating contract overlaps, since overlaps raise validation errors. * Our first approach was to archive all versions with `date_version` after `offer.contract_start_date`, then create the simulation version with `(offer.contract_start_date, False)`. Functionally, this worked. * However, we started seeing phantom messages in the employee chatter. After investigating, we discovered that archiving `employee.version_id` triggers chatter tracking automatically. Even when we tried disabling tracking before rolling back the simulation, it didn't work. The chatter was triggered directly by the ORM, as confirmed by the stack trace. * To avoid this issue, we moved to a second approach. We archive all versions after `offer.contract_start_date` and set `employee.version_id.contract_date_end = False`. Then, instead of replacing the active version, we create the simulation version as an amendment to `employee.version_id`. The amendment's effective date is set to `max(fields.Date.today(), employee.version_id.contract_date_start, self.contract_start_date)` + 1 day. This ensures the current version remains unchanged, avoids contract overlaps, and prevents chatter pollution. task: 5408192 Forward-Port-Of: odoo/enterprise#103846
This update adjusts the COA and TB report templates to align with Mexican government reporting specifications. This ensures accurate and compliant financial reporting for Mexican businesses using Odoo Enterprise. The changes were made to improve consistency and meet regulatory requirements.
Original PR description
Reordered COA and TB attributes to be more according on what government expects on those reports task-5422228 Forward-Port-Of: odoo/enterprise#115374
1 change
Enhancements to existing features
Odoo now supports the new alphanumeric CNPJ format required by the Brazilian government to accommodate a growing number of businesses. This update replaces an outdated validation method, ensuring Odoo can accurately process Brazilian company registrations as they transition to this new format. This change avoids dependency issues with a third-party library.
Original PR description
Purpose: The Brazilian Federal Government, through the Brazilian Federal Revenue Service (Receita Federal do Brasil), is implementing the alphanumeric CNPJ to address the imminent depletion of its…
Purpose: The Brazilian Federal Government, through the Brazilian Federal Revenue Service (Receita Federal do Brasil), is implementing the alphanumeric CNPJ to address the imminent depletion of its capacity to generate new CNPJ numbers. The current, exclusively numeric model is approaching its limit. The transition to a format that includes letters and numbers expands the number of possible combinations, ensuring the future availability of registrations for new companies. With the government expanding the CNPJ numbers, we need to implement a solution to support the alphanumeric CNPJ that will be issued starting July 2026. Current Behavior: The method, `is_valid,` from stdnum is currently used to determine whether the CNPJ is valid or not. This is now considered an outdated method to determine the validation. Changed Behavior: The new validation logic by stdnum, found here https://github.com/arthurdejong/python-stdnum/commit/d3ec3bd7fefe0d0a708b6594a66de28777eb9b8d, is patched into `check_vat_br.` The reasoning for patching this rather than calling stdnum is because using stdnum will cause library dependency issues for older versions of Odoo. task-5234869 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#260516