Thursday, March 5, 2026
40 changes · 19.0
Enhancements to existing features
This update makes the Point of Sale ticket screen easier to customize and extend for future business-specific needs. It also corrects related automated test helpers, reducing the risk of issues when validating ticket screen behavior.
Original PR description
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 Romanian tax report is renamed from "Tax Report (RO)" to "VAT report D300". This makes the report and tax return label clearer and better aligned with the official Romanian VAT filing name.
Original PR description
Rename the report and the name of the tax return for Romania from Tax Report (RO) to VAT report D300. ent PR: https://github.com/odoo/enterprise/pull/104906 task-5423935 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update makes the Point of Sale ticket screen easier to customize for related business needs. It also fixes supporting automated test helpers, reducing the risk of issues when validating POS receipt workflows.
Original PR description
See odoo/enterprise#94390
This update reduces the time and noise involved in running several automated test suites by reusing common setup work and suppressing unnecessary test log messages. It helps internal quality checks complete more efficiently without changing customer-facing product behavior.
Original PR description
- move a bunch of expensive setUp to setUpClass - backport #152378 to avoid password keying in 17.0 also Forward-Port-Of: odoo/odoo#251905 Forward-Port-Of: odoo/odoo#250667
This update adjusts the Romanian tax reporting within the Enterprise module to align with recent changes in the Core Enterprise (CE) version. The update removes outdated tax codes and adds new ones, ensuring accurate reporting for Romanian businesses. This ensures compliance and improved financial data accuracy.
Original PR description
Some taxes were no longer needed in CE, so they needed to be removed task-5411745 Forward-Port-Of: odoo/enterprise#109368 Forward-Port-Of: odoo/enterprise#106127
This update streamlines the process of setting up tests for key Odoo modules, specifically related to payroll and timesheet management. By centralizing test setup, the team has improved the efficiency and reliability of our automated testing, leading to faster identification and resolution of potential issues.
Original PR description
Forward-Port-Of: odoo/enterprise#109476 Forward-Port-Of: odoo/enterprise#108739
This update adjusts the salary scale parameters used in the Odoo Enterprise's Belgian payroll module. Specifically, the values for the first year of the salary scale (cp200_salary_scale_first_year) and the overall salary scale (cp200_salary_scale) have been updated to reflect the new minimum wage effective January 1st, 2026. This ensures accurate payroll calculations for Belgian employees.
Original PR description
. Update cp200_salary_scale_first_year values for 01/01/2026 . Update cp200_salary_scale values for 01/01/2026 task-5485636 Forward-Port-Of: odoo/enterprise#107473
This update enhances logging for the Codabox integration within the Odoo Enterprise system. Specifically, it improves the tracking of transactions related to Codabox, providing the support team with more detailed information to quickly diagnose and resolve any potential issues. This will reduce troubleshooting time and improve the overall reliability of the integration.
Original PR description
This commit will improve the logs of _l10n_be_codabox_fetch_coda_transactions to help the support team to debug possible problem. task-5436868 Forward-Port-Of: odoo/enterprise#108213 Forward-Port-Of: odoo/enterprise#107779
Resolved issues and error corrections
This update fixes an internal test for Turkish Nilvera e-invoicing so it uses the standard invoice sending setup instead of a manually assembled data structure. This helps prevent avoidable test failures and reduces the risk of future errors when invoice sending data changes.
Original PR description
In the `test_which_service_to_call` test, we are calling `_call_web_service_before_invoice_pdf_render` with invoice_data. But invoice_data is just a dict with `invoice.read()` and the extra key extra_edis. Instead of manually building invoice_data, we should call `_get_default_sending_settings`, which is meant to be used in the base `account.move.send` flow. Why this fix? Because by not calling `_get_default_sending_settings`, we risk changing the expected invoice_data format used in `_call_web_service_before_invoice_pdf_render`, which could lead to KeyErrors. Spotted while developing https://github.com/odoo/enterprise/pull/80590, the test failed, raising the ['invoice_edi_format'] key error. no-task Forward-Port-Of: odoo/odoo#232105
Features or functions removed from Odoo
This update removes outdated, specific French translations (`fr_BE` and `fr_CA`) for the account asset and reports modules. By reverting to the standard `fr` translations, we ensure consistency and simplify future updates, reducing potential maintenance overhead.
Original PR description
The files had just a few overrides that were either incorrect or not needed. We remove the files to rely on the generic `fr` translations. task-5921458
This fixes where an alert is shown when invalid locators are detected in technical view settings. The warning now appears in the intended area regardless of database history, avoiding confusing placement among unrelated form fields.
Original PR description
The XPath `//div[hasclass('alert-info')]` used to insert the invalid locators warning matches multiple elements since the website module has another `alert-info` div inside the visibility field:…
The XPath `//div[hasclass('alert-info')]` used to insert the invalid locators warning matches multiple elements since the website module has another `alert-info` div inside the visibility field: https://github.com/odoo/odoo/blob/31c199f3d19b8f9c54d582b6a5c4684e1ed38d0a/addons/website/views/website_pages_views.xml#L221
<img width="1065" height="633" alt="image" src="https://github.com/user-attachments/assets/dab8955c-d01b-4682-871a-b7499ed99297" />
<img width="1427" height="986" alt="image" src="https://github.com/user-attachments/assets/a05efb5d-254b-4e3a-ad14-530ae6718be6" />
On databases created before the invalid locators feature was added, the website inherited view has a lower ID than the web one, so it is applied first. This causes the XPath to match the wrong element and places the warning in the middle of the form fields instead of after the "Be aware" alert. This is not reproducible on runbot since fresh databases always have the correct ID ordering.
<img width="2291" height="956" alt="image" src="https://github.com/user-attachments/assets/fc7eee11-c66e-4d84-b827-f2ed61c76a97" />
We now target the correct alert div that is a direct child of the sheet element. Hence, the inheriting order no longer affect the location of the warning.
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-prStripe-related account setup now ensures the needed currency is active before use. This prevents transfer wizard setup failures in accounting scenarios where Stripe accounts use a different currency than the company.
Original PR description
https://github.com/odoo/enterprise/pull/108905 Fixes a bug where stripe account is created without currency when the currency that should be used is not activated. This break the setup of the transfer wizard, because the accounts used in tests can sometime contains the stripe account, which use a different currency than the company, and the move created in the tests doesn't take that into account. opw-5975238
The test setup for BIS3 self-billing exports was adjusted so it works even when the Peppol module is not installed. This keeps automated checks reliable and helps prevent regressions in electronic invoicing support.
Original PR description
Commit 0163627275 reintroduced the tests for exporting vendor bills in the BIS3 Self Billing format. However, at the moment, these tests fail if `account_peppol` is not installed. This is because the Send & Print framework prevents sending vendor bills by default and is overridden only in `account_peppol`. To test the BIS3 Self Billing export in `account_peppol`, we need to patch the `AccountMoveSend._get_move_constraints` method in order to export vendor bills in the test. runbot-238802 runbot-238803
This fixes an unstable automated test for the HTML editor toolbar that could fail when test servers were running slowly. The change improves confidence in release checks without changing how users experience the editor.
Original PR description
Because a timeout in js only ensures to wait at least for that amount of time while giving no upper bound to the actual awaited time, it was possible for advanceTime(100) to actually wait for more…
Because a timeout in js only ensures to wait at least for that amount of time while giving no upper bound to the actual awaited time, it was possible for advanceTime(100) to actually wait for more than 300ms when the runbot was slow enough. In that case, since enough time has elapsed between the action and checking that the toolbar hadn't opened yet, well it was actually already opened, since we had waited too much, and the test failed non-deterministically. This is actually a special case here. Usually we want to use `waitFor` or `expectElementCount` with the toolbar since it's a popover and is therefore affected by [1]. But we cannot use them to check if the toolbar hasn't opened too early, lest we find ourselves with the same problem than explained above. Using only advanceTime with a timeout of 100ms and a synchronous `expect` check ensures that, in the general case when the runbot is fast, the test will fail in case of a regression, since there would have been ample time to have multiple animation frames during 100ms. The regression will only be hidden when the runbot is very slow and no animation frame has happened during the 100ms timeout, which is an acceptable tradeoff. The same issue appeared in another test so I fixed it as well. Timeouts throughout this test file were excessive, with multiple uses of `advanceTime(500)` while OPEN_TOOLBAR_DELAY is 300ms. This is because the commit dates from before [1] and so it was hard to ensure that enough time and animation frames had passed before we could check with `expect`, which is synchronous. Now we are using `expectElementCount`, which uses `waitFor` under the hood which has a proper mechanism to wait for enough animation frames with an additional internal delay. With these, there is no more need for a manual timeout to exceed the value of OPEN_TOOLBAR_DELAY. Note that this only applies to the cases where we check that the toolbar should be displayed, since cases where it should NOT be displayed before a certain timeout should NOT use those utils, as explained above. runbot-238562 [1]: https://github.com/odoo/odoo/commit/54da715df84789f9a1acc0cfc91be41dcdbab140 Co-authored-by: Sébastien Geelen <sge@odoo.com>
This fixes incorrect German localization accounting tags that were accidentally inverted in a previous change. The correction helps ensure German financial reports and account classifications use the intended labels.
Original PR description
Commit db0d499952192ede0def2a070e103ba67952387c inverted some tags which is wrong opw-5415426 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix prevents duplicate bank account matches when the same account number appears on related child contacts. It helps keep bank account selection predictable and avoids errors in processes that expect a single matching bank record.
Original PR description
The function `_find_or_create_bank_account` is expected to return one or no record at all. In the case of child contacts, it is possible that the same account number was set on multiple records, leading the function to return multiple banks. Forward-Port-Of: odoo/odoo#251733
Large company logos are now constrained in document previews and reports so they do not overlap customer addresses or company details. This keeps business documents cleaner and more reliable when users upload oversized logo images.
Original PR description
**Description of the issue/feature this PR addresses:** Similar issue described in: https://github.com/odoo/odoo/pull/249432 Since there is no `max-width` defined for `o_company_logo_small`, if a user uploads a large logo, the customer address overlaps with the company details. This can be tested by previewing the document with a large logo. <img width="684" height="449" alt="image" src="https://github.com/user-attachments/assets/aa2ac10b-cb0f-448a-ade3-6e7bb8b1fcff" /> **Current behavior before PR:** <img width="681" height="383" alt="image" src="https://github.com/user-attachments/assets/cf7d5740-db51-43e3-b8f6-70325e9e28c0" /> **Desired behavior after PR is merged:** <img width="505" height="307" alt="image" src="https://github.com/user-attachments/assets/b175a06a-cde0-4808-a1fb-276fd96272c3" /> --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr cc @ForgeFlow Forward-Port-Of: odoo/odoo#251976
Changing both the fiscal year end month and day for a parent company with selected branches no longer causes a false validation error. This helps accounting configuration updates save reliably when managing multi-company setups.
Original PR description
Having a parent company and a chid company selected, and changing both the last day and the last month of the fiscal year as the same time raises a ValidationError. This is because in this case, in the write we successively modify each changed delegated fields from root company to the branches. Then, when checking the constrains we loop through all delegated fields and check if the value of the branches are the same as the root company. This check triggers the error as all values are not set yet. By using a write on branches for all changed delegated fields instead of a simple assignation, the constrains check occurs once all the value have been updated. Steps: - Have a root company and a branch - Select both in company selector - Go to Accounting configuration - Change fiscalyear last month AND ast day at the same time - Save -> ValidationError in `_check_root_delegated_fields` opw-5431145 Forward-Port-Of: odoo/odoo#251941 Forward-Port-Of: odoo/odoo#241413
This fix ensures icons in the HTML editor keep the hidden spacing needed for correct editing behavior after content is loaded or a page is reloaded. It also preserves editability when copied content is applied elsewhere, preventing formatting artifacts from being saved incorrectly.
Original PR description
Problem: When content is added to the editor, icons are not surrounded by `feff`s. Cause: The selector used to pad elements with `feff`s relies on `o-paragraph`, which is added during normalization. However, `BaseContainerPlugin.normalize_handlers` runs last, so when `FeffPlugin.normalize_handlers` executes, it cannot find icons through `selectors_for_feff_providers` because the expected paragraph-related parent is not yet in place. Solution: Execute `FeffPlugin.normalize_handlers` immediately after `BaseContainerPlugin.normalize_handlers`, ensuring the DOM structure is ready before attempting to add surrounding `feff`s. Steps to reproduce: - Add an icon. - Reload the page. - Do not make any changes (so normalization is not triggered again). - Inspect the icon and observe that it does not have surrounding `feff`s. task-5960097 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Search highlights in Settings are now easier to read when using dark mode. This improves usability by ensuring highlighted text has enough contrast for users to quickly find matching settings.
Original PR description
Before this commit, highlights were not readable when searching on the settings in dark mode. Now, we force the text color to black to improuve the contrast and redability. task-id 6003446
The point-of-sale redemption popup now uses the specific loyalty program name instead of always calling it a gift card. It also shows the balance using the correct points or currency format, helping staff and customers better understand coupon and loyalty code balances.
Original PR description
Currently, the popup message shown when redeeming a code is the same for all programs but is always displayed as if it was a giftcard. Steps to reproduce: ------------------- * Create a program of type coupon, points unit: Coupon points, currency: USD * Create x coupons with 5 points * Copy a coupon code * Open shop * Enter code > Popup message says: Gift card: *code*, Balance: $ 5.00 Why the fix: ------------ Since this popup is used for multiple program we try to make it as generic as possible. Now we'll use the prgram name instead of the generic "Gift Card" string. Instead of formatting the points with the currency we can use `points_display` as it reflects the currency symbol or point unit name accordingly. <img width="416" height="82" alt="image" src="https://github.com/user-attachments/assets/a4c3c1ef-e02f-4618-809f-4bff5d99c948" /> opw-5220834
This fix prevents an error that could occur when using replenishment wizards in manufacturing, purchasing, and dropshipping flows. It also adds test coverage to help ensure the issue does not return, improving reliability for users managing stock replenishment.
Original PR description
Fix 705e27a caused a `Singleton Error`, which was then addressed in cd66456. This commit improves the follow up fix and adds a test.
Sharing course documents hosted on services like Google Drive now avoids a browser error that previously interrupted users. The change makes the course sharing flow more reliable when content is embedded from external sources.
Original PR description
Step to reproduce: 1. Install `website_slides` 2. Open any course and add content 3. Select the `Document` type and upload a Google Drive link 4. Save and publish the content 5. Click the "Share" button for this specific content in full screen Issue: - A traceback occurs: `Uncaught Javascript Error > Failed to read a named property 'document' from 'Window': Blocked a frame with origin "http://localhost:3000" from accessing a cross-origin frame.` Cause: - The `_onClickShareSlide` method attempts to calculate the `documentMaxPage` by accessing the internal DOM of the slide's iframe (`iframe.contentWindow.document`). When the content is hosted externally the iframe source is cross-origin. Browsers enforce the Same-Origin Policy. Solution: - Check the origin of the iframe's source URL before attempting to get max page. opw-5422655 Forward-Port-Of: odoo/odoo#250679 Forward-Port-Of: odoo/odoo#241090
This update fixes an automated check for the Time Off calendar view that was failing in some situations. It helps keep quality checks stable so future updates to employee time off features can be validated more reliably.
Original PR description
This fix adjusts the tour in `test_hours_time_off_request_calendar_view` as it was failing in some cases. runbot error 237682 Forward-Port-Of: odoo/odoo#249458 Forward-Port-Of: odoo/odoo#249267
This fix ensures Odoo consistently includes the related contact record when identifying a user in messaging, portal conversations, live chat, and time off flows. It helps prevent subtle errors where user details could appear incomplete or behave inconsistently in customer-facing and HR interactions.
Original PR description
`main_user_id` should always be sent with its `partner_id` to avoid subtle issues. Indeed the `partner_id` inverse is on `user_ids` not on `main_user_id`. It is indirectly assumed `partner_id` should be set on `res.users`, in particular when using `partner.main_user_id.partner_id`. https://github.com/odoo/enterprise/pull/109364 Forward-Port-Of: odoo/odoo#251641
Mobile users no longer see unwanted horizontal scrolling in list views that include a search panel, such as Rental or Employees. This makes these screens easier to read and navigate on smaller devices.
Original PR description
This PR aims to fix the horizontal scroll overflow which only affects list views with a search panel (e.g. Rental, Employees, etc.). task-5888678 | Before | After | |--------|--------| | <img width="1125" height="2436" alt="Screen Shot 2026-02-19 at 15 29 15" src="https://github.com/user-attachments/assets/b89d2979-78a8-4c58-8f7f-7dedb6fc8fff" /> | <img width="1125" height="2436" alt="Screen Shot 2026-02-19 at 15 30 10" src="https://github.com/user-attachments/assets/0989b6e7-ef91-43b5-8df5-c27696d43f65" /> | --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update resolves an issue where the Sendcloud shipping API required product weights to be at least 0.00099. This commit ensures that product weights are now at least 0.001, preventing errors and ensuring accurate shipping calculations through the Sendcloud integration. This improves the reliability of shipments processed through Sendcloud.
Original PR description
The Sendcloud API do not allow parcel details to have a weight value less than 0.00099 . This commit makes sure the products weights are at least 0.001. ref: <img width="1850" height="689" alt="image" src="https://github.com/user-attachments/assets/10242315-3c4d-4670-b77d-8cb429e00891" /> Forward-Port-Of: odoo/enterprise#107676
This update fixes an issue where tax reports were generating negative values for carried over tax lines (-81, -82, etc.). This ensures accurate tax reporting and avoids potential discrepancies in financial data. The change was triggered by a bug report and related internal tracking.
Original PR description
When generating the xml for tax report, negative values should not be present in the xml for carried over lines (81, 82, 83, 86, 87, and 88) Steps: - Create a RBILL for today - 1 month, add an invoice line with tax using one of the following tags: -81, -82, -83, -86, -87 or -88 in its base refund repartition line - Open the tax report on the month of the RBILL - Generate the xml, either by the dedicated button, or by creating and posting the closing entry -> there is line(s) for negative amounts opw-5955323 opw-5428395 Forward-Port-Of: odoo/enterprise#109389 Forward-Port-Of: odoo/enterprise#108916
This update resolves an issue where refreshing the tax return report page caused a system error. The fix ensures the report loads smoothly after refreshing, improving the user experience and preventing data disruptions. This enhancement focuses on stability and reliability of a key accounting function.
Original PR description
Previously, refreshing the tax-return reports page could lead to a traceback due to `account.report` being empty when `get_options` was called. This happened especially when switching reports or refreshing the page after selecting a report. Steps to reproduce: 1. Go to Accounting > Tax Returns 2. Click on any tax return 3. Open the report using action_open_report 4. Refresh the page ref: https://drive.google.com/file/d/1z3D7lurg4gyFh7bmCj2PQZ1A-Bg2FvKj/view This commit: - Adds fallback logic in `get_options` to recover the report from previous options or context. - Checks if the report exists before rerouting or processing options. As a result, refreshing the page no longer causes a traceback and the report reloads smoothly.
This update resolves a bug in the AI chat composer that caused crashes when the HTML composer was enabled. The fix ensures focus handling correctly works for both text and HTML composer types, preventing errors and improving stability.
Original PR description
*=ai_app In AI chat, focusing the composer used to call ev.target.select(). That works for the text composer (textarea), but not for the HTML composer (contenteditable), where select() doesn’t exist and causes a TypeError. This update makes focus handling respect the active composer mode: - text mode keeps the existing select behavior - html mode uses the editor focus path instead task-5981018
This update resolves a rare crash in the Gantt view that occurred when users filtered tasks through search options. The fix prevents the renderer from losing track of pills when filters are applied, ensuring the Gantt view remains stable and reliable for users.
Original PR description
This commit fixes a traceback in the Gantt view caused by a race condition during search operations. If a user clicks a search dropdown item located directly above a task pill, and that search filters out the underlying pill, a `pointerenter` event can fire on the pill just as the dropdown closes. Because the search amy already be applied, the renderer could lose track of the pill, causing the handler to crash when trying to access it. This commit adds a safety check to the event handler to exit early if the hovered pill is no longer found in the renderer.
This update ensures that WhatsApp messages sent through the Enterprise version of Odoo accurately include the correct user's ID. Previously, the system was sending messages with an incorrect partner ID, which could cause issues with message delivery and user identification. This fix resolves a technical error that has been corrected.
Original PR description
Enterprise counter-part. https://github.com/odoo/odoo/pull/251641 Forward-Port-Of: odoo/enterprise#109364
This update resolves a problem where the Stripe payment integration wasn't working correctly for certain locations (like Mexico). The change to default to EUR caused an error when the currency wasn't active, preventing the Stripe account from loading. This fix ensures Stripe functionality is reliably available for supported regions.
Original PR description
**STEP TO REPRODUCE** On a freshdb with only base module. 1. install hr_expense_stripe. 2. install l10n_mx (or any location that's not EU, US or UK). 3. select one of the mx demo company. 4. try opening the invoicing/accounting app. 5. There will be a traceback when loading the stripe account on the dashboard. **CAUSE** https://github.com/odoo/enterprise/pull/108293 changed the default currency from USD to EUR. But EUR could be unactive when searching for it, leading to to stripe_currency_id being empty. opw-59752385
This update corrects a technical issue that was preventing internal users from accessing AI tools within the Odoo Enterprise platform. The fix involved adjusting access permissions to allow internal users to retrieve the necessary tool information, ensuring seamless functionality for AI-powered features. This resolves a reported error during voice transcript commands.
Original PR description
Steps to reproduce: 1. Open any editor and use /voice transcript command. 2. Start recording, say some words, stop recording. 3. Observe the access error on `tool_ids`. The `tool_ids` field on `ai.topic` is restricted to `base.group_system`, preventing internal users from accessing it. The fix is to use sudo to retrieve the available tools. ticket task-5965009
This update resolves an issue where tax report tags were incorrectly sorted, preventing proper auto-completion functionality. The fix ensures tags are correctly ordered, improving the user experience and accuracy of tax reporting. Improved testing has also been implemented to prevent similar issues in the future.
Original PR description
Commit https://github.com/odoo/odoo/commit/db0d499952192ede0def2a070e103ba67952387c inverted some tags which is wrong Tags must be sorted for the auto complete to work properly Improving tests to catch more errors opw-5415426
This update improves the Gantt editor by allowing all integer fields within a model to be used as color options. Previously, only fields directly visible in the editor's view were selectable. This change provides greater flexibility for visualizing project timelines and tasks.
Original PR description
Before this commit, only fields already present in the view were selectable for the color field in the gantt editor. After this commit, all int fields of the model are available task-5981029 Forward-Port-Of: odoo/enterprise#109189
This update corrects a display error in the Activity Logs report. Previously, the report was incorrectly appearing within the Sign Template list view, leading to an error. The fix ensures the report appears in the correct Sign Request view, improving usability and preventing technical issues.
Original PR description
Version: - saas-18.2 Issue: - The "Activity Logs" report was showing in the Sign Template list view. When clicking it, a traceback occurred because the report tried to read a `sign.request` record from a `sign.template` context. Cause: - The report model was set to `sign.request`, but the`binding_model_id` was set to `model_sign_template`. - This mismatch caused the report to appear in the wrong place. Solution: - Updated the `binding_model_id` to `model_sign_request` so the report now appears in the Sign Request view, which matches the report model and prevents the error. task-5984137 Forward-Port-Of: odoo/enterprise#109171
This update addresses a change in how Helpdesk articles are searched. Previously, setting a non-root article as the main article allowed searching across its entire family of articles. Now, searching only returns the selected article itself. Additionally, a minor issue with dropdown behavior has been fixed.
Original PR description
*: website_helpdesk_knowledge **Steps to reproduce:** - Install Helpdesk/Knowledge/Website apps - Go to Knowledge - Set up a Knowledge workspace root article with some child articles to it - Go to…
*: website_helpdesk_knowledge
**Steps to reproduce:**
- Install Helpdesk/Knowledge/Website apps
- Go to Knowledge
- Set up a Knowledge workspace root article with some child articles to it
- Go to Helpdesk > Configuration > Helpdesk Teams
- Open a Helpdesk team, and go to its Help Center config
- Check Knowledge and set a non-root article as main Article
- Go to Website > Help
First issue (non-root main article):
- Type a word which is present in both the article and one of its child articles
- Only the given article match the word
- If you use the root article it will match in any descendant
Second issue (in every case):
- Type a word in the search bar
- Wait for the dropdown to appear
- Click elsewhere, dropdown is properly hidden
- Try to change the search > Traceback
**Issue:**
The domain used to find the articles to match the search uses the current id as the `root_article_id`:
`['|', ('id', '=', team_article.id), ('root_article_id', '=', team_article.id)],` which was previously working in every case as it was not possible to set a non-root article in the team setting.
This was later changed to allow any article as the default website page. As a result, when a non-root article is selected, the search domain only applies to that specific article and no longer includes its descendants.
The other issue is related to the added boostrap attribute `data-bs-toggle="dropdown"` which is not properly reset when the dropdown is removed, and triggers the creation of an empty dropdown.
**Fix:**
Doesn't seem easy to fix to allow the search on all the descendants of the given article as we can't use the article `root_article_id` and filter out the unwanted results in a clean way (and it doesn't seem doable with a direct domain). Instead clarify the situation in the help of the article.
Also manually reset the attribute for `_onFocusOut`.
related: https://github.com/odoo/enterprise/commit/ed971d4d02624f8b864ab6c37c6e7db8ba3dfe11
opw-5258607
Forward-Port-Of: odoo/enterprise#107438This update corrects a problem with how leave periods are calculated, specifically addressing potential inconsistencies caused by different time zones. By updating the system to use 'request_date_from' and 'request_date_to' instead of 'date_from' and 'date_to', the system now accurately reflects leave periods regardless of user time zone settings.
Original PR description
This commit fixes the leaves work interruption constraint by replacing `date_from` and `date_to` with `request_date_from` and `request_date_to`, thereby resolving any inconsistencies that may arise from time zone differences. task-5966780 Forward-Port-Of: odoo/enterprise#109233 Forward-Port-Of: odoo/enterprise#108541
This update resolves an issue where duplicate labels were appearing for widget properties within the Odoo Studio. The fix involves adding temporary code to prevent the duplication of label content, addressing a known bug in the underlying OWL framework. This ensures a cleaner and more consistent user experience when creating and editing widget properties.
Original PR description
steps: - Install Project and Studio - Open studio, add a decimal field - Click on it - There are two "Minimum Digits" instead of "Digits" & "Minimum Digits" Add dummy `t-set` nodes before `t-esc` directives in property sub-templates to prevent label content from being rendered twice. This is a known OWL bug (https://github.com/odoo/owl/issues/1610) where `t-esc` inside a named slot gets duplicated. Since the issue lies in the OWL2 framework itself, a `<t t-set="__dummy"/>` is used as a workaround to break the duplication pattern in owl2. opw-5974611