Friday, January 23, 2026
23 changes · saas-19.1
Enhancements to existing features
This update enhances the livechat exit confirmation dialog to provide agents with clearer context. It now displays the visitor's name and the last message from the conversation, reducing the risk of accidentally closing the wrong chat, especially with dynamic livechat lists.
Original PR description
Previously, the confirmation dialog shown when leaving a livechat session was too generic and did not provide enough context to help agents ensure they were closing the correct conversation. As a…
Previously, the confirmation dialog shown when leaving a livechat session was too generic and did not provide enough context to help agents ensure they were closing the correct conversation. As a result, agents could accidentally leave the wrong chat, especially when the livechat list is reordered due to new incoming messages. This PR improves the dialog to make the action clearer and safer: - Displays the visitor’s name in the confirmation title. - Shows the most recent message from the conversation in the dialog body. - Helps agents verify they are leaving the intended conversation. task-5355106 Before this PR: <img width="593" height="138" alt="image" src="https://github.com/user-attachments/assets/363eeab9-0306-47cc-8f4f-4035862f7e29" /> After this PR: <img width="1135" height="277" alt="image" src="https://github.com/user-attachments/assets/6a7b7aea-d3bf-4b52-be39-001448ba7afc" /> Before vs After (Chat Window) <table> <tr> <td> <img width="256" height="422" src="https://github.com/user-attachments/assets/b895b831-e11d-4aee-8f35-cd79f5c77aaf" /> </td> <td> <img width="256" height="422" src="https://github.com/user-attachments/assets/d31c061d-6a6e-42cb-ae60-12a5329cd4d4" /> </td> </tr> </table> --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update simplifies product imports for the ecommerce platform by introducing an 'Auto' mode. This mode automatically detects product information using public APIs and metadata, streamlining the connection process and reducing manual setup. An error message is also added for empty URLs.
Original PR description
Added the 'Auto' option for ecommerce platform in order to have a default that searches for all public APIs and metadata. Linked to: https://github.com/odoo/website-scraper/pull/420
This update enhances the user experience in the Discuss meeting view by increasing the size of key buttons and refining the overall design. It also includes smaller avatar images and a more modern card name appearance. These changes improve usability and visual appeal within the discuss calls feature.
Original PR description
- bottom buttons in meeting view are bigger - layout buttons in meeting view are moved with side meeting actions - side meeting actions uses non-bg visual - meeting bottom buttons now have hover effect Also makes these other UI changes to discuss calls: - card name has text-shadow instead of dark bg color - avatar img size has been reduced (100px to 80px, was too big) Task-5462123 Before / After <img width="959" height="644" alt="Screenshot 2026-01-02 at 18 16 50" src="https://github.com/user-attachments/assets/b2bd4128-c298-4bfe-9843-4ff9aa2a7595" /> <img width="954" height="639" alt="Screenshot 2026-01-02 at 18 01 24" src="https://github.com/user-attachments/assets/5b954d86-e65e-4c97-8485-9c62200f60b0" />
Resolved issues and error corrections
This update fixes an issue where PDF quotes weren't correctly identifying form fields within complex sales structures (Hierarchy objects). Now, the system accurately detects and includes these fields, ensuring accurate and complete quotes for all sales scenarios. This enhancement improves the reliability of our sales documentation.
Original PR description
- For Hierarchy objects, we have to check '/T' in '/Parent' instead directly within '/Annot' like flat fields. Desired behavior after PR is merged: - Support form fields with Hierarchy objects. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#238323
This update fixes an issue where LATAM invoices with numeric sequence prefixes would incorrectly restart the invoice sequence, leading to duplicate document numbers. The change allows for correct sequence generation by temporarily disabling sequence filtering for LATAM invoices, ensuring unique document numbers are always assigned.
Original PR description
**Issue:** When invoices in a journal enabled to "Use Documents" for LATAM legal invoicing have a sequence prefix with numbers, the next invoice will restart the sequence and try to use already-used…
**Issue:** When invoices in a journal enabled to "Use Documents" for LATAM legal invoicing have a sequence prefix with numbers, the next invoice will restart the sequence and try to use already-used sequences. **Steps to Reproduce:** - Install l10n_pe_edi - Change to PE Company - Duplicate the Customer Invoice journal, give it shortcode "01A" - Create an invoice in dupe journal, set customer to "Comercial Constructora los Patitos S.A.", set product and tax, Document Type = (01) Factura - Confirm the invoice, it will have name "F F01-00000001" - Duplicate the invoice -> The new invoice has the same sequence number, and the document number is visible Expected: Invoice is called "Draft" (/), document number is not visible, and upon confirming the invoice, it will have the name "F F01-00000002" **Cause:** - LATAM invoices do not follow the standard formats in sequence_mixin.py, so _deduce_sequence_number_reset will always return "never" - However, the result of this method is used in _get_last_sequence_domain, and assumes that the sequence follows the corresponding format to "never" (_sequence_fixed_regex) - This isn't the case if the prefix has numbers, it will be captured in the _sequence_yearly_regex - anti-regex is used to filter sequences that aren't _sequence_fixed_regex, but this causes prefixes with numbers to never be found, and always restart the sequence **Solution:** - Add context value "no_anti_regex" to skip sequence exclusion - If the invoice is LATAM, call _get_last_sequence_domain with context "no_anti_regex" = True so no sequences are excluded. - Because LATAM invoices are always in a fixed format, we don't need to filter out sequences in other formats opw-5111844 Forward-Port-Of: odoo/odoo#235000
This update fixes an issue where invoices generated for LATAM legal invoicing with numeric sequence prefixes would incorrectly restart sequences. The change adds a simple context setting to bypass sequence filtering, ensuring invoices are correctly numbered according to LATAM standards. This prevents duplicate invoice numbers and ensures accurate record-keeping.
Original PR description
**Issue:** When invoices in a journal enabled to "Use Documents" for LATAM legal invoicing have a sequence prefix with numbers, the next invoice will restart the sequence and try to use already-used…
**Issue:** When invoices in a journal enabled to "Use Documents" for LATAM legal invoicing have a sequence prefix with numbers, the next invoice will restart the sequence and try to use already-used sequences. **Steps to Reproduce:** - Install l10n_pe_edi - Change to PE Company - Duplicate the Customer Invoice journal, give it shortcode "01A" - Create an invoice in dupe journal, set customer to "Comercial Constructora los Patitos S.A.", set product and tax, Document Type = (01) Factura - Confirm the invoice, it will have name "F F01-00000001" - Duplicate the invoice -> The new invoice has the same sequence number, and the document number is visible Expected: Invoice is called "Draft" (/), document number is not visible, and upon confirming the invoice, it will have the name "F F01-00000002" **Cause:** - LATAM invoices do not follow the standard formats in sequence_mixin.py, so _deduce_sequence_number_reset will always return "never" - However, the result of this method is used in _get_last_sequence_domain, and assumes that the sequence follows the corresponding format to "never" (_sequence_fixed_regex) - This isn't the case if the prefix has numbers, it will be captured in the _sequence_yearly_regex - anti-regex is used to filter sequences that aren't _sequence_fixed_regex, but this causes prefixes with numbers to never be found, and always restart the sequence **Solution:** - Add context value "no_anti_regex" to skip sequence exclusion - If the invoice is LATAM, call _get_last_sequence_domain with context "no_anti_regex" = True so no sequences are excluded. - Because LATAM invoices are always in a fixed format, we don't need to filter out sequences in other formats opw-5111844 Forward-Port-Of: odoo/enterprise#101620
This update resolves an issue where fiscal data for Chinese invoices wasn't appearing on credit note PDFs. The fix ensures that the necessary data is now correctly included, improving the accuracy of financial reports for our Chinese customers. This was triggered by a correction in the underlying template logic.
Original PR description
The fiscal data is not displayed in the credit note pdf. This is because we're relaying on a div that is conditionnally displayed in the inherited template. opw-5467583
This update resolves several issues within the timesheet assistant, primarily related to accurately recording time against projects and tasks. The team has also improved the download functionality for the timesheet calendar and addressed overlapping event issues, ensuring smoother operation and a more reliable experience.
Original PR description
This PR fixes a few bugs with the timesheet assistant, most notably that recording time on records linked to projects and tasks was causing a traceback when opening the assistant. It also reworks the ActivityWatch download screen, and adds a working download link for Windows. Support for other platforms is yet to come. Task-5435618
This update fixes a bug that prevented the dashboard from accurately counting high-priority maintenance requests. The fix ensures that critical requests are correctly identified and displayed, allowing users to prioritize maintenance tasks effectively. This improves visibility and operational efficiency.
Original PR description
Issue before this commit: ========================= The high-priority maintenance request count (todo_request_count_high_priority) was not calculated correctly. Steps to Reproduce:…
Issue before this commit: ========================= The high-priority maintenance request count (todo_request_count_high_priority) was not calculated correctly. Steps to Reproduce: ========================= - Install the maintenance module. - Create a maintenance request and set the Priority to High (3-starred) in the form view. - Open the dashboard. - Observe that the high-priority request count is not displayed. - The count always remains 0, even when high-priority requests exist. Cause of the issue: ========================= In this [PR](https://github.com/odoo/odoo/pull/94866), the logic was mistakenly changed. The priority field is defined as a Selection field, but while computing the count, the comparison was done against an integer(3, not '3') instead of the actual string value. Since the stored value is '3' (string), the condition is always evaluated to False, resulting in a count of 0. With This Commit: ========================= Ensure that high-priority maintenance requests are correctly counted and displayed on the dashboard when they exist. This provides better visibility of critical requests and helps users prioritise maintenance work effectively. Forward-Port-Of: odoo/odoo#244987
This update resolves an error that occurred when using 'Lots & Serial Numbers' with the POS module. The fix integrates features from the 'product_expiry' module to correctly handle lot expiration dates, ensuring accurate POS transactions. This improves the reliability of the POS system.
Original PR description
Installing POS with Lots & Serial Numbers enabled raises an error when selecting a product that uses lots. **Steps to Reproduce:** - Install POS (with demo data). - Activate "Lots & Serial Numbers". - Open Furniture Shop > Select "Drawer". **Error:** `AttributeError - 'stock.lot' object has no attribute 'expiration_date'` **Cause:** The POS module directly accesses `expiration_date` on `stock.lot`, but this field is defined in the `product_expiry` module. **Fix:** This commit adds a bridge module between `point_of_sale` and `product_expiry`. And update the result, only when the expiry feature is enabled. Upgrade PR: https://github.com/odoo/upgrade/pull/9321 sentry-7203789966
This update optimizes how Odoo sends notifications, specifically when the system is under heavy load. By using a faster JSON encoding library (orjson), the system processes notifications more efficiently, reducing delays and improving overall responsiveness. This results in a smoother user experience.
Original PR description
When the gevent server is under high load, the time required to acquire a cursor and fetch notifications increases. This causes notifications to accumulate, leading to larger payloads. Serializing these large payloads using the standard json library becomes a bottleneck. In a gevent environment, this monopolizes the event loop, delaying the processing of other greenlets. This commit introduces optional support for `orjson`. If installed, it is used to significantly speed up JSON encoding, freeing up the event loop. Using `orjson` increases the throughput by ~20% under high load. Forward-Port-Of: odoo/odoo#245072 Forward-Port-Of: odoo/odoo#241601
This update corrects a technical error in the Odoo Enterprise payroll system. Specifically, a call to a function was being made in the wrong module, causing a failure in document generation. The fix involves restructuring the code to ensure the correct function is called, improving the stability of payroll processing.
Original PR description
Issue: `_check_create_documents` is called in 'hr_payroll' but only defined in 'documents_hr_payroll' Solution: Create a new method that will be redefined in 'documents_hr_payroll' to call `_check_create_documents` opw-5213979 Forward-Port-Of: odoo/enterprise#105099 Forward-Port-Of: odoo/enterprise#104282
This update ensures stock valuations accurately reflect the warehouse where products are stored. Previously, the system incorrectly calculated values based on global stock levels, leading to discrepancies when products were located in different warehouses. This fix correctly applies warehouse-specific valuations, ensuring accurate inventory reporting.
Original PR description
### Steps to reproduce: - In the settings enable Lots and Serial Numbers and Multi-steps routes - Create a storable product P Tracked by lots with an avco perpetual valuation cateory and enable the…
### Steps to reproduce: - In the settings enable Lots and Serial Numbers and Multi-steps routes - Create a storable product P Tracked by lots with an avco perpetual valuation cateory and enable the valuation by Lot/Serial in its inventory tab - Inventory > Configuration > Warehouse Management > Warehouses - Create a new warehouse: WH2 - Create and confirm a PO for 10 units LOT001 for $20 in WH1 - Create and confirm a PO for 5 units LOT002 for $50 in WH2 - Inventory > Reporting > Stock > The product total value is correctly set to 450 with a unit cost of $30 - Click on Warehouse 2 for the related report #### > The total Value did not change and the product unit cost is set to $90 ### Expected behavior: The unit cost should be $50 and the total value should be 250$ for this warehouse. #### Cause of the issue: The total value of the product is computed in the `_compute_value`, which is supposed to rely on the contextual warehouse to determine the unit cost and total value of the product: https://github.com/odoo/odoo/blob/944d7c8d5d6bf97cba71644b615e081e4fff6595/addons/stock_account/models/product.py#L139-L141 https://github.com/odoo/odoo/blob/944d7c8d5d6bf97cba71644b615e081e4fff6595/addons/stock_account/models/product.py#L152-L168 While `qty_valued` relies on this context key because of the `qty_available` which is it self context dependent: https://github.com/odoo/odoo/blob/944d7c8d5d6bf97cba71644b615e081e4fff6595/addons/stock/models/product.py#L147-L151 and is used in standard, AVCO, and FIFO valuation, it is not used for `lot_valuated` products: https://github.com/odoo/odoo/blob/944d7c8d5d6bf97cba71644b615e081e4fff6595/addons/stock_account/models/product.py#L154-L155 https://github.com/odoo/odoo/blob/944d7c8d5d6bf97cba71644b615e081e4fff6595/addons/stock_account/models/product.py#L232-L237 https://github.com/odoo/odoo/blob/944d7c8d5d6bf97cba71644b615e081e4fff6595/addons/stock_account/models/stock_lot.py#L21-L40 ### Solution: There are several issues to be addressed here. To begin with, in order for the valuation to be warehouse-dependent, it is necessary for the `total_value` of the `stock.lot` model to be `warehouse_id` context-dependent and to rely on the qty_available of the lot in each warehouse, rather than the global internal lot.product_qty, which is not: https://github.com/odoo/odoo/blob/944d7c8d5d6bf97cba71644b615e081e4fff6595/addons/stock/models/stock_lot.py#L210-L215 Additionally, since it is possible for a lot to have a null `lot.product_qty` but have 10 units in WH1 and -10 units in WH2, it is necessary not to exclude lots with a null `product_qty` from the lot valuation (at least when the warehouse_id is in the context): https://github.com/odoo/odoo/blob/944d7c8d5d6bf97cba71644b615e081e4fff6595/addons/stock_account/models/product.py#L232-L237 Furthermore, the quantity used in _run_avco here is not correct (both cases are now covered by our tests): https://github.com/odoo/odoo/blob/944d7c8d5d6bf97cba71644b615e081e4fff6595/addons/stock_account/models/product.py#L302-L312 To begin with, both conditions are incorrectly dependent on the contextual `warehouse_id` because of `qty_available`. They should not be, because `_run_avco` is supposed to provide a non-warehouse context-dependent value that is then proportionally re-evaluated via `qty_valued` in the `_compute_value`: https://github.com/odoo/odoo/blob/944d7c8d5d6bf97cba71644b615e081e4fff6595/addons/stock_account/models/product.py#L165-L166 In addition, the first condition does not rely on the lot at all (and it should for lot-valuated products). And the scond one rely on the lot via the `lot.product_qty` which is incorrect as this qty is not dependent on the date (as it is just the sum of qty on quants. For uniformity, we therefore change both conditions to rely on `qty_available` with the contextual lot. Note that it would be equivalent to rely on the `lot.product_qty` if the lot if to_date is not provided. Finally, for the `total_value` computation of each lot itself, we change the logic to follow the same behavior as for non-lot valuated products (but where we consider each specific lot similarly to a separate product). That is: - If the qty_valued is null, its valuation should also be null. - In AVCO and FIFO computations, we rely on the global value (full available quantity) and then weight it by the percentage present in stock. - If the total available quantity is null, we return the `standard_price * qty_valued` and avoid unnecessary computations. opw-5469786 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#244688
This update resolves a frustrating issue where the website builder would sometimes freeze while waiting for user input in dialog boxes. The change introduces a timeout mechanism to prevent indefinite waits, ensuring a smoother and more reliable experience for users adding languages or making other customizations. This improves overall website builder usability.
Original PR description
Commit 6df83abb35c95ab42e55d9a08cf6c411efa64b3e added a timeout on operations, as an heuristic to detect when an operation is stuck. This timeout may be triggered when the action opens a dialog and wait for user choice. This commit sets `canTimeout = false` on actions that open a dialog and wait for user choice in the `apply` method. Steps to reproduce: - Open website builder - Click on "Theme" tab - Click "Add a language" - Wait a bit - Bug: It show the error message "A technical issue occurred..." task-5867364 Forward-Port-Of: odoo/odoo#245217
This update resolves an issue preventing Point of Sale functionality within the l10n_ar_edi module for Arabic VAT. The fix ensures that users can correctly process sales transactions utilizing the Arabic VAT reporting requirements. This improves the usability and compliance of the module for businesses operating in Argentina.
Original PR description
Tarea: 62909 Forward-Port-Of: odoo/enterprise#105104
This update resolves an issue where the extra invoicing information required for EDI transactions was hidden from users on the Odoo ecommerce platform. The change ensures that all necessary invoicing details are now correctly displayed, streamlining the sales process for customers using EDI. This improves the user experience and compliance.
Original PR description
The extra invoicing info step for EDI was unpublished and hidden on ecommerce. This commit fixes that. Task-5493138 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#245179
This update restricts who can validate payslips within the Odoo Enterprise system. Previously, users with the Payroll Assistant role could validate payslips, which has now been limited to Officers and Managers only. This change enhances security and ensures appropriate access controls for payroll processes.
Original PR description
Cause: Currently a user with payroll Assistant role can validate payslips After the fix: Only officers and managers should have the ability to validate payslips Task-5376223
This update resolves an issue where chat windows were overlapping the website editor panel, causing a disrupted user experience. The fix adjusts the chat window's starting position dynamically within the website editor context, ensuring a cleaner and more functional design.
Original PR description
Before this commit, chat windows were overlapping website editor panel. This happens because chat windows had a hard-code starting position of 15px starting from the right of the screen, which is applied in all contexts. This commit turns `BUBBLE_START` into computed field, so that this is patched when in website editor to offset it next to website editor panel, as to not overlap it. Before / After <img width="1918" height="604" alt="Screenshot 2026-01-16 at 18 11 50" src="https://github.com/user-attachments/assets/25051548-0c6e-4aea-97a1-459558601636" /> <img width="1920" height="605" alt="Screenshot 2026-01-16 at 18 21 53" src="https://github.com/user-attachments/assets/191c1323-380d-4328-b9c5-cf76deeb1d6a" />
This update resolves issues related to access rights for employee data when using Stripe expense cards. It allows expense card managers to access necessary employee information required by Stripe, while also correcting issues with card limit calculations and time interval restrictions to ensure accurate expense tracking.
Original PR description
[FIX] hr_expense_stripe: Fix access rights Fix access rights to some employee fields in the cardholder creation. Allowing the expense card manager to read some employee private fields as stripe requires some identity checks Improve activate card access rights checks when activating a card [FIX] hr_expense_stripe: Fix card limits Fix the limits computation for the cards, only looking at expenses paid with said card without unintended granularity. Also fixing the short time intervals that were considered as an all time limit Forward-Port-Of: odoo/enterprise#105149
This update resolves an issue where printers would become unavailable for extended periods after disconnecting, leading to user errors and double printing. The change introduces a counter to prevent unnecessary removal of printers from the system, ensuring printers are reliably available and jobs are processed correctly.
Original PR description
On the iot box we check the number of printers connected rarely to avoid spamming the network. This leads to some situations where if a printer is disconnected it becomes unusable for the next 2…
On the iot box we check the number of printers connected rarely to avoid spamming the network. This leads to some situations where if a printer is disconnected it becomes unusable for the next 2 minutes or even more if it disconnects again just before the next get_devices call in the interface. The printers are often not listed by cups for short time which currently leads to them being deleted from our list of connected devices on the iot box. However in reality the printer reconnects faster than 2 minutes and often becomes available again within a couple of seconds. Currently if you print something on it you will get an error when checking the job status but the job will still be queud and printed whenever it reconnects. The user in pos can then press "retry" which will lead to a double printing. This PR adds a counter for the printer disconnections and only removes the printer from our list if it wasn't detected 3 times in a row by cups. Now since not deleted from cups the print job is queud and whenever the printer reconnects it's printed. The user will not get an error anymore which will avoid double printing and the printer will remain available unless it's really disconnected Forward-Port-Of: odoo/odoo#244759 Forward-Port-Of: odoo/odoo#244076
This update resolves an issue preventing dropshipping orders with average cost products from being processed correctly. Previously, users with limited access rights were blocked from updating product prices during the picking process. The fix adds necessary permissions to allow these operations, ensuring dropshipping orders can be completed without errors.
Original PR description
Steps to Reproduce 1. Create a database in Odoo 19.0 with the stock_account module installed. 2. Enable Dropshipping from Inventory → Settings. 3. Create a product with a category whose Cost Method…
Steps to Reproduce 1. Create a database in Odoo 19.0 with the stock_account module installed. 2. Enable Dropshipping from Inventory → Settings. 3. Create a product with a category whose Cost Method is set to Average Cost (AVCO). 4. Create a user with Inventory / User access rights only (no Inventory Administrator rights). 5. Create a dropship order using the product and validate the picking. ``` You are not allowed to access 'Product Value' (product.value) records. This operation is allowed for the following groups: - Inventory/Administrator Contact your administrator to request access if necessary. ``` Issue:- During picking validation, moves are getting [done](https://github.com/odoo/odoo/blame/5d91798f0f5f712bf5210edd0bf6788f32d0c316/addons/stock/models/stock_picking.py#L1265) if move is is_dropship enable which lead to [update_standard_price]( https://github.com/odoo/odoo/blob/5d91798f0f5f712bf5210edd0bf6788f32d0c316/addons/stock_account/models/stock_move.py#L169) if product cost_method is [avco.](https://github.com/odoo/odoo/blob/5d91798f0f5f712bf5210edd0bf6788f32d0c316/addons/stock_account/models/product.py#L462-L476) So, it call run_avco during that getting [the _get_manual_value]( https://github.com/odoo/odoo/blob/5d91798f0f5f712bf5210edd0bf6788f32d0c316/addons/stock_account/models/stock_move.py#L409) it through access error Fix:- To fix this sudo is added during getting _run_avco opw-5431121 upg-3762999 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#242841
This update fixes a calculation error in the VAT sales reports for Vietnam. The previous formula excluded the base amount for 8% VAT transactions, leading to inaccurate sales reporting. This change ensures that the total taxable base is calculated correctly, aligning with Vietnamese tax regulations.
Original PR description
`VAT_SALES` report line aggregates total untaxed amount from its children lines. Previously, the formula for this line was missing `VAT_SALES_8.amount_untaxed`. As a result, the base amount for 8% VAT transactions was excluded from the total sales base calculation. This commit adds the missing tag to the `VAT_SALES` formula to ensure the total taxable base is calculated correctly. task-5836154 Forward-Port-Of: odoo/odoo#244915
This update ensures the chatbot answer selection dropdown always displays answers relevant to the current chatbot script, regardless of whether a search term is entered. Previously, an issue caused incorrect filtering, showing answers from other scripts. This fix improves the user experience and ensures accurate chatbot interactions.
Original PR description
**Description of the issue/feature this PR addresses:** In the `triggering_answer_ids` searchable dropdown, when no value is entered, the `_search_display_name` method of `chatbot_script_answer` is…
**Description of the issue/feature this PR addresses:**
In the `triggering_answer_ids` searchable dropdown, when no value is entered, the `_search_display_name` method of `chatbot_script_answer` is not called. Instead, the ORM falls back to the field’s default domain and returns all `chatbot.script.answer` records, including those from other scripts. When a value is entered, `_search_display_name` is triggered and the results are filtered correctly.
This behavior changed after PR #201587, where the `operator_optimization` step started executing before `determine_domain`. Since `determine_domain` is the step that triggers `_search_display_name`, it no longer gets called when the domain `('name', 'ilike', '')` is stripped by `operator_optimization`. Therefore, filtering only works when a non-empty filter value is provided.
**Current behavior before PR:**
All `chatbot.script.answer` records are shown in the `triggering_answer_ids` dropdown when no search value is entered, even if they don’t belong to the current chatbot script.
**Desired behavior after PR is merged:**
The `triggering_answer_ids` dropdown only shows answers belonging to the current chatbot script, regardless of whether a search value is entered.
task-[4968490](https://www.odoo.com/odoo/project/1519/tasks/4968490)
Forward-Port-Of: odoo/odoo#245322
Forward-Port-Of: odoo/odoo#228192