Monday, March 2, 2026
59 changes · master
New functionality added to Odoo
This update incorporates essential testing for the Stripe expense module, addressing a previous oversight in the original development task. The changes include fixes for a parameter type issue and a billing state requirement, ensuring the module functions reliably and securely. This improves the overall stability and quality of the expense reporting process.
Original PR description
Add tests for the module, as it wasn't included in the original task Forward-Port-Of: odoo/enterprise#108053 Forward-Port-Of: odoo/enterprise#106191
This update includes sample data for a project's profitability dashboard, ensuring the section displays correctly. This addition facilitates future feature development and aids in identifying potential issues within the dashboard functionality. It's a small improvement to support ongoing development and testing.
Original PR description
This commit's purpose is to add demo data to a project in order to have all the profitability section appears. This will help with the creation of new features and the detection of bugs.
This update introduces a new feature allowing users to minimize active VoIP calls into a compact, floating window (PiP). This provides a more flexible way to manage calls alongside other Odoo tasks, improving user workflow. The PiP window includes essential call controls for convenience.
Original PR description
Add a new VoIP user preference to minimize ongoing calls to a compact floating PiP widget instead of simply hiding the softphone. This introduces: - a new `voip.pip` frontend service backed by `mail.popout` - a compact PiP window component with call status + core controls (mute, hold/resume, hangup, keypad, record, return to Odoo) - PiP lifecycle sync with call/session changes task-5956194
Enhancements to existing features
The wording for combo product choices has been updated to avoid suggesting that included items are free. Backend screens now use "item" and the point-of-sale interface uses "included", making pricing clearer for users and customers.
Original PR description
Description of the issue/feature this PR addresses: combo choice products are not free products. They are included in the combo product price. Therefore it creates misunderstanding for our users Current behavior before PR: Desired behavior after PR is merged: Change the "free" string into "item" in the backend and into "included" in pos frontend to align with the display in self --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#248535 Forward-Port-Of: odoo/odoo#245279
Resolved issues and error corrections
POS receipts now show the correct tax label when a fiscal position changes the tax rate, such as replacing 21% with 6%. This helps customers and businesses see consistent receipt information that matches the tax actually applied.
Original PR description
Steps: - Install l10n_be_pos_restaurant. - Create a restaurant POS configuration with presets. - Assign a fiscal position to one preset that replaces 21% tax with 6%. - Open a POS session and process an order using that preset. Issue: - The POS receipt still displays the 21% tax's tax group label, even though the 6% tax is correctly applied. Cause: - Fiscal position was not taken into account when computing the tax group label for POS receipt orderlines. Fix: - Apply the fiscal position when determining the POS receipt tax group label. Task-5899938 Forward-Port-Of: odoo/odoo#251136 Forward-Port-Of: odoo/odoo#248571
Features or functions removed from Odoo
This update removes a redundant field from the VoIP call data used in the spreadsheet dashboard. The field was added in a separate module and wasn't actually utilized, so it's been removed to streamline the data and improve efficiency. This change ensures the dashboard only displays relevant information.
Original PR description
`summary` field on `voip.call` is added in `voip_ai` which is not a dependency of `spreadsheet_dashboard_voip`. As the field is not used in the dashboard, this commit removes it. Fixes runbot #240996 Forward-Port-Of: odoo/enterprise#108120
Code cleanup and technical improvements
This update replaces an older internal template instruction with its newer equivalent across many Odoo screens. It helps prepare Odoo for the next version of its web interface framework while keeping current behavior unchanged for users.
Original PR description
In OWL 3 the directive `t-esc` does not exist anymore. In this PR to prepare for the OWL migration, we replace all `t-esc` directives by `t-out`. Enterprise PR: odoo/enterprise#106343 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Adds sample data across Project and related apps so every part of the project profitability dashboard is populated in demo environments. This helps teams evaluate dashboard behavior, build enhancements, and spot issues earlier without creating test records manually.
Original PR description
This commit's purpose is to add demo data to fill every section of the profitability of the project dashboard. This will help with the creation of new features and the detection of bugs. Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The Discuss app’s default and demo setup content has been refined so new databases show clearer channel descriptions and welcome messages. Some sample favorite settings are now kept only in demo data, and default text is prepared in a way that supports translation for more users.
Original PR description
This commit improves the demo and non-demo data of Discuss by: 1. Moving favorites to demo data. 2. Refining the #general's description and first message. 3. Moving non-demo data strings to the post init hook in order to translate them (the regular field translation does not work since those fields are not marked as translate). task-5955751
Website editors can now choose how arrows appear on dynamic snippet carousels, including default, boxed, rounded, or hidden styles. They can also invert arrow colors, making it easier to match carousel controls to the website design and improve visual consistency.
Original PR description
This PR adds new option for arrow styling on the dynamic snippet carousel, including "**default**", "**boxed**", "**rounded**", and "**hidden**" states. Additionally, it adds a new option to **invert** the arrow colors. task-5179779
Employee change logs now show the exact employment version period affected by an edit. For open-ended versions, the message shows only the start date, making the history easier to read and avoiding misleading end-date information.
Original PR description
Make the employee-version edit log clearly indicate the exact period impacted by the change. If the version has no end date, the log shows only "Modified from <start>" (no "to <date>"). task-5946423 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The employee form now uses the label "Sex" instead of "Gender" to match wording used in related warnings. This keeps HR screens and messages consistent for users.
Original PR description
In warnings we will decide to go with Sex
- it should be consistent with form view
- that's why we also change this
task - 5917840
Description of the issue/feature this PR addresses:
Current behavior before PR:
Desired behavior after PR is merged:
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-prProject task search logic now reuses a shared framework capability instead of maintaining duplicate custom logic. This reduces maintenance risk and helps keep project and sales-project behavior consistent when filtering related records.
Original PR description
In task **5379826**, a function was made with the help of the framework team called `extract_comodel_domain()` `_search_on_comodel()` is an attempt to do the same behavior, but in a hard coded way. In order to avoid logic duplication, we decided to replace `_search_on_comodel()` by `extract_comodel_domain()`. Since `_search_on_comodel()` returns an empty recordset if the domain has nothing to do with the comodel (i.e.: when `extract_comodel_domain()` returns Domain.TRUE), we had to change some of the logic of the calling functions. task-5418875
This update adds a styling option in the HR module so certain fields can take only the space they need. It helps improve form layout and readability without changing employee data or business processes.
Original PR description
Adds a css class to make the field take only the space needed for itself. Similar to narrow_field but with fit-content instead. Task-5380667
This update adjusts Odoo's spreadsheet functionality to align with a recent update to the underlying o-spreadsheet library. Specifically, it enables editing of slice colors and includes a new test case for the chart side panel, ensuring continued functionality and stability.
This update enhances the Point of Sale (PoS) interface by reorganizing the hamburger menu and adding icons for its dropdown options. This improves usability and makes it easier for users to access key PoS features within the Odoo system. This change aligns with ongoing improvements to the Odoo platform.
Original PR description
pos*: l10n_at_pos, l10n_it_pos, pos_blackbox_be, pos_enterprise, pos_iot, pos_iot_six In this commit: =============== - We reorganised the PoS hamburger menu and added icons for the dropdown menu items. Task: 5888379 Related Community PR: https://github.com/odoo/odoo/pull/246516
This update enhances the employee calendar by accurately displaying work entries. Absence-related entries will now block out calendar days, while other work entries will appear as standard sections, providing a clearer visual representation of employee availability. This change was previously implemented in a related module and is now standard across the system.
Original PR description
The calendar now correctly grays out days based on work entry types. Work entries that are considered as absence will grey out a block in the calendar, while others will make the sections white. This was already implemented in l10n_hk_hr_payroll so this commit is just moving this feature into standard. task-5085284
This update cleans up the wording and descriptions of warning messages within the Odoo payroll system. The changes enhance clarity for users regarding potential issues with contracts and payroll calculations. Specifically, the system now provides more informative warnings related to contract types and account details, streamlining the process for HR and finance teams.
Original PR description
Warning title and description cleaning task - 5917840
This update streamlines project search functionality by consolidating a duplicated function. The team replaced a hard-coded approach with a more efficient method, `extract_comodel_domain()`, to avoid redundancy and improve performance. This change ensures consistent and optimized project search results.
Original PR description
In task **5379826**, a function was made with the help of the framework team called `extract_comodel_domain()` `_search_on_comodel()` is an attempt to do the same behavior, but in a hard coded way. In order to avoid logic duplication, we decided to replace `_search_on_comodel()` by `extract_comodel_domain()`. Since `_search_on_comodel()` returns an empty recordset if the domain has nothing to do with the comodel (i.e.: when `extract_comodel_domain()` returns Domain.TRUE), we had to change some of the logic of the calling functions. task-5418875
Fixes an issue where rotating or transforming an image in the website editor could slightly shrink it when the surrounding layout had padding. Image transformations now preserve the intended size and correctly create an undo step, making editing more predictable for website users.
Original PR description
**Current behavior before PR:** Steps to reproduce: - In website, drag and drop a `text - image` snippet. - Click on image, click on Transform button. - Try to rotate the image. - You will notice that the size of the image is reduced a bit. This issue happens because in `image_transformation.js`, `convertPixelWidthToPercentage` converts image width from `px` to percentage. In this case image's parentElement has padding, causing reduction in image's size. **Desired behavior after PR is merged:** This PR ensures that `paddingLeft` and `paddingRight` of image's parentElement is ignored from calculation so that image size doesn't get changed. task-5884679 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#251130 Forward-Port-Of: odoo/odoo#246508
The HTML editor no longer crashes when users insert columns from inside a list item. Lists are now split safely around the new column content, preserving editing continuity and preventing lost workflow.
Original PR description
Problem: When trying to add a column under a list item, a traceback occurs. Cause: The list item is removed during the operation, but the selection that is restored still references the removed list item. As a result, the selection is restored on a disconnected element, causing a traceback. Solution: Handle column insertion inside lists separately. In this case, according to the specifications, we split the list and insert the columns between the resulting lists (or after the list if the cursor is in the last list item). This avoids restoring the selection on a removed node. Steps to reproduce: - Add any list. - Run `/column` while the cursor is inside a list item. - Observe the traceback. task-5916246 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#250847 Forward-Port-Of: odoo/odoo#248206
Email Marketing test sends now fully clean up their temporary messages. This prevents confusing removed-message notices from appearing on contact records after a test email is sent.
Original PR description
**Steps to reproduce:** - Go to Email Marketing app - Create a mailing campaign - Set its recipients to Contact - Click on the test button to send a test mail to any mail - Go to the first contact…
**Steps to reproduce:**
- Go to Email Marketing app
- Create a mailing campaign
- Set its recipients to Contact
- Click on the test button to send a test mail to any mail
- Go to the first contact record
- Chatter will show `This message has been removed` message
**Issue:**
Previously, message created for testing were ignored by the Chatter as they were empty. As we now keep empty messages visible but with removed content display, they shows up on related records.
```py
record = self.env[mailing.mailing_model_real].search([], limit=1)
```
**Fix:**
Ensure the related messages are unlinked at the same time as the test mail in `send_mail_test` by setting `is_notification` to `False` to trigger the `unlink` logic.
```py
def unlink(self):
# cascade-delete the parent message for all mails that are not created for a notification
mail_msg_cascade_ids = [mail.mail_message_id.id for mail in self if not mail.is_notification]
res = super(MailMail, self).unlink()
if mail_msg_cascade_ids:
self.env['mail.message'].browse(mail_msg_cascade_ids).unlink()
return res
```
related: https://github.com/odoo/odoo/commit/21f92550f83cbd38df2c223c65c61bd16dc8e2b0
opw-5502787
Forward-Port-Of: odoo/odoo#250951
Forward-Port-Of: odoo/odoo#247805Resource avatar fields now appear in activity views with the same visual rendering used in kanban views. This makes activity screens more consistent and easier to read when selecting or reviewing assigned resources.
Original PR description
This commit adds `activity.many2many_avatar_resource` in the registry to be able to have the same render than kanban view in the activity view. task-5921961 Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#250867
A redundant styling rule was removed from the web module because the same behavior is already provided by the underlying Bootstrap framework. This keeps the codebase cleaner and reduces the chance of future styling conflicts, with no expected change for users.
Original PR description
Before this commit, a `.user-select-none` CSS rule was present in a file intended to only contain variable definitions. Plus, Bootstrap already provides this utility class natively, making the declaration entirely redundant. This commit removes the said rule from bootstrap_overridden.scss task-5952407 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The Guatemala localization now includes a required supporting component so its city data can load correctly. This prevents installation or update issues for businesses using the Guatemala localization.
Original PR description
This reverts commit 728465e0a4a9b651dd6e1059bd4788b0c13e2a52. The model `res.city` is defined in `base_address_extended` which isn't in `l10n_gt` dependencies. runbot-241066 Forward-Port-Of: odoo/odoo#250606
Point of Sale receipts for GCC localization now show key invoice labels in Arabic when Arabic is selected as the user language. This creates a more consistent customer receipt experience and avoids English text appearing in otherwise Arabic receipts.
Original PR description
Problem: When printing a receipt in arabic using the l10n_gcc_pos module, some of the text is in English. Cause: Translation is not enabled for the module and the text is written in English only in the receipts XML. Solution: Add the arabic translations of texts to the receipts XML and choose the display language based on the user's language (same behaviour in other receipts). Steps to reproduce: - Install l10n_gcc_pos module - Activate and choose Arabic as the language - Open Point of Sale and validate an order - See how some text (specifically "Tax Invoice" and "Simplified Tax Invoice") are printed in English although the rest of the receipt is printed in Arabic. opw-5501464 Forward-Port-Of: odoo/odoo#250177 Forward-Port-Of: odoo/odoo#245795
This fixes a visual issue in the mail call interface where active buttons in light mode did not show clear feedback. Users can now more easily tell which call action is selected, making the interface clearer and more consistent.
Original PR description
In light mode, the call view uses the same color palette than in dark theme. To do so, buttons are tweaked to force dark colors. However, active styles are not properly tweaked, leading to a lack of visual feedback for active buttons. This commit ensures the same styles than in dark theme are applied. task-5969686 <img width="304" height="73" alt="image" src="https://github.com/user-attachments/assets/d6ef089b-aba1-4fff-a7d5-f450ff345279" /> Forward-Port-Of: odoo/odoo#250731 Forward-Port-Of: odoo/odoo#250644
Regular accounting users can now open the accounting dashboard when the Turkish Nilvera e-invoicing module is installed. The change prevents a permissions error caused by dashboard checks reading restricted e-invoice settings, improving daily access without changing accounting workflows.
Original PR description
…nting dashboard # How to reproduce - Add the l10n_tr_nilvera module - Have at least one journal - Connect with a non-admin user - Go to the accounting dashboard # The problem An access right error message is displayed # Why When going to the accounting dashboard, both "_compute_show_fetch_in_einvoices_button" and "_compute_show_refresh_out_einvoices_status_button" are triggered. They both try to access the nilvera api key field of account.journal but only administrator users have access to that field. opw-5928715 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#249425
This update ensures that check printing accurately reflects the net payment amount after withholding taxes. Previously, the check amount didn't correctly account for withholding, leading to potential discrepancies. A new test case has been added to verify this fix.
Original PR description
In Philippines' check localization module, the amount on check should be based on the net amount after deducing withholding amount for payments if the payment is with taxes that are set as withholding on payment. This commit fixes the check print's values to reflect the net amount. Minimal test case is also added to safeguard the new behavior. [Task-5928813](https://www.odoo.com/odoo/all-tasks/5928813) Forward-Port-Of: odoo/enterprise#108859 Forward-Port-Of: odoo/enterprise#108611
This update resolves an error that occurred when users attempted to initiate the Colombian Electronic Invoicing certification process without a valid certificate. The fix prevents a traceback by ensuring the system handles the case where no certificate is found, improving the user experience and preventing process interruptions.
Original PR description
When no certificate is found in the company, clicking on ``Begin Certification Process`` raises a traceback. Steps to reproduce the error: - Install ``l10n_co_dian`` module with demo data - Switch to the CO Company - Go to Invoicing > Configuration > Settings > Colombian Electronic Invoicing - Set the Testing ID for Operation mode - In Certificates, delete the existing certificate - Click on Activate the certification process > Begin Certification Process > Ok Traceback: ```py UnboundLocalError cannot access local variable 'cert_sudo' where it is not associated with a value ``` https://github.com/odoo/enterprise/blob/6294be57cf1aa577ec546a958514bc8ec6705935/l10n_co_dian/models/account_edi_xml_ubl_dian.py#L1459 The variable ``cert_sudo`` is used outside of the for loop. If no certificate is found, ``cert_sudo`` will be undefined, leading to the UnboundLocalError. sentry-7256943298 Forward-Port-Of: odoo/enterprise#107094
This update clarifies the help text within the Odoo Enterprise payroll module. A previously inaccurate statement was removed to ensure users receive correct information. This change improves the overall usability and accuracy of the payroll functionality.
Original PR description
the last sentence is not always the case so we needed to remove it. task-5423317
This update addresses a recent issue causing tour navigation failures within the Industry FSM modules. The problem stemmed from a removal of a step in a tour file, specifically impacting 'patched tours'. This fix ensures tours function correctly, improving the user experience for those utilizing Industry FSM.
Original PR description
This commit fixes the tours that were failing in `industry_fsm` and `industry_fsm_sale`. The root cause was because of the removal of some step in `industry_fsm_tour`, which is used in patched tours. task-5945991
This update fixes an error in the Spanish Profit & Loss reports where accounts 7950 and 7957 were incorrectly placed in section 10. The change aligns with official Spanish tax documentation, ensuring accurate reporting for non-SME fiscal localization packages. This ensures compliance with Spanish tax regulations.
Original PR description
In the Profit & Loss reports, accounts 7950 and 7957 were incorrectly shown in section 10 instead of section 6 These accounts appear only for non-SME fiscal localization packages According to the official Spanish tax documentation, these accounts should belong to section 6 and not section 10: https://www.boe.es/buscar/act.php?id=BOE-A-2007-19884 opw-5363664 Forward-Port-Of: odoo/enterprise#108820 Forward-Port-Of: odoo/enterprise#107949
This update fixes a minor typo in the Helpdesk result page related to date formatting. The change ensures consistent display of helpdesk items. This was necessary following a recent update to the Odoo system.
Original PR description
Before this commit and since the merge of https://github.com/odoo/odoo/pull/156878, `date_published` has been replaced by epublished_date` field but the changes have not been made in website_helpdesk_slides module. This commit replaces `date_published` occurrences by `published_date`. task-[5945377](https://www.odoo.com/odoo/project/4105/tasks/5945377) Forward-Port-Of: odoo/enterprise#108253
This update fixes a bug where scrap orders created from the shopfloor didn't trigger notifications. The change ensures that users receive a confirmation message when a scrap order is successfully registered, improving workflow visibility. This resolves an issue reported previously and ensures consistent notification behavior.
Original PR description
Issue before this commit: ========================= Creating a scrap order from the shopfloor does not show any notification after it is created, which was shown in the previous version. Steps to…
Issue before this commit: ========================= Creating a scrap order from the shopfloor does not show any notification after it is created, which was shown in the previous version. Steps to Reproduce: ========================= - Install the mrp_workorder module. - Create a Manufacturing Order for any product (e.g. [FURN_7023] Wood Panel). - Open the shopfloor view. - Click the three-dot menu to access more options. - Create and confirm a scrap order. - No acknowledgement/notification is shown to the user. Cause of the issue: ========================= The method responsible for triggering the notification was renamed in [this PR](https://github.com/odoo/enterprise/pull/85706), but the notification condition was still referring to the old method name. As a result, the notification was never triggered. With This Commit: ========================= Align the method name used in the notification condition so that, when a scrap order is created from the shopfloor, the user correctly receives the notification: `The scrap order has been successfully registered.` Community PR: https://github.com/odoo/odoo/pull/250024 Task: 5958933 Forward-Port-Of: odoo/enterprise#108259
This update resolves issues with the Belgian XBRL report, specifically correcting inaccurate translations and removing irrelevant company types. The changes enhance the report's data quality and compliance, ensuring more reliable financial reporting.
Original PR description
This commit fixes several issues in the Belgian XBRL report. - Values in report like "false" were being wrongly translated. - Not all company types are valid/relevant. Removed invalid company types. task-5907118 Forward-Port-Of: odoo/enterprise#108556
This update fixes an issue where employees without recorded leave time were not visible in the Gantt view. Now, all employees will be displayed, ensuring a more complete and accurate representation of the workforce. The change improves usability and provides a clearer picture of employee availability.
Original PR description
When going on *Time Off / Management / Time Off > Gantt view*, employees without records (i.e.: leaves) would not be shown. This PR aims to display those employees without records, even supporting any eventual will to paginate the gantt view. To ensure intuitivity, those recordless employees are shown only if the domain passed to the gantt only filters based on fields related to `employee_id`. task-5477588
This update fixes a bug in the pipeline dashboard where one of the lists wasn't correctly matching data. This ensures that all sales opportunities are accurately displayed and tracked within the dashboard, providing a more reliable view of sales performance. The change was made to improve data accuracy and reporting.
Original PR description
…oard Field matching was missing for the list #1 in the pipeline dashboard. Task: 5092979 Forward-Port-Of: odoo/enterprise#107516
This update corrects an issue where work entries weren't being generated when multiple resource calendar attendances were adjacent. The fix prevents consecutive attendances from being combined, ensuring accurate work entry creation, particularly for credit time entries. The change was driven by a bug discovered during testing and incorporates previously removed tests for comprehensive coverage.
Original PR description
When you have two resource calendar attendances that are stuck together, and you generate work entries, the second one doesn't appear: Bug is caused when having two attendances stuck together: In a resource.calendar, change the time of a resource.calendar.attendance to finish at 15.36 and create a new one that begins at 15.36 and finished at 16.36 with a work entry type of Credit time. Go and regenerate work entries and you can see that no work entries are generated for credit time. Fixed by adding keep_distinct in an interval to not fuse them together. Also added extra checks to another test to not pass with incorrect values. task-5894994 Forward-Port-Of: odoo/enterprise#109050 Forward-Port-Of: odoo/enterprise#105981
This update fixes an issue where SII invoices weren't being generated correctly, preventing successful electronic submission. The change updates XML tags related to withholding taxes to align with SII's specific invoice format requirements. This ensures invoices are properly validated and accepted by the SII system.
Original PR description
Link to SII API Documentation: https://www.sii.cl/factura_electronica/formato_dte.pdf Problem: The DTE template was using incorrect XML elements for withholdings when confirming an invoice with SII. This fix replaces: ImptRetOtrMnda -> ImpRetOtrMnda ValorImpOtrMnda -> VlrImpOtrMnda so the generated DTE matches SII specifications. OPW-5437484 Forward-Port-Of: odoo/enterprise#105152
This update fixes a technical error that prevented users from successfully using commands within Odoo's AI chat channels (like '/help'). The issue stemmed from an undefined 'message' response during command execution, now resolved through a code update. This ensures a smoother experience for users interacting with the AI features.
Original PR description
When trying to use commands (for example '/help') in 'ai_chat' channels, an error occurrs. This happens because the 'message' returned from Thread.post method is undefined in that case. Forward-Port-Of: odoo/enterprise#107655
This update resolves an issue where the PIS status field on batch payments wasn't updating correctly after a refresh. The fix ensures the correct database ID is used when fetching the status, now allowing accurate status updates for SEPA credit transfers and similar payments.
Original PR description
When clicking the refresh button next to the PIS status field on a batch payment (e.g., paid with SEPA credit transfer), the status is cleared and no new value is set. This occurs because `onClickFetchStatus` makes an ORM call to fetch the status using `this.props.record.data.id`, which is `undefined`. This commit fixes the issue by correctly using `this.props.record.resId` to pass the database ID to the RPC call. no task-id Forward-Port-Of: odoo/enterprise#108927
This update resolves a traceback issue that occurred when reloading the Studio page after opening the product catalog. The change creates a proper action, ensuring the Studio page loads correctly and prevents errors when toggling debug mode or refreshing.
Original PR description
*planning_field_service_sale_timesheet Steps to reproduce: - In Field Service, open the product catalog from a task using state button. - Open Studio - Enable/Disable debug mode or just refresh the page traceback occurs. After this commit: Created the real action so in studio refresh the action loads properly. This prevents the traceback when reloading the page or toggling debug mode. task-5478056
This update resolves a problem where tests were failing when the system used the EUR currency alongside the default USD currency. The fix ensures the USD currency is always active, making the tests more reliable and preventing unexpected errors. This improves the stability of the account invoice extraction feature.
Original PR description
When the tests are run with all modules installed and demo data, some of them fail. One of the other modules activates the EUR currency, which causes the OCR to select it instead of leaving the default USD currency. - Test `test_bank_account` fails because, when the `currency_id` field is set, it triggers a re-computation of `partner_bank_id` which will reset its value to `False`. Runbot build error [240759](https://runbot.odoo.com/odoo/runbot.build.error/240759). - Test `test_invoice_ocr_note_author` fails because it's not expected that the `currency_id` is modified and logged in the tracking message. Runbot build error [238512](https://runbot.odoo.com/odoo/runbot.build.error/238512) (only in saas-19.2 and up, but it is mentionned here as the fix is the same). To make the tests more reliable, we now ensure only the USD currency is active. Forward-Port-Of: odoo/enterprise#108991 Forward-Port-Of: odoo/enterprise#108770
This update fixes an issue where the legal name displayed in the payroll module for Chinese employees was not accurately calculated. The change ensures that the correct legal name is used, complying with local regulations and improving data accuracy for reporting and compliance purposes. This update impacts the HR Payroll module.
Original PR description
task-5979726 Forward-Port-Of: odoo/enterprise#109037
This update ensures self-order transactions in the Odoo Enterprise system now adhere to the same data validation rules as standard point-of-sale orders. This enhancement improves data accuracy and reliability, reducing potential errors and inconsistencies in self-order processing.
Original PR description
This commit improves the data validation of pos self order by using the same validation as the one used for regular pos order. Forward-Port-Of: odoo/enterprise#108867 Forward-Port-Of: odoo/enterprise#108224
This update corrects the order of payroll warnings displayed to users. The change ensures warnings are presented in a more logical and helpful sequence, streamlining the payroll process. This improves user experience and clarity regarding potential issues.
Original PR description
Order of some warnings were not correct, re-order them. task - 5958677
This change removes unnecessary URLs from the JavaScript files used for onboarding tours. These URLs caused unwanted redirects, wasting user time and creating a confusing experience. The URL functionality will now be managed through XML files instead.
Original PR description
The URL key in a tour's JavaScript file implies a redirect to that URL once the browser opens. If this URL is the same as the one used in `start_tour()` (Python), then it serves no purpose. It's even detrimental because it implies a redirect (and therefore a waste of time). The URL key in the JS file is (for now) only used for onboarding tours. This key will be defined later in the .xml file for onboarding tours. That's why we're removing the URL keys from the registries here.
This update removes a redundant route related to signature cancellation. Previously, this route was kept to handle cancellations sent immediately before an upgrade, which caused issues. Now, the route is removed, streamlining the system and preventing potential problems.
Original PR description
odoo/enterprise#66160 removed the sign/sign_cancel route for future emails, but the route itself was not removed to allow users to cancel a signature request whose link was sent right before an upgrade. This commit removes this extra route. task-4016343
This cleanup removes unnecessary page redirect settings from automated tour scripts across several Odoo apps. It should reduce wasted loading time in test and guided-tour flows without changing business features or user-facing behavior.
Original PR description
The URL key in a tour's JavaScript file implies a redirect to that URL once the browser opens. If this URL is the same as the one used in `start_tour()` (Python), then it serves no purpose. It's even detrimental because it implies a redirect (and therefore a waste of time). The URL key in the JS file is (for now) only used for onboarding tours. This key will be defined later in the .xml file for onboarding tours. That's why we're removing the URL keys from the registries here.
This update moves an internal observer used by website tour automation into the tour-specific area where it belongs. It does not change visible behavior, but makes the codebase easier to maintain and reduces confusion for future development.
Original PR description
In this commit, we move class MacroMutationObserver into tour_interactive. The MacroMutationObserver class no longer has anything to do with the Macro class and is now used ONLY in tour_interactive. The MacroMutationObserver is renamed with TourInteractiveObserver Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Notifications for chat channels are now sent to users rather than partner records, matching how bus notifications are actually received. This internal cleanup helps keep mail and live chat messaging behavior consistent and reliable without changing the visible user experience.
Original PR description
Sending to a partner makes no sense as only users are able to receive bus notifications. Part of task-5946571 https://github.com/odoo/enterprise/pull/109232
The analytics interface templates were updated so they remain compatible with an upcoming version of Odoo's user interface framework. This is an internal preparation step with no expected change to day-to-day user workflows.
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 = [analytic, analytic_enterprise] task: OWL3 prep - add this. to template variables --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update streamlines the creation of guided tours within Odoo by removing a complex waiting mechanism. The change simplifies the tour API, making it easier for developers to create and manage tours. This improves overall system efficiency and consistency.
Original PR description
Before this commit, the `wait_for` key was used in tours to allow waiting for a promise to resolve before starting the tour. This commit removes all usages of `wait_for` in order to completely eliminate it and simplify the tour API. Since the tour engine already waits for a trigger and then executes the action for each step, the same behavior can be achieved by defining an initial step with a generic trigger (e.g., `body`) and an async `run` function that awaits the promise. This approach removes the need for a dedicated `wait_for` mechanism while keeping the same flexibility and improving API consistency.
This change updates internal screen templates so they remain compatible with the next version of Odoo's interface framework. It should not change how users work today, but it reduces migration risk and helps keep accounting and reporting screens ready for future upgrades.
Original PR description
In OWL 3 the directive `t-esc` does not exist anymore. In this PR to prepare for the OWL migration, we replace all `t-esc` directives by `t-out`. Community PR: odoo/odoo#247002
This update replaces an older component in the AI website live chat functionality with a newer, more efficient one. This change improves the way website URLs are displayed and utilized within the live chat interface, enhancing the user experience. It's a routine update to maintain optimal performance and functionality.
Original PR description
This commit replaces the use of `WebsiteUrlPicker with `BuilderUrlPicker` community PR: [226324](https://github.com/odoo/odoo/pull/226324) task-5260613 Forward-Port-Of: odoo/enterprise#108831 Forward-Port-Of: odoo/enterprise#106706
This update refactors how WhatsApp broadcasts messages to ensure they're sent correctly from the user's perspective. This change aligns the Enterprise version of WhatsApp functionality with the standard Odoo system, improving reliability and consistency. It's part of a larger effort to enhance WhatsApp features within the Enterprise edition.
Original PR description
Enterprise counter-part. Part of task-5946571 https://github.com/odoo/odoo/pull/251473
This update prepares our appointment templates for a future upgrade (OWL3) that requires a specific syntax for referencing component variables. The team has automatically updated several appointment-related templates to include the necessary `.this` syntax, ensuring continued functionality after the OWL3 update. This is a proactive step to avoid potential disruptions.
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 = [appointment] task: OWL3 prep - add this. to template variables
This update prepares Odoo for OWL3 by modifying template variables within the 'approvals' module. Specifically, the code adds `.this` to variable references, ensuring they correctly target component elements as required by the new OWL3 standard. This ensures continued functionality and compatibility with future updates.
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 = ['approvals'] task: OWL3 prep - add this. to template variables