Daily updates from Odoo
Thursday, March 12, 2026
42 changes · master
New functionality added to Odoo
This update introduces a new report specifically designed to track outstanding payments to Micro, Small, and Medium Enterprises (MSMEs). The report includes fields for MSME type and number within partner records and company settings, allowing for more targeted debt analysis. The PDF export now also incorporates MSME information for registered companies.
Original PR description
In this PR: - Added MSME Type and Number fields to the res_partner model and displayed them in the form view. - Added related MSME fields in res_company via partner_id and displayed them in Settings under the Indian Integration section. - Added Aged Payable MSME report variant to track dues to MSME partners, with filtering by MSME Type and a default aging interval of 45 days. - PDF export of the MSME report shows company MSME info in the header if the company is MSME registered. task-4140405
This update introduces a new refund reason (13) specifically for credit notes in the Peruvian localization. This allows businesses to accurately correct pending payments, due dates, and installment schedules when issuing credit notes, ensuring proper accounting and compliance with Peruvian regulations. The change maintains monetary neutrality by updating payment operation information in the exported XML.
Original PR description
In the Peruvian localization, credit notes use a predfined list of refund reasons. This commit adds a new reason 13, used for correction of pending payment amount(s), due date(s), and/or installment(s). When using reason 13, the credit note must remain monetarily neutral, and the correction is expressed via new payment operation information (pending amount + installments schedule) in the exported XML. task-5828119
Enhancements to existing features
This update simplifies the Data menu within the Enterprise edition of Odoo. Previously, a large number of data sources resulted in a cluttered and difficult-to-navigate menu. Now, data sources are grouped into submenus – List and Charts – making it easier for users to find the information they need.
Original PR description
## Description When a spreadsheet contains many data sources, the Data menu becomes too long and harder to scan. This changes enterprise data source entries from a flat list into grouped submenus: - Data -> List -> item_list_* - Data -> Charts -> item_chart_* Task: [5948385](https://www.odoo.com/odoo/project/2328/tasks/5948385)
This update allows users to print receipts directly from a USB printer, eliminating the need for a network connection or IoT Box. This improves usability for locations without reliable network access and provides a more flexible printing solution.
Original PR description
Expand POS printing capabilities so that the client can detect and use a local USB printer (via `window.printer`) without requiring any network printer or IoT Box setup. This allows users to rely solely on a directly connected USB printer for receipt printing. - Extend PosStore to instantiate a new `LocalPrinter` when `window.printer.printReceipt` is available. - Introduce LocalPrinter class to handle: printer setup, vendor/product ID retrieval, sending jobs to the local printer with fallback on failure. Task:5368831
This update focuses on improving the testing and tracking of accrual calculations within the US HR Payroll module. Adding dedicated logs and comprehensive tests ensures the accuracy of payroll processing, particularly as the underlying value model may evolve. This strengthens the reliability of the system.
Original PR description
This code does not seems tested currently, so let us cover it as tracking value model may change in a near future. Task-
This update adjusts the default height settings for appointment snippets. Previously, a 50% height option was offered, which users rarely utilized. The change now defaults to 75% height, providing a more intuitive and visually appealing experience for visitors while ensuring sufficient content is always visible.
Original PR description
Users rarely want to define a 50% height, either they want Auto, or 100% or something that's close enough to show the visitor there's still content below the snippet. We replace all occurrences of 50% height snippets with 3/4 height, except for the cover (e.g. Blog Cover) as I don't find replacing Half Screen Size with 75% Size useful there. task-5921163
This update enhances the search capabilities within pay runs, allowing users to filter by pay structure and employee name in addition to existing date ranges. The changes include a new user interface tour to demonstrate the improved search process, ensuring easier and more accurate pay run identification. This improves payroll efficiency and reporting.
Original PR description
Default search is extended with the month name of date_start and date_end + year of date_start and date_end. Other searches are added for structure name and employee's name task - 5925528
This pull request focuses on cleaning and streamlining the tracking code across several Odoo modules. The changes enhance code readability and maintainability, which will contribute to more reliable and efficient tracking of key business processes. This is an internal improvement to ensure long-term stability.
Original PR description
Task-
This update simplifies the process of entering Belgian employee addresses within the HR payroll system. By replacing separate ZIP and city fields with a combined 'Postal Code or City' dropdown, and removing the state field, we've improved the user experience for Belgian employees. This change ensures data accuracy and aligns with Belgian address requirements.
Original PR description
To improve UX, when Belgium is selected, replace the ZIP and city fields with a single "Postal Code or City" dropdown and hide the state field, which is not required in a Belgium address. Implementation: - Added `res.city` data for Belgium sourced from Bpost. - Added `l10n_be_private_city_id` to `hr.employee` and `hr.version` to handle the selection in the backend. - Overrode `create` and `write` to ensure standard `private_zip` and `private_city` fields are synced for compatibility with existing logic. - Created a public RPC endpoint to allow the salary configurator (which has no direct ORM access) to fetch these cities. - Patched the `SalaryPackage` JS interaction to dynamically toggle field visibility and manage the combined input. task-5882118
This update allows sales teams to create pricing rules that require rentals to last a minimum number of hours and/or a minimum quantity. Previously, a pricing rule designed for 5-hour rentals wouldn't work for 1-hour rentals, which is now resolved by increasing the test duration to 10 hours. This improves flexibility and accuracy in setting rental prices.
Original PR description
Enable creation of pricing rules with minimum periods and minimum quantity requirements The test was originally designed to apply a price list valid for 5 hours to a rental lasting only 1 hour, which made it invalid and thus rightfully excluded. Adjusting the rental duration to 10 hours allows the test to work correctly. task-5062426
This update streamlines the process of displaying sign items within Odoo, reducing complexity and improving efficiency. Previously, a redundant process was required to handle different types of sign items, but this change simplifies the data retrieval and presentation. This results in faster and more reliable sign generation.
Original PR description
Before this commit, `getContext` was copy-pasted across three classes because template items had `type_id` as an ORM tuple `[id, name]` while signing items used a plain id, so `SignTemplateIframe` had to reimplement the whole thing instead of just extending it. After this commit, `type_id` gets unwrapped on-the-go alongside `radio_set_id` and `document_id`, and `SignTemplateIframe.getContext` only adds the useful of template-specific fields on top of `super`. task-5972886
Resolved issues and error corrections
This update resolves a problem preventing PDF exports of reports containing journal sections within composite reports. The fix ensures that journal reports are correctly processed and converted to PDF, allowing users to generate these reports as expected. This improves the functionality of composite reports for users generating accounting data.
Original PR description
# Steps to reproduce: * Enable **Developer Mode**. * Go to **Accounting → Configuration → Accounting → Accounting Reports**. * Create a new report and enable **Composite Report**. * Add a new line of…
# Steps to reproduce: * Enable **Developer Mode**. * Go to **Accounting → Configuration → Accounting → Accounting Reports**. * Create a new report and enable **Composite Report**. * Add a new line of type **Journal Report**. * Save the report and create a menu item from the gear icon. * Open the report from the reporting menu. * Try to download the report in **PDF** format. # Observed behavior: * PDF export fails with a traceback. * Composite reports containing journal report sections cannot be exported as PDF. # Cause When exporting a composite report to PDF, the export flow iterates over each embedded sub-report and generates the HTML body used for PDF rendering. * The composite export relies on the base [`export_to_pdf`](https://github.com/odoo/enterprise/blob/a4e2c7c7d3aa50c8b57668c9ca73f523a31a5c41/account_reports/models/account_report.py#L5875) implementation from `account.report`, which directly calls `_get_pdf_export_html()` for each sub-report. * For standard reports, this works as expected because they use the base [`_get_pdf_export_html`](https://github.com/odoo/enterprise/blob/a4e2c7c7d3aa50c8b57668c9ca73f523a31a5c41/account_reports/models/account_report.py#L5944) method, which renders flat report lines into the default PDF template. * Journal reports, however, rely on a completely different PDF structure. Their templates expect `document_data` (journal entries grouped by journal/document) instead of flat report lines. * This `document_data` is generated exclusively by the journal report’s custom handler via its own [`export_to_pdf`](https://github.com/odoo/enterprise/blob/a4e2c7c7d3aa50c8b57668c9ca73f523a31a5c41/account_reports/models/account_journal_report.py#L240) flow. * The handler builds the required `document_data` using [`_generate_document_data_for_export`](https://github.com/odoo/enterprise/blob/a4e2c7c7d3aa50c8b57668c9ca73f523a31a5c41/account_reports/models/account_journal_report.py#L261C9-L261C22). * When a journal report is embedded inside a composite report, the composite export logic bypasses the custom handler and forces the report through the base `_get_pdf_export_html()` pipeline. * Since the base pipeline does not generate `document_data`, the journal report PDF template fails at render time with `KeyError: 'document_data'`. In short, journal reports embedded in composite reports were incorrectly routed through the standard PDF export pipeline instead of their specialized handler-based one. # Fix: * Add PDF export support to the journal report custom handler. * Centralize common print option logic in a shared helper. * Update composite report export logic to delegate PDF generation to custom handlers when available. * Journal reports inside composite reports now export to PDF correctly. opw-5477551 Forward-Port-Of: odoo/enterprise#110049 Forward-Port-Of: odoo/enterprise#105040
This update resolves a technical problem preventing timesheet slots from displaying correctly in the planning module. The fix ensures that the timesheet information is accurately reflected in the slot tree view, improving the usability of the planning feature for sales teams. This was a minor bug fix.
Original PR description
Steps to reproduce: - Install sale_timesheet & planning; - Install planning_field_service_sale_timesheet; Traceback: Element `'<xpath expr="//field[@name='project_id']">'` cannot be located in parent view This commit fixes the inheritance of the planning.slot tree views. Forward-Port-Of: odoo/enterprise#110102
This update resolves a bug where the 'Previous Asset' shortcut in the asset management module was incorrectly directing users to the 'Posted Entries' view. The shortcut has been changed to ALT + SHIFT + P to align with existing navigation shortcuts, ensuring smoother asset browsing.
Original PR description
# How to reproduce - Have atleast two assets - Go to the last asset - Type ALT + P on your keyboard # The problem We enter the Posted Entries view instead of going to the previous asset # Why This PR (https://github.com/odoo/enterprise/pull/67840) added shortcuts to the asset form view, but used ALT + P for the Posted Entries. This shortcut is already used on all form views for the "previous page" button. After consulting with the developer of the original PR, we decided to move the Posted Entries shortcut to ALT + SHIFT + P opw-5948523 Forward-Port-Of: odoo/enterprise#110078 Forward-Port-Of: odoo/enterprise#109022
This update corrects a technical issue preventing electronic invoices under the RIMPE Emprendedor regime from processing correctly. The change ensures the system recognizes only the approved string value for this regime, resolving a validation error during the electronic signature process and allowing invoices to be submitted successfully.
Original PR description
Corrected the hardcoded string for the RIMPE Emprendedor regime to match the SRI structure According to SRI technical specifications, the <contribuyenteRimpe> tag only accepts two specific values:…
Corrected the hardcoded string for the RIMPE Emprendedor regime to match the SRI structure According to SRI technical specifications, the <contribuyenteRimpe> tag only accepts two specific values: CONTRIBUYENTE RÉGIMEN RIMPE (Fixed value) CONTRIBUYENTE NEGOCIO POPULAR - RÉGIMEN RIMPE Steps to reproduce: Install l10n_ec_edi module Go to Settings > Invoicing > Ecuadorian Localization In Electronic Invoicing > Regime, select rimpe_emprendedor In Electronic Invoicing > Regime, configure a SRI Connection Post an customer invoice **Validation error occurring during the electronic signing process (using .p12 certificates):** `35 - Se encontró el siguiente error en la estructura del comprobante: cvc-pattern-valid: Value 'CONTRIBUYENTE EMPRENDEDOR - RÉGIMEN RIMPE' is not facet-valid with respect to pattern 'CONTRIBUYENTE RÉGIMEN RIMPE|CONTRIBUYENTE NEGOCIO POPULAR - RÉGIMEN RIMPE' for type 'contribuyenteRimpe'.. - ARCHIVO NO CUMPLE ESTRUCTURA XML - ERROR ` Forward-Port-Of: odoo/enterprise#109147
This update fixes inconsistencies between rental orders and planning slots by ensuring all dates are automatically synchronized. Changes to rental order dates now update all related planning slots, and vice versa. Additionally, the system now correctly adjusts the number of planning slots and order quantities when changes are made, resolving previous issues with quantity updates.
Original PR description
## [FIX] sale_renting_planning: fix sync between rental dates and planning slots dates Before this commit, it was possible to have `Planning Slots` with `Sync Shifts and Rental Orders` whose dates…
## [FIX] sale_renting_planning: fix sync between rental dates and planning slots dates Before this commit, it was possible to have `Planning Slots` with `Sync Shifts and Rental Orders` whose dates were different from the `Rental order`. This commit makes sure that all dates are always synced: - If the `Rental Order` dates are changed then all `Planning Slots`' dates changed to the new dates. - If a `Planning Slot` dates have changed then all other `Planning Slots` and the `Rental Order` Dates are changed to the new dates. ## [FIX] sale_renting_planning: fix sync between order line quantity and planning slots Before this commit, adding/removing a `Planning Slot` would not change the `SOL quantity` and changing the `SOL quantity` would not add/remove `Planning Slots` unless all slots are being deleted. This commit makes sure that when the `SOL quantity` is changed, the number of `Planning Slots` is changed accordingly, and if a Planning Slot` was added/removed, the `SOL quantity` would update accordingly. Note: The new sync behaviour from `SOL quantity` is ignored for `Products` with `hour UOM` because it is not clear yet how to update the `Planning Slots` if the new quantity of hours doesn't span a full rental interval. ## [FIX] sale_renting_planning: fix set multiple slots to resources Before this commit, adding multiple `Planning Slots` at the same time with the same `Role` can assign them to the same `Resource` even if they conflict with each other. This commit makes sure that when adding multiple `Planning Slots` none of them would conflict with each other after being added. task-5187356 Forward-Port-Of: odoo/enterprise#109294 Forward-Port-Of: odoo/enterprise#104771
The 'Today' button in the Gantt view was not functioning correctly when navigating to yesterday. This update fixes a bug where clicking 'Today' didn't return the view to the current date. The fix ensures the Gantt view accurately reflects the user's current day selection.
Original PR description
**Version:** 18.0 **Steps to reproduce:** - Install Attendance modules. - Navigate to yesterday using the arrow button. - Then click on Today button. **Issue:** The view does not return to the current day when Today button is clicked. **Cause:** The condition to check this scenario fails for this case. **Fix:** Updated the condition to include the this scenario. task-5451384 Forward-Port-Of: odoo/enterprise#110053 Forward-Port-Of: odoo/enterprise#103139
This update fixes an issue where payslips weren't being generated accurately for employees with flexible working hours. The system now correctly creates work entries for these employees when a payslip is created, ensuring accurate payroll calculations. This resolves a previous error impacting employee pay processing.
Original PR description
**Version:** - 19.0 **Steps to reproduce:** - Create an employee. - Leave the Working Hours field empty. - Set the contract dates and a wage. - Create a payslip using the smart button. **Issue:** - Worked day lines are empty for flexible employees when the payslip is created from the smart button. **Cause:** - Flexible employees were being skipped because their working hours were empty, which results in work entries not being generated. **Solution:** - Updated the condition to also generate work entries for flexible employees. Task-5431870 Forward-Port-Of: odoo/enterprise#109729 Forward-Port-Of: odoo/enterprise#103101
This update corrects a previous issue where late hours reporting was incorrectly calculated for employees outside of Saudi Arabia. The change now ensures that late hours visibility is only processed for employees based in Saudi Arabian companies, improving data accuracy and compliance. A new test case confirms this country-specific functionality.
Original PR description
Before this fix, the `_compute_l10n_sa_late_hours_visible` method was processing all attendance records regardless of the employee's company country. This caused issues for non-Saudi companies. Changes: - Filter attendance records to only process employees from Saudi Arabian companies (country_code == 'SA') - Set `l10n_sa_late_hours_visible` to False for non-SA attendances - Add `employee_id.company_id.country_id` to the compute dependencies - Add `string` attribute to `l10n_sa_expected_check_in` field - Add test case to verify late hours visibility is country-specific task-5491785 Forward-Port-Of: odoo/enterprise#104563
This update resolves a bug where users without HR document centralization enabled were seeing all documents, not just their own employee documents, when using the 'documents' smart button. The fix restores the intended behavior of limiting document access to only the employee's records, ensuring data privacy and accuracy.
Original PR description
Steps: - uncheck the "Human Resources" file centralization option - go to an employee, click the documents smart button -> You see every documents, not only the ones from the employee PR https://github.com/odoo/enterprise/pull/93782 aimed at restoring the previous behaviour of the employee documents button and accesses for companies without the hr documents settings enabled, but forgot the domain on the employee smartbutton action. opw-5857914 Forward-Port-Of: odoo/enterprise#107224
This update fixes an error in how project budgets are calculated, ensuring accurate spending and remaining amounts. Previously, the system was incorrectly displaying negative percentages and inflated remaining balances. This change ensures budget reports accurately reflect actual spending against planned expenses.
Original PR description
Steps to reproduce: --------------------------- 1. Install the `project_account_budget` and `account_accountant` modules. 2. Create a new project and add an Analytic Account for it from the settings…
Steps to reproduce: --------------------------- 1. Install the `project_account_budget` and `account_accountant` modules. 2. Create a new project and add an Analytic Account for it from the settings page 3. Open the Project Kanban, click the three dots on the project card, and select Project's Updates. 4. Click Add Budget button and open the budget wizard. 5. Add a budget line in the wizard with a planned amount expressed as a negative value for an expense (for example: -10000). 6. Create a Vendor Bill using the same analytic account with an amount of 1000. 5. Confirm the bill. 6. Go back to Project's Updates and click New button to view the budget summary. Observation: --------------------------- The budget summary displays incorrect signs and percentages in Activities summary, for example: ``` -10.0% (-1,000.00) of the -10,000.00 budget has been spent. 110.0% (-11,000.00) of the budget is remaining. ``` This incorrectly shows -10% spent and 110% remaining instead of 10% spent and 90% remaining (-9,000). Issue: --------------------------- The project cost (already negative) was negated again when computing the spent amount in https://github.com/odoo/enterprise/blob/ac3f333d97eda5c86a0813490ac6204d4ec5721f/project_account_budget/models/project_update.py#L16 Double-negating the cost makes it positive, which then gets added to the expense budget instead of reducing it, producing inverted percentages and signs. Solution: --------------------------- For expense budgets (negative budgets), do not apply an extra negative sign when calculating the project cost so the spent, remaining, and percentage values are computed correctly. After the fix: ``` 10.0% ($ 1,000.00) of the $ -10,000.00 budget has been spent. 90.0% ($ -9,000.00) of the budget is remaining. ``` opw-5357854 Forward-Port-Of: odoo/enterprise#110062 Forward-Port-Of: odoo/enterprise#102126
This update ensures that the system accurately recalculates outstanding POS amounts when a point-of-sale order is cancelled. Previously, cancelled orders were incorrectly included in payment calculations, leading to inaccurate reporting. This fix prevents double-counting payments and provides more reliable financial data.
Original PR description
Add `pos_order_line_ids.order_id.state` to the depends of `_compute_pos_amount_unsettled` so that cancelling a POS order triggers a recompute. Also exclude cancelled order lines from `total_pos_paid` to avoid counting payments that were rolled back. opw-5997872 Forward-Port-Of: odoo/enterprise#109542
This update fixes several issues related to how payroll accruals are calculated, particularly concerning tracking data and date handling. It also improves data access controls and ensures accurate work entry generation, ultimately strengthening the reliability of our US HR payroll system.
Original PR description
Accrual is computed based on tracking values, checking added or removed leaves in a given request, based on their datetimes. This feature does not seems tested currently, so let us cover it. That way we ensure future changes in tracking model do not break current feature. By the way, fix an ACL issue when trying to access tracking values and not being admin. By the way, fix date / datetime issue when generating work entries. By the way, fix leaves support when generating work entries. Task-5935695 ([mail, various] Cleanup and test tracking usage) Prepares Task-3645865 ([mail] In-body tracking) Co-Authored-By: Prakash Prajapati <ppr@odoo.com> Forward-Port-Of: odoo/enterprise#110302
This update corrects a problem where the Partner Ledger incorrectly displayed currency amounts as coming from the company's currency instead of the partner's. The fix ensures accurate currency reporting for open items, improving the reliability of financial data. It also addresses a bug preventing the debug popover from functioning correctly.
Original PR description
# [FIX] account_reports: Partner Ledger residual amount currency wrong In the partner ledger, the residual amount currency had all it's results set to the currency from the company. Here, we do the same as from amount currency and set it to it's currency and aggregate it if all the currency from the partner / all the partners is the same currency. # [FIX] account_reports: Partner ledger debug popover not working To reproduce: - Open the partner ledger - Active the developper mode - click on the debug button on the line Open Items Forward-Port-Of: odoo/enterprise#109697
This update resolves a problem preventing users from generating ird reports when employees have multiple versions recorded within the same reporting period. The fix temporarily prioritizes the most recent version for report generation, ensuring reports can be produced. This improves the reliability of payroll reporting in Hong Kong.
Original PR description
Fixes an issue that blocks users from generating ird reports if the employee has multiple versions in the period. For now, we will only keep the latest version at the time of reporting. task - 6023310 Forward-Port-Of: odoo/enterprise#110235
This update corrects a visual issue in the Helpdesk team settings where email alias fields would overflow due to a design change. The fix adjusts the layout to fit the narrower settings panel, ensuring a clean and usable interface for managing team email aliases. This improves the overall user experience for Helpdesk administrators.
Original PR description
Steps to reproduce: 1. Go to Helpdesk > Configuration > Teams 2. Open any team with Email Alias enabled 3. Observe alias fields overflowing Issue: The alias copy feature introduced by odoo/enterprise#88111 (related to odoo/odoo#215128) changed this row from a simple inline layout to a Bootstrap grid. That grid works correctly in regular form `<group>` sections, where fields have more horizontal space. But in Helpdesk, this row is rendered inside a `<setting>` block, which lives in the narrow two-column settings layout. In that context, the grid's negative side margins make the alias row overflow Fix: Replace the grid layout with a flex row adapted to the settings panel while keeping the newer alias input pattern and copy button. This prevents overflow and keeps the fields balanced. task-6005002
A previous error was preventing the automated update of POS price tags. This fix corrects a misconfiguration in the scheduled task that was causing a system error. The update process is now reliable and ensures accurate price tag synchronization.
Original PR description
Currently, an error occurs when the scheduled action "POS Pricer: Tags Update Synchronization" runs. **Steps to Reproduce:** - Install the `pos_pricer` module. - Go to `Scheduled Actions` and run…
Currently, an error occurs when the scheduled action "POS Pricer: Tags Update Synchronization" runs.
**Steps to Reproduce:**
- Install the `pos_pricer` module.
- Go to `Scheduled Actions` and run `"POS Pricer: Tags Update Synchronization"`.
**Error:**
`
ValueError: TypeError("PricerStore._update_pricer_tags() got an unexpected keyword argument 'update_all'") while evaluating 'model.search(([("pricer_tag_ids", "!=", False)]))._update_pricer_tags(update_all=False)'`
This error occurs because, after this [recent commit], `_update_pricer_tags` was changed to
no longer accept the `update_all` argument and now relies on the `needs_pricer_update` instead.
However, the scheduled action still passes the `update_all` argument [1], which causes the
error when the cron job runs.
This commit removes the unexpected `update_all` argument from the tag update synchronization cron.
[recent commit]: https://github.com/odoo/enterprise/commit/166a8a240d0588f4e908ce09c4639da1216ba3b7
[1]- https://github.com/odoo/enterprise/blob/0ef7643bba5b3fa3d22ab122ef3b65f0d67c8fb7/pos_pricer/data/pricer_ir_cron.xml#L9
sentry-7324339777
Forward-Port-Of: odoo/enterprise#110242This update resolves a problem that prevented users from successfully loading demo data for the 'account_asset' module. The fix corrects an error related to incorrect field definitions during the demo data loading process, ensuring the demo data can now be loaded without causing errors.
Original PR description
This error occurs while loading the demo data for the `account_asset` module. Steps to reproduce: - Install `account_asset` module without demo data - Active debugger > Settings > load Demo data Traceback: `ValueError: Invalid field 'depreciation_model_id' in 'account.asset'` - The error occurs because `depreciation_model_id` is a field of the `account.account` model, but while loading the demo data we are defining it on the `account.asset` model in the `_get_demo_data_asset` [method]. - Another error occurs in the `account.depreciation.model` model because it does not have a field named `name`, the correct field is `display_name`. [method]: https://github.com/odoo/enterprise/blob/9d4424088bfda7e89d454a8bd642715a9281913d/account_asset/demo/account_demo.py#L37-L47 sentry-7321811436 Forward-Port-Of: odoo/enterprise#110066
This update corrects a display issue in WhatsApp signature requests. Previously, the Certificate of Completion showed 'Email Verification' instead of the correct information for WhatsApp participants. This change ensures accurate and consistent reporting for all signature requests, regardless of the channel used.
Original PR description
When a signature request is sent via WhatsApp (`send_channel == 'whatsapp'`), the Certificate of Completion PDF currently still displays "Email Verification" in the participants table and the legal footnote.
This update resolves an issue where orders weren't generating invoices correctly due to data serialization during the tour process. The change adds a required step to ensure the invoice is selected before order validation, guaranteeing invoices are properly created. This improves order processing reliability.
Original PR description
pos*: l10n_ec_edi_pos, l10n_it_pos When invoice selection takes longer, and the order validation button is clicked immediately after, the tour may serialize data before the invoice field has settled. This can cause invoice generation to be skipped during order validation Since the delay between tour steps was removed, this commit adds an explicit step to ensure the invoice is selected before validating the order. Task-5897375 Err-237600, 238502, 238503, 238504 Related-https://github.com/odoo/odoo/pull/247770 Forward-Port-Of: odoo/enterprise#106863
This update resolves a bug where the Documents Activity view became unusable after exiting Studio, preventing users from filtering or adding new activities. The fix ensures the view correctly loads necessary data, maintaining functionality and preventing frustrating user experiences.
Original PR description
Problem: When returning to the Documents Activity view after closing Studio, the view becomes unusable with an error that `folderId` is `undefined`. Users are forced to refresh the page or switch…
Problem: When returning to the Documents Activity view after closing Studio, the view becomes unusable with an error that `folderId` is `undefined`. Users are forced to refresh the page or switch views to fix it. Specifically: - Filters can no longer be selected. - Adding new activities throws UI errors (even if technically successful). Cause: The `getSelectedFolder` method returned undefined because the `searchPanel` logic was skipped. The Activity view does not display the `searchPanel`, so the model failed to run `_fetchSections` which retrieves the data used by `getSelectedFolder`. Under normal circumstances, the view relies on data already loaded by the Kanban or List views, but that data is unavailable here. Solution: - Force the search model to load the data explicitly, ensuring the view initializes correctly regardless of the `searchPanel` visibility. We kept the dependency upon `_fetchSections` rather than removing it, as it is required by the `search_model` to maintain other features like `breadcrumbs`. - Add a test to verify the fix and prevent regression. Co-authored-by: Pierre-Yves Dufays pydu@odoo.com Co-authored-by: Charlier Florian flch@odoo.com
This update corrects a minor CSS error that was causing incorrect styling within the timesheet grid component. The fix ensures the grid displays correctly, improving the overall user experience. This was a routine maintenance update.
Original PR description
This commit fixes the generation of the `display` CSS rules.
Before:
```scss
//...
.aw_nca_step_1 .aw_nca_d-block_from_step_1 {
display: "block";
}
//...
.aw_nca_step_1 .aw_nca_d-inline-flex_from_step_1 {
display: "inline-flex";
}
```
After:
```scss
//...
.aw_nca_step_1 .aw_nca_d-block_from_step_1 {
display: block;
}
//...
.aw_nca_step_1 .aw_nca_d-inline-flex_from_step_1 {
display: inline-flex;
}
```
Doc:
> In Sass, elements in lists can be separated by commas (Helvetica, Arial, sans-serif), spaces (10px 15px 0 0), or slashes as long as it’s consistent within the list.
https://sass-lang.com/documentation/values/lists/
Forward-Port-Of: odoo/enterprise#110246This update resolves an issue where the barcode scanning app incorrectly identified products when using barcodes that include product prices (price-embedded). The fix adds logic to match these barcodes, mirroring the functionality in the Point of Sale app, ensuring accurate product recognition during scanning.
Original PR description
Issue ----- Barcode app doesn't match products when using price-embedded barcodes. Steps to reproduce ----- - Use default nomenclature (so price embedded barcodes are 23...) - Create a product with barcode 2355555000004 - Go to barcode and scan 2355555009502 > The product isn't recognised Cause ----- There is no logic in place to handle such barcodes, but it can be added to mimic how it works in POS. https://github.com/odoo/odoo/blob/0fe2023dc57b6cc02bd399d3c8fc5d6c8ed6e833/addons/point_of_sale/static/src/app/screens/product_screen/product_screen.js#L212 ----- Ticket: opw-5901412 Forward-Port-Of: odoo/enterprise#110034 Forward-Port-Of: odoo/enterprise#109627
This update corrects a technical issue where an unnecessary character was added to the social templates, preventing proper display. The previous commit mistakenly included this character within the HTML code, and this fix removes it, ensuring correct formatting and functionality. This resolves a minor display problem.
Original PR description
in this commit https://github.com/odoo/enterprise/pull/109772/changes/a093f3150b1b0fc92e8555bbab042e83d230bb5e this. was mistakenly added to `>` due to an issue in the script. I have removed it. Script PR: #247965 task: OWL3 prep - add this. to template variables
This update simplifies overtime pay calculations by tying them directly to the amount recovered from each work entry type. Previously, overtime rules were complex and dependent on parameters. This change streamlines the process and improves accuracy across multiple Odoo localization modules.
Original PR description
-Currently, the salary rules for overtime depend on the overtime rule parameters. -Logic has been adjusted for overtime rules to depend on the amount_rate recovered from the work_entry_type. -Rule parameters have been removed. -Task #5921696
This update adjusts the financial reporting tests for Mexico to align with the latest accounting standards (CoA). The changes ensure accurate trial balance reports are generated, reflecting the most current Mexican accounting regulations. This improves the reliability of financial data for Mexican businesses using Odoo Enterprise.
Original PR description
Adapted trial balance tests to consider update on MX CoA task-4920083 target: 19.0 -> master Forward-Port-Of: odoo/enterprise#110024 Forward-Port-Of: odoo/enterprise#108200
Code cleanup and technical improvements
This update improves the consistency and maintainability of our Python code across several key modules. A new tool, Ruff, has been implemented to automatically format and lint the code, ensuring a clean and standardized style. This will streamline future development and reduce potential errors.
Original PR description
*: `payment_sepa_direct_debit`, `sale_(stock_)renting`, `sale_(amazon,lazada,shopee)`, `website_sale_renting(_*)` This PR introduces Ruff (lint and format) as the standard for all Python files within the R&D Sales scope (see `*`). The goal is to ensure a clean state for future development, reviews, and debugging by enforcing a code style via pre-commit hooks. This PR applies a one-time bulk format+lint pass to all existing files in our scope. task-5436779 See also: - https://github.com/odoo/odoo/pull/237354 Co-authored-by: Antoine Vandevenne (anv) <anv@odoo.com> Co-authored-by: Valeriya (vchu) <vchu@odoo.com> Co-authored-by: Louis <loti@odoo.com> Co-authored-by: Victor Feyens <vfe@odoo.com> Co-authored-by: Lionel Piraux (lipi) <lipi@odoo.com> Co-authored-by: livaois <liew@odoo.com>
This update is a preparatory step for Odoo's OWL3 upgrade, which requires changes to how template variables reference components. The team has added `.this` to template variables to ensure compatibility with the new OWL3 rendering context. This ensures a smooth transition to the next Odoo version.
Original PR description
In preparation for OWL3, where template variables will need to use `.this` to target component variables, we add `.this` to template variables that are targeting the component. Script PR: odoo/odoo#247965 task: OWL3 prep - add this. to template variables
This update streamlines the import of Belgian payroll data by switching from XML to CSV files. CSV files are faster and more efficient, reducing the amount of data processed and simplifying the import process. This change improves the performance and maintainability of the Belgian payroll module.
Original PR description
A lot of the recent belgian data is imported via xml which is not the fastest and takes a lot of lines for data that we don't need to change. This moves those data to csv files that are faster to parse and takes less lines of code. Task: 6025889
This update prepares our Odoo system for OWL3 by modifying template variables to correctly target component elements using `.this`. This is a necessary step to ensure compatibility with the upcoming OWL3 rendering engine and avoid potential display issues.
Original PR description
In preparation for OWL3, where template variables will need to use `.this` to target component variables, we add `.this` to template variables that are targeting the component. Script PR: odoo/odoo#247965 *targets: ["web_gantt", "web_grid", "web_hierarchy"] task: OWL3 prep - add this. to template variables
This update adds `this.` to template variables within several Odoo modules to align with upcoming OWL3 rendering changes. This preparatory step ensures compatibility and avoids potential issues when the new OWL3 rendering context is fully implemented, streamlining the transition.
Original PR description
In preparation for OWL3, where template variables will need to use `this.` to target component variables, we add `this.` to template variables that are targetting the component. Script PR: odoo/odoo#247965 task: OWL3 prep - add this. to template variables
This update modifies Odoo's templates to align with upcoming OWL3 requirements. Specifically, it adds `.this` to template variables that target component data, ensuring compatibility with the new OWL3 framework. This proactive step avoids potential issues when transitioning to the new OWL3 environment.
Original PR description
In preparation for OWL3, where template variables will need to use `.this` to target component variables, we add `.this` to template variables that are targetting the component. Script PR: https://github.com/odoo/odoo/pull/247965 THIS_TARGETS = ['stock'] task: OWL3 prep - add `this.` to template variables Community PR : https://github.com/odoo/odoo/pull/253047