Daily updates from Odoo
Navigate
Branch
Friday, May 1, 2026
71 changes
16 changes
Enhancements to existing features
This update enhances the Point of Sale (PoS) and Human Resources (HR) modules by allowing PoS users to directly access sessions from the menu and restricting sensitive product financial information for users with limited access. This improves user experience and strengthens data security.
Original PR description
- Allow PoS users to access sessions directly from the menu. - Restrict visibility of product financial information for users with minimal access rights. Task-[5980289](https://www.odoo.com/odoo/project/1737/tasks/5980289) Related PRs: - https://github.com/odoo/enterprise/pull/109173 Forward-Port-Of: odoo/odoo#262289 Forward-Port-Of: odoo/odoo#251391
This update makes the Preparation Display app available directly on the Odoo dashboard for Point of Sale (PoS) users. Previously, this helpful tool was hidden. This change improves the user experience and allows PoS staff to quickly access key preparation information.
Original PR description
This commit makes the Preparation Display app accessible from the Odoo dashboard for PoS users. Task-[5980289](https://www.odoo.com/odoo/project/1737/tasks/5980289) Related PRs: - https://github.com/odoo/odoo/pull/251391 Forward-Port-Of: odoo/enterprise#115844 Forward-Port-Of: odoo/enterprise#109173
Before this PR: - When a user enters a full VAT number with the 'DK' prefix in the company registry, the Nemhandel identifier becomes incorrect and results in a cryptic error being returned to the client. After this PR: - The prefix is removed if the CVR contains the 'DK' country code, to ensure the correctness of the Nemhandel identifier. task-5449059 Forward-Port-Of: odoo/odoo#262088 Forward-Port-Of: odoo/odoo#261719
Original PR description
Before this PR: - When a user enters a full VAT number with the 'DK' prefix in the company registry, the Nemhandel identifier becomes incorrect and results in a cryptic error being returned to the client. After this PR: - The prefix is removed if the CVR contains the 'DK' country code, to ensure the correctness of the Nemhandel identifier. task-5449059 Forward-Port-Of: odoo/odoo#262088 Forward-Port-Of: odoo/odoo#261719
The standard mail composer (e.g., used in Quotations) allows users to add files or paste links directly from the Documents app. However, this functionality was missing in the custom `account.move.send` wizard used for Invoicing and Accounting. This commit introduces the 'Add from Documents' feature to the Accounting Send & Print wizard. task- 5905930 Forward-Port-Of: odoo/enterprise#111422
Original PR description
The standard mail composer (e.g., used in Quotations) allows users to add files or paste links directly from the Documents app. However, this functionality was missing in the custom `account.move.send` wizard used for Invoicing and Accounting. This commit introduces the 'Add from Documents' feature to the Accounting Send & Print wizard. task- 5905930 Forward-Port-Of: odoo/enterprise#111422
Resolved issues and error corrections
This update fixes a potential performance issue that could have slowed down new user sign-ups. By streamlining how stores are created, the system now avoids redundant database queries, leading to faster processing and a smoother user experience. This change specifically addresses an 'N+1 query' problem.
Original PR description
Only query for the last bus notification id when the target is the current user. This avoids unnecessary queries in flows like auto-subscribe, where an individual store is generated for each newly created member, preventing an N+1 query issue. task-5941186 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#262380 Forward-Port-Of: odoo/odoo#261974
This update fixes an issue where sales line amounts in the Swedish tax reports (section E) were incorrectly displayed as negative. The fix adds missing minus signs to the relevant formulas, ensuring accurate reporting according to Swedish tax regulations. This ensures businesses accurately report their sales transactions for tax purposes.
Original PR description
Steps to reproduce ------------------ 1. Install l10n_se module. 2. Create a journal entry with tax grid se_38, se_40 or se_41. 3. Open the Tax Report and check section E. -> The line shows the amount as negative, while it should be positive. The fix ------- Add the missing `-` in front of the formulas of lines 38, 40 and 41. These lines were missed by the tax_tag_invert revamp done in 17a6117ed88c. ref: https://skatteverket.se/servicelankar/otherlanguages/inenglishengelska/businessesandemployers/startingandrunningaswedishbusiness/declaringtaxesbusinesses/vat/vatitemsboxbybox.4.3dfca4f410f4fc63c8680004502.html opw-6085318 Forward-Port-Of: odoo/odoo#258029
This update resolves an issue where sales orders created with products linked to multiple companies would fail due to incorrect company context. The fix ensures the correct company is used when creating projects, preventing errors during order confirmation, particularly through the customer portal. This improves order processing reliability for businesses using Odoo's multi-company functionality.
Original PR description
project_template_id is a company dependent field. When creating a project, it is called without the proper company context set up. When confirming an SO through the portal, the order's env is setup…
project_template_id is a company dependent field. When creating a project, it is called without the proper company context set up. When confirming an SO through the portal, the order's env is setup without a company and `.with_user(SUPERUSER_ID)`, making future company_dependent variables use OdooBot's company. Following examples earlier in the function, call `.with_company` while accessing project_template_id. Steps to reproduce: 1. Install Sales and Project 2. Create second company 3. Create Customer with portal access, under created company 4. Create service product with different projects for each company 5. Create sales order with customer and service product, send to customer 6. Login as customer on portal, accept and sign SO a. Should stall, RPC Error in console Ticket: opw-6082772 Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#261380 Forward-Port-Of: odoo/odoo#260387
This update resolves a technical issue causing errors in DoEDI reports. The problem stemmed from incorrect formatting of error messages within the l10n_do_edi module, which was preventing proper test case execution. This fix ensures accurate reporting and improved stability for DoEDI functionality.
Original PR description
Problem: A TypeError traceback occurs with the test cases because the error was not formatted properly from l10n_do_edi_blocking_errors when _format_error_text is called. Solution: Map the error message properly in l10n_do_edi_blocking_errors. Related PR: https://github.com/odoo/enterprise/pull/112814 runbot-build-error-242502
This update restores previously removed fields in the asset and depreciation models to ensure stability and prevent disruptions to existing workflows. While the fields were initially removed to simplify the user interface, their restoration with a hidden status maintains compatibility with integrations and inherited views. These changes will be permanently removed in the main version.
Original PR description
Commit 409b0b716e0bdab4ac3761d3bd41023b47fb1b5d removed several fields from the asset and depreciation model views to streamline the UI. However, removing these fields in a stable version can break inherited views or external integrations that rely on their presence. To maintain stability while preserving the UI improvements, this commit restores these fields but sets them to `column_invisible="True"` These fields will be permanently removed in the master version. Forward-Port-Of: odoo/enterprise#115918
This update corrects a display issue where the Tax ID (DIČ) was appearing twice on Czech customer invoices. The fix removes a duplicate entry from the invoice template, ensuring accurate reporting and compliance with Czech regulations. This improves the user experience for customers in the Czech Republic.
Original PR description
**Steps to reproduce:** * Install the **l10n_cz** module. * Create a customer invoice for a Czech company. * Print the invoice. **Observed behavior:** * The **Tax ID (DIČ)** is displayed **twice** in…
**Steps to reproduce:** * Install the **l10n_cz** module. * Create a customer invoice for a Czech company. * Print the invoice. **Observed behavior:** * The **Tax ID (DIČ)** is displayed **twice** in the invoice header in default layout. * **VAT** is displayed **twice** in the invoice headed in folder layout. **Cause:** * The `registry_vat_external_layout` template adds `company.vat` to `company_address_list`. * Base external layouts already include `company.vat` in the same list. * This results in duplicated DIČ rendering. **Fix:** * Remove the redundant VAT `<li>` from `registry_vat_external_layout`. * Keep only the Czech-specific **Company ID** (`company_registry`) entry, which is not provided by base layouts. Before: <img width="900" height="261" alt="image" src="https://github.com/user-attachments/assets/9b5b81aa-a79d-4c93-8109-3c97d79356f4" /> After: <img width="804" height="221" alt="image" src="https://github.com/user-attachments/assets/4b62eddc-6117-4f52-a8fb-2b03812aad8b" /> opw-6125766 Forward-Port-Of: odoo/odoo#262399 Forward-Port-Of: odoo/odoo#260966
This update resolves an issue where the Gantt planning dialog incorrectly filtered out unscheduled shifts for resources with no scheduled shifts. The fix ensures the dialog displays all relevant unscheduled shifts, improving the usability of the planning feature. This change corrects a discrepancy introduced in a previous version.
Original PR description
Steps to Reproduce --- 1. Open the Planning Gantt view. 2. Click a cell that belongs to a resource with no scheduled shifts. 3. The Plan dialog opens with an empty list. Issue --- In saas-19.2, the context field for the selected resource was renamed from resource_id to resource_ids. Hence it remained in the dialog context. Current Behaviour --- The Plan dialog is filtered by resource_ids, returning no results for unscheduled resources. Expected Behaviour --- The dialog should list all unscheduled shifts matching the resource's roles, or all unscheduled shifts if no roles are defined, while preserving the scheduling context once a shift is selected. Fix --- Set search_default_resource_ids to false in getSelectCreateDialogProps(). task-4922525 Forward-Port-Of: odoo/enterprise#115822
A bug was causing the appointment builder to crash when users edited appointment pages. This update corrects a misconfiguration that was sending incorrect data to the builder, preventing unexpected errors. The fix ensures the builder functions reliably for all appointment types.
Original PR description
'Reload' was wrongly passed as a prop to BuilderContext in 'Appointment Type' Option. This ended up in a traceback when user opened the builder on an appointment page. To see the issue: - Create an appointment, and go to its frontend page in debug mode - Start editing - Click anywhere on the page => Traceback We also replace `isReload` with `reload` in order to reload the page when applying the actions. task-6147936 opw-6144915 Forward-Port-Of: odoo/enterprise#115506
This update fixes a layout issue in the spreadsheet component, ensuring that text and formatting appear correctly for users in right-to-left languages. The change was necessary after a recent update to the spreadsheet library's CSS conversion process, which inadvertently introduced a left-to-right layout.
Original PR description
When we switched from scss to a css file in the o_spreadsheet library, we exposed the library style to the automatic convertion of `rtlcss`. This process replaces the explicit `tlr`rules to `rtl`. rtlcss can ignore files/rules with inline instructions but since the library is external to Odoo and is not explicitely aware of `rtlcss`' existence, we add an explicit rule inside Odoo which will not be exposed to `rtlcss` conversion. Task-6170966 Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#261761
This update fixes a display issue with tax withholding warnings in the Odoo system for Indian businesses (l10n_in). The warning is now only shown on vendor bills, streamlining the user experience. Additionally, a redundant warning banner related to missing PAN data has been removed, simplifying the interface.
Original PR description
Previously, the higher deduction alert was displayed next to the TDS section in the wizard for both customer invoices and vendor bills. However, this is not applicable for customer invoices. So in this commit, the alert is restricted to vendor bills only, and field will also be hidden in that case. Additionally, when the PAN entity was missing, a warning banner was shown to indicate higher deduction. Since the higher deduction is already displayed next to the TDS section, the redundant banner is also removed. task-6171749 Forward-Port-Of: odoo/odoo#261923
This update fixes an issue where financial reports (Balance Sheet, P&L, Tax Report) were printed with a zoomed-in appearance due to a default paper format setting. The change ensures reports use the standard Euro paper format, aligning with DIN 5008 requirements for postal documents, and improving print quality.
Original PR description
paper format (dpi=70, postal margins) was applied to all reports because it is set as the company default by both the Swiss and German localizations. This caused financial reports (Balance Sheet, P&L, Tax Report) to appear zoomed in when printed to PDF. DIN 5008 is only appropriate for documents sent by post (invoices, credit notes, follow-up letters). Override `get_paperformat` in each localization to return the standard Euro format when rendering accounting reports. task-6053938 Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#260142
This update corrects an issue where accounting reports (Balance Sheet, P&L, Tax Report) were printed with zoomed-in layouts due to a default paper format setting. The change ensures reports now use the standard Euro paper format, resolving the printing problem and improving report clarity.
Original PR description
for financial reports DIN 5008 paper format (dpi=70, postal margins) was applied to all reports because it is set as the company default by both the Swiss and German localizations. This caused financial reports (Balance Sheet, P&L, Tax Report) to appear zoomed in when printed to PDF. DIN 5008 is only appropriate for documents sent by post (invoices, credit notes, follow-up letters). Override `get_paperformat` in each localization to return the standard Euro format when rendering accounting reports. task-6053938 Forward-Port-Of: odoo/enterprise#114330
19 changes
Enhancements to existing features
This update enhances the Point of Sale (PoS) and HR modules by allowing PoS users to directly access sessions from the menu. Additionally, it restricts access to sensitive product financial information for users with limited permissions, improving data security and control. This change focuses on usability and security within the Odoo system.
Original PR description
- Allow PoS users to access sessions directly from the menu. - Restrict visibility of product financial information for users with minimal access rights. Task-[5980289](https://www.odoo.com/odoo/project/1737/tasks/5980289) Related PRs: - https://github.com/odoo/enterprise/pull/109173 Forward-Port-Of: odoo/odoo#262289 Forward-Port-Of: odoo/odoo#251391
This update makes the Preparation Display app readily available to Point of Sale (PoS) users through the Odoo dashboard. This allows PoS managers to quickly access key preparation information, streamlining their workflow and improving operational efficiency. This change was driven by a user request to enhance visibility of critical data.
Original PR description
This commit makes the Preparation Display app accessible from the Odoo dashboard for PoS users. Task-[5980289](https://www.odoo.com/odoo/project/1737/tasks/5980289) Related PRs: - https://github.com/odoo/odoo/pull/251391 Forward-Port-Of: odoo/enterprise#115844 Forward-Port-Of: odoo/enterprise#109173
Resolved issues and error corrections
This update resolves an error that occurred when manually creating vendor bills and DIAN commercial events were rejected. The fix ensures that retries work correctly, preventing a traceback and improving the reliability of the DIAN integration for our Colombian clients. This issue was specifically triggered in environments without demo mode.
Original PR description
This commit fixes an error when retrying a rejected DIAN commercial event on manually created Vendor Bills. This is a tricky error as it only happens when the vendor bill is manually created and the…
This commit fixes an error when retrying a rejected DIAN commercial event on manually created Vendor Bills. This is a tricky error as it only happens when the vendor bill is manually created and the event is rejected (missing/incomplete info or servers down which is common). To add more to this, this error can only be reproduced without demo mode as it forces the acceptance, forcing the need of valid testing or production DIAN credentials How to reproduce it: - Install l10n_co_dian module - On CO company with all required DIAN configuration set - Create a vendor bill manually with enough information to send to the DIAN but causing it to be rejected. - Click on acknowledge receipt, it should be rejected - Complete information to be accepted and again click on acknowledge receipt - A traceback appear Code expects the last document to be the most current one created when triggering commercial event, but this is not true when a rejected document exists since this is unlinked and cache invalidated causing the recordset to be invalidated and retrieved again by ORM with default order, so now the last document is the oldest one without an attachment causing the traceback opw-6104541 Forward-Port-Of: odoo/enterprise#114758
This update fixes an issue where users would encounter technical errors when generating tax reports due to missing certificates. Now, if a certificate isn't set up, the system displays a helpful message guiding the user to configure one, preventing confusing tracebacks and ensuring smooth report generation.
Original PR description
Description of the issue this commit addresses: When sending the tax report or ec sales list xbrl file via the wizard to the authority, if no certificate has been set, a traceback shows up. This happens because some processes try to use the certificate without checking its existence. Desired behavior after the commit is merged: When sending via the xbrl wizard, if no certificate has been set up, an error offering the user to go to the certificate set up shows up and no traceback. task-6065382 Forward-Port-Of: odoo/enterprise#112951
This update fixes a performance issue that occurred when new users joined Odoo. Specifically, it prevents the system from making redundant database queries during the store creation process, particularly in auto-subscription flows. This change ensures a smoother and faster experience for new users and improves overall system efficiency.
Original PR description
Only query for the last bus notification id when the target is the current user. This avoids unnecessary queries in flows like auto-subscribe, where an individual store is generated for each newly created member, preventing an N+1 query issue. task-5941186 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#262380 Forward-Port-Of: odoo/odoo#261974
This update restores previously removed fields from asset and depreciation models within Odoo Enterprise. This change was made to prevent disruptions to existing views and integrations while a permanent UI streamlining is planned for the master version. This ensures continued stability and functionality.
Original PR description
Commit 409b0b716e0bdab4ac3761d3bd41023b47fb1b5d removed several fields from the asset and depreciation model views to streamline the UI. However, removing these fields in a stable version can break inherited views or external integrations that rely on their presence. To maintain stability while preserving the UI improvements, this commit restores these fields but sets them to `column_invisible="True"` These fields will be permanently removed in the master version.
This update fixes a reporting issue where the tax report for Swedish businesses (l10n_se) incorrectly displayed sales line amounts as negative. The fix adds missing minus signs to key formulas, aligning with Swedish tax regulations and ensuring accurate reporting of sales tax amounts. This ensures compliance and accurate financial reporting for our Swedish customers.
Original PR description
Steps to reproduce ------------------ 1. Install l10n_se module. 2. Create a journal entry with tax grid se_38, se_40 or se_41. 3. Open the Tax Report and check section E. -> The line shows the amount as negative, while it should be positive. The fix ------- Add the missing `-` in front of the formulas of lines 38, 40 and 41. These lines were missed by the tax_tag_invert revamp done in 17a6117ed88c. ref: https://skatteverket.se/servicelankar/otherlanguages/inenglishengelska/businessesandemployers/startingandrunningaswedishbusiness/declaringtaxesbusinesses/vat/vatitemsboxbybox.4.3dfca4f410f4fc63c8680004502.html opw-6085318 Forward-Port-Of: odoo/odoo#258029
This update fixes an issue where users in unsupported countries would silently fail when requesting card details for expense claims. Now, users receive an email notification if their country isn't supported, preventing data loss and improving the user experience. The update also adds more detailed error messages for better troubleshooting.
Original PR description
When a user request the card details, if the country of the phone number of the user isn't supported by IAP, it would silently fail. Now, we are sending an email in case the phone number isn't supported. In case some flow don't/can't have any email fallback, we will add the a generic error and a more detailed one for the country not being supported. task-6065232 Forward-Port-Of: odoo/enterprise#112701
This update resolves an issue where sales orders created with products linked to different companies would fail to process correctly through the customer portal. The fix ensures that company context is properly set when accessing company-dependent fields like project templates, preventing errors and allowing for seamless order processing across multiple company environments. This improves the reliability of the sales order process for businesses using multiple companies within Odoo.
Original PR description
project_template_id is a company dependent field. When creating a project, it is called without the proper company context set up. When confirming an SO through the portal, the order's env is setup…
project_template_id is a company dependent field. When creating a project, it is called without the proper company context set up. When confirming an SO through the portal, the order's env is setup without a company and `.with_user(SUPERUSER_ID)`, making future company_dependent variables use OdooBot's company. Following examples earlier in the function, call `.with_company` while accessing project_template_id. Steps to reproduce: 1. Install Sales and Project 2. Create second company 3. Create Customer with portal access, under created company 4. Create service product with different projects for each company 5. Create sales order with customer and service product, send to customer 6. Login as customer on portal, accept and sign SO a. Should stall, RPC Error in console Ticket: opw-6082772 Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#261380 Forward-Port-Of: odoo/odoo#260387
This update resolves a crash in the abandoned cart reminder system when Click & Collect is enabled. The fix ensures the system handles scheduled actions without a frontend cart, preventing failures and guaranteeing reminders are sent correctly. This improves the reliability of the Click & Collect delivery method.
Original PR description
Problem: The abandoned cart reminder can crash when Click & Collect is enabled. The stock availability check reaches website_sale_collect._get_product_available_qty(), which assumes request.cart…
Problem: The abandoned cart reminder can crash when Click & Collect is enabled. The stock availability check reaches website_sale_collect._get_product_available_qty(), which assumes request.cart always exists. Solution: Safely access the cart with hasattr and fall back to the existing no-cart behavior when it is unavailable. Why: Scheduled actions may have a request object without a frontend cart. This fix prevents the cron from failing while sending abandoned cart reminders. Reproduction Steps: - Configure the website with a warehouse. - Create/publish a delivery method with delivery type “Pick up in store”. Confirm the website has both warehouse_id and in_store_dm_id - Create a cart from the website shop using a storable product that has does not have "Sell When Out of Stock" turned on. - Leave the cart without checking out. - On the generated quotation set the date to the past, but also the date must be after the website.send_abandoned_cart_email_activation_time - Run the abandoned cart reminder scheduled action for the eligible abandoned cart with a storable product. Related Ticket: opw-6133986 Related PR: https://github.com/odoo/odoo/pull/242864 Forward-Port-Of: odoo/odoo#261885
This update corrects a display issue where the Tax ID (DIČ) was appearing twice on customer invoices for Czech companies. The fix removes a redundant VAT entry from the invoice template, ensuring accurate and consistent reporting of company identification information. This improves the professional appearance of invoices and avoids potential confusion.
Original PR description
**Steps to reproduce:** * Install the **l10n_cz** module. * Create a customer invoice for a Czech company. * Print the invoice. **Observed behavior:** * The **Tax ID (DIČ)** is displayed **twice** in…
**Steps to reproduce:** * Install the **l10n_cz** module. * Create a customer invoice for a Czech company. * Print the invoice. **Observed behavior:** * The **Tax ID (DIČ)** is displayed **twice** in the invoice header in default layout. * **VAT** is displayed **twice** in the invoice headed in folder layout. **Cause:** * The `registry_vat_external_layout` template adds `company.vat` to `company_address_list`. * Base external layouts already include `company.vat` in the same list. * This results in duplicated DIČ rendering. **Fix:** * Remove the redundant VAT `<li>` from `registry_vat_external_layout`. * Keep only the Czech-specific **Company ID** (`company_registry`) entry, which is not provided by base layouts. Before: <img width="900" height="261" alt="image" src="https://github.com/user-attachments/assets/9b5b81aa-a79d-4c93-8109-3c97d79356f4" /> After: <img width="804" height="221" alt="image" src="https://github.com/user-attachments/assets/4b62eddc-6117-4f52-a8fb-2b03812aad8b" /> opw-6125766 Forward-Port-Of: odoo/odoo#262399 Forward-Port-Of: odoo/odoo#260966
This update corrects a layout issue in the spreadsheet component caused by a recent style change. The change exposed the spreadsheet's styling to automatic translation tools, leading to incorrect right-to-left formatting. This fix ensures the spreadsheet displays correctly for users in both left-to-right and right-to-left language environments.
Original PR description
When we switched from scss to a css file in the o_spreadsheet library, we exposed the library style to the automatic convertion of `rtlcss`. This process replaces the explicit `tlr`rules to `rtl`. rtlcss can ignore files/rules with inline instructions but since the library is external to Odoo and is not explicitely aware of `rtlcss`' existence, we add an explicit rule inside Odoo which will not be exposed to `rtlcss` conversion. Task-6170966 Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#261761
This update prevents unnecessary state resets for tasks that have been marked as done or canceled. Previously, changing a task's project would reset its state, even after completion. This change ensures tasks remain in their final state, streamlining workflow and reducing potential confusion.
Original PR description
Before this commit, when the project of a task is changed, even if the state of that task is done or cancelled, the state is reset (except if the task is blocked by another one). This behavior is not expected for a task done/cancelled, we should not reconsider that task since it has been done/cancelled and so there is no reason to re-consider it once the project changed. This commit makes sure the state of the task is not reset when the project changed only if the state is a closed state or Waiting state. task-5361864 Forward-Port-Of: odoo/odoo#261648 Forward-Port-Of: odoo/odoo#252752
This update fixes an issue where incorrect deduction warnings were displayed on customer invoices. The changes now restrict these warnings to vendor bills only, streamlining the reporting process. Additionally, a redundant warning banner related to missing PAN data has been removed, ensuring clearer and more accurate information for financial reporting.
Original PR description
Previously, the higher deduction alert was displayed next to the TDS section in the wizard for both customer invoices and vendor bills. However, this is not applicable for customer invoices. So in this commit, the alert is restricted to vendor bills only, and field will also be hidden in that case. Additionally, when the PAN entity was missing, a warning banner was shown to indicate higher deduction. Since the higher deduction is already displayed next to the TDS section, the redundant banner is also removed. task-6171749 Forward-Port-Of: odoo/odoo#261923
A recent issue causing tours to fail in the Enterprise portal has been resolved. The problem stemmed from errors with the worksheet not saving or displaying correctly, which disrupted the tour's functionality. This update ensures tours run reliably for users.
Original PR description
The worksheet is not auto saving and the worksheet is not rendering properly in portal, which caused the tour to fail. runbot error-242479 Forward-Port-Of: odoo/enterprise#115761
This update resolves an issue where incorrect Nemhandel identifiers were generated when users entered Danish VAT numbers with the 'DK' prefix. The change removes the prefix if the CVR number indicates Denmark, ensuring accurate identifier generation and improved client experience. This prevents errors and data inconsistencies.
Original PR description
Before this PR: - When a user enters a full VAT number with the 'DK' prefix in the company registry, the Nemhandel identifier becomes incorrect and results in a cryptic error being returned to the client. After this PR: - The prefix is removed if the CVR contains the 'DK' country code, to ensure the correctness of the Nemhandel identifier. task-5449059 Forward-Port-Of: odoo/odoo#262088 Forward-Port-Of: odoo/odoo#261719
This update corrects an issue where financial reports (Balance Sheet, P&L, Tax Report) were printed with a zoomed-in appearance due to a default paper format setting. The change ensures reports use the standard Euro paper format, aligning with DIN 5008 requirements for postal documents, and improving print quality.
Original PR description
paper format (dpi=70, postal margins) was applied to all reports because it is set as the company default by both the Swiss and German localizations. This caused financial reports (Balance Sheet, P&L, Tax Report) to appear zoomed in when printed to PDF. DIN 5008 is only appropriate for documents sent by post (invoices, credit notes, follow-up letters). Override `get_paperformat` in each localization to return the standard Euro format when rendering accounting reports. task-6053938 Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#260142
This update corrects an issue where financial reports (Balance Sheet, P&L, Tax Report) were printed with zoomed-in views due to a default paper format setting. The change now uses the standard Euro paper format for accounting reports, ensuring they print correctly when generating PDFs.
Original PR description
for financial reports DIN 5008 paper format (dpi=70, postal margins) was applied to all reports because it is set as the company default by both the Swiss and German localizations. This caused financial reports (Balance Sheet, P&L, Tax Report) to appear zoomed in when printed to PDF. DIN 5008 is only appropriate for documents sent by post (invoices, credit notes, follow-up letters). Override `get_paperformat` in each localization to return the standard Euro format when rendering accounting reports. task-6053938 Forward-Port-Of: odoo/enterprise#114330
The expense direct cost account (account_type: expense_direct_cost) should also be searchable on vendor bills, and search by account code should ignore filters (reverted change) task-id: [6138677](https://www.odoo.com/odoo/project/967/tasks/6138677) origin pr: https://github.com/odoo/odoo/pull/257850 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#260076
Original PR description
The expense direct cost account (account_type: expense_direct_cost) should also be searchable on vendor bills, and search by account code should ignore filters (reverted change) task-id: [6138677](https://www.odoo.com/odoo/project/967/tasks/6138677) origin pr: https://github.com/odoo/odoo/pull/257850 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#260076
14 changes
Enhancements to existing features
This update enhances Point of Sale (PoS) and HR functionality by allowing PoS users to directly access sessions and restricting access to sensitive product financial information for users with limited permissions. This improves user experience and strengthens data security within the system.
Original PR description
- Allow PoS users to access sessions directly from the menu. - Restrict visibility of product financial information for users with minimal access rights. Task-[5980289](https://www.odoo.com/odoo/project/1737/tasks/5980289) Related PRs: - https://github.com/odoo/enterprise/pull/109173 Forward-Port-Of: odoo/odoo#251391
This update makes the Preparation Display app readily available for Odoo Point of Sale (PoS) users through the main dashboard. Previously, PoS users needed to navigate to a specific section to access this important tool, which helps them manage and track preparation tasks. This change improves efficiency and visibility for PoS operations.
Original PR description
This commit makes the Preparation Display app accessible from the Odoo dashboard for PoS users. Task-[5980289](https://www.odoo.com/odoo/project/1737/tasks/5980289) Related PRs: - https://github.com/odoo/odoo/pull/251391 Forward-Port-Of: odoo/enterprise#109173
Resolved issues and error corrections
This update ensures that vendor bills can now be searched using the 'expense_direct_cost' account type. Previously, this account type wasn't searchable, and searching by account code was affected by filters. This change improves the accuracy and efficiency of vendor bill searches.
Original PR description
The expense direct cost account (account_type: expense_direct_cost) should also be searchable on vendor bills, and search by account code should ignore filters (reverted change) task-id: [6138677](https://www.odoo.com/odoo/project/967/tasks/6138677) origin pr: https://github.com/odoo/odoo/pull/257850 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#260076
This update resolves an issue that occurred when manually creating vendor bills and DIAN commercial events were rejected. The fix ensures that retrying these rejected events now functions correctly, preventing a traceback error related to outdated data retrieval. This improves the reliability of the DIAN integration for manual vendor bill creation.
Original PR description
This commit fixes an error when retrying a rejected DIAN commercial event on manually created Vendor Bills. This is a tricky error as it only happens when the vendor bill is manually created and the…
This commit fixes an error when retrying a rejected DIAN commercial event on manually created Vendor Bills. This is a tricky error as it only happens when the vendor bill is manually created and the event is rejected (missing/incomplete info or servers down which is common). To add more to this, this error can only be reproduced without demo mode as it forces the acceptance, forcing the need of valid testing or production DIAN credentials How to reproduce it: - Install l10n_co_dian module - On CO company with all required DIAN configuration set - Create a vendor bill manually with enough information to send to the DIAN but causing it to be rejected. - Click on acknowledge receipt, it should be rejected - Complete information to be accepted and again click on acknowledge receipt - A traceback appear Code expects the last document to be the most current one created when triggering commercial event, but this is not true when a rejected document exists since this is unlinked and cache invalidated causing the recordset to be invalidated and retrieved again by ORM with default order, so now the last document is the oldest one without an attachment causing the traceback opw-6104541 Forward-Port-Of: odoo/enterprise#114758
This update fixes a technical issue that caused error messages when generating tax reports via the Odoo wizard. Now, if a certificate isn't set up, users receive a helpful message guiding them to configure one, preventing confusing tracebacks and ensuring report generation continues smoothly.
Original PR description
Description of the issue this commit addresses: When sending the tax report or ec sales list xbrl file via the wizard to the authority, if no certificate has been set, a traceback shows up. This happens because some processes try to use the certificate without checking its existence. Desired behavior after the commit is merged: When sending via the xbrl wizard, if no certificate has been set up, an error offering the user to go to the certificate set up shows up and no traceback. task-6065382 Forward-Port-Of: odoo/enterprise#112951
This update fixes a reporting issue where sales tax amounts in the Swedish tax report (section E) were incorrectly displayed as negative. The fix adds missing minus signs to the relevant formulas, ensuring accurate reporting aligned with Swedish tax regulations. This ensures correct tax calculations and reporting for Swedish businesses using the Odoo system.
Original PR description
Steps to reproduce ------------------ 1. Install l10n_se module. 2. Create a journal entry with tax grid se_38, se_40 or se_41. 3. Open the Tax Report and check section E. -> The line shows the amount as negative, while it should be positive. The fix ------- Add the missing `-` in front of the formulas of lines 38, 40 and 41. These lines were missed by the tax_tag_invert revamp done in 17a6117ed88c. ref: https://skatteverket.se/servicelankar/otherlanguages/inenglishengelska/businessesandemployers/startingandrunningaswedishbusiness/declaringtaxesbusinesses/vat/vatitemsboxbybox.4.3dfca4f410f4fc63c8680004502.html opw-6085318 Forward-Port-Of: odoo/odoo#258029
This update fixes a previous issue where users wouldn't receive notifications when their phone number country wasn't supported for SMS verification. Now, users will receive an email notification if their country isn't supported, improving the user experience and ensuring accurate expense report processing. The fix also includes enhanced error handling for future flows.
Original PR description
When a user request the card details, if the country of the phone number of the user isn't supported by IAP, it would silently fail. Now, we are sending an email in case the phone number isn't supported. In case some flow don't/can't have any email fallback, we will add the a generic error and a more detailed one for the country not being supported. task-6065232 Forward-Port-Of: odoo/enterprise#112701
This update resolves an issue where sales orders created with multiple company accounts didn't function properly through the customer portal. The fix ensures that company context is correctly applied when creating projects, preventing errors and allowing customers to successfully place orders regardless of their company setup. This improves the reliability of the sales process for businesses using multiple company environments.
Original PR description
project_template_id is a company dependent field. When creating a project, it is called without the proper company context set up. When confirming an SO through the portal, the order's env is setup…
project_template_id is a company dependent field. When creating a project, it is called without the proper company context set up. When confirming an SO through the portal, the order's env is setup without a company and `.with_user(SUPERUSER_ID)`, making future company_dependent variables use OdooBot's company. Following examples earlier in the function, call `.with_company` while accessing project_template_id. Steps to reproduce: 1. Install Sales and Project 2. Create second company 3. Create Customer with portal access, under created company 4. Create service product with different projects for each company 5. Create sales order with customer and service product, send to customer 6. Login as customer on portal, accept and sign SO a. Should stall, RPC Error in console Ticket: opw-6082772 Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#261380 Forward-Port-Of: odoo/odoo#260387
This update resolves a crash in the abandoned cart reminder system when Click & Collect is enabled. Previously, scheduled actions without a website cart would cause errors. The fix ensures the reminder system functions reliably, even when carts aren't present, preventing disruptions to the Click & Collect process.
Original PR description
Problem: The abandoned cart reminder can crash when Click & Collect is enabled. The stock availability check reaches website_sale_collect._get_product_available_qty(), which assumes request.cart…
Problem: The abandoned cart reminder can crash when Click & Collect is enabled. The stock availability check reaches website_sale_collect._get_product_available_qty(), which assumes request.cart always exists. Solution: Safely access the cart with hasattr and fall back to the existing no-cart behavior when it is unavailable. Why: Scheduled actions may have a request object without a frontend cart. This fix prevents the cron from failing while sending abandoned cart reminders. Reproduction Steps: - Configure the website with a warehouse. - Create/publish a delivery method with delivery type “Pick up in store”. Confirm the website has both warehouse_id and in_store_dm_id - Create a cart from the website shop using a storable product that has does not have "Sell When Out of Stock" turned on. - Leave the cart without checking out. - On the generated quotation set the date to the past, but also the date must be after the website.send_abandoned_cart_email_activation_time - Run the abandoned cart reminder scheduled action for the eligible abandoned cart with a storable product. Related Ticket: opw-6133986 Related PR: https://github.com/odoo/odoo/pull/242864 Forward-Port-Of: odoo/odoo#261885
This update corrects a display issue where the Tax ID (DIČ) was appearing twice on Czech customer invoices. The fix removes a duplicate entry from the invoice template, ensuring accurate reporting and compliance with Czech regulations. This improves the invoice presentation for Czech customers.
Original PR description
**Steps to reproduce:** * Install the **l10n_cz** module. * Create a customer invoice for a Czech company. * Print the invoice. **Observed behavior:** * The **Tax ID (DIČ)** is displayed **twice** in…
**Steps to reproduce:** * Install the **l10n_cz** module. * Create a customer invoice for a Czech company. * Print the invoice. **Observed behavior:** * The **Tax ID (DIČ)** is displayed **twice** in the invoice header in default layout. * **VAT** is displayed **twice** in the invoice headed in folder layout. **Cause:** * The `registry_vat_external_layout` template adds `company.vat` to `company_address_list`. * Base external layouts already include `company.vat` in the same list. * This results in duplicated DIČ rendering. **Fix:** * Remove the redundant VAT `<li>` from `registry_vat_external_layout`. * Keep only the Czech-specific **Company ID** (`company_registry`) entry, which is not provided by base layouts. Before: <img width="900" height="261" alt="image" src="https://github.com/user-attachments/assets/9b5b81aa-a79d-4c93-8109-3c97d79356f4" /> After: <img width="804" height="221" alt="image" src="https://github.com/user-attachments/assets/4b62eddc-6117-4f52-a8fb-2b03812aad8b" /> opw-6125766 Forward-Port-Of: odoo/odoo#262399 Forward-Port-Of: odoo/odoo#260966
This update fixes an issue where incorrect withholding warnings were displayed on customer invoices. Now, alerts are only shown for vendor bills, streamlining the reporting process. Additionally, a redundant warning banner related to missing PAN data has been removed, ensuring consistent and accurate information.
Original PR description
Previously, the higher deduction alert was displayed next to the TDS section in the wizard for both customer invoices and vendor bills. However, this is not applicable for customer invoices. So in this commit, the alert is restricted to vendor bills only, and field will also be hidden in that case. Additionally, when the PAN entity was missing, a warning banner was shown to indicate higher deduction. Since the higher deduction is already displayed next to the TDS section, the redundant banner is also removed. task-6171749 Forward-Port-Of: odoo/odoo#261923
This update fixes an issue where financial reports (Balance Sheet, P&L, Tax Report) were printed with an incorrect, zoomed-in format due to a default setting for postal documents. The change ensures reports now use the standard Euro paper format, aligning with DIN 5008 requirements for invoices and other postal documents.
Original PR description
paper format (dpi=70, postal margins) was applied to all reports because it is set as the company default by both the Swiss and German localizations. This caused financial reports (Balance Sheet, P&L, Tax Report) to appear zoomed in when printed to PDF. DIN 5008 is only appropriate for documents sent by post (invoices, credit notes, follow-up letters). Override `get_paperformat` in each localization to return the standard Euro format when rendering accounting reports. task-6053938 Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#260142
This update corrects an issue where financial reports (Balance Sheet, P&L, Tax Report) were printed with zoomed-in views due to a default paper format setting. The change now uses the standard Euro paper format for these reports, ensuring they print correctly and professionally.
Original PR description
for financial reports DIN 5008 paper format (dpi=70, postal margins) was applied to all reports because it is set as the company default by both the Swiss and German localizations. This caused financial reports (Balance Sheet, P&L, Tax Report) to appear zoomed in when printed to PDF. DIN 5008 is only appropriate for documents sent by post (invoices, credit notes, follow-up letters). Override `get_paperformat` in each localization to return the standard Euro format when rendering accounting reports. task-6053938 Forward-Port-Of: odoo/enterprise#114330
This update fixes a performance issue that occurred when new users joined Odoo. Specifically, it streamlined the process of creating 'stores' (used for notifications) to prevent a flood of database queries. This change ensures a smoother and faster experience for new users, improving overall system efficiency.
Original PR description
Only query for the last bus notification id when the target is the current user. This avoids unnecessary queries in flows like auto-subscribe, where an individual store is generated for each newly created member, preventing an N+1 query issue. task-5941186 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#261974
4 changes
Resolved issues and error corrections
This update corrects a display issue where the Tax ID (DIČ) was appearing twice on Czech customer invoices. The fix removes a duplicate entry from the invoice template, ensuring accurate reporting and compliance with Czech regulations. This improves the user experience for customers in the Czech Republic.
Original PR description
**Steps to reproduce:** * Install the **l10n_cz** module. * Create a customer invoice for a Czech company. * Print the invoice. **Observed behavior:** * The **Tax ID (DIČ)** is displayed **twice** in…
**Steps to reproduce:** * Install the **l10n_cz** module. * Create a customer invoice for a Czech company. * Print the invoice. **Observed behavior:** * The **Tax ID (DIČ)** is displayed **twice** in the invoice header in default layout. * **VAT** is displayed **twice** in the invoice headed in folder layout. **Cause:** * The `registry_vat_external_layout` template adds `company.vat` to `company_address_list`. * Base external layouts already include `company.vat` in the same list. * This results in duplicated DIČ rendering. **Fix:** * Remove the redundant VAT `<li>` from `registry_vat_external_layout`. * Keep only the Czech-specific **Company ID** (`company_registry`) entry, which is not provided by base layouts. Before: <img width="900" height="261" alt="image" src="https://github.com/user-attachments/assets/9b5b81aa-a79d-4c93-8109-3c97d79356f4" /> After: <img width="804" height="221" alt="image" src="https://github.com/user-attachments/assets/4b62eddc-6117-4f52-a8fb-2b03812aad8b" /> opw-6125766 Forward-Port-Of: odoo/odoo#260966
This update fixes a series of issues preventing consistent color and font size application to list markers within the HTML editor. Specifically, it addresses problems with trailing empty lines, inline styles, and empty text nodes, ensuring accurate styling across various list item scenarios. This improves the user experience and consistency of the HTML editor.
Original PR description
### Steps to reproduce: **Issue 1:** - Create a list with multiple items and leave the last item empty. - Press Ctrl + A to select all content. - Apply a text color from the toolbar. - The list…
### Steps to reproduce: **Issue 1:** - Create a list with multiple items and leave the last item empty. - Press Ctrl + A to select all content. - Apply a text color from the toolbar. - The list marker of the last item does not receive the color. **Issue 2:** - Create a list and type some text. - Press Ctrl+A to select all. - Apply a font size via the font-size input (inline style=`font-size: ...`). - Then apply a font size via the font-size dropdown (class-based). - Font size from the dropdown is not applied. **Issue 3:** - Create a list item and type some text. - Convert the text into a link. - Copy the link. - Press Enter and paste the link. - Select the entire list using the mouse. - Apply font size & observe that font size is not applied to some list items. **Issue 4:** - Go to Todo and create a list. - Select all items (Ctrl + A). - Apply a background color class from the toolbar. - Apply a font color using inline styling. - Observe that the font color is not visible. ### Description of the issue/feature this PR addresses: - Full-selection detection relied on Range.isPointInRange() checks on list item leaf nodes. When a list item ended with a trailing empty line, the selection often stopped on the `<li>` element and did not include the `<br>` placeholder. As a result, such list items were not considered fully selected when applying text color, and their markers remained unstyled. - Applying a font-size class on a fully-selected list item could leave existing inline font-size on list item, so new class didn’t take effect. - Creating links inside list items & repeated copy-paste operations left empty text nodes (feff cleanup). Manual selection doesn't include these nodes, `areNodeContentsFullySelected` reports that list item is not fully selected. As a result, some list items were not considered fully selected, and font size was not applied. - Background color `(bg-*)` classes also define a color property. When a font color is applied, the color is set on the `<li>`, but the nested `font.bg-*` element’s color takes precedence, causing the applied font color to be overridden. ### Desired behavior after PR is merged: - List items with trailing empty line are now treated as fully selected, even when selection ends before the `<br>` placeholder. - Clear any existing font-size styles on the list item before applying the new font-size class, so the dropdown font size applies correctly. - Empty text nodes are removed before applying font size, ensuring full list item selection and consistent font-size application. - When a list item (li) has a text color (inline style or text-* class), and nested font element has only a background color class then font element now inherits the color from the li. task - 5454639 Forward-Port-Of: odoo/odoo#241827
This update resolves a technical issue where long descriptions in related images on Sales Orders could cause website errors. The fix truncates excessively long filenames for binary streams to prevent exceeding Nginx's buffer size, ensuring images load correctly. This improves the user experience for Sales Order editing.
Original PR description
## Problem: When generating a filename for a related studio image field, if the `name` is excessively long, the response header may exceed nginx's buffer size of 4kb, causing the request to fail. ## Solution: We will truncate the assigned filename for binary streams to the first 255 characters of whatever the assigned name would have been. ## Steps to reproduce (Runbot 18): 1. Open Studio editor on a Sales Order 2. Edit List View on Sale Order Lines 3. + Related Field, Product > Image, image widget 4. Make the description very long (close to 4000 characters) 5. Note the image will not load for that SOL, and the network tab shows a 502 error opw-5360952 Forward-Port-Of: odoo/odoo#258498
This update resolves a bug where the system didn't properly validate overtime allocations when changing time off types. Previously, changes to time off types didn't trigger necessary checks, leading to incorrect calculations. This fix ensures accurate overtime adjustments are created and prevents potential errors in employee time tracking.
Original PR description
Steps to reproduce: ------------------------------------- 1. Install `hr_holidays_attendance` module 2. Time off > configurations > Time off types 3. Create new time off type as follows: * Set…
Steps to reproduce: ------------------------------------- 1. Install `hr_holidays_attendance` module 2. Time off > configurations > Time off types 3. Create new time off type as follows: * Set Approval to Approved by time off officer * Change Take time off In to Hours 4. Save the record and enable Deduct Extra Hours 5. Go to Management > Allocations 6. Create new allocation with created time off type and select 'Audrey Peterson' in Employee 7. Try to save record > Validation Error > Discard changes 8. Change time off type to Paid Time Off > add 'Audrey Peterson' > save record 9. Now change Time Off type to Created Time Off type > Save Observation: ------------------------------------- No Validation Error raised, as the employee and time off type are still the same as they were during creating allocation. Issue: ------------------------------------- In `write` method, there was no any check for the employee if it has enough overtime hours when we change Time off type (`holiday_status_id`) to overtime-deductible leave type. Check was only present in the `create` method: https://github.com/odoo/odoo/blob/a95c639db68f98351c7162de58a041a1c0ee13c5/addons/hr_holidays_attendance/models/hr_leave_allocation.py#L39-L49 Solution: ------------------------------------- 1. Create new function for validate overtime and to create adjustment 2. Added that function to `create` as well as in `write` method 3. Prevents creating a duplicate overtime adjustment for an allocation that already has one opw-5937185 Forward-Port-Of: odoo/odoo#261529 Forward-Port-Of: odoo/odoo#249793
1 change
Resolved issues and error corrections
Steps to reproduce: ------------------------ 1. Install the Helpdesk. 2. Go to Settings → Technical → Sequences and set the next number to 100. 3. Create a ticket and send a message using the "Helpdesk: Ticket Received" mail template; Observe that the correct reference (100) is used. (Open the full composer to use "Load template") 4. Now send a message using the "Helpdesk: Ticket Closed" mail template and Observe that it displays the database ID (e.g., 1) instead of the reference. C
Original PR description
Steps to reproduce: ------------------------ 1. Install the Helpdesk. 2. Go to Settings → Technical → Sequences and set the next number to 100. 3. Create a ticket and send a message using the…
Steps to reproduce: ------------------------ 1. Install the Helpdesk. 2. Go to Settings → Technical → Sequences and set the next number to 100. 3. Create a ticket and send a message using the "Helpdesk: Ticket Received" mail template; Observe that the correct reference (100) is used. (Open the full composer to use "Load template") 4. Now send a message using the "Helpdesk: Ticket Closed" mail template and Observe that it displays the database ID (e.g., 1) instead of the reference. Cause: ------ `new_ticket_request_email_template` uses the ticket reference(`object.ticket_ref`) correctly. https://github.com/odoo/enterprise/blob/d39e291ba89ad018ba6f5f9591d280a834822f27/helpdesk/data/mail_template_data.xml#L18-L19 However, the `solved_ticket_request_email_template` uses the database ID (`object.id`) instead of the actual ticket reference (`object.ticket_ref`), leading to inconsistent references in customer communications. related commit: 3ed5273 Solution: --------- Update `solved_ticket_request_email_template` to use `object.ticket_ref` instead of `object.id` opw-6087466 Forward-Port-Of: odoo/enterprise#113932
7 changes
Enhancements to existing features
This update adds the ability for users to easily attach documents from the Documents app to invoices and accounting statements through the Accounting Send & Print wizard. Previously, this functionality was limited to other modules like Quotations, creating a more streamlined process for attaching supporting files to financial documents. This improves efficiency and accuracy in generating invoices and statements.
Original PR description
The standard mail composer (e.g., used in Quotations) allows users to add files or paste links directly from the Documents app. However, this functionality was missing in the custom `account.move.send` wizard used for Invoicing and Accounting. This commit introduces the 'Add from Documents' feature to the Accounting Send & Print wizard. task- 5905930 Forward-Port-Of: odoo/enterprise#114748 Forward-Port-Of: odoo/enterprise#111422
This update makes the Preparation Display app readily available on the Odoo dashboard for Point of Sale (PoS) users. This enhancement simplifies access to key preparation information, streamlining the PoS workflow and improving operational efficiency. It addresses a previous request to improve user experience.
Original PR description
This commit makes the Preparation Display app accessible from the Odoo dashboard for PoS users. Task-[5980289](https://www.odoo.com/odoo/project/1737/tasks/5980289) Related PRs: - https://github.com/odoo/odoo/pull/251391 Forward-Port-Of: odoo/enterprise#115844 Forward-Port-Of: odoo/enterprise#109173
Resolved issues and error corrections
This update strengthens the security of the AI-powered website editor by rigorously sanitizing HTML and CSS generated by the AI. It ensures that AI-produced content is safe and doesn't introduce potential vulnerabilities or break website styling. This improves the overall stability and security of the enterprise website.
Original PR description
Following [commit] introducing the AI website editor tool, we would like to sanitize the output AI provides. We first check that the actions we received are valid, and then we sanitize the html content, before it's sent to the frontend, where it will be sanitized as well. We also validate css and check for potentially malicious patterns, and then compile it to see if there aren't any errors, so it doesn't break our styles. [commit]: https://github.com/odoo/enterprise/commit/2f69f868e22173b12d51067f0bf3b5d4dc27228f task-6143725 Forward-Port-Of: odoo/enterprise#114577
A bug in the appointment builder was causing unexpected errors when users edited appointment pages. This update corrects a misconfiguration that was sending incorrect data, preventing the builder from functioning properly. The fix ensures the builder loads correctly and reliably.
Original PR description
'Reload' was wrongly passed as a prop to BuilderContext in 'Appointment Type' Option. This ended up in a traceback when user opened the builder on an appointment page. To see the issue: - Create an appointment, and go to its frontend page in debug mode - Start editing - Click anywhere on the page => Traceback We also replace `isReload` with `reload` in order to reload the page when applying the actions. task-6147936 opw-6144915 Forward-Port-Of: odoo/enterprise#115506
This update restores previously removed fields in the asset and depreciation models, ensuring continued compatibility with existing integrations and inherited views. While the fields will be permanently hidden in the main version, this temporary change maintains system stability.
Original PR description
Commit 409b0b716e0bdab4ac3761d3bd41023b47fb1b5d removed several fields from the asset and depreciation model views to streamline the UI. However, removing these fields in a stable version can break inherited views or external integrations that rely on their presence. To maintain stability while preserving the UI improvements, this commit restores these fields but sets them to `column_invisible="True"` These fields will be permanently removed in the master version. Forward-Port-Of: odoo/enterprise#115918
This update corrects an issue where financial reports (Balance Sheet, P&L, Tax Report) were printed with zoomed-in layouts due to a default paper format setting. The change now uses the standard Euro paper format for these reports, ensuring accurate and professional printing.
Original PR description
for financial reports DIN 5008 paper format (dpi=70, postal margins) was applied to all reports because it is set as the company default by both the Swiss and German localizations. This caused financial reports (Balance Sheet, P&L, Tax Report) to appear zoomed in when printed to PDF. DIN 5008 is only appropriate for documents sent by post (invoices, credit notes, follow-up letters). Override `get_paperformat` in each localization to return the standard Euro format when rendering accounting reports. task-6053938 Forward-Port-Of: odoo/enterprise#114330
This update corrects a bug in the Gantt planning view where the dialog wouldn't display unscheduled shifts for resources with no scheduled shifts. The change ensures the dialog accurately lists all available shifts, improving the planning process and reducing wasted time. This fix was triggered by a change in how resource IDs were handled.
Original PR description
Steps to Reproduce --- 1. Open the Planning Gantt view. 2. Click a cell that belongs to a resource with no scheduled shifts. 3. The Plan dialog opens with an empty list. Issue --- In saas-19.2, the context field for the selected resource was renamed from resource_id to resource_ids. Hence it remained in the dialog context. Current Behaviour --- The Plan dialog is filtered by resource_ids, returning no results for unscheduled resources. Expected Behaviour --- The dialog should list all unscheduled shifts matching the resource's roles, or all unscheduled shifts if no roles are defined, while preserving the scheduling context once a shift is selected. Fix --- Set search_default_resource_ids to false in getSelectCreateDialogProps(). task-4922525 Forward-Port-Of: odoo/enterprise#115822
8 changes
New functionality added to Odoo
This update adds the ability to export General Ledger reports as CSV files. This allows users to easily download and analyze their financial data for reporting and record-keeping purposes. This enhancement improves data accessibility and streamlines financial reporting workflows.
Original PR description
task-5734354 Forward-Port-Of: odoo/enterprise#111854 Forward-Port-Of: odoo/enterprise#107638
Enhancements to existing features
This update enhances the accuracy of write-off reconciliation within the accounting system. It now filters reconciliation models to only display those relevant to the current statement lines, preventing errors caused by unrelated journal links. This ensures users only see and reconcile transactions that accurately match.
Original PR description
In the account reconciliation wizard: - Only show manually created reconciliation models. - Only display reconciliation models that are not linked to any journal or are specifically linked to the journal of the statement lines. task-6059342
Resolved issues and error corrections
This update fixes a minor usability issue in the bank reconciliation quick creation process. Previously, an error would open a form dialog unexpectedly. Now, errors are displayed directly, providing a clearer and more intuitive user experience for creating bank reconciliation records.
Original PR description
Before this commit, when there is an error in the bank rec widget quick create. We open the form dialog which is kind a weird, we would rather expect to have the error displayed. This commit will override the showFormDialogInError to close the quick create and throw the error. no task id
This update fixes a recurring error that occurred when manually creating vendor bills and DIAN commercial events were rejected. The fix ensures that the system correctly handles rejected events, preventing a traceback and improving the reliability of the DIAN integration. This change is crucial for accurate financial reporting and avoids disruptions caused by this specific error.
Original PR description
This commit fixes an error when retrying a rejected DIAN commercial event on manually created Vendor Bills. This is a tricky error as it only happens when the vendor bill is manually created and the…
This commit fixes an error when retrying a rejected DIAN commercial event on manually created Vendor Bills. This is a tricky error as it only happens when the vendor bill is manually created and the event is rejected (missing/incomplete info or servers down which is common). To add more to this, this error can only be reproduced without demo mode as it forces the acceptance, forcing the need of valid testing or production DIAN credentials How to reproduce it: - Install l10n_co_dian module - On CO company with all required DIAN configuration set - Create a vendor bill manually with enough information to send to the DIAN but causing it to be rejected. - Click on acknowledge receipt, it should be rejected - Complete information to be accepted and again click on acknowledge receipt - A traceback appear Code expects the last document to be the most current one created when triggering commercial event, but this is not true when a rejected document exists since this is unlinked and cache invalidated causing the recordset to be invalidated and retrieved again by ORM with default order, so now the last document is the oldest one without an attachment causing the traceback opw-6104541
This update significantly speeds up the process of writing data to reconciliation models in the accounting system. By optimizing how the system retrieves and filters bank statement lines, the update reduces processing time and memory usage, particularly for large datasets. This results in faster and more efficient reconciliation operations.
Original PR description
When writing on reconcile models, the ORM fetches all the unreconciled bank.statement.lines then calls filtered on `unreconciled_statement_lines.line_ids`. In databases with a lot of unreconciled…
When writing on reconcile models, the ORM fetches all the unreconciled bank.statement.lines then calls filtered on `unreconciled_statement_lines.line_ids`. In databases with a lot of unreconciled statement lines scattered across multiple models, this `filtered` can be heavy, both in memory (fetching all the amls fields) and in time. This commit fixes this by using a search to prefilter the amls using the reconcile models in self. Then we filter the result on `suspense_account_id`. This greatly reduces the number of lines loaded up in memory and speeds up writing on reconcile models. ### speedup In a customer database with 484 042 statement.lines, 141 000 unreconciled statement.lines, 37 account.reconcile.model. Time to write on a reconcile_model. | Nbr linked unreconciled lines| Before PR | After PR | |:----------------------------:|:---------:|:--------:| | 702 | 40s | 3s | | 2000 | 40s | 4.47s | | 10000 | 40s | 11.28s | Since most of the slowness comes from the `filtered` call, the number of unreconciled statement lines linked to the reconcile.model being updated has no impact on the timing before this patch. ### memory For the 702 unreconciled lines case, the memory consumption goes - 2.2 Gb -> 200Mb.
This update fixes an issue where the tax return reporting dashboard wouldn't display all tax return groups, showing only the first few. The change ensures that all tax return groups are expanded, providing a complete and accurate view for users preparing their tax returns. This improves the usability of the accounting dashboard.
Original PR description
When navigating to the tax return list view from the accounting dashboard, only the first few groups were expanded, leaving subsequent groups appearing empty with only a date header visible. Steps to reproduce: - Generate several tax returns. - Open the main Accounting dashboard. - On a Tax Return card, click one of the generated buttons. - Scroll down the resulting list view. Issue: After 10 groups, following sections appear empty, showing only the header Analysis: By default, the web client limits the number of automatically opened groups. This change adds 'max_number_opened_groups' to the buttons context, aligning the behavior with the primary 'Tax Return' button action. https://github.com/odoo/enterprise/blob/1a2afda205c41773747ed5f174d75843effbbe9f/account_reports/views/account_return_views.xml#L183 opw-5769978 Forward-Port-Of: odoo/enterprise#113332
This update resolves an issue where the Enterprise portal's worksheet wasn't saving correctly, leading to a failure in the automated tour. The fix ensures the worksheet functions properly, preventing tour disruptions and improving the user experience.
Original PR description
The worksheet is not auto saving and the worksheet is not rendering properly in portal, which caused the tour to fail. runbot error-242479 Forward-Port-Of: odoo/enterprise#115761
A bug was causing the appointment builder to crash when editing appointments. This update corrects a misconfiguration that was sending incorrect data, preventing the builder from functioning properly. The fix ensures the builder loads correctly and reliably.
Original PR description
'Reload' was wrongly passed as a prop to BuilderContext in 'Appointment Type' Option. This ended up in a traceback when user opened the builder on an appointment page. To see the issue: - Create an appointment, and go to its frontend page in debug mode - Start editing - Click anywhere on the page => Traceback We also replace `isReload` with `reload` in order to reload the page when applying the actions. task-6147936 opw-6144915 Forward-Port-Of: odoo/enterprise#115506
2 changes
Resolved issues and error corrections
This update resolves issues preventing employees with manually created badges (without the '041' prefix) from logging into Point of Sale. It corrects a misinterpretation of barcode scans as PIN codes and ensures the system correctly recognizes badges, improving employee access and reducing login errors.
Original PR description
2 Fixes 1. Recognize cashier with badge code not starting with "041" Those are cashier with badges manually created by typing in to the badge field, and not through the "generate" button 2. Scanning the badge with barcode reader was treated as entering the PIN value, throwing an error "Wrong PIN" opw-6125029
This update allows planning managers to copy planning slots to employees with flexible calendars without encountering access errors. Previously, the system required access to employee records, limiting manager functionality. Now, managers can seamlessly copy slots, streamlining scheduling processes.
Original PR description
**Purpose**: A user with planning manager rights but no access to employee and contract records should be able to copy and movea planning slot to an employee with a flexible resource_calendar without getting an access rights error. **Before this commit:** When copying a planning slot, the system tries to compute the working hours over the period of the slot. This will raise an access rights error if the user doesn't have access to employee and contract records when the slot is moved to a flexible resource_calendar. **After this commit:** The user can copy a planning slot without access rights error with only planning manager rights, even if the slot is moved to a flexible resource_calendar. **Steps to reproduce:** 1. Install Planning and Planning Contract modules. 2. Create a user with only planning manager rights and no access to employee and contract records. 3. Copy a planning slot to an employee with a flexible resource_calendar. opw-6166557