Tuesday, April 21, 2026
48 changes · saas-19.2
Resolved issues and error corrections
Imported invoices could show the wrong tax amount when an electronic invoice contained multiple tax subtotal sections. The fix ensures Odoo only uses the tax total tied to the invoice’s own currency, which keeps imported amounts accurate and avoids reporting errors.
Original PR description
When the EDI document has multiple document-level TaxSubtotal nodes (which can happen under Japanese PINT rules), `_correct_invoice_tax_amount` erroneously amends the tax total, and the imported invoice gets the wrong value. In BIS3 EDI, two TaxTotal nodes are created if the document currency and the company currency are different. The TaxTotal node in the company currency is generally for tax reporting purposes. Up until now, `_correct_invoice_tax_amount` worked correctly because base BIS3 EDI requires TaxTotal nodes with the document currency to have a TaxSubtotal node. This commit fixes the bug by only correcting the taxes based on the TaxTotal node that has a currency ID equal to the document currency. Note 1: This fix is targeting 19.0 and above because `l10n_jp_ubl_pint` and other PINT modules are available starting from 19.0. Forward-Port-Of: odoo/odoo#258301
Searching for people to invite to a channel is now much faster. The system avoids extra work behind the scenes and shows only as many results as can fit on screen, improving responsiveness for users.
Original PR description
Since [1], the check in `search_for_channel_invite` that restricted the search to internal users was removed. As a result, the dataset to process has exploded and the query is very slow. Moreover,…
Since [1], the check in `search_for_channel_invite` that restricted the search to internal users was removed. As a result, the dataset to process has exploded and the query is very slow. Moreover, the method is ordering on `LOWER(name)` which is not indexed, and another query is done to count the total results, which slows down the process even more. This PR fixes those issues by: - Removing the `LOWER` ordering. Ordering in a case sensitive fashion is not that big of a deal anyway. - Removing the count query, fetching one more partner in the search is enough to know if there are more results, executing the same query twice is overkill. - Reducing the number of partner returned: currently 30, but there isn't enough space to display them anyway. task-4526176 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
This change prevents an error when opening a BoM Overview for a company that does not yet have a warehouse configured. Instead of failing, the overview now shows product availability as unavailable until a warehouse is set up. This makes the feature safer to use in newly created companies and avoids a blocking error.
Original PR description
**Steps to Reproduce:** - Install MRP module. - Create a new company and switch to it. - Create a new BoM. - Click on the "BoM Overview" smart button. **Error:** `IndexError - list index out of range` **Cause:** When a new company is created, no warehouse is automatically generated for it. If no warehouse is configured for the company, the list is empty, causing an error. **Fix:** This commit raises a redirection warning if no warehouse is linked with the company. sentry-7286332859 Forward-Port-Of: odoo/odoo#250602
This update prevents an error that could appear when users remove an attachment from a scheduled chat message. It makes the scheduled message editor behave correctly and avoids an unexpected traceback during message editing.
Original PR description
scheduled message editor Problem: When editing a scheduled chatter message, removing an attachment raises a traceback. Cause: `fullComposerBus` is available in the `Composer` environment but not in `ScheduledMessage`. The code assumed its presence and attempted to use it unconditionally. Solution: Check whether `fullComposerBus` exists in `env` before using it. Steps to reproduce: - Add a log note. - Open the full Composer. - Add an attachment. - Schedule the message. - Save. - Edit the scheduled message. - Remove the attachment from the attachments list. - Observe a traceback. opw-6098302 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#258839
When users change fields in the holiday request pop-up, those updated values are now saved correctly. This prevents users from losing edits and makes request handling more reliable.
When sending invoices by email, extra attached reports now use the name configured on the report instead of being renamed with a default pattern. This makes emailed documents easier to recognize and ensures customer-facing PDFs match the business’s chosen naming.
Original PR description
When sending an invoice by email template, dynamic report attachments do not use their configured Printed Report Name. Instead, they fall back to a default naming pattern (e.g. report name + invoice…
When sending an invoice by email template, dynamic report attachments do not use their configured Printed Report Name. Instead, they fall back to a default naming pattern (e.g. report name + invoice number). This is due to a difference in flow: sales use the standard mail.compose.message wizard, which correctly applies each report’s print_report_name, while invoices use the dedicated account.move.send flow. In this flow, dynamic report filenames are not computed from the report itself. To fix this, the send flow is updated so _get_placeholder_mail_template_dynamic_attachments_data computes the filename from each dynamic report. When a print_report_name is defined, it is used. Otherwise, the previous fallback behavior is preserved. The fix will ensure extra dynamic reports follow their configured printed name. Steps to reproduce: 1. Go to Settings > Technical > Reporting > Reports and duplicate the standard Invoice report. 2. In the duplicated report, set a custom value in Printed Report Name (e.g. 'CUSTOM_NAME_TEST'). 3. Go to Settings > Technical > Email > Templates and open “Invoice: Sending”. 4. Add the duplicated report under Dynamic Reports. 5. Create a customer invoice and confirm it. 3. Click Send (or Send & Print) to open the email preview. Related Ticket: opw-6058716 Forward-Port-Of: odoo/odoo#259975 Forward-Port-Of: odoo/odoo#259267
This update makes sure retried tests keep track of the latest test instance instead of reusing an older one. That helps avoid issues when the system opens a test cursor, improving the reliability of automated test runs.
Original PR description
When a test is retried, the current_test variable was not updated to the new test instance, which could lead to issues when opening a test cursor. This commit ensures that current_test is updated on each retry attempt. While there update the condition to have a stronger check in this specific case since test equality only uses test name Forward-Port-Of: odoo/odoo#260148
Preparation tickets now show the selected product variant for instant variants included in combo choices, instead of only showing the base product name. This helps kitchen and fulfillment teams identify the exact item ordered and reduces preparation mistakes.
Original PR description
Before this commit, the preparation printer did not display the attribute value for an instant variant added inside a combo choice. This occurred because the attribute value was not properly set on the variant order line. Steps to reproduce: * Create a PoS product with multiple variants. * Create a combo product with a choice containing the variants. * Configure a preparation printer. * Open a PoS session and order the combo. * The printer displays only the base product name. opw-5949132 Forward-Port-Of: odoo/odoo#256981
The Barcode app no longer shows a location confirmation warning when users add a product that is not meant to be stored in inventory. This makes the workflow smoother and prevents unnecessary prompts during picking operations.
Original PR description
### Steps to reproduce: - In the settings: Enable Multi-Steps Routes - Create a non-storable product P - Go to the barcode app > Operations > Delivery Order > New - Click on "Add Product" > select P…
### Steps to reproduce: - In the settings: Enable Multi-Steps Routes - Create a non-storable product P - Go to the barcode app > Operations > Delivery Order > New - Click on "Add Product" > select P as product > Confirm #### > A confirmation dialog appears: Oops! It seems that this product is not located in WH/Stock. Do you confirm you picked from there? ### Expected behavior: Since the product is not storable it should not trigger the dialog ### Cause of the issue: The `is_storable` value of the `product.product` is not part of the data that can be used to check if we should check the quantity available in location since only the product id and name are directly available: https://github.com/odoo/enterprise/blob/77d3cc81be8aeb9f2e8bf57fb561fcae80f23b04/stock_barcode/static/src/js/stock_barcode_sml_form.js#L40-L70 However, since an rpc is already performed in order to determine the `qty_available` of the product, we might as well use that same rpc to recover the information and also avoid the dialog in case it is irrelevant. opw-6110655 Forward-Port-Of: odoo/enterprise#114173
This update prevents custom fields from being duplicated when the system reloads model definitions. It helps keep the application registry clean and avoids inconsistent behavior caused by leftover field entries.
Original PR description
When a custom (manual) field is related to a base field, it is added to `registry.field_setup_dependents`. However, these custom fields were not being cleaned up correctly, causing them to duplicate and leak during each model setup. This fix explicitly cleans these manual fields from `field_setup_dependents` inside `_add_manual_models()` when manual models are removed from the registry and the registry is being reloaded. Similar to https://github.com/odoo/odoo/pull/253377. Forward-Port-Of: odoo/odoo#259819
The editor now avoids showing formatting tools on parts of a page that cannot be edited. This prevents errors and unexpected changes when users work with locked content, while still allowing the toolbar for special editable elements like QWeb and icons.
Original PR description
Current behavior before PR: - Removing formatting on a contenteditable false element infinite loop when removing format. - The toolbar could appear even when the target element had contenteditable false Desired behavior after PR is merged: - Now,the toolbar no longer opens when the selected element is contenteditable false - The toolbar is now only shown for elements with contenteditable true, except for QWeb and icon elements, where it remains accessible. task-5265416 Forward-Port-Of: odoo/odoo#259453 Forward-Port-Of: odoo/odoo#231613
This change prevents a checkout failure that could happen when paying for a cart created with a company account whose contacts are linked to active users. Odoo now checks for active users on related contacts before archiving them, so payments can complete normally instead of stopping with an error.
Original PR description
Use case: - considering a database where `website_event_booth_sale` is installed - considering a company (ACME Corp., email: info@acme.example.net) and it's contact `Roger` (which have a valid user). then: - As an anonymous user, go to an event with some booth to register - register a booth and enter the company information (important: use the company email: info@acme.example.net, this way the cart is created the company as the `partner_id` !!!) - you are redirected to the cart - try to pay it, and upon payment you have the following error: ``` You cannot archive contacts linked to an active user. You first need to archive their associated user. ``` This commit ensure we also check if any contact of the commercial partner have any user before trying to archive them all. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#259451
When users click “View Profile” from a partner mention, the contact form now opens and the avatar popover closes at the same time. This avoids having two overlapping windows on screen and makes the experience cleaner and less confusing.
Original PR description
**Current behavior before PR:** Clicking on a partner mention opens the avatar card popover. When the **View Profile** button is clicked, the partner form view opens, but the popover remains visible. This happens because the popover opened via `onClickPartnerMention` uses the popover service directly, instead of the `usePopover` hook, which automatically closes the popover when the component is unmounted. **Desired behavior after PR is merged:** Clicking the **View Profile** button opens the partner form view and closes the avatar card popover. task-[6063906](https://www.odoo.com/odoo/project/1519/tasks/6063906) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#259959 Forward-Port-Of: odoo/odoo#256283
This fix prevents an error when users add multiple tags to a blog post cover and one of the tags has not been fully created yet. It improves the editing experience by avoiding a traceback and letting users continue selecting tags normally.
Original PR description
# How to reproduce - Go to a blog page and edit the Blog Post Cover - Add a tag - Try to add another one # The problem A traceback is shown # Why When adding a new record for a many 2 many relation, the framework ensure the user cannot create a record with a name that already exists via a name search. This commit (https://github.com/odoo/odoo/commit/3631757a4766bc59378bb975e01e115c92ef1dd4) changed the way the name search is done to add this domain to the request : ```py domain.push(["id", "not in", selectedIds]); ``` But selectedIds can contain strings in the case of uncreated records, which causes the SQL query to throw an error trying to match the model id with strings opw-5978305 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#258451 Forward-Port-Of: odoo/odoo#251469
Access error messages now better identify the real reason a record is blocked. This prevents users from being misled into thinking a company access issue is the cause when another rule is actually responsible.
Original PR description
When accessing an archived record directly, if access is prevented by a record rule other than a multi-company global rule, the error message incorrectly reports that all rules are failing, suggesting a company issue even though it is not the actual cause. The problem is that when access is denied, the diagnostic method `_get_failing` is used to determine which rules are failing. This method performs several count queries with different rule domains. However, `active_test` is True by default, excluding archived records from the count, causing the rule evaluation to miss some records and incorrectly mark rules as failing. With this commit, `_get_failing` evaluates rules with `active_test=False`, ensuring that only actually failing rules are reported. Forward-Port-Of: odoo/odoo#259592 Forward-Port-Of: odoo/odoo#259344
When editing Arabic or other right-to-left content, the editor now matches the direction of the site being edited instead of the logged-in user’s interface language. This prevents text from appearing in the wrong alignment while writing and makes the editing experience consistent with the published page.
Original PR description
Steps to reproduce: ==================== 1. Install Arabic and set it as a website language 2. Log in as a user whose UI language is English 3. Edit a page / article in Arabic and type some text =>…
Steps to reproduce: ==================== 1. Install Arabic and set it as a website language 2. Log in as a user whose UI language is English 3. Edit a page / article in Arabic and type some text => Text rendered left-to-right in the editor Cause: ======= this was introduced after this change [1] When editing a website/article in a language whose direction differs from the logged-in user's UI language, text entered in the builder appeared in the wrong direction (e.g. writing in Arabic showed the caret/text aligned to the left instead of the right). Saving reverted the content to the correct direction, but the authoring experience was broken. The builder was initializing the editor's `direction` config from `localization.direction`, i.e. the *user's* UI locale, instead of the direction of the document being edited. As a result, an LTR admin editing an RTL site (or the reverse) got an editable whose `dir` attribute did not match the site. Solution: ========= Use the editable itself as the source of truth: if it carries the `.o_rtl` class (already used to set `isEditableRTL`), set `direction = "rtl"`, otherwise `"ltr"`. => Text now renders right-to-left, matching the site [1]:https://github.com/odoo/odoo/pull/256045/changes/0490b2229dba7e0cb4a58e5cf4d68772e5640697 opw-6109987 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#259541
The domain selector and expression editor now show numbers using the user’s local formatting, including the correct decimal and thousands separators. This makes values easier to read and reduces confusion, while keeping the underlying expression unchanged.
Original PR description
Before this commit, the domain selector (and expression editor) did not format numbers according to the localization parameters (decimal and thousands separators), while the parsing step did. After this commit, the value is displayed in the correct format to the user, while the expression remains unchanged. 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#259732 Forward-Port-Of: odoo/odoo#258287
Employee search in Attendance kiosk mode now handles certain department filters correctly and no longer crashes with an error. This makes it easier for staff to find employees at the kiosk without interruption.
Original PR description
**Steps to Reproduce:**
1. Install `hr_attendance` module with demo data.
2. Go to Attendances > Kiosk Mode > Identify Manually.
3. Select any department.
4. Try searching for an employee.
**Error:**
`ValueError - not enough values to unpack (expected 3, got 1)`
**Cause:**
The `employees_infos()` controller assumes that every item in the domain is a valid triplet (field, operator, value). However, the domain may also contain logical operators ('&'), which are not triplets. And then trying to unpack such entries leads to a ValueError.
**Fix:**
Add a validation to ensure the condition is a proper triplet before unpacking. Non-conforming entries (logical operators) are skipped.
sentry-7401444075
opw-6113268
Forward-Port-Of: odoo/odoo#258825This change fixes an issue where the color picker would close immediately after hovering a color on selected icons. It restores the intended behavior so users can change icon colors normally in the editor.
Original PR description
Commit [1] did already fix this problem, but commit [2] broke it again. This commit restores the condition that was removed by [2] but adapts it slightly in order to only take into account the direct children of the node, instead of any sub-node when checking for the presence of icons. Steps to reproduce: - Go to a "To do" note - Insert an icon with /media - Select the icon - Open the color picker - Hover a color => Color picker closed right away [1]: https://github.com/odoo/odoo/commit/1adfd9b9daf09c26ad642faf411574123110b9be [2]: https://github.com/odoo/odoo/commit/85688ffd11a3a988bf32c8c923a4628a89b57f87 task-6128069 Forward-Port-Of: odoo/odoo#260014 Forward-Port-Of: odoo/odoo#259644
This fix ensures desktop activity matched by a rule is linked to the project selected in that rule, even when no task is set. As a result, time suggestions appear in the right place instead of showing as unmatched, making timesheet tracking more reliable.
Original PR description
Steps to Reproduce --- - Define an aw.rule with a project set without a task (false) - The rule regex matches a desktop app event (e.g. Discord window) - Open the Timesheets Assistant for the current…
Steps to Reproduce --- - Define an aw.rule with a project set without a task (false) - The rule regex matches a desktop app event (e.g. Discord window) - Open the Timesheets Assistant for the current day Current Behavior --- - The matched event has _res_model set to "project.task" and _res_id set to undefined, despite no task being configured on the rule - The suggestion appears as "Unmatched" in the assistant even though a project was correctly defined on the rule Expected Behavior --- - The matched event should have _res_model set to "project.project" and _res_id set to the rule's project_id - The suggestion should appear under the configured project Issue --- - In extractWatcherActivity(), both project_id and task_id blocks used != null as the guard condition - When task_id is false, false[0] is undefined, overwriting the correctly set _res_model i.e. "project.project" and _res_id from the project_id block with "project.task" and undefined _res_id Fix --- - Replace with a truthy check task - 6089410 Forward-Port-Of: odoo/enterprise#114172
The spreadsheet component has been refreshed to its latest version, bringing multiple fixes and internal updates that improve reliability and compatibility. This includes corrections for formatting, pivot tables, copy/paste behavior, and visual polish, helping users avoid crashes and inconsistent results while working in spreadsheets.
Original PR description
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/1ebe03d162 [REL] 19.2.8 [Task: 0](https://www.odoo.com/odoo/2328/tasks/0)…
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/1ebe03d162 [REL] 19.2.8 [Task: 0](https://www.odoo.com/odoo/2328/tasks/0) https://github.com/odoo/o-spreadsheet/commit/5fad815249 [IMP] package: backport rolldown and TS 6.0 [](https://www.odoo.com/odoo/2328/tasks/) https://github.com/odoo/o-spreadsheet/commit/030d3793ce [IMP] typescript: upgrade to 6.0.2 [Task: 6119495](https://www.odoo.com/odoo/2328/tasks/6119495) https://github.com/odoo/o-spreadsheet/commit/941bb93a5e [FIX] package: add rolldown binaries to optional dependencies [Task: 0](https://www.odoo.com/odoo/2328/tasks/0) https://github.com/odoo/o-spreadsheet/commit/e2c1b4a0dc [IMP] package: upgrade rolldown to latest version [Task: 6119495](https://www.odoo.com/odoo/2328/tasks/6119495) https://github.com/odoo/o-spreadsheet/commit/99b0d19d69 [IMP] config: rename rolldown config file [Task: 6071659](https://www.odoo.com/odoo/2328/tasks/6071659) https://github.com/odoo/o-spreadsheet/commit/28652dab8c [IMP] config: replace rollup with rolldown [Task: 6119495](https://www.odoo.com/odoo/2328/tasks/6119495) https://github.com/odoo/o-spreadsheet/commit/3b19f6d042 [IMP] eslint: enforce type exports [Task: 6119495](https://www.odoo.com/odoo/2328/tasks/6119495) https://github.com/odoo/o-spreadsheet/commit/e7fb830b27 [IMP] pre-commit: bypass eslint's typescript compilation [](https://www.odoo.com/odoo/2328/tasks/) https://github.com/odoo/o-spreadsheet/commit/d2ed012bc6 [IMP] tsconfig: moduleResolution bundler [Task: 6119495](https://www.odoo.com/odoo/2328/tasks/6119495) https://github.com/odoo/o-spreadsheet/commit/d5cf819fdc [FIX] format: keep negative accounting suffix in large number [Task: 6068834](https://www.odoo.com/odoo/2328/tasks/6068834) https://github.com/odoo/o-spreadsheet/commit/a55057c702 [FIX] spreadsheet_pivot: avoid crash on invalid dimension values [Task: 6111913](https://www.odoo.com/odoo/2328/tasks/6111913) https://github.com/odoo/o-spreadsheet/commit/dcd5903f24 [FIX] side_panel: prevent chart picker layout shift on hover [Task: 6095239](https://www.odoo.com/odoo/2328/tasks/6095239) https://github.com/odoo/o-spreadsheet/commit/665d9f303d [IMP] tests: add tests for `chartShowValuesPlugin` [Task: 0](https://www.odoo.com/odoo/2328/tasks/0) https://github.com/odoo/o-spreadsheet/commit/de634c5865 [FIX] clipboard: prevent cross-version copy/paste [Task: 6095101](https://www.odoo.com/odoo/2328/tasks/6095101) https://github.com/odoo/o-spreadsheet/commit/a9fbc7b0d8 [FIX] css: remove unused variables [Task: 6119435](https://www.odoo.com/odoo/2328/tasks/6119435) https://github.com/odoo/o-spreadsheet/commit/20d0cb4982 [FIX] computed style: fix multi-user clear formatting [Task: 6086129](https://www.odoo.com/odoo/2328/tasks/6086129) https://github.com/odoo/o-spreadsheet/commit/c3b64a3683 [FIX] format: large number format with no digits [Task: 6010376](https://www.odoo.com/odoo/2328/tasks/6010376) https://github.com/odoo/o-spreadsheet/commit/19a3cfb895 [FIX] format: number format with no digit [Task: 6068824](https://www.odoo.com/odoo/2328/tasks/6068824) https://github.com/odoo/o-spreadsheet/commit/903fb2bd26 [FIX] pivot cell style copied twice [Task: 5909138](https://www.odoo.com/odoo/2328/tasks/5909138) Co-authored-by: Florian Damhaut (flda) <flda@odoo.com> Co-authored-by: Anthony Hendrickx (anhe) <anhe@odoo.com> Co-authored-by: Alexis Lacroix (laa) <laa@odoo.com> Co-authored-by: Lucas Lefèvre (lul) <lul@odoo.com> Co-authored-by: Adrien Minne (adrm) <adrm@odoo.com> Co-authored-by: Ronak Mukeshbhai Bharadiya (rmbh) <rmbh@odoo.com> Co-authored-by: Dhrutik Patel (dhrp) <dhrp@odoo.com> Co-authored-by: Rémi Rahir (rar) <rar@odoo.com> Co-authored-by: Pierre Rousseau (pro) <pro@odoo.com> Co-authored-by: Vincent Schippefilt (vsc) <vsc@odoo.com> Co-authored-by: Marceline Thomas (matho) <matho@odoo.com>
Sending password reset instructions to several users at once no longer triggers an error. The fix ensures the email content is generated correctly for each user, so administrators can use the bulk action without interruption.
Original PR description
Currently, an error occurs when sending the password reset link to multiple users. **Steps to Reproduce:** - Install `auth_signup` module. - Go to `Users` and make sure there are at least two user…
Currently, an error occurs when sending the password reset link to multiple users.
**Steps to Reproduce:**
- Install `auth_signup` module.
- Go to `Users` and make sure there are at least two user records.
- In the `list view`, select both users.
- Go to `Actions` > click `Send Password Reset Instructions`.
`ValueError: ValueError('Expected singleton: res.users(24, 23)') while evaluating 'records.action_reset_password()'`
This error occurs when generating the email body_html [1]. It passes multiple user
records (self) as the context record, but _render_encapsulate expects a single user
record to render the email body. which raise the error here[2].
This commit passes a single user record when rendering body_html.
[1]: https://github.com/odoo/odoo/blob/39c6e3a2578c4f7058dddb6acf12231d8716e7fd/addons/auth_signup/models/res_users.py#L214
[2]: https://github.com/odoo/odoo/blob/39c6e3a2578c4f7058dddb6acf12231d8716e7fd/addons/mail/models/mail_render_mixin.py#L187
sentry-7271437735
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#249206The Timesheet Assistant now ignores calendar entries created from time off requests. This prevents employees from seeing time off as a work suggestion in Timesheets, making the assistant’s recommendations more accurate and less confusing.
Original PR description
Steps to Reproduce:
---
1. Book a time off for any day via the Time Off app.
2. Open the Timesheets app for that same day.
3. Open the Timesheet Assistant suggestions panel.
Current Behavior:
---
The assistant surfaces the calendar event generated by the Time Off app as a
timesheet suggestion, e.g."Calendar Event - Mitchell Admin on Time Off : 1 days"
Expected Behavior:
---
Calendar events created by time off requests should not appear as
timesheet suggestions.
Issue:
---
The get_calendar_events getter in timesheet_grid_calendar fetched all calendar event
for the user without filtering by res_model, so time off meetings were included.
Fix:
---
Add ("res_model", "!=", "hr.leave") to the calendar.event search
domain.
task-6117932
Forward-Port-Of: odoo/enterprise#113789Website editor now shows the translation status marker correctly on file names added through the file element, even when the name sits over a colored background. This makes it easier for users to see whether a file name still needs translation when editing multilingual pages.
Original PR description
Commit cbb2eb2edfeecbc21a70c1a3cba81ad0a7ac9c75 added a resource to repeat the background color of the translation state inside elements, for the cases where an element has a background color that hides the translation state. This commit uses the resource for file's names (added by typing `/file`) Steps to reproduce: - Open website builder - Type `/file` and add a file - Add a language - Open in translate mode - Bug: the translation state is not show on the file name task-6038029 Forward-Port-Of: odoo/odoo#259955 Forward-Port-Of: odoo/odoo#259902
There were some translation overrides for `fr_BE` and `fr_CA` that were incorrect or unnecessary. We are deleting these files so they use the correct translations in `fr` instead. In the `nl_BE` translation, we are fixing a menu item so it is shorter, but still correct. task-5921458 Forward-Port-Of: odoo/enterprise#114197 Forward-Port-Of: odoo/enterprise#106998
Original PR description
There were some translation overrides for `fr_BE` and `fr_CA` that were incorrect or unnecessary. We are deleting these files so they use the correct translations in `fr` instead. In the `nl_BE` translation, we are fixing a menu item so it is shorter, but still correct. task-5921458 Forward-Port-Of: odoo/enterprise#114197 Forward-Port-Of: odoo/enterprise#106998