Friday, October 17, 2025
48 changes · 19.0
Enhancements to existing features
The home page search box is now marked so Bitwarden ignores it instead of treating it like a login or fillable field. This reduces distracting password manager prompts and makes the home screen search experience smoother for users.
Original PR description
For some reason, BitWarden picks up the textbox on the home page as fillable: <img width="853" height="219" alt="image" src="https://github.com/user-attachments/assets/4a3ef615-999a-4744-9274-a407b911df3a" />
Sending messages from Odoo to an IoT Box now happens without holding up the user's current action. This should make related workflows feel more responsive when connected devices are involved.
Original PR description
In order to avoid blocking code execution when sending websocket messages to the IoT Box from the client, we stopped waiting for the `send_message` call to complete. Forward-Port-Of: odoo/enterprise#97267
Resolved issues and error corrections
This fix ensures date-based filters are converted using the daylight saving time rules for the date being searched, rather than the current date. This prevents records from being included or excluded incorrectly around seasonal time changes.
Original PR description
Description of the issue/feature this PR addresses:
When casting a date to a datetime during conversion of domains, we should take the DST of the date instead of now.
Current behavior before PR:
`[('dt_field', '>', '2022-01-01')]` uses the DST of now which may or may not be +1h.
Desired behavior after PR is merged:
`[('dt_field', '>', '2022-01-01')]` would use the DST of the given date.
runbot.build.error/232914
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-prFeatures or functions removed from Odoo
This change removes stray files from an employee contract spreadsheet dashboard module that had already been retired. It prevents obsolete dashboard content from lingering in the system and keeps the product structure clean.
Original PR description
Module was originally removed by 46052c4bc5ad1bd2549a6125202e0671b56beac8 but was necromantized back into unlife by the translations export 0c1874473050f6e3cb68601737e3b4216aee5cad, being revived as a directory with a data file and a translation file but no manifest. Forward-Port-Of: odoo/enterprise#97326
Code cleanup and technical improvements
This update improves the internal test coverage for audio and video calls in Discuss by simulating network behavior without needing real network access. It helps ensure call-related features are tested more safely and that media streams are properly cleaned up, reducing the risk of issues such as lingering camera or microphone activity.
Original PR description
- Add a Mock for the network layer of calls (`rtcService.network`), which allows for the testing of features that depend on network events, without using online tests (which would require local network access in the test environment). - Improve the stream testing API, so tests for stream cleanup are also added, which guards against memory leaks that could be caused if streams aren't properly closed and the associated lingering OS/browser level media indicators (eg: webcam activity light). - Add a test for https://github.com/odoo/odoo/pull/230287 now that it's possible to test such features.
Documentation and clarification updates
This pull request records that contributor arch-fan has signed the required Contributor License Agreement. This administrative update helps ensure future contributions can be accepted under Odoo's legal contribution rules.
Original PR description
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
Miscellaneous changes
opw-5018450 Forward-Port-Of: odoo/odoo#231654 Forward-Port-Of: odoo/odoo#231394
Original PR description
opw-5018450 Forward-Port-Of: odoo/odoo#231654 Forward-Port-Of: odoo/odoo#231394
This fixes a point-of-sale rental test so it correctly uses an order quantity that remains visible after recent ecommerce payment filtering changes. It helps ensure paid online orders can still be handled reliably in POS workflows without test failures.
Original PR description
Because of https://github.com/odoo/odoo/pull/230809, it will cause the quotations/orders menu to filter out any sale orders which have an unpaid amount of 0. The test_rental_pos test tries to create a sale order with a quantity of 0 and then settle it in the POS, but because of the filter, the sale order will not show up in the menu causing the test to fail. This PR is to increase the quantity in the sale order to 1 so that the order shows up and the test can be executed properly. Task-5138081
The automated click testing tool will now avoid the Attendance onboarding menu because it opens a tablet-focused kiosk screen that the test cannot leave. This prevents false test failures and helps keep backend quality checks stable without changing the experience for regular users.
Original PR description
This commit blacklists the attendance Onboarding menu in clickbot since that menu redirects the user to kiosk app which is a custom app for tablet mode and so the clickbot cannot go back in backend when it enters in the kiosk.
This fix removes now-unnecessary extra information from database API calls after the underlying SaaS route was corrected. It reduces redundant handling in the databases module and helps keep synchronization behavior aligned with the platform defaults.
Original PR description
Since odoo/internal#3823 the `ids` and `context` arguments erroneously became mandatory on the SaaS `/json/2/<__model__>/<__method__>` route, as the override was missing default values. Since odoo/internal#3830 added these default values, there is no need to add these arguments any more, and this commit removes them from the method BaseApi:post_json2 of the databases module. Task-id: none
The online store no longer shows an “Undefined” label under a product name when a shopper selects a variant combination that is not available. This keeps product pages cleaner and avoids confusing customers during variant selection.
Original PR description
## Versions
19.0+
## Issue
"Undefined" is displayed under a product' name when selecting an unavailable variant configuration.
## Steps to reproduce
- Activate variants in the Settings' App;
- Create a product with 2 attributes ("A" and "B") and 2 values ("c" and "d") for each attribute;
- Click on the "Configure" button for attribute "A":
- Select the first value:
- Add an exclusion line applied on the same product and value "c" of attribute "B" ("B:c").
- Go to the product's eCommerce page:
- Select the unavailable configuration (A:c and B:c).
## Cause
A condition introduced on line https://github.com/odoo/odoo/blob/609ce29d5232707f7c6d05a7b82909cd3b09c75a/addons/website_sale/views/templates.xml#L2476 relies on `visible_tags` which is not defined because based on `product_variant.all_product_tag_ids` where `product_variant` is empty as the selected variant is archived.
opw-5145405The project setup test now prepares the milestones setting before the guided tour runs. This prevents test results from changing depending on whether demo data is installed, improving reliability without changing normal user workflows.
Original PR description
When running test_01_project_tour, the milestones feature is enabled on one of the projects. When doing so, if the project_milestone global option isn't enabled, it gets enabled automatically. When…
When running test_01_project_tour, the milestones feature is enabled on one of the projects. When doing so, if the project_milestone global option isn't enabled, it gets enabled automatically. When such a global feature is enabled while saving a project, the web client executes a reload_context action (see the onRecordSaved override in `@project/views/project_form/project_project_form_controller`). This is why the tour step that clicked on the save button got an `expectUnloadPage: true` attribute. However, when the demo data are installed, some projects are already created, including projects that have the milestones feature enabled. Therefore, the global option does not get enabled during the tour, and the page does not get reloaded in this case. With this commit, we enable the global option before running the tour, so that the behavior can be consistent between executions on databases where the demo data are or are not installed. Runbot-build-error-id: [232962](https://runbot.odoo.com/odoo/runbot.build.error/232962)
This fixes visual issues in the Mail chat message composer, especially in compact windows and on small screens. Text now aligns better, mention links no longer cause small layout shifts, and the composer stays within the visible screen area.
Original PR description
This commit fixes several HTML composer styling issues: - The HTML composer html did not align vertically with the text area when the chat window is in small UI mode. - The mention/redirect links had a border and causing slight layout shifts when applied to the composer. This is now fixed by using outline instead of border. - The maximum height of the HTML composer was not constrained on small screens, causing it to overflow the screen. This is now fixed by using a max-height relative to the viewport height. task-5022254 after: <img width="435" height="346" alt="image" src="https://github.com/user-attachments/assets/cfd309d6-f6a4-4d7c-8694-2a86504193e7" /> <img width="454" height="782" alt="image" src="https://github.com/user-attachments/assets/6ce924b6-9df7-4831-890d-59ec37ea18c9" /> --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The Point of Sale due settlement flow now handles cases where a previously loaded customer has been deleted. This prevents reload errors and helps keep checkout and payment follow-up workflows running smoothly.
Original PR description
Before this commit, if a previously loaded partner was deleted from the database, reloading the PoS would trigger an error because the partner record could no longer be found. opw-5137871 Forward-Port-Of: odoo/enterprise#97173 Forward-Port-Of: odoo/enterprise#96491
The date picker now clearly shows when a date option is disabled and cannot be selected. This reduces confusion for users by making unavailable dates visually distinct after a previous interface change removed the default disabled styling.
Original PR description
In this commit fa3bfb0a696c20ae51cd0f37f737fcf211007c4a, the o_date_item_cell was changed from a button to a div. This made the style of disabled cells not show that its not unclickable, making it confusing for users. Solution is to add specific style for the disbaled o_date_item_cell component. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#231562 Forward-Port-Of: odoo/odoo#231249
This fixes an issue in Odoo Studio where creating a related field to a contact’s child records could save incorrect relationship settings. The change prevents crashes during later form updates, making Studio-created customizations safer and more reliable.
Original PR description
On sale order, create a related field to res_partner.child_ids Before this commit, the related field is not stored but has a relation_field to parent_id (res.partner) During an onchange (outside of studio), this will crash. After this commit, we unset relation_field in this case as it doesn't make sense (the relation_field should reference a res.partner field, not a field presetn in the current model) opw-5155440 Forward-Port-Of: odoo/enterprise#97274 Forward-Port-Of: odoo/enterprise#96950
This fix restores a safer way for Odoo to identify manually created field names while avoiding unnecessary system work. It helps keep custom field behavior reliable without adding performance overhead.
Original PR description
The use of IrModelFields method `is_manual_name` was [reverted](https://github.com/odoo/odoo/pull/212579) for the sake of efficiency and avoiding instanciating models when not really needed. The use of an overridable method is still needed ([reference](https://github.com/odoo/odoo/pull/145154)). --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#224524
Fixes an issue where opening the website editor on the login page incorrectly marked the form as changed. This prevents confusion for editors by avoiding a false unsaved-change state, with no impact on normal visitor login behavior.
Original PR description
Before this commit, part of the `/web/login` page was immediately marked as dirty when the editor opened. This happened because `UserSwitch` component used a `t-portal` directive that rendered an element outside the `owl-component` tag, causing it to be tracked by the mutation observer. After this commit, the `t-portal` directive is ignored when in edit mode. A side effect of this solution is that the "Choose a user" button is hidden during editing, but this button was already non-editable and non-clickable during edit. **How to reproduce the problem** 1. Navigate to "/web/login" 2. Activate edit mode 3. The "o_dirty" class is present in the login form Forward-Port-Of: odoo/odoo#230602
This update prevents a timing issue that could cause Odoo Discuss calls to fail while a peer-to-peer connection offer is being processed. It improves call reliability by ensuring delayed responses no longer use outdated connection information.
Original PR description
Before this commit, since https://github.com/odoo/odoo/pull/205198, the handling of an offer can be arbitrarily delayed by the `acceptOffer` callback. This could lead to a traceback when the reference to `peer` is stale by the time the event is handled. Forward-Port-Of: odoo/odoo#231620
This fixes an issue that prevented certain related list-style fields from being created when no matching inverse link existed. It improves reliability for custom data models and reduces setup blockers for configurations that rely on related records.
Original PR description
…n_field Before this commit, it was not possible to create a related one2many without a relation_field (inverse) However, the relation_field of a relation cannot be the one of the original field (because it doesn't exist on the current model) After this commit, this flow works. opw-5155440 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#231720 Forward-Port-Of: odoo/odoo#231187
Point of Sale session names now stay continuous when saving cash details fails. This prevents confusing gaps in session numbering and makes session records easier to track and audit.
Original PR description
Before this commit, if an issue occurred while posting the cash details, the session sequence would still increment even though the operation failed, leading to gaps in session names. With this commit, the sequence only increments when the operation succeeds, ensuring continuous session naming without gaps. opw-5100163 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#230007 Forward-Port-Of: odoo/odoo#229532
This update fixes an issue where changing text color in the HTML editor could accidentally recolor a larger surrounding section when an icon was nearby. Users can now apply colors more precisely to their selected content, reducing unexpected formatting changes.
Original PR description
After this [commit], we'd have an issue when we tried to change a color and there was an `fa` icon next to our selection. Instead of changing the color of only the selection it would change it for the closest element with `color`, `background-color`, or `background-image` style properties. To reproduce the bug: - Set selection on an element that has a color style property on its parent, and the parent has .fa icon but not directly on our element - Try to change its color => Color of the whole parent changes task-5107147 [commit]: https://github.com/odoo/odoo/commit/927f4b973932d14961c148e13473017651a60dc0 Forward-Port-Of: odoo/odoo#231490 Forward-Port-Of: odoo/odoo#229311
This fix prevents an internal temporary record reference from being used when opening Studio from the activity display in Point of Sale. It helps avoid a runbot error and improves reliability for users configuring or reviewing preparation displays.
Original PR description
This commit prevents a NewId to be used in a domain when opening studio from the activity display. runbot error #233396 Forward-Port-Of: odoo/enterprise#97332
Tooltip text in live chat, mail, point of sale, and web screens is now included in translation handling. This helps users see helpful on-screen hints in their selected language instead of untranslated text.
Original PR description
Unless you tell Owl to do so, custom attributes like data-tooltip aren't translated. This commit adds the data-tooltip attribute to the list of translated attributes when missing. *: im_livechat, mail, point_of_sale, web Forward-Port-Of: odoo/odoo#231541 Forward-Port-Of: odoo/odoo#231006
The Payroll app no longer shows a payslip export button that led users to a missing page. This prevents confusion and avoids a 404 error when viewing payslips in debug/superuser mode.
Original PR description
Steps to reproduce: ------------------------- 1. Install `hr_payroll` module 2. Enable debug mode and click on Become Superuser 3. Go to All Payslips and open any payslip record 4. Click on the…
Steps to reproduce: ------------------------- 1. Install `hr_payroll` module 2. Enable debug mode and click on Become Superuser 3. Go to All Payslips and open any payslip record 4. Click on the Export Payslip button Observation: ------------------------- A 404 (Page Not Found) error appears when clicking the Export Payslip button Issue: ------------------------- The button triggers the route `/debug/payslip/<id>`, which was removed in the following commit https://github.com/odoo/enterprise/commit/57969bcaf876a13c36794adeb47e0da938e297ad#diff-0105b1a6a9e742e7eeaf7cc727745ebd3932177378d46332d4ca854f931b3359 The route was never reintroduced afterward, but the Export Payslip button remained in the view. As a result, clicking it leads to a 404 error Solution: ------------------------- 1. Temporarily bypass the `action_export_payslip` function. 2. Remove the Export Payslip button from the XML in the master forward port branch, as doing so does not impact any existing customizations relying on that button opw-5115946 Forward-Port-Of: odoo/enterprise#97361 Forward-Port-Of: odoo/enterprise#96359
This update ensures accounting localization tests always include demo data when they run. It keeps test behavior consistent across versions and helps reduce avoidable test failures without affecting day-to-day users.
Original PR description
In later versions, we improve the testing suite to avoid having to install demo data in order to reduce the testing time. In order to keep the testing configuration simple across versions, we force the installation of demo data instead of only asserting that demo is installed before launching the script. Forward-Port-Of: odoo/odoo#231925 Forward-Port-Of: odoo/odoo#231660
The website SEO Auto-Fill action now works correctly on system pages such as login, signup, password reset, and donation payment pages. This prevents users from seeing an error when optimizing these pages and allows required SEO fields to be filled as expected.
Original PR description
Steps to Reproduce: 1.Go to the website and open a system page such as: /web/login /web/signup /web/reset_password /donation/pay 2.In the top menu, go to Site → Optimize SEO. 3.Click the Auto-Fill button. 4.Observe that a traceback appears. Before this commit: Clicking the Auto-Fill button caused a traceback error because pageTextContentEl was null due to wrong selector. As a result, getElementsByTagName could not be accessed. In this commit: We provide the correct querySelector value so that pageTextContentEl properly references the intended DOM element. This fix prevents the error and ensures that the SEO Auto-Fill button works correctly, populating all required fields without issue. task-4974618 Forward-Port-Of: odoo/odoo#220769
The import screen now correctly handles cases where users are offered more than one sample import template. This prevents a page crash and slightly improves the layout of the template download buttons.
Original PR description
Import templates are defined on models to allow developpers to provide
sample import files to users. These templates are fetched by the client
as an array of objects of the form {label: string, template: string},
where label is the label to display and template the URL of the file.
The iteration on `importTemplates` goes through this list, and if more
than one element is present in it, the t-key for both elements will be
the same (`[[object Object]]`), leading to a crash of the client
action's template.
This commit uses the 'template' url as the key, as it should be unique
(the label is less trustworthy, as it is translatable).
It also slightly changes the styling, as having an mb32 between multiple
buttons looked rather bad.
Forward-Port-Of: odoo/odoo#231715
Forward-Port-Of: odoo/odoo#231407Administrators can now retry or cancel SMS messages sent automatically by the system without running into an access error. This helps support and operations teams resolve failed delivery notifications directly from technical settings when needed.
Original PR description
## Issue: In debug mode, the administrator could not resend or cancel an SMS that was sent by the system (e.g. delivery confirmation) using the `Retry` / `Cancel` button in the Technical Settings An…
## Issue: In debug mode, the administrator could not resend or cancel an SMS that was sent by the system (e.g. delivery confirmation) using the `Retry` / `Cancel` button in the Technical Settings An Access Error was raised ## Cause: When using the `Retry` or `Cancel` button, the method `_update_sms_notifications()` is called and finds `mail.notifications` records to update However, `notifications.write()` triggers an Access Error because only the recipient of a `mail.notification` is allowed to modify it: https://github.com/odoo/odoo/blob/98610ea2a1369b84b10adb8913c5d7725a0fad67/addons/mail/security/mail_security.xml#L184-L192 This happens even when the user has the rights to resend or cancel the SMS ## Steps to reproduce: - Install an app like stock_sms to create blocking entries - Create and confirm a Delivery - Choose Send SMS - Enable developer mode - Search for the technical settings SMS - Retry sending the automatically sent SMS opw-4904157 Forward-Port-Of: odoo/odoo#230733
The French VAT report export now fills key company name and address fields using the exact length limits required by ASPOne. This helps prevent rejected electronic filings caused by values that are too long or incorrectly placed.
Original PR description
The aim of this commit is making sure that the field Designation, DesignationSuite1, DesignationSuite2, AdresseVoie and AdresseComplement are correctly filled. Indeed, the XSD implied that these fields have to be respectively 35, 35, 35, 30 and 35 characters max. [Documentation 2025](https://www.aspone.fr/files/tutoriaux/xmledi/Documentation_XML-EDI.zip) no task id Forward-Port-Of: odoo/enterprise#97335 Forward-Port-Of: odoo/enterprise#97199
This fix stops certain document-related attachments from being automatically uploaded to cloud storage. It helps ensure attachments that are needed by business document processes remain handled locally as expected, reducing the risk of workflow disruptions.
Original PR description
Some models' attachments will automatically become document attachments which may be used in business code of documents. This commit avoids uploading these attachments to the cloud storage. 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#231628
Website form fields now retain their configured offset spacing when users adjust or preview display settings such as label position or descriptions. This prevents accidental layout changes and saves users from having to reapply spacing after simple edits or hover actions.
Original PR description
Before this commit, changing display parameters of a field (label position, description, etc.) would remove the offset already added. It would require to add them again if a change was made on the display, even if the mouse just hovered the buttons. This commit solves the issue. Steps to reproduce the bug: - Add a form snippet - Add an offset to a field - In the snippet customization, hover over the label position (The offset was removed for good) task-3675509 Forward-Port-Of: odoo/odoo#231688 Forward-Port-Of: odoo/odoo#181344
This update adds coverage to ensure Indian GSTR-1 reports correctly handle sales involving reverse charge tax and SEZ transactions with LUT. It helps reduce the risk of incorrect GST reporting for businesses using these scenarios.
Original PR description
Adding GSTR1 test case with RCM tax and SEZ (with LUT) see https://github.com/odoo/odoo/pull/213931 Forward-Port-Of: odoo/enterprise#95669 Forward-Port-Of: odoo/enterprise#87486
Project sharing pages now show tags in the same light style as the rest of the interface. This removes a visual inconsistency that could make shared project views look less polished or harder to read.
Original PR description
Before this commit, the project sharing was using the dark style for tags even though the rest of the views are in light mode. Removing the tags_list.dark.scss file from the imported file in the manifest fixes this issue. task-5130176 Forward-Port-Of: odoo/enterprise#96751
The website team section now applies mobile image sizing only to team member avatars, not to other images added in the description. This prevents description images from being unintentionally resized, improving how pages look on mobile devices.
Original PR description
Scenario:
- Add s_company_team snippet ("Meet our team" with avatar side by side
with description)
- Add an image in the description (small or big)
- See the page with mobile
Result: all images in the description get a fixed 50% max-width (from
18.0 a 8rem height) which was only meant for the avatar image.
Fix: be more specific with the selector to target only the avatar. The
selector .row.s_col_no_resize > .o_not_editable img.o_editable_media
should only target the intended avatar.
opw-4997932
Forward-Port-Of: odoo/odoo#231793
Forward-Port-Of: odoo/odoo#225412Odoo now checks website domain URLs when they are entered and blocks paths containing invalid dot segments like '.' or '..'. This prevents the Website app from crashing later and gives users a clear message to correct the URL.
Original PR description
This error occurs when the domain URL contains `'.' or '..'` segments. Steps to reproduce: --- - Install `website` module - Settings > Domain > Add URL with `'/../'` (eg:…
This error occurs when the domain URL contains `'.' or '..'` segments. Steps to reproduce: --- - Install `website` module - Settings > Domain > Add URL with `'/../'` (eg: `https://power.odoo.com/OA_HTML/help/../ieshostedsurvey.jsp`) - Open `Website` module Traceback: --- `ValueError: Dot segments are not allowed` This issue occurs because at [1], we intentionally raise a `ValueError` to prevent the use of `'.' or '..'` in the URL path. In Chrome, the sequence `'/../'` is interpreted as a **back path** AFAIK. For example: `http://localhost:8069/odoo/action-218/../2 → http://localhost:8069/odoo/2` This commit fixes the issue by validating the domain URL path. If it contains `'.' or '..'`, a **ValidationError** is raised to clearly inform the user that the entered URL is invalid. [1]: https://github.com/odoo/odoo/blob/dc6dd927faea1f4501d6c50c586d5ea46bd1fc95/odoo/tools/urls.py#L72-L73 sentry-6932797319 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Fully signed documents opened from the portal no longer show the Thank You dialog every time. This gives portal users a cleaner viewing experience after signing is already complete.
Original PR description
Version: - 19.0 Steps for reproduce: - Install the Sign module - Upload a PDF and sign it - Open the fully signed document in the portal view - The Thank You dialog always appears Issue: - The Thank You dialog shows every time in the portal view. Solution: - Hide the dialog in the portal view when document is fully signed. impact: - Users can view signed documents in the portal without the Thank You dialog showing. task-5088937
Fixed an issue that caused the project task calendar to crash for users running the Community edition without the Enterprise project planning features installed. The calendar now only uses Enterprise-only scheduling fields when the related Enterprise module is available, improving reliability for Community users.
Original PR description
Before this commit, when the user with just Odoo community version tries to go to tasks calendar of a project, he will get a traceback saying `planning_date_begin` field does not exist in `project.task` model. The reason is because that field only exist when `project_enterprise` module is installed. This commit makes sure we only use that field when project_enterprise is installed. Closes #228178 Forward-Port-Of: odoo/odoo#231864
This fixes an issue in the Discuss test environment where empty update instructions could accidentally overwrite existing values. The change helps prevent random test failures and improves confidence in automated checks without affecting end users directly.
Original PR description
Before this commit, the mock server would send incorrect store commands because their mode was not preserved if the value was falsy. For example, an empty ADD would behave as a replace, overriding the value instead of leaving it unchanged. This caused indeterministic test crashes as these commands could corrupt data depending on the order in which they were applied. https://runbot.odoo.com/odoo/error/231613
The Sendcloud delivery integration now shows the correct product-based message when a package is too heavy for all available shipping methods. This prevents a confusing system error and helps users understand why the shipment cannot be processed.
Original PR description
When a package exceeds the maximum weight supported by all shipping methods, the system raised an error (`KeyError: 'name'`) because the `stock.move` field was removed in commit #211488. This fix replaces the deprecated `stock.move.name` reference with the product name to correctly display the overweight message. opw-5137167 Forward-Port-Of: odoo/enterprise#96744
This fix ensures the project task calendar uses the correct filtering when showing tasks available for planning. It helps users see relevant tasks in calendar planning views and avoids incorrect or missing task suggestions.
Original PR description
This commit overrides a hook created in related Community PR to add a condition in the domain to fetch tasks to plan inside for task calendar views. Forward-Port-Of: odoo/enterprise#97343
Salary simulation updates no longer create unnecessary tracking changes on employee records. This avoids confusing history entries and helps keep employee-related audit information clearer during compensation simulations.
Original PR description
There was a tracking disable missing on a write on the employee model. This was causing some issues with the selection field tracking values. task-5155497
Interviewers can now open applicant records for jobs they are assigned to without encountering an access error. This keeps recruitment work moving while still limiting broader access to job position details.
Original PR description
To reproduce: ============= 1. give Marc Demo access to Recruitement app as interviewer 2. assign him to a job position as interviewer 3. as Marc Demo try to open an applicant linked to that job position -> Error Problem: ======== when opening an applicant, the field matching_skill_ids is computed where we try to access the expected_degree field of the job position, which is not accessible to an interviewer. Solution: ========= Use sudo() to access the expected_degree field of the job position. opw-5138588 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The automated test for Belgian payroll job changes was adjusted to match the current offer workflow. This helps ensure salary offer and benefit steps continue to work reliably when validating employee job changes.
Original PR description
- changed the step of generate offer to work with the offers smart button instead of old Generate offer button and added `autoExpandMoreButtons` to handle if it's in the popover - added a step to choose contract template to make the values of the offer auto fill from it - added a step to set internet subscription to show the internet invoice upload button afterwards (the upload is hidden if the value is not set) task-id: 5155927
This fixes how website testing tools add plugins so they are also available when testing translation mode. It improves confidence in website translation-related tests without changing the customer-facing website experience.
Original PR description
[FIX] website: always add plugin with test helper addPlugin and similar The test helper `addPlugin` and other similar helpers added the plugin with the registry entry `website-plugins`. This entry is not used in translate mode, thus the plugins added were not present for tests about translate mode. To also add the plugin for tests of translate mode, this commit changes the implementation of `addPlugin` to patch `WebsiteBuilder` instead. It also changes the implementation of other helpers that were doing the same things to instead call `addPlugin`. task-5176469 Forward-Port-Of: odoo/odoo#231687
Restaurant floor plan tables now stay correctly positioned when moved on tablets and phones. This prevents misplaced tables and makes editing layouts on touch devices more reliable for point-of-sale users.
Original PR description
Task: [#4383744](https://www.odoo.com/odoo/project/1737/tasks/5045938) --- On mobile and tablet devices, the floor plan removes top and left padding to position tables closer to the top-left corner and avoid unnecessary scrolling. However, dragging a table did not take these offsets into account, resulting in incorrect placement during the action. Forward-Port-Of: odoo/odoo#231042
The point of sale product information popup now shows inventory for the specific product variant selected, rather than missing or incorrect stock details from the broader product template. This helps sales staff make more accurate availability decisions when products have multiple variants.
Original PR description
Before this commit, when a product template had several variants, opening the product info while a specific variant was selected would not display the inventory information of the selected variant. opw-5161698 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#231563 Forward-Port-Of: odoo/odoo#231266
This update records a new contributor license agreement signature for Micah, also known as LuvForAirplanes. It helps ensure contributions are properly authorized for inclusion in Odoo.