Daily updates from Odoo
Friday, April 18, 2025
30 changes · master
New functionality added to Odoo
Adds Austrian point-of-sale localization to help businesses comply with RKSV cash register requirements. The update supports tamper-proof transaction signing, compliant receipts with QR codes, and audit-ready transaction records using Fiskaly.
Original PR description
The Cash Register Security Ordinance (RKSV) has been in effect in Austria, aimed at making transactions tamper-proof and thus increasing transparency and security in business payments. RKSV (Registrierkassensicherheitsverordnung), ensures tax compliance and prevents fraud by regulating cash register systems.. - Mandatory Cash Register: Required if annual turnover > €15,000 and cash > €7,500. - Tamper-Proof Data: All transactions must be digitally signed to preventmanipulation. - Signature Creation Unit (SCU): Cryptographic device generates digital signatures. - Receipt Obligation: Receipts must include key details and a QR code with a digital signature. - Data Collection Protocol (DEP): Secure log of all transactions for audits (DEP7). These key aspects of the RKSV have been implemented in our system using Fiskaly. Task: 4013917
Enhancements to existing features
A manufacturing work order test was updated to use the current batch size field after an older field was removed. This helps keep automated checks aligned with the product and reduces the risk of future manufacturing changes being blocked by outdated tests.
Original PR description
In this commit: ================= - changed the field in a test case from counter to maximum_batch_size as it removed from the model. task- 4274773
This update makes it possible to use additional PDF generation engines, including Paper-muncher, for business reports. It also adds a related action in accounting reports, giving teams more flexibility in how they produce and handle PDF documents.
Customers can now change the invoicing address for their subscriptions directly from the portal. This reduces manual requests handled by sales, support, or finance teams while keeping shipping address changes out of scope for now to avoid billing or tax risks.
Original PR description
## Purpose Currently, a customer can not change the invoicing and the delivery address of a subscription from the portal it leads to additional work for sales, support or financial team due to customer requests. task id: 4655497
Administrators can now better control how access groups are displayed across many Odoo apps. This improves the setup experience for user permissions by making group organization clearer and more configurable.
Original PR description
task: 4341594
UPS shipping settings now let users require a recipient signature for deliveries, helping protect high-value shipments. The UPS configuration screen was also reorganized so related delivery payment and signature options are easier to find and read.
Original PR description
- Enabled the option to require a signature for UPS shipments, allowing users to choose this for high-value packages upon delivery. - Improved the UPS configuration form by grouping the "Duties Paid By" and "Require Signature" fields into separate columns for better usability and readability. task-4504624
The restaurant preparation display setup now stays aligned with the main restaurant point-of-sale setup process. This helps avoid setup issues when loading demo data and keeps the feature compatible with the broader system.
Original PR description
This commit updates the `_load_restaurant_demo_data` method to accept a required parameter, ensuring compatibility with its parent method. Task: 4572251 Related: odoo/odoo#197861
The signing process now has a clearer and more helpful refusal flow, including an improved dialog and better email messaging. This makes it easier for users to decline documents confidently and understand what happens next.
Original PR description
This update makes it easier for users to refuse documents by improving the following: - The dialog interface. - The email title and description. - Overall user interface (UI). task-4210639
Maintenance screens now include clearer URL paths for the main actions, making pages easier to identify, bookmark, and share. This improves navigation consistency for users working with maintenance requests and worksheets without changing core workflows.
Original PR description
Added path in URL for the main actions of Maintenance.
WhatsApp live chat now aligns with new call tracking information added in the related core update. This keeps automated security checks compatible with the new call statistics data so live chat call reporting can work reliably.
Original PR description
The community coutnerpart of this PR adds call statistics to live chat. A new field was added to keep track of calls so tests that assets bus notifications have to be adapted. task-4614125 community: https://github.com/odoo/odoo/pull/203684
Restaurants and shops can now track how long each POS order takes to prepare and serve, with clearer timing information shown on preparation displays. Completed orders can also be automatically cleared, helping teams keep displays focused and review performance through new reporting.
Original PR description
- Added `auto_clear` and `clear_time_interval` fields to auto-remove completed orders (from "Order status screen"). - Introduced `completion_time` field to track total order preparation & service duration. - Updated POS order views to display `preparation_time` and `service_time`. - Improved frontend logic for order status updates and clearing outdated orders. - Added new `preparation_time_report` model & SQL view for preparation time analysis. task-id: 4623457
The Helpdesk onboarding tour text was updated to better explain the internal note step. This avoids suggesting that selecting a channel notifies people in that channel, reducing confusion for new users.
Original PR description
This commit adapts a step asking to click on `log note` button to send an internal note. We no longer mention the user can select a channel because that feature does not ping the users inside the channel selected, it is just to have a button to redirect the user to that channel. task-4662201
Production quantities are no longer filled in automatically when a work order starts. Users must now register production deliberately through the wizard or quick registration, helping prevent premature or unintended production records.
Original PR description
- Updated the logic for the "Register Production" cross-out line, ensuring production registration can only be done manually—either through the wizard or quick registration. - Replaced the old flow, where quantities were auto-set on starting a work order, with manual registration, updating all relevant flows accordingly. - This change ensures production registrations are intentional and accurate, preventing unintended or premature entries. Task-id: 4387836
Manufacturing work order users now receive immediate confirmation after completing Scrap, Quality Alert, and Move to Work Center actions. This helps reduce uncertainty on the shop floor and supports a smoother, more confident workflow.
Original PR description
Added feedback notifications for Scrap, Quality Alert, and Move to Work Center actions. Users now receive immediate confirmation upon completing these actions, ensuring clear feedback and a smoother workflow. task-4403621
The contact form has been refreshed to make key partner information easier to review. Users can now see relevant partner statistics at a glance, with details adapting based on installed apps such as accounting, helpdesk, payroll, and WhatsApp.
Original PR description
This PR focuses on enhancing the UI of the contacts views and some part of CRM views. Improve partner view. Introduce statistics field on partner, allowing to see various statistics at a glance, based on installed applications. Enterprise PR: odoo/enterprise#75958 Task [link](https://www.odoo.com/odoo/project/967/tasks/4377720) task-4377720
Shopfloor users can now keep work order steps expanded after completing actions instead of having them automatically collapse. This gives operators better control over their view and helps maintain a smoother workflow during manufacturing tasks.
Original PR description
In This Commit: ------------------------ - Prevent steps from folding back automatically after any action, allowing users to keep steps unfolded as needed. - This improvement ensures a smoother workflow and providing users with better control over their view. task-4387836
Internal users with edit permissions can now unlock documents when appropriate, while users without access will not see the unlock option. Locked documents also better restrict actions like renaming, moving, deleting, version management, duplication, PDF splitting or merging, and detail editing, helping preserve document control.
Original PR description
- This PR enables internal users to unlock documents when the user_permission is set to `edit`. - We also removed the is_locked because the document is locked for all the users - Unlock button will not be there if the user lacks the unlock access. - One should not be able to see the following actions `rename`, `move or delete`, `manage version`, `duplicate`, `merge or split pdf` when the document is locked. - One should not able to edit details of the documents when the document is locked. Task-4273020
Demo records for rental and subscription products now use clearer, more polished images. This makes sample databases look more realistic and helps sales teams better understand how these apps can be presented to customers.
Original PR description
task-4717155 part-of-task-4252024 community: - https://github.com/odoo/odoo/pull/206246
Resolved issues and error corrections
This change fixes an automated test related to disallowed fleet expenses after a Runbot failure. It helps keep the accounting and fleet expense checks reliable without changing day-to-day user functionality.
Original PR description
Runbot error build 163135
Date fields in Sign documents now show a placeholder that follows the company's configured language and regional date format. This prevents confusion for users preparing signature requests across different locations.
Original PR description
Before this commit, When adding a date sign item, the date format in the placeholder might mismatch the company's location date format since it is a static value. After this commit, the placeholder value is dynamic, it is computed initially from the company lang date_format. task-id: 4607440
A small naming issue was fixed in the Indian GST reporting workflow so the system can correctly recognize the field update behavior for tax units. This improves reliability and maintainability without changing the user-facing reporting process.
Original PR description
This **PR** rectifies the incorrect name on onchange method of tax_unit_id. This will help to improve the visibility of this method.
Code cleanup and technical improvements
The preparation display used by Point of Sale has been moved into the enterprise POS module and its internal orderline status tracking has been redesigned. This keeps the feature aligned with enterprise POS installations, simplifies unused components, and should make preparation display behavior easier to maintain going forward.
Original PR description
- The pos_preparation_display has been moved to pos_enterprise since it is installed if point_of_sale is installed in an enterprise environement. - The preparation order_stage model is rename in pos_prep_state and is now specific to an preparation orderline and not order anymore. The done field is now infer by checking if the state is in the last stage and todo false. The todo field has been moved to the state model since it is different per orderline per preparation display. - Related models is now introduced in the preparation display. - The logic in the preparation display front end is mainly done using the states of the preparation orderlines. - pos_hr_preparation_display has been removed since it's not used anymore. Related: odoo/odoo#201170
Miscellaneous changes
`_test_send_invoice_and_credit_note` and `_test_send_invoiced_stock_moves` try to create sale orders, but don't check that the group is set on the user. https://runbot.odoo.com/odoo/error/163637 Forward-Port-Of: odoo/enterprise#83691
Original PR description
`_test_send_invoice_and_credit_note` and `_test_send_invoiced_stock_moves` try to create sale orders, but don't check that the group is set on the user. https://runbot.odoo.com/odoo/error/163637 Forward-Port-Of: odoo/enterprise#83691
Followup to #83427 as I missed a second issue in the test: `action_validate` can only be performed by a time off officer. So set that on the current user. Also `self.Requests.env.user` is the same as `self.env.user` so don't bother with the unnecessary indirection. https://runbot.odoo.com/odoo/error/164047 Forward-Port-Of: odoo/enterprise#83579
Original PR description
Followup to #83427 as I missed a second issue in the test: `action_validate` can only be performed by a time off officer. So set that on the current user. Also `self.Requests.env.user` is the same as `self.env.user` so don't bother with the unnecessary indirection. https://runbot.odoo.com/odoo/error/164047 Forward-Port-Of: odoo/enterprise#83579
These tests create sale orders, but `self.env.user` does not necessarily have the right to create one by default. https://runbot.odoo.com/odoo/error/163635 Forward-Port-Of: odoo/enterprise#83672
Original PR description
These tests create sale orders, but `self.env.user` does not necessarily have the right to create one by default. https://runbot.odoo.com/odoo/error/163635 Forward-Port-Of: odoo/enterprise#83672
`TestPayslipValidation.setUpClass` tries to create an `hr.leave.type` but that requires hr admin access. So add that. Issue likely became visible from the removal of demo data, though it only popped up on April 1st instead of March 27th or whenever the demo data change was merged. https://runbot.odoo.com/odoo/error/162257 Forward-Port-Of: odoo/enterprise#83665
Original PR description
`TestPayslipValidation.setUpClass` tries to create an `hr.leave.type` but that requires hr admin access. So add that. Issue likely became visible from the removal of demo data, though it only popped up on April 1st instead of March 27th or whenever the demo data change was merged. https://runbot.odoo.com/odoo/error/162257 Forward-Port-Of: odoo/enterprise#83665
to reproduce: ============= - with employee having attendace houre based contract - set in attendace settigns that overtime should be approved by manager - create attendace for this employee with overtime pending for approval - create payslip for this employee -> the overtime is included in the payslip even if it is not approved Problem: ======== unapproved overtimes are not filtred while computing payslip lines Solution: ========= - add a filter to exclude unapproved overtimes
Original PR description
to reproduce: ============= - with employee having attendace houre based contract - set in attendace settigns that overtime should be approved by manager - create attendace for this employee with overtime pending for approval - create payslip for this employee -> the overtime is included in the payslip even if it is not approved Problem: ======== unapproved overtimes are not filtred while computing payslip lines Solution: ========= - add a filter to exclude unapproved overtimes in payslip line computation opw-4610454 Forward-Port-Of: odoo/enterprise#83449
The percentage sign is missing on the tax line in the invoice report opw-4661577 Forward-Port-Of: odoo/enterprise#83596 Forward-Port-Of: odoo/enterprise#83497
Original PR description
The percentage sign is missing on the tax line in the invoice report opw-4661577 Forward-Port-Of: odoo/enterprise#83596 Forward-Port-Of: odoo/enterprise#83497
In [1] we added a compute on wa_account_id in stead of a default to allow for a smarter default. We forgot to mark the field readonly in the process. This prevents the import of existing templates, or of templates from different accounts. task-4734669 Correction for: task-4369979 [1]: 7a593a4aa5040998dc12468dec12dca62f573030 Forward-Port-Of: odoo/enterprise#83562
Original PR description
In [1] we added a compute on wa_account_id in stead of a default to allow for a smarter default. We forgot to mark the field readonly in the process. This prevents the import of existing templates, or of templates from different accounts. task-4734669 Correction for: task-4369979 [1]: 7a593a4aa5040998dc12468dec12dca62f573030 Forward-Port-Of: odoo/enterprise#83562
Revert odoo/enterprise#81587 because errors are triggered on dry-run. Also see discussion here: ref: https://github.com/odoo/enterprise/pull/82900#issuecomment-2800848343 Forward-Port-Of: odoo/enterprise#83422 Forward-Port-Of: odoo/enterprise#83391
Original PR description
Revert odoo/enterprise#81587 because errors are triggered on dry-run. Also see discussion here: ref: https://github.com/odoo/enterprise/pull/82900#issuecomment-2800848343 Forward-Port-Of: odoo/enterprise#83422 Forward-Port-Of: odoo/enterprise#83391