Daily updates from Odoo
Friday, August 29, 2025
19 changes · master
Enhancements to existing features
This update adds automated checks across barcode lookup features to confirm product data is fetched and applied correctly. It helps reduce the risk of issues when creating products through point of sale, inventory barcode scanning, and website flows.
Original PR description
*: pos_barcodelookup, stock_barcode_barcodelookup, website_product_barcodelookup In this commit: ------------------- - Added tests for barcodelookup to check whether the data fetched and set properly. - Added tests in respective modules to check the flow and creation of the products using barcodelookup. task - 3920661 Forward-Port-Of: odoo/enterprise#93175 Forward-Port-Of: odoo/enterprise#69120
Projects created from templates can now automatically plan task dates based on the timing used in the original template. This helps teams start new projects with realistic schedules while still allowing the system to adjust dates to avoid conflicts.
Original PR description
This PR allows planning dates when a project is created from a template. The dates of the created tasks are calculated based on the dates of the task in the template project. Tasks will be scheduled based on the elapsed time between the start of the project and the start of the task in the template. Tasks are scheduled using the smart scheduling algorithm, so the time ranges might not be exact to avoid conflicts, etc. If the template doesn't have planned dates, tasks will be simply scheduled from the start of the created project (or today) using the smart scheduling. Task-4700745
This update makes account return and audit screens clearer and more reliable for users. It fixes navigation and display issues, adds better completion notifications, uses more appropriate dates during setup, and helps prevent duplicate return creation.
VoIP call status messages are now more consistent between call records and the softphone history. This makes it easier for users to understand call outcomes across the VoIP interface without seeing mismatched wording.
Original PR description
Aim of this commit is to harmonize call status messages in voip.call and softphone history. Task-4915054
Warehouse operations can now place packages inside other packages, such as boxes on a pallet, and move the whole package structure together. This improves handling of common logistics workflows and keeps a clearer history of what was moved, even if package organization changes later.
Original PR description
Before this change, it wasn't possible to handle multiple levels of packages within Odoo. One simple example of this is having a few boxes put on top of a pallet, which is a *very* common occurence…
Before this change, it wasn't possible to handle multiple levels of packages within Odoo. One simple example of this is having a few boxes put on top of a pallet, which is a *very* common occurence in stock. Changes summary: - Packages inside other packages - Rework of the put in pack, can display a widget if enabled in Operation Type - You can move a package containing other packages, this will move all of them - The handling of a package is *always* done on the move lines directly - Packages now holds several more information regarding their current reservation - A new `stock.package.history` record is added to keep track of what was moved in previous transfers, as package hierarchy may be different between the past and now In other commits: - Rename `stock.quant.package` to `stock.package`, as they're not really related to `stock.quant`. - Remove `stock.package_level`, as we now handle everything on the package / move lines. See odoo/odoo#203987 See odoo/upgrade#7576 Task-4314600 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Users can now download TDS and TCS tax reports directly as Excel files instead of manually selecting export fields. The file includes the relevant return-filing information and is grouped by section to make review and filing easier.
Original PR description
Receives many feedback from the users that they currently exports report by manually selecting fields to file TDS & TCS return. The problem is many users are unaware of how to export it with existing fields. With this commit, users can now directly download the Excel file from the TDS/TCS Tax report, which includes all the relevant fields needed for filing TDS/TCS returns. Additionally, the XLSX file is grouped by section to make it easier to read. task-4945885 COM PR: https://github.com/odoo/odoo/pull/220707
VoIP call transcription now handles failed uploads more reliably, so users see the correct status instead of calls getting stuck as pending. Calls can also show a short transcript summary and clearer status banner, with demo examples and broader tests added to improve confidence.
Original PR description
Following up on the quick merge of the voip transcription aa5983efc390dc16cff3ee99a55a8878d6e06939 We are improving its state by modifying: **Controller**: doesn't raise errors anymore, returns http…
Following up on the quick merge of the voip transcription aa5983efc390dc16cff3ee99a55a8878d6e06939 We are improving its state by modifying: **Controller**: doesn't raise errors anymore, returns http err codes, keeping transcription_status persist errors (ref.1) **Tests**: added backend controller tests and cron tests covering happy paths and edge cases. (ref.2) **Summary**: added one_liner_summary filed on the voip call, which is generated after successful transcription; (if it fails we still have transcription) **Banner**: Previously we informed user about the transcription_status with a selection field in a view. Now it is replaced by a status banner at the top of the form view **Demo**: added some demo calls to showcase calls in all transcription_status. (ref.3) (ref.1) Without it: when we have an error in the request to transcribe it will rollback the transaction. Example: Controller is asked to transcribe, it can't because the file is too big, so it sets transcription_status=too_big_to_process **and raises**. This revers the transaction resulting in transcription_status set to pending. BAD (ref.2) To avoid gymnastic of creating second cursor for the sake of testing cron try to commit, we restrict committing so it doesn't happen in the test_mode. Subsystem testing covers those <img width="1139" height="408" alt="image" src="https://github.com/user-attachments/assets/90736892-58ce-4a15-b28d-bb8bf4369888" />
Payroll salary rules are now treated as updateable configuration, making it easier to keep standard payroll logic aligned during upgrades. Businesses that need custom payroll behavior should create or duplicate their own rules so those customizations remain protected during migrations.
Original PR description
Purpose ======= Rules that are supposed to be customized and kept over migrations should be created by hand, or duplicated from existing structures.
Employee records now show the official contract type separately from the payroll salary structure category. This helps HR teams keep legally or officially named contracts visible while still seeing the payroll classification needed for compensation processing.
Original PR description
This change ensures that official contract names remain visible while clearly distinguishing them from the salary structure category. task-5013761
Employee work schedule handling has been simplified by removing start and end date limits from resource attendance records. This reduces configuration complexity and supports cleaner payroll and scheduling processes, including Belgian payroll version handling.
Original PR description
Removed date_from and date_to fields for simplification Task: 4929940
Subscription products now prioritize the currently payable price in the cart, aligning their presentation with rental items. The order summary also shows the subscription period correctly, reducing confusion during checkout.
Original PR description
At the moment the subscription is displaying the price period under the price, which is not consistent with what we do for rental items. The emphasis should be on the current paid price not the subscription period. Additionnaly fixes the subscription period in the order summary. task-4512956
This update improves how decimal numbers are displayed and handled by ensuring float fields can keep a minimum number of digits. It helps maintain consistent precision in accounting, payroll, delivery, point of sale, quality, and electronic invoicing workflows, reducing formatting inconsistencies across documents and integrations.
Original PR description
task-4895014
Partner ledger and related customer follow-up reports now include reconciliation date information, giving finance teams clearer context on payments and outstanding balances. This helps users review customer accounts more accurately and align follow-up actions with the latest reconciliation status.
If website generation fails, the error is now sent back to the website support service. This makes it easier for support teams to see what went wrong and resolve issues faster.
Original PR description
When an error occurs during generation, send the error back through report_ko to be able to see the logs on the WSS. Forward-Port-Of: odoo/enterprise#93176
The partner ledger now supports an additional closing date filter, making it easier to view open items up to a specific date. This helps finance teams produce more precise partner balance and reconciliation reports.
The payroll setup screen for salary rule parameters has been simplified by removing less-used fields from the main form and placing the description where users see it sooner. This makes payroll configuration easier to read and navigate for HR teams.
Original PR description
-Removed value and valid since from form view -Move the description field below the code. -Remove description tab. task-5043887
Payroll configurations for Jordan and Saudi Arabia now include the missing account mappings for salary rules. This helps ensure payroll entries are posted to the correct accounting accounts, reducing manual corrections and improving reporting accuracy.
Original PR description
xx: jo, sa In this commit we add the maping for all the salary rules accounts Taks: 4882398
Spreadsheet list headers are now kept consistent across user languages, so pivots based on lists continue to work when a spreadsheet is opened by colleagues using a different language. Several spreadsheet dashboard files were also reformatted to make future updates cleaner without changing their business content.
Internal VoIP calls made using extension numbers are now matched to the corresponding Odoo user. This helps employees recognize who is calling instead of seeing only an extension number.
Original PR description
**Purpose:** Improve the user experience by identifying internal calls made using extension numbers (voip usernames) by displaying the corresponding user's name. **Specification:** Enhance the get_contact_info method in the voip.call model to resolve internal extensions by matching the call's phone_number with the voip_username field on res.users. **Task**-4997542