Thursday, September 4, 2025
44 changes · master
Resolved issues and error corrections
The website link editing walkthrough and its automated check have been updated to work with the new website builder layout. This helps ensure link editing continues to behave correctly, including using HTTPS by default when no protocol is entered.
Original PR description
The link_tools tour was previously broken due to DOM structure changes introduced by the new website builder and was consequently disabled. This commit updates the tour steps to align with the new DOM and re-enables the associated test. Note: Previously, HTTP was the default protocol. Now, HTTPS is used as the default if none is specified. Forward-Port-Of: odoo/odoo#221404
This update corrects the Spanish Canary Islands tax data to use the current tax setting name in Odoo 18. This helps ensure the localization can load and apply tax configuration correctly without errors caused by an outdated field name.
Original PR description
Description of the issue/feature this PR addresses: In version 18 of Canary Islands taxes, the “price_include” field no longer exists. It is now called “price_include_override.” 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#224973 Forward-Port-Of: odoo/odoo#223996
Odoo now checks whether a view's inferred type is valid before saving it. This prevents a confusing system error when users enter unsupported XML tags and instead provides a clearer validation failure.
Original PR description
When a user tries to save a view with an invalid tag, an error occurs. **Steps to produce:-** 1. Go to Settings > Technical > User Interface > Views. 2. Click on New. 3. Add the view name. In architecture -> add `<template></template>`. 4. Try to save the changes. **Error:-** `ValueError:Wrong value for ir.ui.view.type: 'template'`. **Root cause:-** - The view type in `ir.ui.view` is automatically inferred from the `root tag` of the XML defined in the `arch` field. - In this case, `<template>` becomes the inferred view type, which is not part of the valid selections for the type field in the model `ir.ui.view`. **Solution:-** - Before calling `super().create(vals_list)`, add a validation check to ensure `values['type']` is in the allowed types. If not, raise a ValidationError. sentry-6561028171 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#207219
This fixes an automated Spanish Point of Sale test that could fail when the expected order number included an outdated hardcoded year. The test now uses the current year dynamically, improving reliability of validation builds without changing user-facing behavior.
Original PR description
The settle account due tour in l10n_es_pos was failing because the order name was hardcoded to "TSJ/2025/00001". This value includes a date-dependent year and sequence number, which vary based on `context_today`. this will ensure that the tour dynamically generates the order name based on the current year, making it correct for faketime builds build_error-230724 <img width="1366" height="768" alt="image" src="https://github.com/user-attachments/assets/2b7d0e04-9cd9-45d9-b5f0-32f39f87dd90" /> Forward-Port-Of: odoo/odoo#222796
The time-off accrual allocation tests now use a fixed date so their results no longer change depending on the day they run. This helps keep automated checks reliable and reduces false failures in the development pipeline.
Original PR description
Issue: The 3 tests was depended on the run day FIx: Freeze time the whole test Task: 5061519 runbot-error: 231578 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This change fixes an internal test issue so standalone tests correctly verify time-handling behavior. It helps maintain confidence in Odoo's automated testing and reduces the risk of future timing-related regressions reaching users.
Original PR description
Standalone tests don't enter faketime mode. Forward-Port-Of: odoo/odoo#224077
Users who leave a Discuss meeting before responding to microphone or camera permissions will no longer encounter an error if they then allow or block access. This improves meeting reliability by safely handling permission responses after the meeting session has ended.
Original PR description
Before this commit, selecting "block" when prompted for microphone/camera permissions after quitting a meeting call, would result in a traceback. Steps to reproduce: 1. Open Discuss and click "New Meeting" 2. Observe being prompted for permissions 3. Quit call 4. Block or allow microphone/camera permission This happens because starting a meeting attempts to enter fullscreen, which is triggered once a call is joined. Hoever joining the call is an async function that resolves only after permissions are granted/refused. If the user quits the call first, we attempt to enter fullscreen on a non-existent session, leading to a crash. task-5055378
Employees using Odoo on mobile could encounter a crash when opening an employee record and tapping the gear menu. This fix makes the menu load safely, improving reliability for mobile HR workflows.
Original PR description
Opening the Employee form on mobile and tapping the gear icon could crash because `PresenceActionItems` was undefined. Initialize it and guard the template. task-5055564 Forward-Port-Of: odoo/odoo#224942
This fixes an issue in the website builder where decorative text highlights could stay the wrong size after changing a heading style. Users editing website pages will now see highlights adjust properly, keeping page designs accurate and polished.
Original PR description
With the [website builder refactor], the highlight did not resize when user changes the font block type in a parent of a highlighted span. This happens because the parent node is removed to do the…
With the [website builder refactor], the highlight did not resize when user changes the font block type in a parent of a highlighted span. This happens because the parent node is removed to do the replacement of tag, which does not triggers the observers of the interaction. This commit fixes it by removing the optimization that if an element is observed, then it can be ignored during a normalize. Indeed, when a highlight is added on a node, the observers of the interaction do not only track the node itself, but also some other nodes. When the highlighted span is moved between different parents, the set of nodes that should be observed changes (and some observations may have been lost) Steps to reproduce: - Open website builder - Drop a block with a title (for example, "Cover") - Add a highlight inside the title - Change the font (for example from "Header 1" to "Header 5") - Bug: the highlight svg does not resize to follow the highlight span [website builder refactor]: 9fe45e2b7ddbbfd0445ffe25a859e67a316d02b2 task-4367641 Forward-Port-Of: odoo/odoo#224297
This fixes an issue where linking an employee to an internal user could fail if the employee had a bank account marked for sending money and the user lacked bank permissions. The change lets normal employee-user linking proceed without incorrectly requiring rights to trust or untrust bank accounts.
Original PR description
Steps to reproduce: - Let's consider an employee E with a bank account BA - Let's consider that BA has the option "Send Money" enabled - Let's log to an internal user U without any access right in Bank - Try to link E to any internal user Bug: A user error was raised: You do not have the rights to trust or untrust accounts. opw:4553238 Forward-Port-Of: odoo/odoo#211081 Forward-Port-Of: odoo/odoo#198974
This update corrects an internal HR test so it no longer treats a general employee information field as payroll-only. It helps keep payroll access checks accurate without blocking HR users from information they need.
Original PR description
**Issue:** The payroll access test test_payroll_fields_are_hidden_to_non_payroll_users_in_employee_form_view failed because the field 'is_non_resident' was reported as missing the payroll group restriction. **Reason:** The 'is_non_resident' field is not strictly payroll-related — it is also present in the Personal Information tab. Applying payroll group restrictions would hide it from HR users who still need access. **Fix:** Added 'is_non_resident' to the whitelist_field_names list in _test_payroll_fields_are_hidden_to_non_payroll_users. This ensures the test passes without incorrectly enforcing payroll-only restrictions on this field. build_error-231304 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update fixes how the Discuss call participant sidebar applies custom display changes. It helps ensure previously configured or extended behavior is preserved instead of being accidentally overwritten.
Original PR description
### Purpose of this commit: To prevent overrides from being canceled in patched templates, the change introduces patching via t-attf-class and JS with a super call, ensuring that all overrides are properly applied. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Fixes a mobile messaging issue where users could not swipe left to unpin conversation threads from the messaging menu. This restores the expected touch gesture behavior, making mobile inbox management smoother for users.
Original PR description
Before this commit, swiping left to unpin threads in the messaging menu was not working. This issue was introduced by [1] (which is a backport of [2]), and it stems from trying to acccess the message_unread_counter on the thread instead of the self channel member. This commit fixes the issue by accessing the property correctly from the self channel member. [1] https://github.com/odoo/odoo/pull/212793 [2] https://github.com/odoo/odoo/pull/212793 task-5058496 Forward-Port-Of: odoo/odoo#225226 Forward-Port-Of: odoo/odoo#225083
The website shop test was updated to reflect a recent accessibility change where a button now sits over product images. This keeps automated checks reliable and helps ensure product image removal behavior continues to work as expected.
Original PR description
Fixes [1]: Since [2], a button covers the image for accessibility, so direct image clicks no longer work. [1]: https://runbot.odoo.com/odoo/runbot.build.error/231160 [2]: https://github.com/odoo/odoo/commit/a0b630d
Public visitors can now download calendar invite files for published event tracks without access errors. This ensures reminder emails with calendar links work reliably for attendees while keeping access limited to already published track information.
Original PR description
[1] introduces email reminders for tracks which include an ics file url. The ics file generation includes the location name, which is not accessible by public users. It is safe to sudo the name by the point you already have access to the track (i.e. it is published and all ir rules were checked) [1]: b7efd90f23833dee85c69434f84f859056650e66 task-5061885 Forward-Port-Of: odoo/odoo#225316
This fix prevents Odoo test runs from crashing when no test tags are configured, which can happen in some CI setups using pytest integrations. It makes automated testing more reliable without changing business features or user workflows.
Original PR description
Description of the issue/feature this PR addresses: The issue arises when using pytest (to get junit xml for CI) with [pytest-odoo==1.0.1](https://github.com/camptocamp/pytest-odoo) ``` run_tests def get_method_additional_tags(self, test_method): run_tests """Guess if the test_methods is a query_count and adds an `is_query_count` tag on the test run_tests """ run_tests additional_tags = [] run_tests > if 'is_query_count' in odoo.tools.config['test_tags']: run_tests E TypeError: argument of type 'NoneType' is not iterable run_tests run_tests ../custom/src/odoo/odoo/tests/common.py:778: TypeError ``` Info @wt-io-it --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#225496
Users can now find Indonesian e-Faktur Coretax product codes more easily when setting up product templates. The search now works by code or description, reducing lookup confusion and improving data entry accuracy.
Original PR description
Description of the issue/feature this PR addresses: Because `l10n_id_efaktur_coretax.product.code` model does not have a `name` field and does not use` _rec_name`, search record in m2o field or…
Description of the issue/feature this PR addresses: Because `l10n_id_efaktur_coretax.product.code` model does not have a `name` field and does not use` _rec_name`, search record in m2o field or searchview is difficult and not normal. so this uses `_rec_name = "code"` for fixing in searchview, and overrides `_name_search()` to be able to search using field `code` or `description` or like `name_get()` string Current behavior before PR: <img width="821" height="353" alt="Before fixing coretax product code search 1" src="https://github.com/user-attachments/assets/12ca3248-0bea-4ef3-bb04-116d63520517" /> <img width="832" height="432" alt="Before fixing coretax product code search 2" src="https://github.com/user-attachments/assets/ced291b7-c4c6-42e7-a453-7a1f18945637" /> <img width="988" height="568" alt="Before fixing coretax product code search 3" src="https://github.com/user-attachments/assets/bbac4ae1-a31d-49bd-b520-a68a1a945e78" /> Desired behavior after PR is merged: <img width="438" height="314" alt="After fixing coretax product code search 1" src="https://github.com/user-attachments/assets/4469bb5b-0830-49af-af1c-f05b81dcb10c" /> <img width="467" height="331" alt="After fixing coretax product code search 2" src="https://github.com/user-attachments/assets/5528db34-e279-4d2d-98f0-644f7a618ead" /> <img width="991" height="619" alt="After fixing coretax product code search 3" src="https://github.com/user-attachments/assets/fec53a0c-ab29-46c5-b366-46653b51d7e4" /> --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#222588 Forward-Port-Of: odoo/odoo#221858
This fixes an issue in Odoo Mail where the message composer could keep text after sending if the message ended with a space. Users now get a clean input box after sending, reducing confusion and preventing accidental repeated messages.
Original PR description
Clear composer input after sending a message end with a space. task-5062642 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fixes an issue in Studio where the table menu could appear over the wrong cell when editing PDF Quote reports. The editor now uses the correct scrolling area after report layout changes, making table editing controls appear where users expect them.
Original PR description
Problem: Open "PDF Quote" report in Studio and observe when hovering on the first table cell: the table menu button is always on top of the first cell (with a small offset difference). Cause: In…
Problem: Open "PDF Quote" report in Studio and observe when hovering on the first table cell: the table menu button is always on top of the first cell (with a small offset difference). Cause: In `OverlayPlugin` we get the container on which we later calculate the overlay position during setup. `QWebPlugin` may show/hide elements in reports (CSS `display` controlled by attributes like `data-oe-t-group-active`). The issue: Before commit https://github.com/odoo/odoo/commit/27a85d650dee8345a4ec701bf7456eec07851718 we used to find the scrollable starting from the `iframe`. This always returned the same scrollable outside the `iframe`, even when its content was scrollable. Now, since `QWebPlugin.applyGroupQwebBranching` can change the `iframe` content, the scrollable may differ. Solution: `getScrollContainer` should check the scrollable starting from the `iframe` before `this.editable`. Steps to reproduce: 1. Open "PDF Quote" report in Studio. 2. Hover on the table headers. 3. Observe the menu button is always positioned on top of the first cell. opw-5046779 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#225100
The organization chart now picks the correct employee and manager information when viewed from user, employee, or public employee forms. This prevents confusing or incorrect org chart data from appearing in HR screens.
Original PR description
This update ensures that the correct employee and parent IDs are fetched depending on whether the widget is displayed in a `res.users`, `hr.employee` or `hr.employee.public` form. The `onWillStart` was removed since `useRecordObserver` is triggered in `onWillStart`, and both used to have the same logic. task-5039701 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#225273 Forward-Port-Of: odoo/odoo#224456
This fix improves the appearance of font size controls in dark mode so they use the right background colors in the website editor. Users can now read and distinguish the font size input and badge more clearly when editing website content.
Original PR description
### Steps to reproduce: **Issue 1:** - Switch the interface to Dark Mode. - Navigate to the website and drag & drop a snippet. - Select any text to open the toolbar. - Observe the font size input…
### Steps to reproduce: **Issue 1:** - Switch the interface to Dark Mode. - Navigate to the website and drag & drop a snippet. - Select any text to open the toolbar. - Observe the font size input field's background color. **Issue 2:** - Enable dark mode - Open the Website module - Drag and drop any text snippet and select the text - Click on font size input in the toolbar and observe badge background color. ### Description of the issue/feature this PR addresses: - The font size input field displayed a white background in Dark Mode. - This occurred because the code used the editor's document for htmlStyle, but in contexts like the website, the element's ownerDocument differs, leading to incorrect style resolution. - The badge shown next to the font size in the dropdown had same background color as the dropdown in dark mode, making it indistinguishable. ### Desired behavior after PR is merged: - Use the correct ownerDocument of the element to access its htmlStyle. - The badge background color is now darker in dark mode. task-5027790 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#223736
The Indian e-waybill screen now shows errors and warnings with the correct colors, making important messages easier to understand at a glance. Errors appear in red and warnings appear in yellow, reducing confusion for users handling e-waybill issues.
Original PR description
Before: --- Error and warning colors were mismatched in the e-waybill view. In this commit: --- Fixed the e-waybill view to correctly display error messages - Errors now display in red (alert-danger) :red_square: - Warnings now display in yellow (alert-warning) :yellow_square: AccessError now handled correctly. --- task-5050937 Forward-Port-Of: odoo/odoo#225288 Forward-Port-Of: odoo/odoo#225078
This fixes test cleanup so editor tests do not leave extra editors behind that can interfere with later checks. It also adjusts test setup timing to avoid stray browser selection events affecting new components, improving confidence in automated test results.
Original PR description
`testEditor` didn't destroy its editor component instance after testing. As a result, any test that ran `testEditor` more than once ended up with several editors in the DOM, interfering with the context of the test. --- Removing the selection in `makeFixtureManager`'s `setup` function causes a "selectionchange" event to be triggered. If a component is created between the selection's removal and the event's triggering, and that component creates an event listener for "selectionchange", that event will be heard by the new component, thereby potentially influencing the result of the test. This waits for the duration of an animation frame after removing the selection, to give time for the event to expire. This change revealed a false negative test in the website builder. It is skipped for now until it can be addressed in a separate PR. task-4585835 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix allows employee-related payroll structure information to be included where HR property fields are safely permitted. It prevents access or configuration issues around payroll-related employee data while keeping the change limited to HR behavior.
Guided tours now wait for a page or menu action to finish loading before moving to the next step. This prevents tours from jumping backward or failing when screen content changes mid-step, making automated guidance and testing more stable.
Original PR description
Step to reproduce: - Create a tour - Add a step that click on a menuitem on the systray with a view already opened - Then add a step that click on the search bar of the view Before this commit, if the step of a tour was triggering an action (e.g.: a menuitem) and that the next step's trigger was finding an element on the view before the action has finished to update the view, then the tour was backwarding because the found element diseppeared when the new action loaded the new view. Now, the tour interactive wait that the action manager finish to update the view to be sure the get the right element for the step trigger. ISSUE: https://github.com/odoo/odoo/issues/214652 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#220319
The HTML editor history dialog now displays better in dark mode with improved colors. It also handles large documents or many revisions more smoothly by improving scrolling behavior, making past versions easier to review.
Original PR description
* Correct and improve color in dark mode. * Improve UX when content force a overflow scroll task-5058698 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The online shop editor no longer shows the product size setting when products are displayed in list mode. This prevents store managers from seeing or changing an option that does not apply in that layout, reducing confusion while configuring product pages.
Original PR description
This PR hides the product size option when the layout is set to list mode, as it is not considered in this context. task-5003377 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix restores the way custom details are sent with website conversion goals in Plausible analytics. Businesses using custom goal parameters can once again rely on accurate tracking and reporting for events such as cart-related conversions.
Original PR description
Since commit b9b3a60, conversion to owl, the props are sent as string instead of object.
This commit restores old behaviour of using a JSON object for props.
Before commit b9b3a60:
> $($0).data('event-params')
{Type1: 'cart'}
After commit b9b3a60:
> $0.dataset.eventParams
'{"Type1": "cart"}'
After this commit:
> JSON.parse($0.dataset.eventParams)
{Type1: 'cart'}
opw-oxpslide-stbu
Forward-Port-Of: odoo/odoo#225324Fixed an issue where the calendar's "show more" link could not be clicked on non-working days with many events. Users can now open the full event list instead of accidentally triggering the event creation popover.
Original PR description
**PROBLEM** If you add a lot of daily event on a off-day, the "show more" link to show all events is not clickable. Clicking bring the event creation popover. **REPRO STEPS** 1. install calendar and hr. 2. on a off day (grey background) in the week or day view, add events until the "show more" link shows up. 3. click on it, and notice the event creation popover pops up instead of the event list popover. **CAUSE** FullCalendar css class fc-non-business have a zindex of 1, a div with this class is "above" the link. **FIX** Removing a line that removed the css class fc-daygrid-more-link to the "more-link" element. Modifying css to keep the style consistent even with this new class. opw-4844719 Forward-Port-Of: odoo/odoo#221007
This fix prevents spreadsheet pivot-related screens from crashing when pivot data is still loading or has an error. Instead, users can see the intended error message in the spreadsheet cell, making failures easier to understand and recover from.
Original PR description
`getPossibleFieldValues` should not throw when the pivot is not loaded yet, as it is called by a component. It implied that the component would crash when the pivot is in error instead of displaying an error message in the cell. Task-5055300 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 update keeps IoT device logging working after an older logging component was removed from the platform. It replaces the outdated formatter with a supported one, reducing the risk of logging errors for IoT deployments.
Original PR description
As DBFormatter was removed (odoo/odoo#225303), we need to remove it in our iot server_logger.
The color combination edit button now keeps the same size when users select it. This removes a small visual jump in the page builder, making the editing experience feel smoother and more polished.
Original PR description
Fix "edit color combination button" size shifting on focus by keeping a transparent border when not focused. This ensures the button width stays consistent and avoids a slight layout jump when the button is selected.
This fix updates an automated website test so it matches recent changes in the menu editing flow. It helps keep quality checks reliable and prevents false failures during development, with no expected impact on end users.
Original PR description
Since [1], the "edit_menus" tour has been failing. This commit adapts the "edit_menus" tour properly to the changes introduced. [1]: https://github.com/odoo/odoo/commit/990b7c045bf27280c64433510d6e43fba5b3a4b0 runbot-231445
This change speeds up part of Odoo's automated test setup by skipping an expensive check when it is not needed. It helps reduce delays in development and validation workflows, and may also avoid failures when source files are unavailable.
Original PR description
`get_method_additional_tags` can be slow when there are a lot of test to load while the feature is only needed in rare cases. This commit removes the check if the corresponding tag is not in the config test-tags. This should also solve an issue when the sources are not available. Forward-Port-Of: odoo/odoo#225109 Forward-Port-Of: odoo/odoo#225061
The signature dialog no longer shows the typed and drawn signatures on top of each other. This prevents visual confusion when users sign documents and makes the signing experience clearer and more reliable.
Original PR description
Fixed an issue where both the auto-generated and drawn signatures overlapped in the signature dialog. This was caused by the system automatically setting the user's default signature to the drawn one when opening the dialog. Now, the dialog no longer defaults to the drawn signature, preventing visual overlap and ensuring a cleaner user experience. Forward-Port-Of: odoo/enterprise#93750
The project budget display now shows the correct warning color when an expense budget is exceeded. This helps users quickly spot overspending risks instead of seeing a misleading green status.
Original PR description
**Step to reproduce:** - install "project_account_budget" - go to accounting > accounting > Analytic Budget - create a budget of type expense,say test budget - select analytic account `Asustek - Wood…
**Step to reproduce:**
- install "project_account_budget"
- go to accounting > accounting > Analytic Budget
- create a budget of type expense,say test budget
- select analytic account `Asustek - Wood Corner`
- set budget amount => 500. open the budget
- create a new project 'test project"> open setting > Analytic Page
- add `Asustek - Wood Corner` analytic account in project field
- create a PO with amount > 500
- in analytic distribution column, add `Asustek - Wood Corner` in project column
- confirm PO and create Bill
- Go to `test project` settings > Dashboard smart button
**Observation:**
- For exceeding expense budget, we have green color in budget section
- It should be red
**Cause:**
The conditional class for budget progress was incorrectly evaluated due to missing parentheses around the `and` condition.
In expressions like:
`(true and (1 == 1 ? 'a' : 'c')) or (1 == 1 ? 'b' : 'd') → 'a'` ✅
`true and 1 == 1 ? 'a' : 'c' or 1 == 1 ? 'b' : 'd' → 'b'` ❌
Without parenthesis, the `or` clause is evaluated unexpectedly, even when the `and` branch is intended to take precedence.
This commit wraps the `and` condition in parentheses to ensure the correct evaluation order and consistent class assignment.
Budget:
<img width="1203" height="291" alt="budget 4968162" src="https://github.com/user-attachments/assets/2d8223d5-0344-4ad0-b33c-2598ea167f2d" />
Before fix:
<img width="623" height="195" alt="before fix 4968162" src="https://github.com/user-attachments/assets/4ac749bf-fa93-4835-963a-5dfbdd05559d" />
After fix:
<img width="643" height="225" alt="after fix 4968162 " src="https://github.com/user-attachments/assets/4fd228f9-e32f-48d9-b6ef-55251b21d601" />
opw-4968162
Forward-Port-Of: odoo/enterprise#93243
Forward-Port-Of: odoo/enterprise#91617A missing web address is now included when sending Aadhaar signing requests. This helps the testing service receive the information it needs, making Aadhaar signing easier to validate before use.
Original PR description
Before this change, the request didn’t include the URL, so during testing the IAP was missing it. Now the URL is added to the request, which makes it easier to test Aadhaar sign.
This update adjusts an automated appointment test to match a recent change in how editable selections behave. It helps keep quality checks accurate and reduces the risk of false test failures during future updates.
Original PR description
Community PR: https://github.com/odoo/odoo/pull/224818 task-4585835
This change updates an internal appointment test so it matches the latest behavior when editing selections. It helps keep automated quality checks reliable without changing the customer-facing appointment experience.
Original PR description
Community PR: https://github.com/odoo/odoo/pull/213300 task-4585835
The PLM dashboard now counts only engineering change orders that are actually waiting for the current user's approval. This prevents inflated or misleading personal approval counts when another approver still needs to act or when the user already approved earlier.
Original PR description
The dashboard of PLM displays for each ECO type the number of validations pending in general, and the validations waiting for me specifically. The latter has been incorrectly computed for quite some time, as it computes how many ECOs exists where I am an approver and an approval is waiting - but there is no guarantee that the waiting approval is one of mine; it might be that I am a past approver of the ECO and that another approval (waiting for somebody else than me) exists, or that two approval are required on the same stage (one by me, one by somebody else) and I already approved. This commit switches the computation around by looking for pending approvals waiting for me, and then get the number of (non-archived) ECOs bound to them. Forward-Port-Of: odoo/enterprise#93728 Forward-Port-Of: odoo/enterprise#92348
Users can no longer trigger an error when trying to link a document to a vehicle if no vehicles have been created yet. The system now blocks that unsupported action gracefully, avoiding a confusing crash in the Documents app.
Original PR description
*= documents_fleet Currently, when user tries to link a document with a vehicle and if there is no vehicle exists an error is raised. **Steps to Reproduce:** 1) Install `documents_fleet`…
*= documents_fleet Currently, when user tries to link a document with a vehicle and if there is no vehicle exists an error is raised. **Steps to Reproduce:** 1) Install `documents_fleet` module(without Demo Data). 2) Open Documents App. 3) Upload a file in `Fleet` folder. 4) Select the uploaded file and click on `'Link to a vehicle'` button. Error: `ValueError: invalid literal for int() with base 10: 'False'` Root Cause: The `link_to_record` method attempts to find the first record of the target model to use as a default value when opening the linking wizard. If no records exist, the search returns an empty recordset, and accessing `.id` at [1], on it results in the value `False`. The code then incorrectly constructs a default reference string like `fleet.vehicle,False`. The wizard crashes when it tries to parse this string and convert the `False` part to an integer. Solution: This commit prevents error by ensuring that the user cannot link a document to a model without existing records. [1]- https://github.com/odoo/enterprise/blob/83640d21b2c31ed9d572c48e02a9aeea9eb1607b/documents/models/documents_workflow_rule.py#L113 sentry-6792079496 Forward-Port-Of: odoo/enterprise#93843 Forward-Port-Of: odoo/enterprise#91888
The payslip list now shows the correct action buttons depending on the payroll context, fixing a confusing “New/Off-Cycle” button display. This helps payroll users choose the right action and reduces mistakes when creating or managing payslips.
Original PR description
Fix the "NewOff-Cycle" Add test to be sure that depending on the context, good control panel buttons are shown.
This update fixes how the eMsigner signing service retrieves the system URL. It helps prevent connection or redirection issues when users access e-signature features through the controller.
Original PR description
in this commit, get the url from request.env['iap.account'] instead of self as in controller we don't have access to get_base_url.
The ESG employee commuting report now keeps its internal report entries in a stable order. This prevents records from appearing to change between views or refreshes, improving consistency for users reviewing commuting data.
Original PR description
The esg commuting report uses ROW_NUMBER to generate record ids, which is apparently reevaluated in each query, which can lead to unstable ids. This PR adds an ORDER BY clause to ensure a deterministic behavior.