Daily updates from Odoo
Saturday, October 18, 2025
20 changes
2 changes
Resolved issues and error corrections
Users dragging a non-PDF file into an empty Sign view will now see only one warning message instead of duplicate pop-ups. This removes a confusing extra alert while keeping the existing drag-and-drop upload behavior unchanged.
Original PR description
Issue: - When no documents exist and a user drags/drops a non-PDF file, the warning pop-up appears twice instead of once. - This happened when there were no documents in the view (when actionhelper is visible). Root Cause: - The `useSignViewButtons` hook was used in both the main view (List/Kanban) and the SignActionHelper component. - When a file was dropped, both components received the bus event and attempted to upload the file independently. - This caused duplicate processing and duplicate warning popups. Solution: - Added condition on bus call to distinguish between components. - Modified the bus event handler to skip processing in SignActionHelper components. - This ensures only the main view component handles file uploads from drag-and-drop. Impact: - Users now see the warning pop-up only once when uploading invalid files - Maintains all existing functionality while fixing the duplicate behavior task-5103284 Forward-Port-Of: odoo/enterprise#95512
The Documents dashboard now counts Inbox items based on the actual internal Inbox folder rather than an inbox label. This makes the KPI more reliable and avoids test issues caused by deleting shared demo documents.
Original PR description
After a discussion about what should be considered the inbox folder on earlier versions, it appears that the `kpi.provider:get_kpi_summary` method should return the count of documents in the folder having the external identifier `documents.documents_internal_folder`, instead of selecting the documents with the inbox tag. As some documents might be referenced by foreign keys in demo data, we also avoid to unlink the documents in the tests to avoid potential errors in the test suites. Runbot-build-error-id: [231787](https://runbot.odoo.com/odoo/runbot.build.error/231787) Task-id: [5062431](https://www.odoo.com/odoo/project.task/5062431) Forward-Port-Of: odoo/enterprise#97416 Forward-Port-Of: odoo/enterprise#95699
3 changes
Resolved issues and error corrections
Users dragging a non-PDF file into an empty Sign document view now see only one warning message instead of duplicate pop-ups. This removes a confusing experience while keeping the existing upload behavior unchanged.
Original PR description
Issue: - When no documents exist and a user drags/drops a non-PDF file, the warning pop-up appears twice instead of once. - This happened when there were no documents in the view (when actionhelper is visible). Root Cause: - The `useSignViewButtons` hook was used in both the main view (List/Kanban) and the SignActionHelper component. - When a file was dropped, both components received the bus event and attempted to upload the file independently. - This caused duplicate processing and duplicate warning popups. Solution: - Added condition on bus call to distinguish between components. - Modified the bus event handler to skip processing in SignActionHelper components. - This ensures only the main view component handles file uploads from drag-and-drop. Impact: - Users now see the warning pop-up only once when uploading invalid files - Maintains all existing functionality while fixing the duplicate behavior task-5103284 Forward-Port-Of: odoo/enterprise#95512
Manual tax amounts entered in a foreign currency are now converted correctly when company-currency amounts are not provided. This prevents incorrect tax totals in accounting and point of sale flows, improving accuracy for multi-currency transactions.
Original PR description
The 'manual_tax_amounts' were not well managed in the aggregators when the amount expressed in foreign currency was specified but not the amounts expressed in company currency. In that case, we were taking the raw amount instead of the rate applied on the manual amount in foreign currency. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#232100
The Documents dashboard KPI now counts items in the actual internal inbox folder instead of relying on an inbox tag. This makes the displayed inbox count more accurate and avoids test issues caused by deleting demo documents that may still be referenced elsewhere.
Original PR description
After a discussion about what should be considered the inbox folder on earlier versions, it appears that the `kpi.provider:get_kpi_summary` method should return the count of documents in the folder having the external identifier `documents.documents_internal_folder`, instead of selecting the documents with the inbox tag. As some documents might be referenced by foreign keys in demo data, we also avoid to unlink the documents in the tests to avoid potential errors in the test suites. Runbot-build-error-id: [231787](https://runbot.odoo.com/odoo/runbot.build.error/231787) Task-id: [5062431](https://www.odoo.com/odoo/project.task/5062431) Forward-Port-Of: odoo/enterprise#97416 Forward-Port-Of: odoo/enterprise#95699
3 changes
Resolved issues and error corrections
Fixed an issue in Odoo Sign where dragging a non-PDF file into an empty document view could show the same warning twice. Users now receive one clear warning, reducing confusion while keeping the upload behavior unchanged.
Original PR description
Issue: - When no documents exist and a user drags/drops a non-PDF file, the warning pop-up appears twice instead of once. - This happened when there were no documents in the view (when actionhelper is visible). Root Cause: - The `useSignViewButtons` hook was used in both the main view (List/Kanban) and the SignActionHelper component. - When a file was dropped, both components received the bus event and attempted to upload the file independently. - This caused duplicate processing and duplicate warning popups. Solution: - Added condition on bus call to distinguish between components. - Modified the bus event handler to skip processing in SignActionHelper components. - This ensures only the main view component handles file uploads from drag-and-drop. Impact: - Users now see the warning pop-up only once when uploading invalid files - Maintains all existing functionality while fixing the duplicate behavior task-5103284 Forward-Port-Of: odoo/enterprise#95512
The Documents dashboard now counts items in the official Inbox folder rather than relying on an Inbox tag. This keeps the KPI consistent with how the Inbox is defined and avoids test issues caused by demo records linked elsewhere.
Original PR description
After a discussion about what should be considered the inbox folder on earlier versions, it appears that the `kpi.provider:get_kpi_summary` method should return the count of documents in the folder having the external identifier `documents.documents_internal_folder`, instead of selecting the documents with the inbox tag. As some documents might be referenced by foreign keys in demo data, we also avoid to unlink the documents in the tests to avoid potential errors in the test suites. Runbot-build-error-id: [231787](https://runbot.odoo.com/odoo/runbot.build.error/231787) Task-id: [5062431](https://www.odoo.com/odoo/project.task/5062431) Forward-Port-Of: odoo/enterprise#97416 Forward-Port-Of: odoo/enterprise#95699
This fix keeps distributed rounding amounts aligned with their original invoice factors in Mexican electronic invoicing. It helps prevent incorrect rounding adjustments when generating compliant CFDI documents.
Original PR description
Before this commit, the factors were sorted and the amounts_to_distribute were build according this order. However, almost all calls to this method is zipping target_factors with amounts_to_distribute and both are no longer in the same order. Forward-Port-Of: odoo/enterprise#97399
6 changes
Resolved issues and error corrections
Project calendar views now apply the right filtering when finding tasks that can be planned. This helps ensure users see the appropriate tasks in scheduling workflows and avoids confusion from irrelevant task results.
Original PR description
This commit overrides a hook created in related Community PR to add a condition in the domain to fetch tasks to plan inside for task calendar views. Forward-Port-Of: odoo/enterprise#97343
This fix ensures customers and staff see the correct overweight package message when no Sendcloud shipping method can handle a package. It prevents a system error from appearing and helps users understand that the package weight is the issue.
Original PR description
When a package exceeds the maximum weight supported by all shipping methods, the system raised an error (`KeyError: 'name'`) because the `stock.move` field was removed in commit #211488. This fix replaces the deprecated `stock.move.name` reference with the product name to correctly display the overweight message. opw-5137167 Forward-Port-Of: odoo/enterprise#96744
The automated payroll test for Belgian employee job changes has been updated to follow the current offer process. This keeps the test aligned with the user interface, including contract template selection and internet subscription setup, reducing false test failures.
Original PR description
- changed the step of generate offer to work with the offers smart button instead of old Generate offer button and added `autoExpandMoreButtons` to handle if it's in the popover - added a step to choose contract template to make the values of the offer auto fill from it - added a step to set internet subscription to show the internet invoice upload button afterwards (the upload is hidden if the value is not set) task-id: 5155927 Forward-Port-Of: odoo/enterprise#96730
Fixed an issue in Odoo Sign where dragging a non-PDF file into an empty document view could show the same warning twice. Users now receive one clear warning, reducing confusion while preserving the existing upload behavior.
Original PR description
Issue: - When no documents exist and a user drags/drops a non-PDF file, the warning pop-up appears twice instead of once. - This happened when there were no documents in the view (when actionhelper is visible). Root Cause: - The `useSignViewButtons` hook was used in both the main view (List/Kanban) and the SignActionHelper component. - When a file was dropped, both components received the bus event and attempted to upload the file independently. - This caused duplicate processing and duplicate warning popups. Solution: - Added condition on bus call to distinguish between components. - Modified the bus event handler to skip processing in SignActionHelper components. - This ensures only the main view component handles file uploads from drag-and-drop. Impact: - Users now see the warning pop-up only once when uploading invalid files - Maintains all existing functionality while fixing the duplicate behavior task-5103284 Forward-Port-Of: odoo/enterprise#95512
Users viewing a fully signed document in the portal will no longer see the Thank You dialog every time. This keeps the portal viewing experience cleaner after signing is complete.
Original PR description
Version: - 19.0 Steps for reproduce: - Install the Sign module - Upload a PDF and sign it - Open the fully signed document in the portal view - The Thank You dialog always appears Issue: - The Thank You dialog shows every time in the portal view. Solution: - Hide the dialog in the portal view when document is fully signed. impact: - Users can view signed documents in the portal without the Thank You dialog showing. task-5088937 Forward-Port-Of: odoo/enterprise#94726
This fix prevents failed Chilean electronic invoice attachments from leaving the automated email import process in a broken database state. It helps the scheduled fetch continue handling recoverable import issues more reliably, reducing interruptions for invoice processing.
Original PR description
During l10n_cl_edi's fetchmail cron, if the decoding of a DTE attachment fails, `_create_records_from_attachments` rolls back the transaction, which prevents the savepoint in `_fetch_mail` from being…
During l10n_cl_edi's fetchmail cron, if the decoding of a DTE attachment fails, `_create_records_from_attachments` rolls back the transaction, which prevents the savepoint in `_fetch_mail` from being restored. Doing a commit/rollback within a `cr.savepoint()` is not correct. Since a new transaction is started, the savepoint no longer exists. Failing to restore the savepoint leaves the transaction in a broken state. Thus, we need to remove either the savepoint or the commit + rollback performed by `_create_records_from_attachments`. See https://github.com/odoo/odoo/issues/230014 We can remove the savepoint because `_extend_by_attachments` already catches exceptions which typically represent decoding errors (such as ValidationError, UserError, ValueError, psycopg2.errors.IntegrityError). These errors are recoverable from a transaction point of view; the import fraw recover from them by leaving an empty invoice with the attachment. Other errors are typically not recoverable and it does not makes sense to attempt to recover from them using a `cr.savepoint()`. opw-5147385 Forward-Port-Of: odoo/enterprise#97158
5 changes
Resolved issues and error corrections
This fixes a failure scenario in the Chilean electronic invoicing email import process. If an attached tax document cannot be decoded, the system now avoids leaving the import job in a broken database state, helping scheduled email processing continue more reliably.
Original PR description
During l10n_cl_edi's fetchmail cron, if the decoding of a DTE attachment fails, `_create_records_from_attachments` rolls back the transaction, which prevents the savepoint in `_fetch_mail` from being…
During l10n_cl_edi's fetchmail cron, if the decoding of a DTE attachment fails, `_create_records_from_attachments` rolls back the transaction, which prevents the savepoint in `_fetch_mail` from being restored. Doing a commit/rollback within a `cr.savepoint()` is not correct. Since a new transaction is started, the savepoint no longer exists. Failing to restore the savepoint leaves the transaction in a broken state. Thus, we need to remove either the savepoint or the commit + rollback performed by `_create_records_from_attachments`. See https://github.com/odoo/odoo/issues/230014 We can remove the savepoint because `_extend_by_attachments` already catches exceptions which typically represent decoding errors (such as ValidationError, UserError, ValueError, psycopg2.errors.IntegrityError). These errors are recoverable from a transaction point of view; the import fraw recover from them by leaving an empty invoice with the attachment. Other errors are typically not recoverable and it does not makes sense to attempt to recover from them using a `cr.savepoint()`. opw-5147385 Forward-Port-Of: odoo/enterprise#97158
Companies based outside the EU can now save valid European VAT numbers without being blocked by validation rules for their own country. This prevents unnecessary errors for international businesses that legitimately hold EU VAT numbers.
Original PR description
****Behavior:**** **Current:** When a company is assigned a VAT number, the integrity of the VAT is checked according to the rules of the company's country except when a EU country is assigned an other EU country's VAT, then the integrity of the VAT is checked according to the other EU country's rules. **Expected:** We want to allow Foreign companies to have valid European VAT numbers. **Steps to reproduce:** - Create a new contact, select company and add any name - Select a country that is not in the EU and has implemented the VAT system (Ex: China, Australia | Some countries, like the US or some smaller countries, don't have an implementation in Odoo, or just dont use VATs, in that case they are allowed to put whatever in the VAT field) - Input a valid EU VAT number in the Tax ID field (ex: FR17698800935) - when saving, the system should raise a Validation Error. opw-5080231 Forward-Port-Of: odoo/odoo#231999 Forward-Port-Of: odoo/odoo#231177
This fixes rounding errors when taxes are included in item prices, preventing small mismatches between line totals and their tax breakdowns. It also simplifies the tax calculation logic so country-specific accounting rules, such as Portugal and Mexico localizations, are easier to maintain.
Original PR description
== Fix bug price-included == Suppose a line of 24.99 with a 20% tax price-included. base: 24.99 / 1.2 = 20.825 tax: 20.825 * 0.2 = 4.165 If we round both, we get 20.83 + 4.17 = 25.0 != 24.99 == Split and simplify round_base_line_tax_details == Easier implementation of this method to be easier to understand and easier to be customized (see PT override). Also, we now use the aggregate methods to aggregate the amounts instead of doing that by hand. opw-4505888 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#232025 Forward-Port-Of: odoo/odoo#228437
Fixed an issue in Odoo Sign where dragging a non-PDF file into an empty document view could show the same warning twice. Users now receive one clear warning while existing drag-and-drop upload behavior remains unchanged.
Original PR description
Issue: - When no documents exist and a user drags/drops a non-PDF file, the warning pop-up appears twice instead of once. - This happened when there were no documents in the view (when actionhelper is visible). Root Cause: - The `useSignViewButtons` hook was used in both the main view (List/Kanban) and the SignActionHelper component. - When a file was dropped, both components received the bus event and attempted to upload the file independently. - This caused duplicate processing and duplicate warning popups. Solution: - Added condition on bus call to distinguish between components. - Modified the bus event handler to skip processing in SignActionHelper components. - This ensures only the main view component handles file uploads from drag-and-drop. Impact: - Users now see the warning pop-up only once when uploading invalid files - Maintains all existing functionality while fixing the duplicate behavior task-5103284 Forward-Port-Of: odoo/enterprise#95512
This fixes an email connection issue affecting Chilean electronic invoicing. It updates the connection naming so incoming mail processing can work correctly with the current system behavior.
Original PR description
Fetchmail for `l10n_cl_edi` is non-working due to a missing name align for IMAP connections. Name is now `_connect__` instead of `connect`. This is also required for https://github.com/odoo/enterprise/pull/97158 to work whenever is forwarded to 19.0.
1 change
Resolved issues and error corrections
This fixes an issue where names containing non-breaking spaces could cause generated signature files to fail. Signature creation, including initials-based signatures, now works correctly for affected names.
Original PR description
Before this commit: Names containing a non-breaking space would break the generated svg file. This is because the inserted ' ' is not valid XML. This also broke the initials signature generation. After this commit: The getCleanedName method actually returns the cleaned name and the signature svg files is correct. Related ticket: opw-4927425