Daily updates from Odoo
Thursday, July 10, 2025
52 changes
26 changes
Resolved issues and error corrections
This fixes an intermittent automated test failure in the Mail app by waiting until a message reaction is fully removed before reloading the page. It helps keep the testing pipeline stable and reduces false failures that can slow down releases.
Original PR description
Before this commit, tour "discuss_channel_public_tour" was failing non-deterministically at the following step: ``` .o-mail-Message:not(:has(.o-mail-MessageReaction)) ``` This happens because prio steps added a new reaction and asserted it was shown. It clicks on reaction to remove it and then page reload to see the reaction is gone. Problem is that it can reload page too fast and the RPC to remove the reaction did not have time to occurs. This commit fixes the issue by awaiting message no longer has reaction before page reload. Fixes runbot-error-227769 Forward-Port-Of: odoo/odoo#218132
Website editors can now set and save default values on form fields even when those fields are also linked to contextual data. This prevents values such as contact form subjects or recruitment job positions from being lost or incorrectly reused, improving reliability when managing website forms.
Original PR description
Scenario: - go to the /contactus page - edit the subject field and set a default value then save Result: the default value is not saved. Reason: in 13.0, field default value had priority over…
Scenario: - go to the /contactus page - edit the subject field and set a default value then save Result: the default value is not saved. Reason: in 13.0, field default value had priority over data-for so an issue was solved by b637a5e32f767b62736241042f88fa0cecf9f10b that if you saved a form, the data-for would become the default for all the uses of that form (so eg. a job position would be set for all job positions). In 8d0a63f35519090a74fcefedf482fea5f6eedd97 the priority was changed so data-for has higher priority than the default value, that made the prior fix unnecessary (just a nice to have, to not save the data-for as default that would be overridden by another data-for). The fix was reintroduced by ca433f38dbfe379dc9e0b823c7862eaec1a7ed9d but it removes default value if there is a data-for. Fix: remove the filling and removing of value: the data-for is not shown in the editor (allowing us to set default) but has the priority when rendering the field in non-editable mode. This is mirroring what is already done for data-fill-with. Side note: this commit also remove useless data-fill-with="undefined" attributes that are added when editing field. They shouldn't cause any issue unless someone add a "undefined" field in the prefilled fields. opw-4794903 Forward-Port-Of: odoo/odoo#217200 Forward-Port-Of: odoo/odoo#211083
Deleting the Replenish on Order route no longer causes the Inventory settings page to fail. This keeps administrators able to access and adjust settings even if that optional route has been removed.
Original PR description
Problem: When MTO route is deleted from routes, an error will be raised in the settings and it will be unaccessible. Solution: Set `raise_if_not_found` to false when accessing the MTO route in the compute/inverse. Steps to reproduce: 1. Enable Multi-Step Routes and Replenish on Order (MTO) from settings 2. Go to Inventory > Configuration > Routes 3. Delete Replenish on Order (MTO) route 4. Go back to settings --> Settings will raise an error. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fixes an issue where product pricelist items did not update their company assignment when the related pricelist company changed. It helps keep pricing rules aligned with the correct company and prevents build or validation errors tied to inconsistent company data.
Original PR description
… change Introduced by 73a43eb25f21531a05a69f6cd820a7f1944045cc Runbot build error 227640 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fixes unstable automated tests for messaging presence status by ensuring the test user starts with a known status. It helps keep the development and release pipeline more reliable without changing customer-facing behavior.
Original PR description
This commit fixes the im_status test suite which fails in a non-deterministic fashion. Initially, those tests wait for the first update of the presence (the one sent when the first connection to the websocket is established). Presence is updated when: - Self persona status is offline. - Bus notification is received for self with different value than the one of this device (e.g. offline while away/online, away while online). - The websocket connection is first established. In those test, another subscription could happen according to the timing of the `/mail/data` RPC which returns the initial status of the user as offline. This commit fixes this issue by setting an initial status on the current user. fixes runbot-229757 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
Updates a mail test to match the current behavior where selecting the same emoji reaction twice removes it. This prevents intermittent test failures and helps keep the messaging feature validation stable.
Original PR description
Before this commit, test "Add the same reaction twice from the emoji picker" may fail non-deterministically in 18.1 on last step: the message reaction is sometimes kept, sometimes removed. The feature in 18.0 was keeping the emoji, whereas in 18.1 it now toggles the add / remove of reaction. This change of behaviour felt best with the addition of QuickReactionMenu, and for consistency this also works that way in emoji picker of message reaction. The test was not adapted but passed because the bus notifications were coming later than the burst of user actions to add emoji, thus there's flicker of showing message reaction at end when it's only temporarily and would be removed a fraction of seconds later. This commit fixes the test with the newer behaviour that it should toggle the reaction. Fixes runbot error 229340 Forward-Port-Of: odoo/odoo#218160
Mobile dialog windows no longer show backend-specific header colors on website pages. This keeps the customer-facing experience visually consistent and aligned with the current Odoo design direction.
Original PR description
Before this PR: header color of `Dialog` on mobile was "community color" or white, depending on the version of Odoo the database is running. This was creating issues in in the front-end, where the user of the website would see back-end specific colors in different `Dialog`s. This PR removes the color customization of `Dialog`'header as it was fitting a design line we had before we introduced MILK. task-4001365 Example of the issue (mobile front-end): <img width="376" alt="Screenshot 2024-06-20 at 10 54 04" src="https://github.com/odoo/odoo/assets/110090660/dad6a4b2-6164-45dd-9e16-0160e2989607"> --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#170087
Changes to a user's online presence no longer make their user record appear recently edited. This keeps profile update dates accurate and avoids daily background status activity being mistaken for real user changes.
Original PR description
Before this commit, when user presence changes, it was updating the write_date of user. This happens because any change of presence what doing a `Command.create()` on the presence_id field of user model. The presence object is automatically unlinked after 12 hours of inactivity, thus most users had their write_date changed every day because of the presence_ids being updated when logging in at least once a day. This commit fixes the issue by creating the presence rather than write on the user field, so that this is not considered a write on user object and thus it doesn't change the write_date of user. Other than not updating the write_date, the code behavior is functionally unchanged. Forward-Port-Of: odoo/odoo#218182
The E-Waybill report option is now shown only after an E-Waybill has been successfully generated. This prevents users from accidentally printing an unavailable report and avoids the related error during invoice processing.
Original PR description
Currently, an error occurs when users print the E-Waybill without generating it. Steps to replicate: - Install `l10n_in_ewaybill` and switch to IN company. - Change the `Zipcode` on IN company to…
Currently, an error occurs when users print the E-Waybill without generating it. Steps to replicate: - Install `l10n_in_ewaybill` and switch to IN company. - Change the `Zipcode` on IN company to `aa`. - Go to `Invoicing > Customer > Invoices`. - Create an invoice, confirm and click Send E-WayBill. - Click on the Gear icon and Click on the report `Ewaybill`. Error: `ValueError: invalid literal for int() with base 10: ''....` `QWebException: Error while render the template ValueError: invalid literal for int() with base 10: '' Template: ir.ui.view(2614,) Path: /t/t/t/t/div/t[3] Node: <t t-if='doc.state in ewaybill_states'/>` The error occurs because the report printing is available even when the `E-Waybill` is not yet generated. This causes the execution flow to skip all the necessary validations, leading to a `ValueError` at line [1]. [1] - https://github.com/odoo/odoo/blob/aa7dac87a3eebce1b300e1e3d04398d680325b5d/addons/l10n_in_ewaybill/models/l10n_in_ewaybill.py#L640 This commit solves this issue by adding a domain to the report, so that it appears only after the EwayBill is generated. sentry-6695761066 https://github.com/user-attachments/assets/81e5a8eb-4c0c-4dc5-a65b-e22bc11098d2 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#215515
This change cleans up duplicated helper code used in account-related tests. It reduces maintenance risk for developers without changing how users work with the accounting features.
Original PR description
In 0f3a9dee5cf15 we added helpers to create test taxes in `AccountTestInvoicingCommon`, not realizing that they were already in `TestTaxCommon`. This commit removes them from `TestTaxCommon` to avoid the duplication. task-none Forward-Port-Of: odoo/odoo#217867 Forward-Port-Of: odoo/odoo#217553
This update corrects an automated test for setting up live chat chatbot steps so it waits for the input field to be truly cleared before continuing. It helps prevent false test failures in the live chat module, improving confidence in future releases without changing customer-facing behavior.
Original PR description
This commit fixes the `im_livechat_chatbot_steps_sequence_tour`. When creating the chat bot steps, we wait for the textarea to be cleared between each step. However, the selector is wrong: `value()` matches everything, regardless of the content. This commit fixes the issue by using `:empty` instead. follow-up of https://github.com/odoo/odoo/pull/217760. fixes runbot-229755. 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 fix updates the automated login flow checks for two-factor authentication so they only watch for page changes at the correct point in the process. This helps prevent false test failures and supports a more stable sign-in experience for users using two-factor authentication.
Original PR description
In this commit, we change the login page step by a step with isActive property. So this step is only active when the input#login is not on the page and then expectUnloadPage will be only listen when this step is active. Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#217972
The website editing tools were adjusted so a shared page-building service no longer depends directly on the Website app. This improves modularity and helps prevent issues when the builder is used outside full website editing contexts, with no expected change for end users.
Original PR description
The html_builder's snippet service was still relying on website. This is removed, and the snippet viewer website dependencies are instead patched in website. task-4367641
This fixes a small display issue in the HTML editor where the remove icon for media dialog attachments could be hidden. Users can now clearly see and use the remove action when managing attached media.
Original PR description
Description of the issue this PR addresses: - The remove icon in the media dialog attachment was not visible due to the use of an invalid `z-index-1` class. This commit c5a98c76ea1cce4acb55faf4768388b94255508f removed custom `z-index` utilities. Replaces `z-index-1` with Bootstrap's default `z-1` class. Before this commit: - The icon used `z-index-1`, which is not a valid Bootstrap class. After this commit: - Replaced with `z-1`, the correct Bootstrap 5 utility class for `z-index: 1`. task-4903381 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#216261
A mail testing scenario now waits until a new message is fully saved before ending. This prevents false failures in automated checks caused by temporary unsaved form states, improving reliability without changing user-facing behavior.
Original PR description
Before this commit, tour "test_mail_composer_autosave_tour" could fail at end with the following error: ``` Tour finished with a dirty form view being open. Dirty form views are automatically saved when the page is closed, which leads to stray network requests and inconsistencies. ``` This happens because test creates a new record and posts a message in full composer. It checks that message is present in chatter and then leave the form view. When posting the message, the form view is saved, but this can happen with a small delay after message is visible on chatter like after tour has ended. This commit fixes the issue by awaiting form view is saved, so that tour doesn't panic at end there's a form view with unsaved changes, as the form view is properly saved with sending a message. Fixes runbot error 198583 Fixes runbot error 222676 Fixes runbot error 226772 Fixes runbot error 222676 Forward-Port-Of: odoo/odoo#218145
This fixes a timing issue in the Mail discussion channel tests where a message could be acted on before it was fully saved. The change helps prevent false test failures in automated checks, improving confidence in releases without changing user-facing behavior.
Original PR description
Before this commit, tour "test_discuss_channel_public_page_as_guest" would crash in test after posting a message in which we attempt to add a reaction. This happens because the step is a `hover &&…
Before this commit, tour "test_discuss_channel_public_page_as_guest" would crash in test after posting a message in which we attempt to add a reaction. This happens because the step is a `hover && click 'Add a reaction'`, so it hovers on selector `o-mail-Message:contains(cheese)` then clicks on the 'Add a reaction' action. In discuss channels, when sending a message, the message is immediately shown on UI before there's a genuine message that is created in DB. This optimistic behavior gives impression the app is fast, but some actions require a genuine message like 'Add a reaction'. The problem of test is that selector `.o-mail-Message:contains(cheese)` passes with temporary / transient message of optimistic behavior, so the `hover` step would be triggered on the temporary / transient message and 'Add a reaction' action is awaited for click. Problem is that when genuine message data is received, implementation detail deletes the temporary / transient message and then shows the genuine message. Because the genuine message is different, component identity is different (it uses message.localId in `t-key`), thus it awaits `Add a reaction` on UI but it's not visible because we need to hover again, this time on genuine message. This commit fixes the issue by awaiting message is shown on UI is the persistent, i.e. non-temporary and non-transient, so that hover and click on the 'Add a reaction' action works without issue. fixes runbot errors 181660 fixes runbot errors 222093 fixes runbot errors 227756 Forward-Port-Of: odoo/odoo#218053 Forward-Port-Of: odoo/odoo#217982
The donation snippet now handles cases where no custom donation amount is configured. Instead of causing an error page, visitors are prompted to select an amount, keeping the donation flow usable.
Original PR description
Since [1], a crash occurs when the Custom Amount option for the `s_donation` snippet is `None` and you use it. Steps to reproduce: - Drop `s_donation` snippet - Set Custom Amount option as `None` - Save and exit edit mode - Click on `Donate Now` button - A traceback occurs instead of showing an error to select an amount [1]: https://github.com/odoo/odoo/commit/22e777c046521f3f89b62caa5876680beb7f5aba Forward-Port-Of: odoo/odoo#217991
This fix adjusts a Point of Sale configuration test so it only runs where the related accounting setting is available. It prevents avoidable build failures and helps keep releases stable without changing customer-facing behavior.
Original PR description
this commit fixes the test for the account_tax_periodicity_journal_id field in the res.config.settings model, which was failing due to an assertion error cause it is not in the community version of Odoo 18.2. but it is in the saas-18.2 version enterprise version of Odoo 18.2. refer to this [commit](https://github.com/odoo/odoo/commit/8d841025ecb0b62719fa92236696c0e3421ca270) build_error-227602 Forward-Port-Of: odoo/odoo#217003 Forward-Port-Of: odoo/odoo#215611
This fix prevents bank reconciliation matching from failing when a payment reference ends with a backslash. It improves reliability for accounting workflows by safely handling this special character during matching.
Original PR description
If a payment ref end with '\\', this '\\' will be interpreted as an escape operator in the query, which leads to an error. This commit add the '\\' to the list of char to escape. no-task Forward-Port-Of: odoo/enterprise#89659
This fix updates manufacturing shop floor tests so they no longer depend on an exact record count that can change when demo data is present. It helps keep automated validation stable and reduces false build failures without changing user-facing behavior.
Original PR description
### Issue: Certain shopfloor tests make assert on the number of records present in the shopfloor: - test_shop_floor_my_wo_filter_with_pin_user - test_automatic_backorder_no_redirect These assert can not be reliable due to demo-data's adding unrelated records e.g. https://github.com/odoo/enterprise/blob/5bfadae317ee47ac34703d4cc222677ac677cc7d/purchase_mrp_workorder_quality/data/purchase_mrp_workorder_quality_demo.xml#L79-L84 runbot-build-error-226734 Forward-Port-Of: odoo/enterprise#89556 Forward-Port-Of: odoo/enterprise#88005
The VoIP interface now works better on smaller screens by allowing users to scroll where content previously could be cut off. Spacing, alignment, and transfer button styling were also adjusted for a more consistent and accessible experience.
Original PR description
This commits fixes minor layout issues: - It adapts some views that had no scroll bar when the viewport was small. This prevented access to part of content. - It revises some spacing and alignment on…
This commits fixes minor layout issues: - It adapts some views that had no scroll bar when the viewport was small. This prevented access to part of content. - It revises some spacing and alignment on small screens. - It defines small transfer buttons in "outline" style to maintain consistency with the others tabs. task-4908502 | Before | After | |--------|--------| |  |  | |  |  | |  |  | |  |  | |  |  | |  |  | |  |  | Forward-Port-Of: odoo/enterprise#89005
Odoo Studio can no longer be opened to customize the Bank Reconciliation view. This prevents users from making unsupported changes to a sensitive accounting workflow, reducing the risk of configuration issues.
Original PR description
- Install `web_studio` and `account_accountant` - Open Accounting -> Bank You can open studio on this view but this should not be possible opw-4859464 Forward-Port-Of: odoo/enterprise#89181 Forward-Port-Of: odoo/enterprise#89146
Amazon sales orders can now correctly recognize UK DPD and Hermes carrier names when they include extra country codes from Sendcloud. Royal Mail matching was also updated, helping prevent shipping confirmations from failing because the carrier name was not accepted.
Original PR description
For DPD and Hermes (not the others), Sendcloud adds an unnecessary ISO code. In order to keep it should it be necessary (e.g. rml_gb), we map them to the Amazon const instead of stripping the code. While testing, it was also found that royal mail seems to have been renamed and was thus not working. Forward-Port-Of: odoo/enterprise#87745
This fix restores a missing Australian payroll reporting field on the employee form. Businesses can again view and manage the WorkCover-related reporting setting needed for accurate payroll administration.
Original PR description
"l10n_au_report_to_w3" was missing from the employee view.
PDF versions of stock reports now show table headers in bold, matching the intended report layout. This improves report readability and ensures printed documents look consistent with the on-screen template.
Original PR description
Problem: When printing the stock report, table headers are not bold in the generated PDF despite being styled that way in the HTML template. Cause: The bold styling is applied via CSS on the `thead` element, which doesn't render properly in the PDF output. Solution: Use `<strong>` tags inside table headers to apply bold formatting, as done in version 17.0. Also remove `font-weight` rules from CSS for `thead` to avoid conflicts and ensure consistent output. Steps to reproduce: 1. Go to Inventory > Inventory Overview. 2. Select any inventory record. 3. Print the report. → Table headers are not bold as expected, despite formatting. opw-4840380 Forward-Port-Of: odoo/enterprise#89836 Forward-Port-Of: odoo/enterprise#87852
This fix changes the numbering used by manufacturing test records so they no longer overlap with demo manufacturing orders. It helps keep automated checks reliable and prevents false build failures, with no expected impact on day-to-day users.
Original PR description
This commit modifies the MO sequence as defined in the test's setup from "WH/MO/" to "WH/TEST/MO", this way, there won't be any name's conflict with MO created by demo data. Runbot build error: [223328](https://runbot.odoo.com/odoo/error/223328) Forward-Port-Of: odoo/enterprise#89649
6 changes
Resolved issues and error corrections
The VoIP softphone now uses a clearer minimize icon instead of a minus icon. This aligns the interface with designer feedback and makes the control easier for users to recognize.
Original PR description
Following feedback from the designers.
This fix makes shop floor automated tests more reliable by avoiding assumptions about the exact number of records shown. It prevents unrelated demo data from causing false test failures, helping keep build validation stable without changing user-facing behavior.
Original PR description
### Issue: Certain shopfloor tests make assert on the number of records present in the shopfloor: - test_shop_floor_my_wo_filter_with_pin_user - test_automatic_backorder_no_redirect These assert can not be reliable due to demo-data's adding unrelated records e.g. https://github.com/odoo/enterprise/blob/5bfadae317ee47ac34703d4cc222677ac677cc7d/purchase_mrp_workorder_quality/data/purchase_mrp_workorder_quality_demo.xml#L79-L84 runbot-build-error-226734 Forward-Port-Of: odoo/enterprise#89556 Forward-Port-Of: odoo/enterprise#88005
Amazon order shipping now correctly recognizes DPD, Hermes, and the renamed Royal Mail carrier values used in the UK. This helps prevent carrier-matching errors when Sendcloud provides those delivery services.
Original PR description
For DPD and Hermes (not the others), Sendcloud adds an unnecessary ISO code. In order to keep it should it be necessary (e.g. rml_gb), we map them to the Amazon const instead of stripping the code. While testing, it was also found that royal mail seems to have been renamed and was thus not working. Forward-Port-Of: odoo/enterprise#87745
This fix prevents users from opening Odoo Studio on the Bank Reconciliation screen. It avoids unsupported customizations in a sensitive accounting workflow, reducing the risk of accidental configuration issues.
Original PR description
- Install `web_studio` and `account_accountant` - Open Accounting -> Bank You can open studio on this view but this should not be possible opw-4859464 Forward-Port-Of: odoo/enterprise#89181 Forward-Port-Of: odoo/enterprise#89146
This fixes an issue where payment references ending with a backslash could cause bank reconciliation matching to fail. The change helps accountants process affected payments without query errors during reconciliation.
Original PR description
If a payment ref end with '\\', this '\\' will be interpreted as an escape operator in the query, which leads to an error. This commit add the '\\' to the list of char to escape. no-task
PDF reports generated from Studio now show table headers in bold as intended. This makes printed stock reports match their on-screen formatting and improves readability for users.
Original PR description
Problem: When printing the stock report, table headers are not bold in the generated PDF despite being styled that way in the HTML template. Cause: The bold styling is applied via CSS on the `thead` element, which doesn't render properly in the PDF output. Solution: Use `<strong>` tags inside table headers to apply bold formatting, as done in version 17.0. Also remove `font-weight` rules from CSS for `thead` to avoid conflicts and ensure consistent output. Steps to reproduce: 1. Go to Inventory > Inventory Overview. 2. Select any inventory record. 3. Print the report. → Table headers are not bold as expected, despite formatting. opw-4840380 Forward-Port-Of: odoo/enterprise#89836 Forward-Port-Of: odoo/enterprise#87852
5 changes
Resolved issues and error corrections
This fixes an issue in the Belgian Intrastat reporting module where an empty view definition could cause errors when other report views depended on it. The change keeps report setup stable and prevents failures during upgrades or module loading.
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. Linked:https://github.com/odoo/upgrade/pull/7973 no-task Forward-Port-Of: odoo/enterprise#88647
PDF versions of stock reports now show table headers in bold as intended. This makes printed reports match the on-screen layout and improves readability for users reviewing inventory documents.
Original PR description
Problem: When printing the stock report, table headers are not bold in the generated PDF despite being styled that way in the HTML template. Cause: The bold styling is applied via CSS on the `thead` element, which doesn't render properly in the PDF output. Solution: Use `<strong>` tags inside table headers to apply bold formatting, as done in version 17.0. Also remove `font-weight` rules from CSS for `thead` to avoid conflicts and ensure consistent output. Steps to reproduce: 1. Go to Inventory > Inventory Overview. 2. Select any inventory record. 3. Print the report. → Table headers are not bold as expected, despite formatting. opw-4840380 Forward-Port-Of: odoo/enterprise#89836 Forward-Port-Of: odoo/enterprise#87852
The POS appointments screen now loads the missing illustration used when no bookings are available. This prevents an error when users remove grouping in the bookings Gantt view and keeps the empty state displaying correctly.
Original PR description
Steps to reproduce: ------------------------- - Open pos enabled with bookings. - Open booking tab and in gantt view remove groupby filter. Issue: ------- There will be a traceback. Cause: -------- When there are no bookings available it tries to load no booking svg template, which is not loaded in the assets. Fix --- We have loaded the missing asset file to ensure the SVG displays correctly when there are no bookings. task: 4912389 Forward-Port-Of: odoo/enterprise#89378
Odoo Studio can no longer be opened to customize the Bank Reconciliation view. This prevents users from making unsupported changes to a sensitive accounting workflow, reducing the risk of configuration issues.
Original PR description
- Install `web_studio` and `account_accountant` - Open Accounting -> Bank You can open studio on this view but this should not be possible opw-4859464 Forward-Port-Of: odoo/enterprise#89181 Forward-Port-Of: odoo/enterprise#89146
This fix makes manufacturing shop floor test checks more reliable by avoiding assumptions about exact record counts when demo data may add extra entries. It helps keep automated validation stable and reduces false build failures without changing user-facing behavior.
Original PR description
### Issue: Certain shopfloor tests make assert on the number of records present in the shopfloor: - test_shop_floor_my_wo_filter_with_pin_user - test_automatic_backorder_no_redirect These assert can not be reliable due to demo-data's adding unrelated records e.g. https://github.com/odoo/enterprise/blob/5bfadae317ee47ac34703d4cc222677ac677cc7d/purchase_mrp_workorder_quality/data/purchase_mrp_workorder_quality_demo.xml#L79-L84 runbot-build-error-226734 Forward-Port-Of: odoo/enterprise#89556 Forward-Port-Of: odoo/enterprise#88005
15 changes
Resolved issues and error corrections
Employees in Indian companies can now open their approved time off requests without running into an access error. The change prevents the system from trying to update leave details after approval, keeping approved records stable while preserving the existing time off calculation behavior.
Original PR description
**Steps to reproduce:** 1. Install l10n_in_hr_holidays and l10n_in 2. Switch to IN company 3. Create an employee related to Marc Demo in IN Company 4. Log in with Marc Demo and create a timeoff 5. Approve the timeoff by Mitchel admin 6. Open the form view of approved timeoff by Marc Demo **Issue:** - The _get_durations method in l10n_in_hr_holidays attempts to update the l10n_in_contains_sandwich_leaves field whenever it runs, including when opening the form view of an approved time off. This causes an access error, as updates are not allowed for Marc demo in the approved state. **Solution:** - Added a state check in the _get_durations method to prevent updating the field for approved records. opw-4741162
The Point of Sale product configuration popup now works even when multiple pricelists have the same name. This prevents checkout staff from encountering errors in setups where pricelist names are reused, improving reliability without changing normal workflows.
Original PR description
Before this commit, an error would occur when opening the product configuration popup if two pricelists shared the same name. This was due to the pricelist name being used as a key, which must be unique. This commit resolves the issue by switching to the pricelist ID as the key, ensuring uniqueness and preventing errors when duplicate pricelist names exist. opw-4882900 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fixes an issue where employees with flexible schedules could have incorrect timesheet entries for one-day leave. The system now records leave using the average daily hours, keeping timesheets aligned with time off calculations.
Original PR description
After https://github.com/odoo/odoo/pull/209570 , the way work intervals are computed might not reflect real working time for flexible employees, since the virtual schedule is based on a weekly span. In this PR we chose to allocate a timesheet for single day leaves corresponding to average hours per day to be consistent with hr_holidays calculation. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Odoo now avoids trying to display raw binary file contents, such as PDF data, in the developer record data view. This prevents connection errors and keeps administrators' debugging tools usable when inspecting attachments.
Original PR description
Versions -------- - 18.0+ Steps ----- 1. Enable developer mode; 2. go to Settings / Technical / Database Structure / Attachments; 3. open a PDF attachement; 4. open developer tools; 5. click on Record / Data. Issue ----- > Connection lost. Trying to reconnect... Traceback in logger: > `UnicodeDecodeError: 'utf-8' codec can't decode byte ...` Cause ----- Commit 5ef4c07ada1b4 moved the `json_default` function from `date_utils` to `json`, with the purpose of letting it serialize objects besides `date` & `datetime`. When used for raw data of binary files like PDF, it encounters values that cannot be represented in UTF-8, and because `decode` defaults to strict error handling, an exception is thrown. Solution -------- When sending the `read` request to the ORM, only request fields of that aren't of type `binary` to ensure they're serializable. opw-4717657
Odoo now hides star and mark-as-read options on chatbot messages while a live chat thread has not yet been saved. This prevents users from triggering errors by clicking actions that cannot work in that temporary state.
Original PR description
**Before this PR:** the toggle-star and mark-as-read actions were visible on chatbot messages in a non-persisted livechat thread. Clicking these actions caused errors. This PR hides these actions when the thread is in a non-persisted state, preventing such errors. task-[4743758](https://www.odoo.com/odoo/project/1519/tasks/4743758) Forward-Port-Of: odoo/odoo#214382
The hardware drivers module now skips certificate updates when the data received from Odoo.com is empty. This helps prevent web server restart issues that could disrupt connected hardware services.
Original PR description
We now ensure that the certificate data returned by odoo.com is not empty, to avoid nginx not restarting. Task: 492610
Products available for store pickup will now still show an out-of-stock message when relevant. This helps shoppers understand product availability more clearly and reduces confusion during checkout or pickup selection.
Original PR description
Before the commit, when a 'pick up in store' was published, the out-of-stock message was hidden to avoid confusion. However, customers want to benefit from it, and now we reintroduce it. opw-4791969
Users can now return to the expense list after opening an expense from dashboard filters such as "To Submit". This fixes a navigation issue that made reviewing filtered expenses less efficient.
Original PR description
**Steps to reproduce:**
- Install the `hr_expense` module.
- Go to the Expense menu and click on "To Submit" in the My Expense dashboard.
- Open any record from the list view.
**Observation:**
- You can't go back to the list view after opening a record.
**Cause:**
- A tag `menu` was added to the action to hide breadcrumbs, but it removed all breadcrumb navigation, unable to go back.
https://github.com/odoo/odoo/blob/92993d7790bb641e5822a5358db35c7fcc7bd091/addons/hr_expense/static/src/components/expense_dashboard.js#L44
**Solution:**
- Used a better way by passing `{ clearBreadcrumbs: true }` to stop the breadcrumb from changing when a filter is applied.
opw-4790643
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-prCancelling accounting entries no longer removes their reference when the entry is not linked to an expense. This prevents unrelated records from losing important identifying information when the Expenses app is installed.
Original PR description
### Issue: On 18.0 and 18.1, cancelling an `account.move` will clear the `ref` value in all situations if `hr_expense` is installed. While clearing the `ref` is necessary if unlinking an expense, this isn't the case for unrelated records. ### Solution: Check to see if the `expense_sheet_id` is set on the `account.move` to determine if the `ref` should also be removed. ### Additional Note: This flow was reworked in 18.2 via #189701, so we only need to adjust this for the affected versions. opw-4853903
Mobile dialog headers no longer use backend-specific colors such as the community theme color. This keeps website dialogs visually consistent for visitors and prevents internal Odoo styling from appearing on the public front-end.
Original PR description
Before this PR: header color of `Dialog` on mobile was "community color" or white, depending on the version of Odoo the database is running. This was creating issues in in the front-end, where the user of the website would see back-end specific colors in different `Dialog`s. This PR removes the color customization of `Dialog`'header as it was fitting a design line we had before we introduced MILK. task-4001365 Example of the issue (mobile front-end): <img width="376" alt="Screenshot 2024-06-20 at 10 54 04" src="https://github.com/odoo/odoo/assets/110090660/dad6a4b2-6164-45dd-9e16-0160e2989607"> --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#170087
The Discuss message composer now keeps the send button's opacity behavior aligned with other composer buttons when the message field is empty or focused. This creates a more consistent and polished user experience without changing how messages are sent.
Original PR description
Before this commit, the paper-plane button to send a message was not changing opacity when the composer was empty and the user focused on the composer. Whereas the other buttons such as the emoji picker were changing it. Now the opacity of this button is changing like the other buttons while still changing when the composer is not empty (like before this commit) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The Italian point of sale flow now makes sure the invoice option is selected before validating an order. This prevents a validation error and helps sales complete correctly when an invoice is required.
Original PR description
## After this commit: - It ensure invoice checkbox is selected before validation, preventing the error and allowing the order to validate correctly. Runbot [link](https://runbot.odoo.com/odoo/runbot.build.error/159985) Ticket [link](https://www.odoo.com/odoo/project/967/tasks/4916349) runbot-159985 task-4916349
Updates the Mexican DIOT report logic to use the correct reporting references after related column changes. This helps ensure DIOT tax report values are calculated from the intended categories and avoids confusion from outdated labels.
Original PR description
Description of the issue/feature this PR addresses: The language used in the DIOT documentation was confusing and even though we had the exact same description for two columns it turns out they were different, so we need to change the logic of a few columns to make it work as needed. This issue was addressed in PR: https://github.com/odoo/odoo/pull/217441, but a small adjustment still needs to be made in the l10n_mx_reports module. Current behavior before PR: The l10n_mx_diot_get_values function uses references to the old account.report.expression that were removed in the pr mentioned above. Desired behavior after PR is merged: The l10n_mx_diot_get_values function uses the new references to account.report.expression that were introduced in the pr of the community repo. opw-[4920577](https://www.odoo.com/odoo/my-tasks/4920577) "I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr" Forward-Port-Of: odoo/enterprise#89481
Shipping label printing now includes a unique print identifier when sending jobs to connected IoT printers. This prevents unnecessary printer-related error messages while keeping the label printing process working smoothly.
Original PR description
Before this commit, the shipping label printing would send documents to the printer without using a print_id, which would cause an error (but the document would still print). After this commit, we send a print_id using a UUID just like for report printing, ensuring no error occurs on the IoT. opw-4829908 Forward-Port-Of: odoo/enterprise#89930
Amazon order shipping now better recognizes DPD, Hermes, and Royal Mail carrier names used in Great Britain. This helps prevent carrier mapping issues when Sendcloud provides country-specific carrier codes, improving fulfillment accuracy.
Original PR description
For DPD and Hermes (not the others), Sendcloud adds an unnecessary ISO code. In order to keep it should it be necessary (e.g. rml_gb), we map them to the Amazon const instead of stripping the code. While testing, it was also found that royal mail seems to have been renamed and was thus not working. Forward-Port-Of: odoo/enterprise#87745