Daily updates from Odoo
Tuesday, December 2, 2025
50 changes · master
New functionality added to Odoo
This update introduces a new integration with Pricer, a leading electronic price tag provider. Users can now link their Odoo products to Pricer tags, allowing them to display detailed product information and prices directly on these tags. The system automatically updates Pricer tags every 6 hours, ensuring product information remains current.
Original PR description
This PR adds Pricer electronic tags integration withing Odoo
This update enables Odoo to process Worldline voucher payments, including Eco, Meal, and Gift vouchers, through the point-of-sale system. Previously, this functionality was missing, and now users can select the specific voucher type for transactions processed via the Worldline terminal, streamlining the payment process.
Original PR description
Before, we did not accept Worldline voucher payments. This PR adds a selection field to the pos payment method which allows the user to select the precise voucher type which will be used by the Worldline terminal in order to process a transaction. It adds the support for Eco vouchers, Meal vouchers and Gift Vouchers. It is linked to [this PR]() in worldline dynamic library code which adds the method to proceeds transactions on the terminal
This update allows users to specify the type of voucher (Meal, Eco, or Gift) when using Worldline payment terminals. Previously, all voucher payments were processed without distinction, leading to incorrect payments. Now, users can accurately allocate payments to the correct voucher type, improving payment accuracy and user experience.
Original PR description
Description of the issue/feature this PR addresses: Allow the user to select the voucher type in a Worldline payment method and pay using the corresponding voucher card Current behavior before PR:…
Description of the issue/feature this PR addresses: Allow the user to select the voucher type in a Worldline payment method and pay using the corresponding voucher card Current behavior before PR: There is no possibility to select a voucher type in a Worldline payment method. If a voucher payment is activated on the Worldline terminal it will select any available payment method on the card without making a distinction. Example: Monizze card has both Eco and Meal vouchers, but 100 eur on Eco part and 0 on Meal part --> it will take money from Eco part (and vice versa). Desired behavior after PR is merged: Worldline terminals will now accept voucher payments. The user will be able to configure a separate payment method for each of the 3 voucher payment types: 1) Meal vouchers 2) Eco vouchers 3) Gift vouchers This is done through a new selection field "voucher_type" in the Worldline payment method [Task 3077777](https://www.odoo.com/web#id=3077777&cids=1&menu_id=4720&action=333&active_id=1428&model=project.task&view_type=form) -- I confirm I have signed the CLA and read the PR guidelines at [www.odoo.com/submit-pr](http://www.odoo.com/submit-pr)
This update introduces a new overtime ruleset specifically designed for companies in Egypt (EG). It replaces the previous overtime calculation method in payslips, ensuring accurate payroll processing for this region. The change also includes updated data and a corresponding test case adjustment.
Original PR description
- added data: Overtime ruleset tailored for EG companies, along with associated work entry types. - Replacing old way of computing overtime in payslips. Task-5106549
Enhancements to existing features
This update improves the efficiency of IoT display updates by intelligently determining if a URL change is needed. Previously, updates were triggered unnecessarily, but now the system only updates the URL when a screen rotation is requested, streamlining the process and reducing unnecessary network traffic. This results in a more responsive and reliable IoT experience.
Original PR description
To avoid updating the URL of the IoT display when we only want to rotate the screen, we now check which value changed before sending the request.
This update enhances the Odoo Enterprise system's ability to connect with barcode scanners. By utilizing a new service, `iot_http`, the system can now reliably receive data from scanners using technologies like webrtc, longpolling, or websocket, improving the user experience.
Original PR description
To allow using a barcode scanner with webrtc, longpolling or websocket, we now use the `iot_http` service to listen for events. see odoo/odoo#238210
This update removes the outdated Six module and replaces it with the new Six IoT module, which is now the standard version. This change improves functionality and addresses previous issues related to the Six API limitations, ensuring reliable operation for our Point of Sale system.
Original PR description
As of 2023 our Six module wasn't working because of the limits of Six api. In september 2023 in v16 we added a new Six Iot module, depending from an IoT box, while keeping the old one This PR aims to delete all the old Six related code and replace it by the new Six IoT one In enterprise we add a checkbox to point_of_sale settings to install the new six module (which thus moved from community to enterprise just like the new Six module) upgrade PR: https://github.com/odoo/upgrade/pull/5316 task-3567076
This update consolidates Worldline voucher processing into a single codebase, simplifying maintenance and reducing redundancy. The update also incorporates the latest Worldline C++ library, potentially unlocking new features like refunds and improved voucher payments. This improves efficiency and expands payment options for our users.
Original PR description
This PR adds merges _W and _L drivers and interfaces for Worldline to have only one code to maintain. It also uses the new version of Worldline C++ library, with some possible new features like refunds and voucher payments. task-3077777
This update simplifies the Worldline payment integration by consolidating drivers and interfaces, making maintenance easier. It now supports crucial features like refunds and voucher payments for Worldline terminals, addressing previous limitations and enhancing payment processing capabilities.
Original PR description
Before, we had a separate driver and interface for Windows and Raspberry Pi. This was impractical and annoying for maintenance. This PR merges the two together and adds some conditions to resolve this issue
This update replaces the fa_book icon in knowledge article search results with the article's specific emoji, enhancing visual clarity. Crucially, the article body is now also displayed, providing users with complete information. This improves the user experience when searching for knowledge articles.
Original PR description
Before this commit, when a knowledge article appeared in the search results, if an image or icon was displayed for that result, it was represented with the fa_book icon. Also the body of the article was not shown. Now, when an article is shown, it is represented with the emoji defined specifically for that article. The body of the article is also showed. Part of task-4029264. linked with [this PR 192032](https://github.com/odoo/odoo/pull/192032)
This update automatically recalculates work days within payroll when changes are made to work entries or payslips are reset to draft. This ensures that employee pay calculations are always accurate, reducing the risk of errors and improving payroll processing reliability. It addresses a potential inconsistency in how worked days were tracked.
Original PR description
In this commit, we automatically recompute worked days when work entries are created, deleted or updated in draft payslips and when a payslip state is reset to draft. task-5225708
This update streamlines Belgian payroll data by moving relevant fields from job positions to the Contract Template and Employee models. This simplifies payroll configuration and reporting, ensuring accurate data management for employee compensation within the Odoo Enterprise system.
Original PR description
This PR includes the following changes: - Remove the Payroll tab from Belgian job positions in Recruitment. - Remove the Job Position menu item from Payroll Configuration. - Move Belgian company payroll–related fields from job positions to the Contract Template and Employee models. - Update the Contract Template and Employee form views to include all relevant Belgian payroll fields. - Clean up redundant models and views for `hr.job` in BE payroll modules. task-5156653
This update adjusts the way the quantity input is handled within the product catalog modules (industry_fsm_sale and industry_fsm_stock) to align with recent changes made by the Odoo community. This ensures consistent functionality and a better user experience for entering product quantities.
Original PR description
*: industry_fsm_sale, industry_fsm_stock Adapt to the changes made in community where the DOM for the quantity input is reworked. task-4671411 Community: https://github.com/odoo/odoo/pull/236932
This update aligns the Odoo Enterprise MRP Work Order module with recent community changes. Specifically, a new parameter has been added to ensure compatibility and proper integration with updated functionality, streamlining the creation of work order catalogs. This ensures consistent behavior across all Odoo Enterprise versions.
Original PR description
With this commit: --------------------------- - Added a child_field parameter to the _get_new_catalog_line_values method to align with the changes made in the community. This ensures compatibility and proper integration with the updated function. Task Id: 4737887 Community PR: [228145](https://github.com/odoo/odoo/pull/228145)
This update refines how Odoo's editor handles data saving. The `o_editable` class has been renamed to `o_savable` to align with the editor's internal processes. This change ensures smoother editing experiences across several modules, including appointment scheduling and marketing automation.
Original PR description
[IMP] appointment, *: rename the o_editable class by o_savable *: marketing_automation, marketing_automation_website_sale, website_appointment, website_helpdesk This commit renames the `o_editable` class by `o_savable`. It also removes this class from the template as it is a system class handled by the editor. In most cases, the editor will add the `o_savable` class on those elements when entering in edit mode as the elements already have the `o_mail_wrapper_td` class (that is used as a `o_editable_selectors`). task-5248483
This update ensures the Odoo Enterprise system works seamlessly with the latest stable version of the IoT Box. The changes adapt the data requests from the IoT Box browser to align with the database, resolving compatibility issues and maintaining functionality.
Original PR description
To ensure compatibility with stable IoT Box (v19.1+), we needed to adapt the request made by the IoT Box browser to the db. see odoo/odoo#234175 Task: 5181338
This update adapts the Mexican payroll module (l10n_mx_hr_payroll) to a new system of salary rules introduced in Odoo 19.0. It converts benefit inputs to the new 'property_inputs' format, ensuring compliance and proper calculation of payroll for Mexican employees.
Original PR description
In 19.0 a new system of flexible benefits coming from salary rules was introduced. This commit serves to adapt the l10n for mexico to the new format. task-5122335
This update simplifies the VoIP code by removing redundant `async/await` calls. This optimization improves the overall performance and stability of the VoIP feature within Odoo Enterprise. The change is considered a routine improvement.
Resolved issues and error corrections
This update adjusts the Thailand tax reporting tests to reflect a recent change in how withholding taxes are calculated. Previously, taxes were based on invoices; now, they're determined at the time of payment. This ensures accurate tax reporting for Thai businesses using Odoo Enterprise.
Original PR description
Adapt Thailand tax report tests to handle withholding taxes that are now recognized at payment time instead of invoice time. related-https://github.com/odoo/odoo/pull/237502 task-5360234
This update addresses a minor technical issue that was causing a runbot error in our point-of-sale (POS) system. The fix involved adjusting test timing and simplifying the verification process to ensure order acceptance times are correctly recorded. This improves the reliability of the POS functionality.
Original PR description
in this commit: - Fixed the `_acceptOrder, _dispatchOrder, _completeOrder` test, which could fail due to minor timing delays. - Updated the assertion to only verify that `orderAcceptTime` is not empty. runbot-error-234594 Forward-Port-Of: odoo/enterprise#100942
This pull request addresses several bugs and inconsistencies within Odoo's product tour functionality. The changes improve the user experience by correcting display issues and ensuring tours function as intended across different Odoo modules. This resolves minor usability problems and enhances the overall reliability of product demonstrations.
This update resolves an issue where closing the '/article' dialog in the Knowledge editor caused the page to jump back to the top. The fix ensures the dialog's focus is properly managed during closing, eliminating this disruptive scroll behavior. This improves the user experience when editing long articles.
Original PR description
Problem: When editing a long Knowledge article and executing the `/article` command, closing the dialog automatically scrolls the page to the top. Cause: This happens because `useActiveElement` inside the `Dialog` component runs its cleanup function when the dialog unmounts. While unmounting, `document.activeElement` is `body`, so the cleanup tries to focus back the `oldActiveElement`, which is the `editable`, and this resets the selection and causes the scroll jump. Solution: Set the selection when closing the dialog, ensuring the `editable` remains the `document.activeElement` during cleanup, preventing the focus reset. Steps to reproduce: - Edit a long article further down the page. - Use the `/article` command. - Dismiss the dialog. → The page scrolls back to the top. opw-4797567 Forward-Port-Of: odoo/enterprise#100634
This update resolves an issue where the system would fail to print payslips for employees who didn't have a contract assigned. The fix ensures that a contract is required to generate a payslip, preventing errors and improving data accuracy. This change ensures consistent payslip generation.
Original PR description
An error occurs while printing a payslip for an employee who does not have a contract. Steps to reproduce the error: - Install the ``hr_payroll`` module - Create an employee without contract - Create a payslip for that employee > Compute Sheet > Print Traceback: ``` Error while rendering the template: TypeError: '<' not supported between instances of 'datetime.date' and 'bool' ``` https://github.com/odoo/enterprise/blob/368a81a277b2fa7c5eac7c63addd0d75ec89111b/hr_payroll/views/report_payslip_templates.xml#L70 Here, ``version_id.contract_date_start`` will be ``False`` when the employee does not have a contract, which leads to the above traceback. Solution: User can not print payslip without running contract. sentry-6922017511 Forward-Port-Of: odoo/enterprise#96374
This update fixes a technical issue related to the Swiss payroll module (l10n_ch_hr_payroll) by adding missing input types. These input types are crucial for accurately calculating payroll according to Swiss tax and social security regulations. This ensures the system correctly handles Swiss payroll reporting.
Original PR description
Forward-Port-Of: odoo/enterprise#100992
This update resolves an issue preventing the correct transmission of payroll data for Swiss businesses. The fix ensures that necessary fields are accessible within the HR payroll module, allowing for accurate reporting and compliance with local regulations. This improves the reliability of the system for our Swiss clients.
Original PR description
Forward-Port-Of: odoo/enterprise#100939
This update resolves a technical problem identified during testing of the l10n_ch_hr_payroll module. Specifically, a freeze time error was corrected, ensuring the accuracy of payroll calculations within the Swiss tax system. This ensures the system is functioning correctly and generating accurate reports.
Original PR description
Forward-Port-Of: odoo/enterprise#100953
This update resolves an issue where resetting work entries from a payslip would completely remove the entry. The fix ensures the correct employee ID is used, preventing this behavior and maintaining accurate work entry tracking. This improves the reliability of payroll processing.
Original PR description
Steps to reproduce: - Install the hr_payroll module. - Open the form view of an employee with a running contract and click on the Payslip smart button. - Create or open an existing payslip, then open the Work Entries using the smart button. - Select any work entry and click Reset Selected Work Entries. Issue: Clicking Reset Selected Work Entries removes the work entry for that day and leaves it empty. Cause: The issue occurs because an incorrect active_id is passed in the context. It works correctly when coming from the employee form (where active_id is the employee ID), but fails when accessed from the payslip (where active_id is the payslip ID). --- Fix: PR https://github.com/odoo/odoo/pull/235211 updates the context to ensure the correct employee ID is passed. - This commit contains test for the reset work entry problem Task-5095098 Forward-Port-Of: odoo/enterprise#100719
This update resolves an error that prevented users from accessing the Time Off overview in the Gantt view when an employee lacked a defined working schedule. The fix skips unnecessary calculations when a working schedule is missing, preventing the 'AttributeError' and ensuring the feature functions correctly for all employees. This improves the user experience and prevents data access issues.
Original PR description
Currently, an error occurs when an employee has no working schedule set and the user tries to open the Time Off overview in the Gantt view. **Steps to Reproduce:** 1. Install `hr_holidays_gantt` with demo data. 2. Remove the **Working Hours**(Payroll section) of **Marc Demo**. 3. Navigate to: Time off > Overview. **Error:** `AttributeError - 'bool' object has no attribute 'upper'` **Cause:** The error occurs because at [1], the contract does not have a `resource_calendar_id` (working schedule) assigned. As a result, it attempts to access attributes of a False value, causing the error. **Fix:** This commit skips the computation when the contract does not have a working schedule set. [1] - https://github.com/odoo/enterprise/blob/db049f42ad4c2c291b2d64a9e637cd2292c280e8/hr_holidays_gantt/models/hr_leave.py#L204 sentry-7017326141 Forward-Port-Of: odoo/enterprise#100730
This update resolves an issue where the point-of-sale system would crash when a disconnected payment terminal was detected. The fix ensures smoother operation and prevents errors related to payment terminal connectivity, improving the overall reliability of the POS system. This was tracked as task 3252747.
Original PR description
Before, when we were trying to use a payment terminal which is disconnected in pos_iot an error was triggered: ``` TypeError: Cannot read properties of undefined (reading 'add') at…
Before, when we were trying to use a payment terminal which is disconnected in pos_iot an error was triggered:
```
TypeError: Cannot read properties of undefined (reading 'add')
at IoTLongpolling._doWarnFail (http://10.30.64.95:8069/web/assets/debug/point_of_sale.assets.js:46298:20) (/pos_iot/static/src/js/iot_longpolling.js:20)
at _doWarnFail (patch pos_iot.IotLongpolling) (http://10.30.64.95:8069/web/assets/debug/point_of_sale.pos_assets_backend.js:17846:44) (patch pos_iot.IotLongpolling http://10.30.64.95:8069/web/assets/debug/point_of_sale.pos_assets_backend.js:17846)
at Object.<anonymous> (http://10.30.64.95:8069/web/assets/debug/point_of_sale.pos_assets_backend.js:122534:26) (/iot/static/src/iot_longpolling.js:216)
at fire (http://10.30.64.95:8069/web/assets/debug/web.assets_common.js:26170:31) (/web/static/lib/jquery/jquery.js:3564)
at Object.fireWith [as rejectWith] (http://10.30.64.95:8069/web/assets/debug/web.assets_common.js:26300:7) (/web/static/lib/jquery/jquery.js:3694)
at process (http://10.30.64.95:8069/web/assets/debug/web.assets_common.js:26524:22) (/web/static/lib/jquery/jquery.js:3918)
```
This PR solves the issue.
[Task 3252747](https://www.odoo.com/web#id=3252747&cids=1&menu_id=4720&action=333&active_id=1737&model=project.task&view_type=form)This update resolves an error that occurred when Worldline terminals connected to IoT boxes experienced disconnection issues during transaction processing. The team has consolidated Worldline drivers and added refund functionality, streamlining maintenance and improving the reliability of transactions with these terminals. This ensures smoother operations for users utilizing Worldline payment systems.
Original PR description
Before, when trying to process a transaction with a terminal connected to the IoT box which is disconnected was triggering an error This PR fixes that error [Task 3252747](https://www.odoo.com/web#id=3252747&cids=1&menu_id=4720&action=333&active_id=1737&model=project.task&view_type=form)
This update resolves a technical issue within Odoo's Web Studio tool that prevented accurate field choices from being displayed. The fix ensures that the system correctly utilizes data, improving the reliability of the user interface when creating and editing forms. This change enhances the overall user experience within Web Studio.
Original PR description
In this commit, we fix the `getFieldChoices` method. This method takes `this.props.node.field`, whereas it can be called from `onWillUpdateProps`. All other methods take this into account except for `getFieldChoices()`. As a result, `this.props.node` could be outdated when needed. This commit fixes this error.
This update consolidates multiple wage fields into a single 'wage on payslip' field, streamlining payroll calculations and ensuring accurate paychecks. It also corrects a previous issue where the mobility budget wasn't correctly applied to 13th month payments, aligning with legal requirements.
Original PR description
State of the art ============ Currently we have wage, wage on signature and wage with sacrifice. Wage is the "classic one" Wage with sacrifice is the updated version of wage when you have group…
State of the art ============ Currently we have wage, wage on signature and wage with sacrifice. Wage is the "classic one" Wage with sacrifice is the updated version of wage when you have group insurance or extra leaves. Wage with mobility budget is the wage when user select the mobility budget (not seen in front end) Wage on signature is set when you do the salary configurator flow If I don't have the salary configurator, everything is on Wage. And that amount is used in the payslip computation. If I have the salary configurator, the Wage I signed for is on Wage on Signature and it will be used in the payslips. Specifications =========== Merge Wage with sacrifice, Wage with mobility budget and Wage on signature into a single field -> wage on payslip as Wage on signature depends on both Wage with mobility budget and Wage with sacrifice and Wage with mobility budget depends on Wage with sacrifice At the end, the only wage we want is the final one, computed based on holidays, if any, and based on mobility budget if any. The wage on signature was just a "backup" to ensure that what we signed is used in the payslip. In the view, only the wage on payslip will be displayed, and there is no need to make conditional display between the different old wage field in function of the selected sacrifices. Task-5125864
This update resolves an issue where CFDI invoices generated in Mexico were producing incorrect rounding values. The changes improve the invoice generation process by using a tolerance for amount spreading and aggregating lines before CFDI creation, preventing further rounding errors. This ensures accurate tax calculations and compliance with Mexican regulations.
Original PR description
- Refactor the CFDI generation using the EDI tax helpers to prevent rounding issues by spreading the amounts according a tolerance of 0.000001. - Aggregate lines before computing the global invoice CFDI. That way, we avoid creating new rounding issues by post-processing the created CFDI. task_id: 5096249 Forward-Port-Of: odoo/enterprise#100679 Forward-Port-Of: odoo/enterprise#99395
This update fixes an issue where adding shifts to existing rental orders didn't correctly update the order line and total price. The fix ensures that new shifts are properly added to the order, reflecting the increased quantity and ensuring accurate pricing. This improves the rental planning process for users.
Original PR description
**steps to reproduce:** - Configure a booking product as service and rental. - Confirm a shift to create a rental order. - Activate sync on the role. - Add a new shift with the same product using "Add to last order". - Open the rental order: the order line and total price are not updated. **issue:** The price and the order line were not updated when a new shift was added to the last order. **cause:** Previously, adding a new shift to a rental order did not add the order line on the corresponding order. becacuse we was not checking the state of the order and at line creation line will be created for confirmed order only. **fix:** A check is added when the getting the rental order it should be confirmed. task-5093190 Forward-Port-Of: odoo/enterprise#95314
This update corrects a technical issue within the Odoo Enterprise reporting system. Previously, the way data was aggregated in reports didn't guarantee a consistent order, which could lead to inaccurate results. This change enforces order within the aggregation, ensuring reliable reporting data.
Original PR description
The array_agg does not enforce an order by default. It causes issues when we want to check the result. Let's enforce it now runbot-error-234281
This update fixes an issue where credit notes (resulting in negative amounts) were not being included in the XBRL export of the EC Sales List report. The change ensures that all sales, including negative amounts, are now correctly generated and exported for accurate reporting. This improves compliance with Dutch tax regulations.
Original PR description
To replicate: 1. Install l10n_nl_reports_sbr_icp 2. Create an european partner with a VAT number 3. Create a credit note for this partner 4. Go to Accounting > Reporting > EC Sales List 5. The negative line appears in the report 6. Click on XBRL to export the report The negative line is not included in the exported report Only non-negative positive lines are added to the report in `_generate_codes_values()`. This commit changes that to include non-zero values. opw-5220622 Forward-Port-Of: odoo/enterprise#100669 Forward-Port-Of: odoo/enterprise#100009
This update resolves a performance issue related to a field in the Helpdesk module by switching to a new widget. The change ensures the field functions smoothly and efficiently, maintaining the quality of the Helpdesk experience for users. This is a technical fix to optimize performance.
Original PR description
This commit adapts the definition of the field using the `badge_rotting` widget since that widget no longer extend to SelectionBadge widget due to a perfomance issue. Forward-Port-Of: odoo/enterprise#99943
This update fixes a problem that prevented the Acerata payroll export file from generating correctly when the employee name was missing. The fix uses the display name field, which is always populated, and includes a new test suite to ensure the export process works reliably. This ensures accurate payroll reporting.
Original PR description
When generating the export file, a traceback occurred because the name field was empty. The logic has been updated to use the display_name field instead, ensuring the export runs correctly, as it is always set to a value. However, the display_name sometimes is just a date, so I depended on a customizable new lable to show the employee to this version. Additionally, a comprehensive test suite was added to validate Acereta code behavior, including: - validation of code length for employees, companies, and work entry types, - handling of codes across different companies, - and the complete Acereta export flow (from work entry creation and validation to export file generation). task-5153727 Forward-Port-Of: odoo/enterprise#100987 Forward-Port-Of: odoo/enterprise#96823
This update resolves a bug that prevented correct configuration of payroll within the Odoo Enterprise system. The fix involved adjusting how a specific field is used across modules to ensure compatibility and proper functionality. This change improves the reliability of HR payroll processes.
Original PR description
…act_salary A runbot build error was reported for one of my tests: https://runbot.odoo.com/odoo/runbot.build.error/233591 The issue was because the field `hide_in_offer` was used in a module where it did not exist. I have overridden the function to make it call the field when it was installed, and moved the logic using it to that inheriting function. task-5350522 Forward-Port-Of: odoo/enterprise#100986 Forward-Port-Of: odoo/enterprise#100190
This update corrects a bug in the ESIC payroll calculation. It now ensures that ESIC contributions are only applied to employees with gross salaries below 21,000 rupees, aligning with current regulations. This change improves payroll accuracy and compliance.
Original PR description
### Before this commit, ESIC amount is applied to all cases, which is wrong. ### After merge of this commit, It should apply to employees with gross salaries less than 21000 rupees. task-5038256 Forward-Port-Of: odoo/enterprise#99996
This update resolves a critical issue in the Luxembourg payroll localization (l10n_lu_hr_payroll) where payslips incorrectly displayed a zero or negative net pay, even with a positive total salary. The fix ensures accurate calculation of net pay by correctly incorporating the 'net_wage' variable, preventing misleading warning messages.
Original PR description
Converted other inputs into salary rules and adjusted the tests Fixed a bug in the LU localization where the following warning appeared — “The net pay for this payslip is zero or negative.” — even when the net salary was > 0. The issue was that net_wage was not included in issue_dependencies. As a result, when it was recalculated or computed for the first time, it did not trigger _compute_issues, causing the warning banner to be displayed incorrectly. task - 5122394
This update corrects a potential issue where delivery IoT reports weren't verifying the existence of associated IoT devices before printing. This change ensures that reports only generate when valid IoT device data is present, preventing errors and improving report reliability. It's a minor fix focused on data integrity.
Original PR description
As `delivery_iot.ir_action_report` is overriding `iot.ir_action_report` and bypassing the IoT device record existance check, we need to also check in delivery IoT. Forward-Port-Of: odoo/enterprise#100994
This update adds a section to the employee form to display relevant documents. Previously, important document fields were missing from this view. This enhancement improves employee record management and provides a more complete view of employee information.
Original PR description
- These fields were not available in the employee form view. - create a new section named 'Documents' under the Personal Tab in employee form view - added the fields in the employee form view task-5366982 Forward-Port-Of: odoo/enterprise#100956 Forward-Port-Of: odoo/enterprise#100869
This update resolves a crash that occurred when users attempted to validate signed documents. The issue stemmed from a missing field in the system after a related module was uninstalled. The fix adds a graceful bypass to handle the missing field, ensuring smooth signature validation.
Original PR description
The system will crash with an error when the user tries to validate the signature. **Steps to produce:** - Install `Sign, Employee Contracts, and Documents` apps with demo data. - Go to Apps and…
The system will crash with an error when the user tries to validate the signature.
**Steps to produce:**
- Install `Sign, Employee Contracts, and Documents` apps with demo data.
- Go to Apps and uninstall the `hr_contract_sign`module.
- Send any employee a sign request for a document.
- When the employee tries to validate and send the document, the error appears.
**Error:**
`KeyError: 'sign_request_ids'
ValueError: Invalid field hr.employee.sign_request_ids in condition ('sign_request_ids', 'in', [1])`
**Cause:**
- When `sign` route is called, then we try to search field `sign_request_ids` in `hr_employee`. but we can see the field `sign_request_ids` is defined in `hr_contract_sign` module.
- And user removed the `hr_contract_sign` module, so the field no longer exists. in the hr_employee model.
**Solution:**
- Added a graceful bypass when `sign_request_ids` is missing,
**sentry-6819182542**
Forward-Port-Of: odoo/enterprise#100796
Forward-Port-Of: odoo/enterprise#95449This update resolves a technical problem preventing users from accessing sales commission achievement reports. Previously, the system couldn't reliably determine if the necessary temporary database view was available, leading to errors. Now, the system checks both the existence and availability of the view, ensuring consistent report access.
Original PR description
In the commission module, the achievements are computed with a temporary SQL view. These view have limited visibility inside a SQL session. Before this commit, we checked the existence of a temporary view with the following SQL request: SELECT viewname FROM pg_catalog.pg_views WHERE viewname='sale_commission_achievement_report_view' This simple query would return the existence of the view but not its availability in the current session. As a result, when the user tried to access the report values, SELECT * FROM sale_commission_achievement_report_view would result in an error as the temporary view would not be available in all the running sessions. Only the one which created the temporary view would be able to access the data. After this commit, the existence and the availability of the view is checked to make sure that it is possible to fetch the results in the current session. task-5378382 Forward-Port-Of: odoo/enterprise#101070
This update fixes a technical issue that prevented the 'fuel_type' selection field in the HR contract model from being properly translated. By directly using the variable for options, this change ensures all available fuel types can be localized, improving the user experience for Belgian users.
Original PR description
The selection field `fuel_type` in the `hr.contract` model was not properly translatable, because it used a function yielding static strings for the options. This commit changes the field to use the variable directly, allowing them to be translated. Forward-Port-Of: odoo/enterprise#101046 Forward-Port-Of: odoo/enterprise#100748
This update resolves an issue where changes made to spreadsheet sale data inputs were sometimes lost due to unexpected system updates. The fix ensures that input values are reliably saved, preventing data loss and improving the user experience when updating sales records. This enhances data accuracy and reduces potential errors.
Original PR description
Currently, the FieldSync record input suffers from two issues: 1) The input value can be reset by parasitic renders While the user is inputting a value, if they did not confirm it and a global render occurs (other user joining the session, dragging the mouse on the grid), the input value will be reset to the one stored in the plugin, therefore erasing the last change of the user 2) In Chrome-based navigators, users can change the value of the input by using their mouse scrolling wheel. Such action *does not* trigger an `onChange` event; which means that the new value is never directly saved. Both issues are addressed in this commit by keeping an internal state inside the component `FieldSyncSidePanel` and ensure this state is properly reflected in the plugin once we stop editing the input. Task-5123069 Forward-Port-Of: odoo/enterprise#101017 Forward-Port-Of: odoo/enterprise#96431
Code cleanup and technical improvements
This update clarifies the internal naming of a key component within the Point of Sale (POS) module. The change, named `iot_fdm_be_id`, improves code readability and maintainability. This is a routine refactoring to enhance the overall stability and development process of the POS system.
Original PR description
For clarity, we renamed `iface_fiscal_data_module` to `iot_fdm_be_id`.
This update enhances the integration of Odoo's Swedish Point of Sale (POS) system with the IoT platform. Specifically, it utilizes a new HTTP service to transmit fiscal data, streamlining the process and improving data accuracy for Swedish retailers. This change is part of ongoing efforts to optimize Odoo's performance and connectivity.
Original PR description
In this commit: - merge two overrides of pos_store, - rename `iface_sweden_fiscal_data_module` to `iot_fdm_se_id`, - use `iot_http` service for swedish fdm. odoo/odoo#238098
Miscellaneous changes
This pull request contains preliminary work (wip) on updating the VoIP softphone's call history functionality. Changes were made to the JavaScript and XML files related to this feature, likely to improve the user interface or functionality of the call history display. Further development and testing are needed.