Wednesday, April 29, 2026
156 changes
14 changes
Enhancements to existing features
This update simplifies the asset depreciation views in Odoo Enterprise, making them easier to use. Redundant information has been removed, and the search functionality has been streamlined to focus on key depreciation settings. A default 'Active' filter has been added for clarity.
Original PR description
Simplify the asset depreciation views by removing redundant information and improving usability. The method column is removed from the assets list since it is already included in the depreciation model name. The depreciation model list is cleaned up to show only the model by default, while filters for method, period, and number of depreciations remain available in the search view. A default Active filter is also added to display only active records. task-6128781 Forward-Port-Of: odoo/enterprise#114419
Resolved issues and error corrections
This pull request addresses an issue with tests related to Mexican electronic invoicing (l10n_mx_edi). It reverts a previous change that introduced errors in how rounding was being tested, ensuring accurate calculations for invoices. This fix improves the reliability of the l10n_mx_edi module.
Original PR description
This reverts commit 50ad147e1f579a094141f6f126e02f75ecc62ab3. Forward-Port-Of: odoo/enterprise#115611
6 changes
Resolved issues and error corrections
This pull request addresses a problem with testing related to invoice rounding in the l10n_mx_edi module. It reverts a previous change that was causing test failures. The fix ensures accurate invoice calculations and reporting for Mexican tax purposes.
Original PR description
This reverts commit 50ad147e1f579a094141f6f126e02f75ecc62ab3. Forward-Port-Of: odoo/enterprise#115610
8 changes
Resolved issues and error corrections
This update fixes a minor bug in the tests for our Point of Sale system. Specifically, it corrects how the tests handle empty data results and prevents unexpected behavior when comparing values. These changes ensure the tests run reliably and accurately, maintaining the stability of the POS functionality.
Original PR description
..., l10n_es_pos, l10n_jo_edi_pos, l10n_br_edi_pos
---
Fix two bugs in the checkTicketData() test helper:
- Replace falsy check `!statement` with `!statement.length` to
correctly handle empty NodeList results from querySelectorAll,
as an empty NodeList is still truthy.
- Replace loose equality `ruleFound == rule.negation` with strict
equality `ruleFound === (rule.negation || false)` to avoid
unintended type coercion when `rule.negation` is undefined.
---
Task: https://www.odoo.com/odoo/project/1737/tasks/61475662 changes
Resolved issues and error corrections
This update corrects a bug in the l10n_mx_edi module related to rounding calculations within its test files. The change reverts a previous commit that introduced the issue, ensuring accurate reporting of VAT amounts. This ensures the Mexican VAT module functions correctly and reliably.
Original PR description
This reverts commit 50ad147e1f579a094141f6f126e02f75ecc62ab3.
3 changes
Resolved issues and error corrections
This update fixes an issue where users without write access to the Point of Sale (PoS) in the AT (Austria) version of Fiskaly would receive an access error when attempting to authenticate after a token expiration. The fix ensures that users are correctly denied access, preventing errors and improving the PoS experience for AT business customers.
Original PR description
When trying to auth directly from the PoS when the token expires, if you are logged in with a user that doesn't have write access to the PoS. You would get an access error. Steps to reproduce: ------------------- * Setup Fiskaly in an AT company * Open PoS and try to make a sale * To fake the token expiration I modified the code so that the request always return 401 status code > Observation: You get an access error opw-5925203
3 changes
Resolved issues and error corrections
This update simplifies the process for Dutch companies to manage their digipoort certificates within the accounting settings. Previously, users had to navigate to a separate menu to create a certificate before setting it in the main accounting view. Now, users can directly create and edit digipoort certificates within the accounting settings, improving the user experience.
Original PR description
Description of the issue this commit addresses: In the Accounting settings on a Dutch company, the setting for the selection of the digipoort certificate only lets you choose amongst existing certificates so if you haven't created one yet, you need to go to the dedicated certificates menu to create one and then come back to the digipoort certificate setting to set it. This is poor UX. --- Desired behavior after this commit is merged: This is improved by letting the user Create and Edit inside the digipoort certificate setting directly. --- task-6065566 Forward-Port-Of: odoo/enterprise#114307
7 changes
Enhancements to existing features
This update simplifies the URLs used to access spreadsheets within Odoo Enterprise. The change replaces a lengthy `sheet_id` parameter with a shorter `sid` parameter, making the URLs easier to read and manage. This is a minor improvement focused on user experience.
Original PR description
Current behavior before PR: - The URL used the `sheet_id` parameter, which was unnecessarily long. Desired behavior after PR is merged: - Replace `sheet_id` with `sid` to make the URL more concise and readable. Task: [6171969](https://www.odoo.com/odoo/project.task/6171969) Forward-Port-Of: odoo/enterprise#115488
8 changes
Enhancements to existing features
This update ensures the scale certification icon is displayed in Odoo Enterprise v19.0. This change reflects our recent certification achievement and provides users with clear visual confirmation of our compliance.
Original PR description
This PR makes the scale certification icon visible in v19.0 since we are now certified for this version
4 changes
Resolved issues and error corrections
This update fixes a bug where users without the necessary permissions were encountering errors when trying to access their profile information. The team added a field to the user data structure to allow access to country codes, resolving the permission issue and ensuring all users can view their profile details.
Original PR description
Issue: - When a user without access rights tries to view their profile, a permission error is raised. - Issue PR: https://github.com/odoo/odoo/pull/254162 Fix: - Added `employee_country_code` to SELF_READABLE_FIELDS in `res.users`. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#255260
1 change
Resolved issues and error corrections
This update resolves an issue where a duplicate XML ID was present in the `l10n_ke_he_payroll` module's configuration for the `hr.salary.rule` model. This duplication caused potential errors and inconsistencies in payroll calculations. The fix ensures data integrity and accurate processing of employee salary rules.
Original PR description
This commit avoids duplicated xml_id for `hr.salary.rule` model. In commit https://github.com/odoo/enterprise/commit/a7d51fa2ee8b1af0e807b3e9cb6e313d8885ff67, key `l10n_ke_employees_salary_pension_contribution` (sequence 72) was deleted and added key `l10n_ke_employees_salary_pension_contribution` (sequence 35). In commit https://github.com/odoo/enterprise/commit/c23243be9ca833acea7089defadbe0eaf869051d, key `l10n_ke_employees_salary_pension_contribution` (sequence 72) was added again.
This update corrects a bug in the employee leave calculation process. Previously, leave time-offs were incorrectly recomputed whenever an employee's version changed, leading to inaccurate data. The fix ensures leave time-offs are calculated based on the correct date range, resolving this issue.
Original PR description
The employee_type_id, job_id and structure_type_id fields on hr.leave were stored related fields pointing to current_version_id. This caused all time offs to be recomputed whenever the employee's current version changed, and stored the current version's values instead of those active at the time of the leave. Replace the related fields with a compute based on date_from, resolving the version active at the leave's start date. task-6175086
This update corrects typos and standardizes wording within the French reporting module (l10n_fr_reports). These changes ensure greater accuracy and consistency in French-language reports, improving the overall user experience for French-speaking customers and internal teams.
Original PR description
Fixes typos and ensures wording consistency No task ID
This update fixes a visual issue in the invoice report by adding spacing between the Source Invoice and Reference fields. Previously, long invoice names would overlap, making the report difficult to read. This change ensures a cleaner, more professional presentation of invoice data.
Original PR description
Before this commit: - When the Source Invoice name is too long, it connect with the Reference field due to missing spacing. After this commit: - Added margin (`me-3`) to the Source Invoice block to ensure proper spacing and avoid overlap with the Reference field. task-6074560 | Before | After | |--------|--------| | <img width="801" height="474" alt="image" src="https://github.com/user-attachments/assets/cbef48f8-c37b-4263-8c6f-a6b0de3716b9" /> | <img width="780" height="462" alt="image" src="https://github.com/user-attachments/assets/fa01e0b5-d877-424f-a51f-8da0ce5a6bd5" /> | --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#256641
This update resolves visual inconsistencies and usability problems within the employee salary management module after a recent change related to benefit configurations. The fix ensures a smoother and more intuitive experience for HR staff when managing employee compensation details. This improves overall efficiency and reduces potential errors.
Original PR description
Task: 6141770
This update adds thorough tests for the new customer rating feature introduced in odoo/enterprise#109696. The tests ensure that rating emails are only sent when appropriate (slot completion or report signing) and that the rating process itself functions correctly. This enhances the reliability and accuracy of customer feedback collection.
Original PR description
This commit adds tests for the customer ratings flow introduced in odoo/enterprise#109696. Specifically, it checks that the customer rating request email is only sent upon completing the slot, or after signing the customer report. It also tests the rating itself. task-6147846
This update prevents portal users from seeing the 'View Timesheets' button on invoices when they lack the necessary permissions. Previously, the system incorrectly displayed the button based on the presence of timesheets linked to the sale order. This fix ensures users only see timesheets they are authorized to view, improving data security and user experience.
Original PR description
sale: add sale order specific hook to extend page values ------ Allows adding custom data (e.g., timesheets) without overriding generic _get_page_view_values sale_timesheet: hide 'View Timesheets'…
sale: add sale order specific hook to extend page values
------
Allows adding custom data (e.g., timesheets) without overriding generic _get_page_view_values
sale_timesheet: hide 'View Timesheets' button for users without access
-------
Steps to Reproduce:
-----------------
- Create a product with the invoice policy set to Based on Timesheets
- Enable Project and Tasks on the order.
- Create and confirm a sale order using a portal user.
- Log timesheets on the related task.
- Create an invoice from the sale order.
- Log in as the portal user and open the invoice.
- Click the 'View Timesheets' button.
Issue:
-------------
The 'View Timesheets' button is shown to the portal user even though they don’t have access to view timesheets.
Root Cause:
------------
The timesheets are linked to the sale order, so the button appears based on the timesheet_count, but the portal user does not actually have permission to access those timesheets.
Fix:
-----------
We replaced the timesheet_count check with a check that verifies whether the user actually has access to any of the related timesheets.
task-4745519
Forward-Port-Of: odoo/odoo#261859
Forward-Port-Of: odoo/odoo#209552This update resolves a bug where portal users were incorrectly seeing the 'View Timesheets' button, even without the necessary permissions. The fix involved updating a helper method to ensure users only see this button when they have the appropriate access rights. This improves the user experience and prevents unauthorized access.
Original PR description
**Issue:** The 'View Timesheets' button is shown to the portal user even though they don’t have access to view timesheets. Currently, we have added _sale_order_get_page_view_values in the sale module, which is overridden in sale_timesheet. We are using it here. task-4745519 Forward-Port-Of: odoo/enterprise#115533 Forward-Port-Of: odoo/enterprise#113481
This update corrects a technical issue where quotation templates created from tasks were incorrectly assigning task IDs to non-product lines (like notes). This prevented proper task completion and could lead to errors. The change ensures that task IDs are only applied to product lines, improving the reliability of task management within quotations.
Original PR description
When a sales order is created from a task, if a template is used, the first line is given a task ID from the context's default_task_id. If this first line were to be a non-product line (section/note), this would still be given a task_id. This is unneeded and can cause issues such as a float precision error when trying to mark the task as done. This change checks to see if the line has a display_type, in which case it will set the task_id to false. Steps to reproduce: 1. Create a new Quotation Template with a single section line 2. Create a new project 3. Open the project settings 4. Enable 'Billable' and 'Extra Quotations' 5. Create a new task 6. Select 'New Quotation' 7. Select the quotation template with just a section 8. Enter customer (to allow saving) 9. There will be a single order line, a section, with a task_id opw-6122235 Forward-Port-Of: odoo/odoo#261298
This update makes the timesheet assistant view more user-friendly by implementing small adjustments for better clarity. These changes enhance the overall experience for users managing their timesheets within the Odoo Enterprise system.
Original PR description
Improve the assistant view with small adjustments to enhance clarity and user‑friendliness. Forward-Port-Of: odoo/enterprise#115288 Forward-Port-Of: odoo/enterprise#114339
This update resolves a bug that prevented the cumulated balance from being correctly calculated when using journal groups in the general ledger. The fix ensures that the system properly handles scenarios where all journals are selected via the filter, leading to accurate balance reporting.
Original PR description
Usually the journal filters doesn't allow the selection of all journals when no journal group is present. However, when a journal group is added, the journal filters allow the selection of all the journal groups to be valid. So, we end up with a filter Journals, with all journals selected but the cumulated balance is not computed. To fix this, if all the journals are selected in the Journals filter, we dont add the journal_ids filter. Step to reproduce: - On any journal, create a journal group - Go to the general ledger - In the Journals filter select "Local Gapp" and the created journal group - Click the journal items button on the line of any account - The cumulated balance will be at 0 even when all the journals are selected. Forward-Port-Of: odoo/enterprise#112943
This update resolves a visual issue where the 'is typing' indicator icon was misaligned in Safari browsers. The fix avoids complex animation techniques within Safari, preventing a technical problem related to CSS rules and `foreignObject`. This ensures consistent display of the typing indicator across all browsers.
Original PR description
Before this commit, "is typing" icon in Safari browser was misplaced with relative to Discuss Avatar image. This happens due to a bug in Safari that affects `foreignObject` with elements that use…
Before this commit, "is typing" icon in Safari browser was misplaced with relative to Discuss Avatar image. This happens due to a bug in Safari that affects `foreignObject` with elements that use some CSS rules, like `opacity`. A prior fix was done to apply on change of opacity with classnames [1], which fixed "offline" icon but is typing still has issues: - change of opacity doesn't use classname, this is coupled to animation frame in CSS - the "is typing" icon uses `filter` and `transform`, both of which are also a problem This commit fixes the issue by not using icon animation for Safari browsers. The rules were mostly used for the animation, and while it's feasible to support the visual in Safari, this would mean a lot of code gymnastic that is not worth supporting this nice-to-have visual. To give an idea of implementation: this would mean a `<g>` for each dot of the typing icon that requires deep integration of `Typing` and `DiscussAvatar` icons, and we should make sure that the styles are applied on the `<g>`. Also a `filter` was used to give better contrast of the typing dot and the green background, notably in dark theme. This is also removed by this commit specifically in Safari, as the technique uses `filter` which causes the bug in Safari. [1]: https://github.com/odoo/odoo/pull/260341 Task-6173311 Before / After <img width="630" height="296" alt="before" src="https://github.com/user-attachments/assets/e600a162-93be-4c11-b5bb-371c01eed773" /> <img width="630" height="298" alt="after" src="https://github.com/user-attachments/assets/36be873a-d24b-49b5-bf1e-e5e462491bde" /> Forward-Port-Of: odoo/odoo#261837
This update corrects a bug in the holiday calculation process. Previously, the system incorrectly used contract start dates instead of version dates, leading to unnecessary recalculations. This change ensures holiday calculations are accurate and efficient, especially when dealing with multiple contract versions.
Original PR description
Currently if we have 2 versions on the same contract dates, we check leaves from the contract_start_date, instead of the version date. Meaning if we only have versions on 1 contract date, we will recalculate ALL the leaves all the time. This should not be the case. Forward-Port-Of: odoo/odoo#261963
This update resolves a bug where the cumulated balance calculation in the general ledger was incorrect when using journal groups. The fix ensures that the balance is properly computed when all journals are selected through the journal filter, addressing a discrepancy caused by previous filter logic.
Original PR description
Usually the journal filters doesn't allow the selection of all journals when no journal group is present. However, when a journal group is added, the journal filters allow the selection of all the journal groups to be valid. So, we end up with a filter Journals, with all journals selected but the cumulated balance is not computed. To fix this, if all the journals are selected in the Journals filter, we dont add the journal_ids filter. Step to reproduce: - On any journal, create a journal group - Go to the general ledger - In the Journals filter select "Local Gapp" and the created journal group - Click the journal items button on the line of any account - The cumulated balance will be at 0 even when all the journals are selected.
This update corrects a bug in the holiday calculation process. Previously, the system incorrectly used contract start dates instead of version dates when determining holiday eligibility, leading to unnecessary recalculations. This change ensures holiday calculations are accurate and efficient, especially when dealing with multiple contract versions.
Original PR description
Currently if we have 2 versions on the same contract dates, we check leaves from the contract_start_date, instead of the version date. Meaning if we only have versions on 1 contract date, we will recalculate ALL the leaves all the time. This should not be the case.
This update resolves an issue where pressing 'Enter' within the emoji suggestion picker in the discuss HTML composer would unexpectedly send a message. The fix prevents the 'Enter' key from triggering the message sending action, improving the user experience and preventing unintended message submissions.
Original PR description
In discuss html composer, when emoji suggestion list is open, pressing enter sends the message. This commit fixes this issue by preventing the default action of the enter key when the emoji suggestion list is open. task-6173045 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update corrects a technical issue where quotation templates linked to tasks were incorrectly assigning task IDs to non-product lines (like notes). This prevented proper task completion and could lead to errors. The change ensures that task IDs are only applied to product lines within a quotation template, improving system stability.
Original PR description
When a sales order is created from a task, if a template is used, the first line is given a task ID from the context's default_task_id. If this first line were to be a non-product line (section/note), this would still be given a task_id. This is unneeded and can cause issues such as a float precision error when trying to mark the task as done. This change checks to see if the line has a display_type, in which case it will set the task_id to false. Steps to reproduce: 1. Create a new Quotation Template with a single section line 2. Create a new project 3. Open the project settings 4. Enable 'Billable' and 'Extra Quotations' 5. Create a new task 6. Select 'New Quotation' 7. Select the quotation template with just a section 8. Enter customer (to allow saving) 9. There will be a single order line, a section, with a task_id opw-6122235 Forward-Port-Of: odoo/odoo#261298
This update resolves an error preventing users from accessing the Spain VAT Books report within the Enterprise application. The issue stemmed from an outdated reference in a report template. This fix ensures the report functionality is restored for Spanish companies, improving reporting accuracy and usability.
Original PR description
**Steps to reproduce:** - Install the `l10n_es_reports` and `accountant` modules. - Switch to an ES Company. - Navigate to Accounting > Reporting > Spain > `VAT Books`. **Error:** `Element '<xpath…
**Steps to reproduce:** - Install the `l10n_es_reports` and `accountant` modules. - Switch to an ES Company. - Navigate to Accounting > Reporting > Spain > `VAT Books`. **Error:** `Element '<xpath expr="//button[@t-if='this.props.line.chatter and !this.ui.isSmall']" position="replace"/>' cannot be located in element tree` **Root Cause:** After commit [1], the condition `this.ui.isSmall` was removed from the template `account_reports.AccountReportLineNameCustomizable` at [2]. However, the inherited template `l10n_es_reports.VatBooksLineName` was not updated accordingly and still references the old condition, which leads to the error. **Fix:** This commit prevents errors and ensures that users can open the `VAT Books` report by applying a fix similar to [2]. [1]: https://github.com/odoo-dev/enterprise/commit/fd0afa474600586e8703ec377f962c8d7d94307a [2]: https://github.com/odoo/enterprise/blob/7362f1c5be7f496bdab660ed8fad37a6dd283616/account_reports/static/src/components/account_report/line_name/line_name.xml#L81 opw-6169697 opw-6170173 Forward-Port-Of: odoo/enterprise#115412
This update corrects a bug that appeared when editing appointment pages in the website builder. Specifically, an unnecessary attribute was removed from a component, preventing errors during debug mode. This ensures a smoother editing experience for users.
Original PR description
Steps to reproduce: =================== 1. Enable debug mode (`?debug=assets`). 2. Open an appointment page in the website & edit mode. 3. Click the appointment type block. => Traceback "Invalid…
Steps to reproduce: =================== 1. Enable debug mode (`?debug=assets`). 2. Open an appointment page in the website & edit mode. 3. Click the appointment type block. => Traceback "Invalid props for component 'BuilderContext': unknown key 'reload'" Cause: ====== The `reload="'/'"` attribute on `<BuilderContext>` in appointment_type_option.xml was never a valid prop on the component: `basicContainerBuilderComponentProps` (the source of `BuilderContext`'s props) doesn't include `reload`. https://github.com/odoo/odoo/blob/f4700ba0f070003ac8a3828f9fd8583c27671e3f/addons/html_builder/static/src/core/utils.js#L887 In normal mode OWL silently ignores unknown attributes, but in debug mode prop validation runs and raises a Traceback Solution: ========= The reload behavior the actions actually need is already handled via `BuilderAction.isReload = true` in `appointment_type_option_plugin.js`, https://github.com/odoo/enterprise/blob/21ed8a6c1cad8d533d04659a3997c2d7e0c3965b/website_appointment/static/src/plugins/appointment_type_option_plugin.js#L35 so the attribute can be removed. opw-6152741 Forward-Port-Of: odoo/enterprise#115242
This update resolves a minor issue where the IoT box pairing dialog could freeze indefinitely. Additionally, it corrects a localization problem where the 'Connecting' placeholder wasn't correctly translated in non-English versions. These changes ensure a smoother and more reliable experience for users adding IoT devices to their Odoo Enterprise system.
Original PR description
This commit fixes two small issues with IoT pairing: 1. When pairing an IoT box, even after the DB has discovered the IoT box and added it as a record, the dialog will keep waiting forever. If you close the dialog manually the IoT box appears as expected. 2. If using a language other than English, the placeholder 'Connecting' name will not be replaced when the IoT finishes pairing. The IoT box can still be used as normal however.
This update resolves a technical issue where an incorrect import statement was present in the adam_scale_driver.py file. This fix ensures the proper functioning of the point-of-sale system, preventing potential errors and maintaining system stability. The change is a routine bug fix.
Original PR description
This PR fixes the wrong import in adam_scale_driver.py opw-6173563
This update resolves an issue where the POS system was loading all employees, regardless of their employee type, leading to performance slowdowns. The change now ensures that only basic employees are loaded during a POS session, improving the system's responsiveness and efficiency. This enhancement focuses on a technical fix to optimize the POS experience.
Original PR description
Before this commit, when some employee was assigned to advanced or minimal employee, all of the employees were loaded in the POS session, because there was no basic employee assigned to the POS config. opw-5898068 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#259730 Forward-Port-Of: odoo/odoo#247043
This update fixes an issue where all employees were loaded into POS sessions when specific employee types were used. Now, only the basic employee assigned to the POS configuration is loaded, improving performance and reducing unnecessary data loading. This change enhances the overall POS experience.
Original PR description
Before this commit, when some employee was assigned to advanced or minimal employee, all of the employees were loaded in the POS session, because there was no basic employee assigned to the POS config. opw-5898068
This update corrects a technical issue where quotation templates linked to tasks were incorrectly assigning task IDs to non-product lines (like notes). This prevented proper task completion and could lead to data errors. The change ensures that task IDs are only applied to product lines within a quotation template.
Original PR description
When a sales order is created from a task, if a template is used, the first line is given a task ID from the context's default_task_id. If this first line were to be a non-product line (section/note), this would still be given a task_id. This is unneeded and can cause issues such as a float precision error when trying to mark the task as done. This change checks to see if the line has a display_type, in which case it will set the task_id to false. Steps to reproduce: 1. Create a new Quotation Template with a single section line 2. Create a new project 3. Open the project settings 4. Enable 'Billable' and 'Extra Quotations' 5. Create a new task 6. Select 'New Quotation' 7. Select the quotation template with just a section 8. Enter customer (to allow saving) 9. There will be a single order line, a section, with a task_id opw-6122235 Forward-Port-Of: odoo/odoo#261298
This update resolves an error preventing users from accessing the Spain VAT Books report within the Odoo Enterprise system. The issue stemmed from an outdated template referencing a removed condition, which caused a search failure. This fix ensures the report functionality is restored for Spanish companies.
Original PR description
**Steps to reproduce:** - Install the `l10n_es_reports` and `accountant` modules. - Switch to an ES Company. - Navigate to Accounting > Reporting > Spain > `VAT Books`. **Error:** `Element '<xpath…
**Steps to reproduce:** - Install the `l10n_es_reports` and `accountant` modules. - Switch to an ES Company. - Navigate to Accounting > Reporting > Spain > `VAT Books`. **Error:** `Element '<xpath expr="//button[@t-if='this.props.line.chatter and !this.ui.isSmall']" position="replace"/>' cannot be located in element tree` **Root Cause:** After commit [1], the condition `this.ui.isSmall` was removed from the template `account_reports.AccountReportLineNameCustomizable` at [2]. However, the inherited template `l10n_es_reports.VatBooksLineName` was not updated accordingly and still references the old condition, which leads to the error. **Fix:** This commit prevents errors and ensures that users can open the `VAT Books` report by applying a fix similar to [2]. [1]: https://github.com/odoo-dev/enterprise/commit/fd0afa474600586e8703ec377f962c8d7d94307a [2]: https://github.com/odoo/enterprise/blob/7362f1c5be7f496bdab660ed8fad37a6dd283616/account_reports/static/src/components/account_report/line_name/line_name.xml#L81 opw-6169697 opw-6170173 Forward-Port-Of: odoo/enterprise#115412
A technical issue causing errors when editing appointment types in the builder has been resolved. The fix removed a misconfigured 'reload' prop, preventing a traceback and ensuring the builder functions correctly. This improves the user experience for appointment type customization.
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
This update fixes a bug where users without the necessary permissions were encountering errors when trying to access their profile information. The team added a specific field to the user data to ensure that all users can view their own profile details, regardless of access rights. This improves the user experience and prevents frustration.
Original PR description
Issue: - When a user without access rights tries to view their profile, a permission error is raised. - Issue PR: https://github.com/odoo/odoo/pull/254162 Fix: - Added `employee_country_code` to SELF_READABLE_FIELDS in `res.users`. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#255260
This update corrects inaccurate help text for employee fields within the Point of Sale (PoS) module. The previous text was misleading, stating that all employees could log in if the lists were empty. This change ensures the help text accurately describes the purpose of each field – minimal and basic employee selections – improving clarity for users.
Original PR description
Both `minimal_employee_ids` and `basic_employee_ids` had the same incorrect help text ("If left empty, all employees can log in to PoS"), which did not reflect the actual purpose of each field. The condition also only holds when all three employee lists are empty, not per-field.
opw-6171362
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-prThis update addresses a problem where the system didn't properly close sessions after a user left the Opening Control interface. This caused confusion and potential errors. The change ensures sessions are deleted when the user closes their browser or navigates away, improving the user experience and system stability.
Original PR description
When the user closes the browser tab or navigates away after a session in opening_control, the session is not deleted and it causes confusion. opw-6114420
This update corrects a technical problem that caused delays in voice message tests. By ensuring asynchronous code waits for the voice player to load, the system now runs reliably. This prevents potential errors and ensures consistent test results.
Original PR description
Before this commit, voice message tests don't wait until the voice player is drawn before resolving the corresponding promise. This may lead to race conditions. This commit fixes the issue by properly `await`ing the completion of the asynchronous code before resolving the promise. Related runbot error: https://runbot.odoo.com/odoo/error/242411 Community: https://github.com/odoo/odoo/pull/261910
Resolved issues and error corrections
This update addresses an issue where Coda transaction files sometimes lacked complete data, leading to default 'No description' labels appearing on bank statements. The change ensures accurate payment references by handling potential missing data from the Coda file, preventing incorrect statement line descriptions.
Original PR description
It can happens that coda file with transaction have no communication or structure communication. This can cause problem since we will have an empty payment_ref for the statement line. This will add "No description" as a default value. task-6045138 Forward-Port-Of: odoo/enterprise#111300
This pull request addresses a problem with invoice testing related to rounding calculations in the l10n_mx_edi module. It reverts a previous change that introduced the issue and confirms the fix. This ensures accurate invoice generation and reporting for Mexican businesses using this module.
Original PR description
This reverts commit 50ad147e1f579a094141f6f126e02f75ecc62ab3. Forward-Port-Of: odoo/enterprise#115612
This update corrects a discrepancy in the automated tests for the Odoo Enterprise subscription module. The community branch now uses websocket communication instead of polling. The tests have been adjusted to reflect this change, ensuring accurate test results and maintaining the stability of the subscription functionality.
Original PR description
In community branch, polling was replaced by a websocket call Adjust tests to use that url instead of polling. task-4951436 See Also: https://github.com/odoo/odoo/pull/232112
This update fixes a bug in the payroll calculation that previously failed to account for zero worked hours. Now, the system accurately computes full-time equivalent (FTE) figures, ensuring payroll reports and data are reliable. This improves the accuracy of employee time tracking and reporting.
Original PR description
Before this commit, the full-time equivalent compute was not taking into account the fact that the total worked hours could be 0. Forward-Port-Of: odoo/enterprise#115598
This update corrects a technical issue where styling applied to list views was incorrectly affecting other views within the account reports module. The fix ensures that styling is applied only to the intended list views, improving the visual consistency of the reporting interface. This resolves a minor cosmetic problem.
Original PR description
The css selector used to add the small border at the start of the line. So it end-up being applied in other view as well. task-6141685 Forward-Port-Of: odoo/enterprise#115568 Forward-Port-Of: odoo/enterprise#114903
This update resolves an issue where the cumulated balance calculation in the general ledger was incorrect when using journal groups. The fix ensures that the balance is accurately computed regardless of whether all journals are selected, improving the reliability of financial reporting.
Original PR description
Usually the journal filters doesn't allow the selection of all journals when no journal group is present. However, when a journal group is added, the journal filters allow the selection of all the journal groups to be valid. So, we end up with a filter Journals, with all journals selected but the cumulated balance is not computed. To fix this, if all the journals are selected in the Journals filter, we dont add the journal_ids filter. Step to reproduce: - On any journal, create a journal group - Go to the general ledger - In the Journals filter select "Local Gapp" and the created journal group - Click the journal items button on the line of any account - The cumulated balance will be at 0 even when all the journals are selected. Forward-Port-Of: odoo/enterprise#112943
Resolved issues and error corrections
This update corrects a bug in the appointment booking process for flexible scheduling. Previously, a 20-minute slot was incorrectly serialized, leading to a 404 error. The fix ensures accurate slot duration calculation, resolving the booking issue and improving the user experience.
Original PR description
Steps to reproduce: 1. Install `appointment` 2. Create an appointment type with the followings 3. Schedule type flexible and a slot of 20 min. 4. Share this appointment and try to book appointment for 20 min. Issue: - 404 Error occurs after selectiong the slot Cause: - In 19.0, commit https://github.com/odoo/enterprise/commit/9bae0e13e7bf5e0db25a60fc2683bc51eccb4447 started using slot.duration when building the booking URL for flexible slots. However, slot.duration is rounded to 2 decimals, so a 20-minute slot is serialized as 0.33 instead of its exact value. During validation, the end datetime is recomputed from this rounded duration, which no longer matches the original slot boundaries. This mismatch causes the slot to be considered invalid and the controller raises NotFound. Solution: - Compute the slot duration directly from slot_start_dt_tz and slot_end_dt_tz when building the URL, preserving the full precision. opw-5924312
This update fixes an issue where the Partner Ledger displayed incorrect initial balances when the date range filter wasn't used. The fix ensures that partner balances accurately reflect all transactions, resolving inconsistencies between totals and subline amounts. This improves the reliability of financial reporting.
Original PR description
To reproduce the issue: 1) Create an invoice of 100 € for partner A in 2025 2) Create another invoice of 200€ for the same partner in 2026 3) Open the Partner Ledger for 2026. Unfold A. It shows an initial balance of 100€ and a total of 300€. 4) In debug mode, open the Partner Ledger's form view and uncheck the date range option. 5) Open the Partner Ledger like in step 3) ====> An initial balance of 300€ shows, making the total of Partner A (still 300€) inconsistent with the sum of its sublines (600€) feedback-6042305 Forward-Port-Of: odoo/enterprise#115455
This update corrects a technical error that prevented users from editing appointment pages in the website builder. The issue stemmed from an unnecessary attribute being included in the BuilderContext component, which was flagged by debug mode. This change ensures a smoother editing experience for all users.
Original PR description
Steps to reproduce: =================== 1. Enable debug mode (`?debug=assets`). 2. Open an appointment page in the website & edit mode. 3. Click the appointment type block. => Traceback "Invalid…
Steps to reproduce: =================== 1. Enable debug mode (`?debug=assets`). 2. Open an appointment page in the website & edit mode. 3. Click the appointment type block. => Traceback "Invalid props for component 'BuilderContext': unknown key 'reload'" Cause: ====== The `reload="'/'"` attribute on `<BuilderContext>` in appointment_type_option.xml was never a valid prop on the component: `basicContainerBuilderComponentProps` (the source of `BuilderContext`'s props) doesn't include `reload`. https://github.com/odoo/odoo/blob/f4700ba0f070003ac8a3828f9fd8583c27671e3f/addons/html_builder/static/src/core/utils.js#L887 In normal mode OWL silently ignores unknown attributes, but in debug mode prop validation runs and raises a Traceback Solution: ========= The reload behavior the actions actually need is already handled via `BuilderAction.isReload = true` in `appointment_type_option_plugin.js`, https://github.com/odoo/enterprise/blob/21ed8a6c1cad8d533d04659a3997c2d7e0c3965b/website_appointment/static/src/plugins/appointment_type_option_plugin.js#L35 so the attribute can be removed. opw-6152741 Forward-Port-Of: odoo/enterprise#115242
This pull request addresses a problem with invoice testing related to rounding calculations within the l10n_mx_edi module. It reverts a previous change that introduced the issue and implements a fix. This ensures accurate invoice generation and reporting for Mexican tax purposes.
Original PR description
This reverts commit 50ad147e1f579a094141f6f126e02f75ecc62ab3. Forward-Port-Of: odoo/enterprise#115608
This update resolves an error that occurred when exporting VSME reports if the base year was not a valid 4-digit number. The fix ensures that only valid years (1000-9999) are accepted, preventing a data processing error and ensuring report generation functionality.
Original PR description
Currently, an error occurs when exporting VSME reports if the base year is not a valid 4-digit year. **Steps to Reproduce:** 1. Install the `esg_csrd` module with demo data. 2. Create new "**VSME Reports**" with `Base Year = 1`. 3. Now, click on "**Print**". **Error:** `ValueError - Invalid isoformat string: '1-01-01'` **Cause:** The base year is directly used to build a date in [1], resulting in `datetime.date(1, 1, 1)`. In [2], this is formatted to **"1-01-01"** and used in a domain search, which raises a ValueError due to an invalid ISO date format. **Fix:** - Adds a **constraint on base year** to ensure only valid years (1000–9999) are allowed for new VSME Report records. - Adds a **helper validation method** to verify base year before performing computations on existing records. sentry-7419431039
This update resolves an error preventing users from accessing the Spain VAT Books report within Odoo. The issue stemmed from an outdated template referencing a removed condition, which caused a search error. This fix ensures the report functionality is restored for Spanish companies.
Original PR description
**Steps to reproduce:** - Install the `l10n_es_reports` and `accountant` modules. - Switch to an ES Company. - Navigate to Accounting > Reporting > Spain > `VAT Books`. **Error:** `Element '<xpath…
**Steps to reproduce:** - Install the `l10n_es_reports` and `accountant` modules. - Switch to an ES Company. - Navigate to Accounting > Reporting > Spain > `VAT Books`. **Error:** `Element '<xpath expr="//button[@t-if='this.props.line.chatter and !this.ui.isSmall']" position="replace"/>' cannot be located in element tree` **Root Cause:** After commit [1], the condition `this.ui.isSmall` was removed from the template `account_reports.AccountReportLineNameCustomizable` at [2]. However, the inherited template `l10n_es_reports.VatBooksLineName` was not updated accordingly and still references the old condition, which leads to the error. **Fix:** This commit prevents errors and ensures that users can open the `VAT Books` report by applying a fix similar to [2]. [1]: https://github.com/odoo-dev/enterprise/commit/fd0afa474600586e8703ec377f962c8d7d94307a [2]: https://github.com/odoo/enterprise/blob/7362f1c5be7f496bdab660ed8fad37a6dd283616/account_reports/static/src/components/account_report/line_name/line_name.xml#L81 opw-6169697 opw-6170173
This update resolves a potential issue where duplicate Odoo databases would retain active connections to ARCA web services. This prevented users from accurately testing the system without impacting live production connections. The change ensures ARCA connections are cleared when credentials are updated, improving testing and stability.
Original PR description
Problem and Cause: When duplicating a database with existing ARCA connections, the connections to ARCA webservices are not cleared. Users using the duplicate database may not realize that the ARCA connections are still present. This may lead to production connections getting used while users are testing. Solution: Clear connections to ARCA webservices when updating the credentials.
This update fixes an issue where Odoo's website redirects were failing due to an unreliable method of determining URL canonicalization. The change replaces a problematic setting with a standard Werkzeug feature, ensuring consistent and accurate redirects across different server configurations. This improves website stability and reduces potential 404 errors.
Original PR description
Description of the issue/feature this PR addresses: The _is_canonical_url() method currently relies on `REQUEST_URI` being present in the WSGI environment to determine whether a request URL is canonical. However, `REQUEST_URI` is not part of the WSGI specification and is not consistently populated by Werkzeug (used by Odoo's default HTTP server) or reverse proxies like Traefik. As a result, this method fails in some setups, leading to incorrect redirects or 404s for otherwise valid URLs. Desired behavior after PR is merged: This patch replaces the reliance on `REQUEST_URI` with `request.httprequest.full_path`, which is a reliable, Werkzeug-generated representation of the full request path. This makes Odoo more compatible with WSGI-compliant servers and modern deployment environments. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update fixes a technical error that occurred when users clicked the 'Backend' button within a specific session state. The issue stemmed from a double deletion of the session, which has now been prevented by a code adjustment. This ensures a smoother and more reliable user experience.
Original PR description
Before this commit, when clicking on the "Backend" button of a session in "Opening Control" state, the delete_opening_control_session method was called twice, while the first call already deleted the session. The problem was that the method is overridden in the pos_urban_piper module, and it did not check if the session was already deleted. opw-6114420
This update resolves a bug in the Mod347 BOE export for Spain, specifically related to cash payments. Previously, invoices under €3,005.06 would incorrectly include a Spanish company in the export report. This change ensures accurate reporting by removing unnecessary partners from the export based on the intended logic.
Original PR description
Fix a bug in mod347 BOE export. Steps to reproduce: 1- Create an invoice with a spain Company, with an amount lower than 3 005,06€ 2- Add a Type for mod347 3- Create a cash payment 4- Export the mod347 BOE The partner will appear in the BOE with all line at 0. But this partner shouldn't be in the export. This is due because of a search on account.partial.reconcile, which add partners to the export if a cash payment is found in the period. But this search is not usefully as there is no legal indication that these partners should be in the export in this case, as the partners should only be returned by the main queries. Backport of PR #84317 opw-5960226 Forward-Port-Of: odoo/enterprise#114331 Forward-Port-Of: odoo/enterprise#110947