Daily updates from Odoo
Thursday, September 18, 2025
7 changes · master
Resolved issues and error corrections
This update fixes an issue in Odoo Sign where users could not drag fields after uploading multiple documents. Teams can now prepare signing packets with several documents more smoothly, without field placement getting blocked.
Original PR description
Version: - saas-18.3 Steps to reproduce: - install sign - upload multiple documents - try to drag the field Issue: - Fields cannot be dragged when multiple documents are uploaded. Solution: - update the condition to check if !acive then return no need to preventdefault. Impact: - Users can now upload multiple documents and drag/drop fields without issues. Forward-Port-Of: odoo/enterprise#94959 Forward-Port-Of: odoo/enterprise#94882
Uploading documents to the Sign app now uses a PDF form-reading method compatible with newer PDF software. This prevents crashes during sign template creation and helps users continue preparing documents reliably.
Original PR description
### Issue: - The `getFields` method is not supported in the PyPDF version 3.x. - This caused an `AttributeError` when uploading a document for sign. ### Fix: - Replaced `getFields` method with `getFormTextFields`. This is more compatible than the earlier one ### Impact: - Prevents template creation crashes Forward-Port-Of: odoo/enterprise#95005
Fixed project template conversion so tasks correctly keep their template status. This prevents template tasks from being treated like regular field service work, ensuring project roles are only configured on normal tasks.
Original PR description
This feature was supposed to be introduced in 19 but got lost with the reversal of the templates refactor. When converting a project to a template, the tasks should retain their template status. Task templates in project templates are treated the same as task templates in normal projects. Project roles should be configured only on normal tasks and not on task templates. Task-5087632 Forward-Port-Of: odoo/enterprise#94849
This fixes an issue where settling a point-of-sale order for rental services could incorrectly reset delivered quantities and block valid returns. Rental service delivery quantities are now left for sales staff to manage manually, reducing errors during POS checkout and rental returns.
Original PR description
With [^1], a new constraint was introduced on sale order lines in rental to ensure the returned quantity does not exceed the delivered quantity. While this constraint is logical, it uncovered a bug…
With [^1], a new constraint was introduced on sale order lines in rental
to ensure the returned quantity does not exceed the delivered quantity.
While this constraint is logical, it uncovered a bug in the integration
between rental, POS, and stock. Specifically, when a POS order is
settled, the `pos.order.sync_from_ui` method reconciles the models.
If the rented product is a service, no picking is created, which means
no stock move, resetting the delivered quantity to zero. This triggers a
constraint violation if a returned quantity already exists (e.g., 0 >=
positive).
This commit applies the following fixes:
- If the SOL product is a service, we do not update its delivered
quantity as it is managed manually by the salesperson on the SOL
directly.
- Additionally, we remove the constraint to allow more flexibility.
opw-5076638
[^1]: https://github.com/odoo/enterprise/pull/88689
[^2]: https://github.com/odoo/enterprise/pull/90510
Forward-Port-Of: odoo/enterprise#94357This update fixes several small issues in accounting audits and reports, including opening aged receivable checks correctly, keeping audit scroll position, and using the right reporting period. It also improves audit usability by allowing audit names to be edited, showing the last message in balance views, and making duplicated labels more consistent.
Original PR description
- Removed " from the description of the age receivable followup check template - Age receivable checks can now be openned (before it said Invalid code) - Fix Account Status Badge colors not present on reports - Keep the scroll position on audit checks (Cycle) - Remove dead code _get_state_field in l10n_in_reports - Use the right period when opening a report from a check in an audit - Adding (copy) when duplicating a return type - Add the possibility to edit the name of the Audits - Add the last message column in the balance list view of the audit - Allow only the audit and use the right view when opening the returns from the accounting dashboard - Using copy instead of Copy when duplicating taxes Forward-Port-Of: odoo/enterprise#94806
Bank reconciliation can now match payments using shorter sales order references such as SO0001. This helps businesses reconcile bank transactions more reliably without waiting for longer reference numbers.
Original PR description
Matching on references was limited to matching words > 8, to increase reliability, but the default sequence for sale orders is 6 characters (SO0001), so they would never be found unless we reach SO1000000 -_- Forward-Port-Of: odoo/enterprise#94821 Forward-Port-Of: odoo/enterprise#93640
Canadian CPA005 payment files now use the batch payment name as the originator cross-reference, helping ensure each payment in a batch has a unique identifier. This prevents files from being rejected by banks such as CIBC and RBC when references are blank or duplicated.
Original PR description
… Reference No is blank on non-unique CPA0005 Alphanumeric Originator's Cross Reference No is blank on non-unique Impacted versions: 17.2 17.3 17.4 18.0 18.1 18.2 18.3 18.4 master Steps to reproduce: create a new batch payment create cpa005 payment file rejected by CIBC and RBC Current behavior: Uses payment_reference which is blank or non-unique Causes bank to reject on non-unique status Expected behavior: To have every batch payment reference (name of payment) be unique through the batch