Monday, August 25, 2025
21 changes · master
Enhancements to existing features
Marketing automation now includes a controlled option to bypass the blacklist for important transactional or incident-related emails and SMS messages. This helps ensure critical customer communications can still be delivered when needed, while limiting visibility of the option to ERP managers in debug mode.
Original PR description
Add an option to bypass the black list for example for transactional or incident emails/sms. This option is only displayed for erp manager and when debug mode is enabled. Task-3575361
This update adds missing account mappings for salary rules in the UAE and Egypt payroll accounting modules. It helps ensure payroll entries are posted to the correct accounts, improving accounting accuracy and reducing manual corrections.
Original PR description
xx: ae,eg In this commit we add the mapping for all the salary rules accounts Taks: 4930175
The salary offer form was adjusted so the salary structure field no longer shows a dropdown icon. This makes the field presentation clearer and avoids suggesting an action that may not be relevant for users preparing salary offers.
Original PR description
task-5025998
Installing the Guatemalan electronic invoicing module is now safer for companies with large databases. The update avoids heavy recalculations during setup that could previously cause installation failures, and the module will no longer be installed automatically with the base Guatemalan localization.
Original PR description
This commit adds `_auto_init` to the `account.move` object in the Guatemalan EDI that prefills all computed stored fields in the move object with null values. This prevents computation on those fields when installing the module, and also prevents MemoryError on large databases. task-5031330 Forward-Port-Of: odoo/enterprise#92881
Chilean delivery guides can now include editable cross-reference documents, such as purchase orders, directly on stock pickings. This reduces manual work and improves accuracy by copying references from sales orders and backorders while reusing the same reference display across invoices and delivery guides.
Original PR description
Currently Delivery Guides can reference a Purchase Order by using the client_order_ref field on the sale order linked to the picking. This works but has issues, it is hardcoded to only that one reference document, it isn't editable if needed, and has a hardcoded date of the picking. This PR takes advantage of the `l10n_cl.account.invoice.reference` model that exists in `l10n_cl_edi` for `account.move` and supports identical functionality on `stock.picking`. It will automatically copy the reference from the sale order to the picking if it is set and copy over to any related backorders. To remove duplication, l10n_cl_edi was modified to extract the report table to a reusable template that is accessible by both modules. task-4970185
Accounting document synchronization is now enabled automatically when Documents Accounting is installed. New and existing journals get the needed folders, tags, and sync settings without manual setup, making accounting documents easier to organize consistently.
Original PR description
We enable the synchronization of document account by default, and we create automatically the journal synchronization configuration along with the corresponding folder and tag when a journal is…
We enable the synchronization of document account by default, and we create automatically the journal synchronization configuration along with the corresponding folder and tag when a journal is created.
We also create all the synchronization configuration of the existing journal when documents_account is installed.
Notes:
- we do the configuration of the journal synchronization in sudo because the user creating the journal has not necessary access to document.
- we transfer the translation of the journal type to the folder name, but it only transfers the installed language so to benefit from it, languages must be activated before documents_account is installed.
- we also transfer the translation of the journal name to the documents tags. But as we can only add translations after the creation of the journal where the auto creation of the settings are performed, it will only benefit when installing documents_account after having activated multiple language and added translation to the journal names.
[IMP] documents_account: remove accounting sync option
The user can no longer disable the accounting synchronization with document when documents_account is installed.
Note: Following the change of _get_default_folder in account_reports.export.wizard where we just return the account_folder_id of the company, we set precompute to True for the field account_folder_id of company to ensure a folder is set by default. Note that the field is not required on the model but well in the settings view. test failing without that change: account_reports:TestAllReportsGeneration.test_generate_all_export_files
[IMP] documents{_account}: prevent document warning in the tests
In document._prepare_create_values, we emit a warning and set the owner to False when the owner of the document to be created is not active. Now that we have enabled the document account synchronization as soon as document_account is installed, we get that warning in lot of account test. To avoid those warning, we set upstream the owner to False when the owner is not active.
Co-authored by: Stephane Debauche <std@odoo.com>
[IMP] documents_account: disable documents sync during account test
To avoid a lot of test to fail or emit warning in account (not in documents_account) following the enabling of the account document synchronization by default, we disable the document account synchronization during the account test and re-enable it for documents account test.
We also modify the tests because they were expecting that no configurations for journal synchronization were set up which is no longer the case.
Task-4873102Turkish payroll can now keep an employee's net wage constant and calculate the required gross salary each month. This helps businesses honor net salary agreements while accounting for changing payroll calculations and deductions.
Original PR description
This PR adds the feature of keeping the NET wage constant in payroll of employees with contracts in Turkey, while every month calculating the Gross Salary that will result in said net wage. task link: https://www.odoo.com/odoo/all-tasks/4619061
The scale certification status now shows the Point of Sale version instead of the IoT version. This makes the certification information clearer and ensures users see the version that matters for their PoS compliance checks.
Original PR description
We need to display the PoS Version, not the IoT version. Forward-Port-Of: odoo/enterprise#91682
Mexican electronic invoicing now handles discount distribution across invoice lines more consistently, including complex refunds and point-of-sale invoices. This helps produce more accurate compliant invoice data and reduces errors in edge cases involving negative lines or discounts.
Original PR description
Forward-Port-Of: odoo/enterprise#92910 Forward-Port-Of: odoo/enterprise#92727
Planning schedules now better match employees with the shifts they are eligible to see. Employees are shown slots based on their assigned roles, and non-flexible employees only see slots that fit within their working hours, reducing scheduling confusion.
Original PR description
- Added role-based filtering: employees only see slots that match their roles or have no role assigned (unless they have no roles, in which case all are allowed). - Applied attendance filtering for non-flexible employees, restricting slots to their valid work intervals. related task - 4701095
Maintenance requests now show an explicit scheduled end time, making planned work easier to understand. Teams can also log or plan workcenter maintenance outside normal hours or after it has happened, while conflict checks are handled earlier to avoid unnecessary scheduling records.
Original PR description
With This Commit: ----------------------- 1. Replace duration with schedule_end - Replaced the `duration` field with an `scheduled end` on maintenance requests, in preparation for removing the…
With This Commit: ----------------------- 1. Replace duration with schedule_end - Replaced the `duration` field with an `scheduled end` on maintenance requests, in preparation for removing the problematic `date_delay` attribute in calendar views. - Improves time range visibility by making the end time explicit in the form view. 2. Allow past leave creation - Allowed creating leaves in the past for workcenters. - This matches real-world maintenance use cases where activities are logged after they happen or just started. 3. Reorder logic to prioritize scheduling on the exact desired date - The logic now first checks if the requested time slot is available for the maintenance request. - If the slot is already taken, it raises a UserError before creating any preventive maintenance leaves. - This ensures early validation and avoids unnecessary record creation, improving overall performance. 4. Allow creating maintenance during non-working hours (flexible schedule) - Users can now plan maintenance during nights, weekends, or other off-hours. - This ensures the "MO already scheduled for this time slot" error only shows when there's an actual conflict. - This removes unnecessary restrictions and supports more efficient maintenance planning. 5. Refine `Maintenance Requests Analysis` report - Removed low-impact measures to improve clarity and help users focus on key metrics like request count and duration. - Retained the duration measure to help users analyze time spent by assignee. Framework task: [4609678](https://www.odoo.com/odoo/all-tasks/4609678) task-4582789
The Field Service customer ratings action has been changed so it no longer depends on a live server connection. This improves reliability for users working in offline mode while keeping access to customer rating information.
Original PR description
Before this commit The "Customer Ratings" action in industry_fsm used a server action, incompatible with offline mode due to its dependency on a live backend connection. After this commit The server action is replaced with a standard window action, which is supported in offline mode. task-4920361
Belgian payroll now supports setting a minimum withholding tax amount as an additional payslip input. This helps ensure payroll calculations meet required withholding levels by automatically adjusting payslip lines when the calculated tax is below the specified minimum.
Original PR description
This commit adds a new other input type that can specify the minimum amount of withholding tax that should be applied. The withholding tax is adjusted on the payslip lines if it does not reach the specified minimum. task-4936543
Products in UrbanPiper point of sale can now be grouped by the delivery locations where they are available. This helps teams review and manage location-specific product availability more quickly.
Original PR description
In this commit: ------------------ - Added a groupby filter to easily organize products based on their availability at different delivery locations. task: 4942185
HR users can now open the employee’s contract version directly from an offer before countersigning, making review easier. The signed contract button now consistently opens the correct version, including after the page is refreshed.
Original PR description
New: - A smartbutton for HR to view the employee version before countersigning. - The smart button exists within the offer form view when the offer is partially-signed, redirects to a view of the employee version based on the partially signed contract. Fixes: - When the contract is countersigned, clicking on the "signed contract" smart button now leads to the correct version view. - When the page is refreshed, the correct version is still loaded. Task-4873800
This update improves the Time Off request experience and keeps related payroll, planning, project, and localization workflows aligned. It mainly adjusts supporting checks to ensure existing business processes continue to behave consistently after the time off window changes.
Original PR description
related: https://github.com/odoo/odoo/pull/213604/
The employee form has been reorganized to make key HR and payroll information easier to find and understand. Wording and layout improvements reduce friction for HR teams, while the signatories area has been removed to simplify the page.
Original PR description
In this PR, we improved the existing employee form UX, by moving some parts, improving wording and UX, and removing the Signatories tab. Related task: 4879234 Community PR: https://github.com/odoo/odoo/pull/214962
Shopfloor cards now show which employees are assigned to each work order, making it easier to see which work is already taken and which remains available. Active work orders are more clearly highlighted, and the selected employee's assigned work orders are emphasized in the overview for faster access.
Original PR description
In shopfloor, to know which WOs are free to take, Assigned employees are now shown on the card (limited to 13 employees). With the recent shopfloor redesign, it became less easy to identify active WOs. Therefore, now any active WOs are highlighted for any user. **NEW:** In overview, for the employee currently selected, the WO quick access button is highlighted in WOs they're assigned to. Task: 4987845
VAT returns now separate the VAT total for the period from the balance shown on the closing entry, making amounts easier to understand. The update also improves return management with deadline filtering, archive controls, automatic paid status for zero or negative submitted balances, and more accurate payable amounts across periods.
Original PR description
* Show VAT Total for the period and show the vat balance on the closing entry if it is different from period vat total. * Add Deadline Filter on return search. * Allow Archive and Unarchive automatically generated returns. * Return is paid automatically if submitted and balance is negative or equal to zero. task-4981853
UAE payroll calculations now include days when an employee is outside their contract period. This helps payroll teams produce more accurate salary results by reflecting non-contract days in the relevant salary rules.
Original PR description
days to UAE payroll task-4700453 Forward-Port-Of: odoo/enterprise#92807 Forward-Port-Of: odoo/enterprise#84758
Marketing automation now keeps the exclusion list option hidden when it is already enabled, preventing users from turning it off by mistake. If the option was disabled through another method, it remains visible so teams can identify and restore the recommended setting.
Original PR description
We hide the field use_exclusion_list to prevent user to disable it (enabled by default). We still displays it if it has been disabled by another way (ex.: programmatically). Indeed, it doesn't make sense to disable it in a marketing context. Task-3575361