Daily updates from Odoo
Monday, June 30, 2025
49 changes
23 changes
Resolved issues and error corrections
Fixes a display issue in Mail where clearing a message while editing could make the empty message bubble stretch across the full conversation area. This keeps chat and discussion views cleaner and avoids confusing visual glitches for users.
Original PR description
This commit fixes a UI bug where editing a message and clearing its content results in the message bubble expanding to full width. **Current behavior before PR:**  **Desired behavior after PR is merged:** 
The live chat widget now waits for the correct availability check before showing the start chat button. This prevents visitors from briefly seeing a chat option that may not actually be available, creating a smoother website experience.
Original PR description
When the live chat is loaded on a page, it receives a value called `isAvailable` from the session. This name is misleading: it indicates availability if either an agent or a bot is present, but it…
When the live chat is loaded on a page, it receives a value called `isAvailable` from the session. This name is misleading: it indicates availability if either an agent or a bot is present, but it doesn’t consider the live chat rules.
These rules depend on the URL. Since `get_livechat_info` is called from the website template, we can’t determine which rule applies at that point. The goal is mainly to avoid calling `init_livechat` ("/mail/data") if we already know the live chat won’t be available. However, this check alone isn’t enough to decide whether to show the chat button.
This commit renames `isAvailable` to `can_load_livechat` for clarity. If `can_load_livechat` is set, we can load the live chat and call `init_livechat`, which will then set the `livechat_available` value.
task-4908197
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-prWebsite editing could show duplicate live chat bubbles and windows because both editing and visitor assets were loaded at the same time. This fix keeps the chat experience clean during website editing by hiding the extra chat elements with styling, avoiding more complex communication between page frames.
Original PR description
When editing is enabled, the website loads both the backend and frontend assets. Until [1], this resulted in two sets of chat windows and bubbles being displayed. This commit is a follow-up to the above PR, maintaining the same behavior but relying only on styles. This avoids the need for cross-iframe or cross -window communication. [1]: https://github.com/odoo/odoo/pull/212452 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 messaging menu button in the top bar now displays with the correct background. This fixes a small visual issue so the interface looks consistent and polished for users.
Original PR description
This commit fixes a background issue on the messaging menu button in the systray. issue introduced by: https://github.com/odoo/odoo/pull/198012 before:  after: 
This update fixes a broken automated test for the website editor so the test suite better reflects the current behavior. It helps maintain release stability by reducing false test failures during development and deployment checks.
Original PR description
This commit adapt the broken tests test_05_specific_website_editor.
Clicking a GIF preview in Mail now works without triggering an error when no click handler is available. This prevents a confusing interruption for users who open GIF links from messages.
Original PR description
**Current behavior before PR:** When a user posts a GIF link and clicks the preview, it opens in a new tab but throws an error because `props.onClick` is called unconditionally, even if undefined. **Desired behavior after PR is merged:** The issue is fixed by ensuring `props.onClick` is only called if it is defined. **Task**-4908537 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Odoo now only shows the quick-create option for grouped list and kanban views when the view uses its intended default grouping. This prevents confusing or unsupported behavior when users group records by other fields.
Original PR description
This commit updates the conditions for enabling group quick create in list and kanban views. In addition to existing checks, the view must now be grouped using its default groupby (if defined) for quick create to be available. This ensures that group quick create is only shown in contexts where it is properly supported and avoids undesired behavior when grouping by arbitrary fields. task-4897809
This fixes a small error in how the Time Off app checks which team members are currently online. The change makes the status check more reliable and reduces the risk of incorrect availability information being shown.
Original PR description
Follow-up of https://github.com/odoo/odoo/pull/198012 PR above made a typo in code in which list of "online" member IM status is a list of string, and it uses + to concatenate items like in python but this doesn't work in JS. Thankfully it kinda "worked" because this casted the array into list (e.g. `["a", "b"]` becomes "a,b") and other items were appended to string. Since this list was used for `.includes()` by chance the ".includes()" method is on Array and String and functionally this results to about the same intention... Again by chance!
Restores the missing help tooltip in the website builder's product filter dropdown. This makes it easier for website editors to understand filter choices such as recently viewed products when configuring product snippets.
Original PR description
> [LIPI] Missing dynamic filter help tooltip added in https://github.com/odoo/odoo/pull/196493 (quick fix: `title="fitler.help"` in dynamic_snippet_option.xml:9) Steps to reproduce: - Open website builder (with website_sale) - Drop snippet `s_dynamic_snippet_products` - Open the "Filter" dropdown and hover "Recently Viewed Products (...)" - Bug: No tooltip appears with a help message The tooltip with a help message on filter option was implemented on master in parallel of the initial refactor of the website builder. This commit adds the tooltip on the refactored builder Help on filter option: 5e21f518d285d0e3ca619ba3505ded6da5fb2e67 Website refactor: 9fe45e2b7ddbbfd0445ffe25a859e67a316d02b2 task-4367641
This fixes a crash that could happen in the website HTML builder when users moved the mouse while pressing a key. The change keeps editing interactions stable and avoids interrupting page-building work.
Original PR description
__Current behavior before commit:__ The `onMouseMoveOrDown` event listener is inside `throttleForAnimation` therefore it might be called asynchronously. In this case `ev.currentTarget` is `null` and the following traceback appears when we move the mouse while pressing a key in the html builder: ``` TypeError: Cannot read properties of null (reading 'removeEventListener') ``` __Description of the fix:__ Replace `ev.currentTarget` by `this.editable` since the `onMouseMoveOrDown` event listener is always added on the latter.
This fix prevents an error when loading restaurant sample data after product categories have been removed. It adds a fallback so the sample sushi combo product can still be created, helping users set up restaurant demos without manual troubleshooting.
Original PR description
A ParseError is raised when the system attempts to assign a product category to the `sushi_drink_combo` product, in cases where food product category have have been manually removed before loading…
A ParseError is raised when the system attempts to assign a product category to the `sushi_drink_combo` product, in cases where food product category have have been manually removed before loading the demo data. - new demo data has been added : odoo/odoo@94734feba5670b23acf73a2ad485efe3d480efc0 - `raise_if_not_found` conditions has been added for all demo data : odoo/odoo@e6430737bdcea0162e4a3d5ee82e9ab6caa697e9 Steps to reproduce: 1. Install the `point_of_sale` module without demo data. 2. Navigate to Inventory -> Configuration -> Categories. 3. Delete food category. 4. Navigate to Point of Sale → Load Restaurant Sample Data. 5. An error is triggered during the process. Error: ```python odoo.tools.convert.ParseError: while parsing /home/odoo/odoo/codebase/odoo/saas-18.3/addons/pos_restaurant/data/scenarios/restaurant_demo_data.xml:605, somewhere inside ``` This issue occurs because `sushi_drink_combo` also references a missing product category. As with previous products, this change ensures a fallback to prevent failure when no categories exist. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#213345
The website builder now treats unset social media links as empty values rather than missing entries. This ensures all expected social media options remain available when editing a social media snippet, especially on databases without demo data or preconfigured links.
Original PR description
Steps to reproduce: - On a database without demo data (and no social links set) - Open website builder - Click on a social media snippet (by default there is one in footer) - Bug: social media not in the snippet are not present in the option The bug was introduced when changing the handling of empty social media records to fix a crash: d4621f81698cdbf3e6a1d72349b3e5f135e0ee53
The website builder's Theme > Advanced section now shows the Code Injection and Google Map Custom Key controls as proper buttons. This improves clarity for users configuring advanced website settings and removes some unused internal code.
Original PR description
Before this commit, the buttons "Code Injection" and "Google Map Custom Key" in `ThemeAdvancedOption` were defined with the tag `button` instead of `BuilderButton` and were acting via `t-on-click` instead of using a `BuilderAction`. This commit converts the two elements to `BuilderButton` using `BuilderAction`. In addition, unused references are removed from `ThemeTabPlugin`. **How to reproduce** 1. In the website builder 2. In the "Theme" tab 3. In the "Advanced" section 4. Problem: the two objects on the rows "Code Injection" and "Custom Key" do not look like buttons. task-4367641
The website builder now hides the Header Position option when a sidebar header is selected, since that setting does not affect sidebar layouts. This prevents users from seeing a confusing control that has no visible impact while editing website headers.
Original PR description
> [BVR] select the "sidebar" header. Select "over the content" => no effect .. I think the option should be hidden for "sidebar" (check before mysterious egg). Steps to reproduce: - Open website builder - Click on the header - Change the "Template" to the last one: "Sidebar" - Bug: "Header Position" is still visible This bug was introduced during the initial website builder refactor. Website refactor: 9fe45e2b7ddbbfd0445ffe25a859e67a316d02b2 task-4367641
This fix updates a web test so it uses a reliable record created during the test setup instead of depending on existing demo data. It reduces false test failures and helps keep quality checks stable for future releases.
Original PR description
Before this commit, the test TestLoadBreadcrumbs was failing with demo data. After this commit, the test uses a record created during the setUpClass, thus resolving the issue introduced in #212950 .
A daily automated check now keeps each employee linked to their correct current HR version. This helps ensure employee records stay accurate over time without requiring manual updates.
Original PR description
This adds a cron that will update the current_version_id of all employees every day. Task: 4886048
This update fixes an internal validation issue in the HTML builder that could allow duplicate action identifiers when actions are defined in newer formats. It helps keep website editing behavior consistent and reduces the risk of unexpected builder conflicts.
Original PR description
With the changes of b4b215325db61fbbe9793545293c8b6fbc99f310, some actions are declared as classes with their id as a static field instead of an object for which th id is the key in the resource `builder_actions`. The check for unique action id has not been adapted and only checked if the key is not the id of another action. But for classes the key is not the id, which could lead to duplicates. It also introduced an inconsistency between the actions declared with objects and classes: the id field was added to the object, but not the other. As this field is not used, this commit removes it for both. task-4367641
This fixes which Helpdesk ticket form is opened from timesheet-related views so users see the appropriate ticket layout for their team restrictions. It helps prevent navigation to the wrong form and keeps the Helpdesk timesheet workflow consistent.
Original PR description
- Replaced `form_view_ref` from `helpdesk_timesheet.helpdesk_ticket_view_form_inherit_helpdesk_timesheet` to `helpdesk_timesheet.helpdesk_ticket_view_form_inherit_helpdesk_timesheet_restrict_teams`. - Add primary mode
A new automated check confirms that website rentals count both the start and end dates correctly. This helps prevent pricing or availability errors where a two-day rental could be calculated incorrectly.
Original PR description
Adds a tour that ensure date-based rental durations are set correctly, i.e. renting from 2025-01-01 to 2025-01-02 should result in a rental period of 2 days. This should prevent commits like 574e111 (reverted by 5982e11) from introducing faulty logic. Forward-Port-Of: odoo/enterprise#88671 Forward-Port-Of: odoo/enterprise#88264
This update adjusts internal test expectations for the Mail enterprise module after a recent merge caused performance checks to fail. It helps keep automated validation reliable without changing business functionality for users.
Original PR description
Started to fail just after merge, weird. runbot-227060
This fix ensures AI email rendering no longer changes shared settings provided by custom modules. It helps avoid unexpected behavior when the same settings are reused elsewhere, improving reliability for customized deployments.
Original PR description
In custom modules the caller parameters are reused, don't modify them in place as it is a bad practice and copy the dict.
This fix keeps accounting report tests focused on the intended generic tax report, even when US accounting localization is installed. It prevents test failures caused by automatic switching to the US-specific report variant, improving release reliability without changing user-facing behavior.
Original PR description
https://github.com/odoo/odoo/commit/174fda9bde8460df0d819100aed7974321d43a59 added a new US variant for the tax report. When running the tests, some failed, because the active company was then a US one, and calling the generic tax report actually rerouted to that new variant. We now ensure we don't reroute in those tests by using the appropriate option key. runbot-226719
This update prevents errors when Belgian Intrastat VAT report export views are combined with related screens. It removes an empty view definition that could disrupt normal reporting workflows.
Original PR description
In l10n_be_intrastat, we have vat_report_export.xml, which contains an empty arch (because it had to be removed in master). But as this view is inherited by other views, it raises an error, because we're trying to merge a string (the inherits) and a None (the empty arch). We will remove the empty arch in 18.4 (as we did in 18.3), and remove totally the view in master, with an upgrade script. no-task
7 changes
Resolved issues and error corrections
A new automated check confirms that date-based rentals count the full rental period correctly, such as January 1 to January 2 being treated as two days. This helps prevent future changes from accidentally causing incorrect rental durations and pricing behavior on eCommerce rental flows.
Original PR description
Adds a tour that ensure date-based rental durations are set correctly, i.e. renting from 2025-01-01 to 2025-01-02 should result in a rental period of 2 days. This should prevent commits like 574e111 (reverted by 5982e11) from introducing faulty logic. Forward-Port-Of: odoo/enterprise#88671 Forward-Port-Of: odoo/enterprise#88264
The accounting reconciliation process now safely stops when there are no bank statement lines to process. This prevents users from seeing an error when running reconciliation models with no available transactions.
Original PR description
SQL syntax error occurs when trying to auto reconcile transactions via reconcile models,it is because there are no statement lines to reconcile. **Steps to reproduce:** * Install `accountant` module (No demo data needed) * Accounting Dashboard> Bank dropdown menu * Under reconciliation>Models>Internal Transfers>Run Now `syntax error at or near ')' LINE 57: WHERE st_line.id IN ()` **Solution:** * Return the function if there are no statement to reconcile. **Sentry-6610155279**
Printed payslips now display title-style salary rule lines with the correct formatting. This makes generated payroll documents clearer and more professional for employees and HR teams.
Original PR description
### Steps to reproduce: - Generate and print a payslip after marking a salary rule line as a title. ### Fix: - Added conditional styles and classes to fix the issue. task-4780481
This fix prevents an error from appearing when staff mark a point-of-sale preparation order as done shortly after it arrives while using debug mode. It adds a safety check so the display no longer tries to use order information that has already been removed.
Original PR description
Steps to reproduce: - Open a preparation display in debug mode - Make an order that will appear on the preparation display - Click on the done button before 5 seconds - Traceback will appear 5 seconds after the order was received Issue: When receiving an order useDelayedValueChange is called in the setup of the Orderline component. This method will try to access the props after a timeout. When the preparation orders are deleted in debug mode, the states are deleted from the front end. Since the props of orderline are the preparation state linked to it a traceback arises. Fix: A check is added to check if the state record exists.
Removing a parent emission source from an ESG emission source no longer triggers an error. This keeps emission source management reliable and prevents disruption when users update ESG reporting structures.
Original PR description
Currently, an error occurs when attempting to remove the parent emission source from an emission source. Steps to Reproduce: - Install the `ESG` module. - Go to `Emission Sources` and create a new…
Currently, an error occurs when attempting to remove the parent emission source from an emission source. Steps to Reproduce: - Install the `ESG` module. - Go to `Emission Sources` and create a new emission source with a parent emission source. - Remove the parent emission source. `ValueError: Compute method failed to assign esg.emission.source(<NewId origin=3>,).activity_flow_direct_indirect` This error occurs when the parent emission source is removed, causing the scope to become False in _compute_scope[1]. Subsequently, in _compute_activity_flow[2], none of the cases match, which results in a failure to assign the activity flow and raises an error. [1] https://github.com/odoo/enterprise/blob/1c7620d8de97757abda1993822f92590987bc46c/esg/models/esg_emission_source.py#L75 [2] https://github.com/odoo/enterprise/blob/1c7620d8de97757abda1993822f92590987bc46c/esg/models/esg_emission_source.py#L77-L78 This commit ensures that if the parent emission source is removed, the activity flow is properly maintained. sentry-6690968543
HR users can now update employee leave requests even while they are waiting for approval, provided the leave has not already been included in payroll. This helps HR correct or adjust leave records before payslip processing without unnecessary blockers.
Original PR description
- Allowing HR people to always edit the leave, as long as it's not included in a payslip. task-4866887
This update keeps the automated checks for Mexican electronic invoicing in Point of Sale aligned with a recent underlying system change. It helps ensure invoice-related POS workflows continue to be tested correctly without affecting day-to-day users.
Original PR description
In this commit, I’ve updated the test in invoice_order_tour to align with the new signature of the selectOrder function introduced in the PR referenced below. Odoo PR: https://github.com/odoo/odoo/pull/212434
1 change
Resolved issues and error corrections
The Swedish SIE4 import now accepts files that use tabs by treating them like spaces during import. Users also receive a clearer error message when an address line is incorrectly formatted, making import issues easier to understand and resolve.
Original PR description
The aim of this commit is replacing all the tabulations in the file while reading it for spaces as the csv reader is using spaces as delimiter. This commit also introduces a new user error which indicates the user that the #ADRESS line is malformed. opw-4868415 Forward-Port-Of: odoo/enterprise#88259
18 changes
Resolved issues and error corrections
This fixes how employee online status lists are combined in Time Off, replacing behavior that only worked accidentally. It reduces the risk of incorrect availability checks when showing or using employee presence information.
Original PR description
PR above made a typo in code in which list of "online" member IM status is a list of string, and it uses + to concatenate items like in python but this doesn't work in JS. Thankfully it kinda "worked" because this casted the array into list (e.g. `["a", "b"]` becomes "a,b") and other items were appended to string. Since this list was used for `.includes()` by chance the ".includes()" method is on Array and String and functionally this results to about the same intention... Again by chance! Forward-Port-Of: odoo/odoo#216598
This fixes Spanish SII reporting so credit notes identify OSS taxes using the correct refund tax information instead of invoice tax information. It helps ensure refunds are reported accurately and reduces the risk of incorrect tax data being sent.
Original PR description
Before this commit, the method _has_oss_taxes was determining whether a tax is OSS based on the tax_ids.invoice_repartition_line_ids.tag_ids This works fine for invoices, but for credit notes it should be based on tax_ids.refund_repartition_line_ids.tag_ids This commit solves this issue followup of: https://github.com/odoo/odoo/pull/215614 task-4548095 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#216603 Forward-Port-Of: odoo/odoo#216543
The mail message composer now keeps a consistent height when empty in Chromium-based browsers. This prevents the input box from visibly resizing as users begin typing, making messaging feel smoother and more polished.
Original PR description
Before this commit, composer height was too small when it had no content. This lead to composer changing height when typing some characters which looks off. This bug is specific to Chromium browsers and seems to be new since Chrome 138.0. The code expected that textarea had unchanged scrollheight when textarea has height 0 and fits its content in at most 1 line, but this seems to have changed with Chrome 138.0. This commit fixes the issue by cheating when composer is empty: the fake textarea artificially adds a character so that the computation for height when empty works as if it has 1 character, thus the computed height is the same when there are few characters in composer.
This fixes a visual issue on invoice forms where an empty section could leave an odd line and extra spacing beside invoice amounts. The invoice screen now hides that whole section when it is not relevant, making the layout cleaner for draft invoices or invoices without outstanding items.
Original PR description
Repro steps: Navigate to the form view of an invoice that is either 1. not posted 2. does not have outstanding debits/credits Problem spotted: next to the invoice amounts, a weird line and margin to the right can be seen Cause: The field invoice_outstanding_credits_debits_widget of an invoice may be invisible with this condition invisible="state != 'posted' or not invoice_has_outstanding" and in that case, it's containing group would still be visible (showing the aforementioned margin). Fix: This commit fixes this issue by moving the invisible condition to the group containing the field invoice_outstanding_credits_debits_widget instead of the condition being on the field itself. task-4882509 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update fixes an automated website payment donation test so it handles the payment confirmation redirect reliably. It helps keep donation-related website checks stable and reduces false test failures during quality assurance.
Original PR description
In this commit, we fix the donation_snippet_use tour. At the end of the tour, when you click on submit donation, you are redirected to a page "Your payment has been processed." From this page, you are then redirected to a page with "Thank you". This intermediate redirection page can be a problem if there are several steps that concern it because we do not know when the redirection will be triggered (in the first or the second step?) Therefore, it is essential to have only one step for intermediate redirections. 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
Error dialogs in debug mode no longer show an unrelated internal request ID as if it were a record ID. This avoids misleading information when users or support teams review crash details for server actions.
Original PR description
Steps: - Enable debug mode - Go to server actions - Create a server action that crashes with `Execute code` - Example -> "a" (will crash because `a` is undefined) - Traceback will contains an invalid ID `Occured on odoo180 on model ir.actions.server and id 19 on 2025-06-30 09:20:48 GMT` This was an error and this ID is not linked with the model, it is the rpc id, so it should not be on the traceback. This commit remove this id to have something like this `Occured on odoo180 on model ir.actions.server on 2025-06-30 09:20:48 GMT` opw-4816514
The Spanish SII electronic invoicing integration now identifies OSS taxes using tax tags instead of relying only on predefined system records. This ensures custom OSS taxes created by users are correctly recognized, reducing reporting errors for cross-border EU sales.
Original PR description
This commit fixes the search for OSS taxes in `_has_oss_taxes` function. The current search approach (with tax tags) is better in the following points: 1. No need to use `sudo` for ir.model.data access 2. Currently, user-created OSS taxes are considered in the search task-4548095 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#216375 Forward-Port-Of: odoo/odoo#215614
This change restores the previous behavior of an automated test for creating project sales order lines. It helps keep quality checks stable so future updates to sales-project workflows can be validated reliably.
Original PR description
This reverts commit bde64f4dd19d30f807142fea6f04409de0696c54. runbot-error-226711
The emoji picker now keeps focus when a user selects an emoji category, so keyboard navigation continues to work as expected. This makes emoji selection smoother and more accessible for users who rely on keyboard controls.
Original PR description
Before this PR, the keyboard navigation capability was lost after clicking on a category. This PR adds a tabindex to avoid losing focus on the emoji picker.
A payroll expense process was pointing to the wrong type of record, which could cause incorrect handling of expense sheets linked to payslips. This fix ensures expense sheets are referenced correctly, improving reliability for payroll-related expense workflows.
Original PR description
this commit fixes wrong reference to `hr.payslip`. `payslip_sheets` should be a recordset of `hr.expense.sheet` and not `hr.payslip`.
This update fixes a translation-related error that could occur when referral links or loan information were processed in different languages. It improves reliability for multilingual users without changing business workflows or features.
Original PR description
Issue: Prior to this commit, a translation issue occurred due to the use of a list comprehension. The _get_translation_source function attempts to scan the local variables, but in the context of a list comprehension, only variables defined within the comprehension are accessible. As a result, variables like uuid and cursor were not available to the _get_lang function, ultimately leading to an error. Fix: Replaced the list comprehension with a standard for loop to ensure proper access to local variables. runbot-98198
This fix prevents an error when users edit payslip lines through the payroll wizard. Payroll staff can update payslip details more reliably without being blocked by an unintended record creation issue.
Original PR description
In this PR we add edit_payslip_lines_wizard_id in the view to prevent a new line record creation error. Forward-Port-Of: odoo/enterprise#88033
A test counter in the Mail Enterprise test suite was corrected to better reflect expected activity behavior. This helps keep automated quality checks reliable and reduces the chance of false failures during development.
This update fixes an issue in the Belgian salary contract offer process. It helps ensure salary offers are handled more reliably for HR teams using the Belgian localization.
The employee document smart button now shows only documents the user can actually access. This avoids confusing count mismatches and gives users a more reliable view of available HR documents.
Original PR description
Previously the smartbutton showed the number of documents the user was a contact of, without checking if the user had access to such documents or not, resulting in sometimes different values Task: 4771754
The Journal Report now shows the account name in the Account column, making entries easier to identify and review. This fixes a visibility issue so business users can better understand accounting report lines without relying only on account codes.
Original PR description
The purpose of this pr is to add account name in the Account column of the Journal Report. Before this code changes:  After this code changes:  OPW : 4702276
The Partner Ledger partner filter has been corrected so companies are no longer missing from the dropdown when they have a parent company. This helps users select the right partners for reporting and avoids incomplete filtering options.
Original PR description
Steps to reproduce - create a company - add a contact to this company - go to its contact form and transform this contact from Individual to Company - go to the Partner Ledger - open Partner filtering dropdown list Current behavior - show company and individual with no parent Expected behavior - show individual with no parents and all the companies - Company with parent company seems to be the expected behavior since 2016. If there is one, the Parent company appear in the contact form as defined [there](https://github.com/odoo/odoo/blob/9b03d99fd0174bd67c8ea30e5fd2c26fb2ad2467/odoo/addons/base/views/res_partner_views.xml#L168) opw-4729020
A test setup issue in Documents Sign was corrected so signer email details are populated from the right contact record. This prevents false test failures in builds without demo data and helps keep automated quality checks reliable.
Original PR description
This commit fixes a ValidationError triggered during sign request creation tests due to missing signer emails in "no demo" builds. The root cause was incorrect data passed into the test helper create_sign_request_1_role: the user record (res.users) was passed instead of its corresponding partner (res.partner). Since the sign.request.item expects a valid partner_id, this led to signer_email being computed as False, violating the constraint that requires all signers to have valid email addresses. This change ensures the proper partner_id (user.partner_id) is passed when creating the request item, allowing the email computation and constraint to behave as expected. This fix unblocks TestSignedDocument.test_gc_clear_bin build_error-224070