Thursday, April 23, 2026
44 changes · saas-19.3
Resolved issues and error corrections
This update removes the "17" tax tag from several French service tax rates where it did not belong. It helps ensure French tax reporting stays accurate by applying that tag only to goods, not services.
Original PR description
**Issue:** In French localization, a tax tag (i.e. "17") was wrongly added on several taxes for service by a fix: https://github.com/odoo/odoo/commit/f9237cfbb6a9ffbd0a392e4e77e097d5963a5fc3 This tax tag should only be applied on taxes for goods, not service. **Solution:** Remove the tax tag from the following taxes: - 20% EU S - 8.5% EU S - 10% EU S - 5.5% EU S - 2.1% EU S opw-5871998 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#260617
The website builder now applies the correct zoom level to snippets that use scroll-based background effects in the block chooser. This fixes cases where the zoom looked too weak when browsing custom snippets, so the preview matches what users expect.
Original PR description
Commit 468ddd4d244d0098e5c8b9726bc1c85c036a913d changed the viewport height of the iframe in the snippets preview dialog (from `333%` to `100%`). That height is used in the computation of the zoom effect of backgrounds. This computation was not adapted to the change of height, and thus the zoom was too weak. This commit adapts the computation for the zoom to compensate the viewport height change of that previous commit. Steps to reproduce: - Open website builder - Create a bunch of custom snippets (for scrolling in the dialog) - Create a custom snippet which has a background with "Scroll Effect" set to "Zoom In" (or "Zoom Out") - Create a bunch of custom snippets (for scrolling in the dialog) - Open the dialog to "Insert a block", choose the "Custom" category - Scroll - Bug: the custom snippets with zooming task-6088029
Project chatter will no longer automatically record status updates from linked Sales Orders. This reduces unnecessary notifications and keeps project activity history focused on information that is directly relevant to the project.
Original PR description
Before this commit: - The chatter on the Project record tracked and logged changes to the linked Sales Order's status. After this commit: - Explicitly set `tracking=False` on the related `sale_order_state` field in `project.project`, `project.task` models. - Status updates to linked SOs will no longer automatically post tracking messages in chatter. task-6079809 Forward-Port-Of: odoo/odoo#258549
Helpdesk tickets will no longer automatically log chatter messages when the linked Sales Order changes status. This reduces unnecessary noise in ticket discussions and keeps the conversation focused on the helpdesk issue itself.
Original PR description
Before this commit: - The chatter on Helpdesk Tickets tracked and logged changes to the linked Sales Order's status. After this commit: - Explicitly set `tracking=False` on the related `sale_order_state` field in `helpdesk.ticket`. - Status updates to linked SOs will no longer automatically post tracking messages in chatter. task-6079809 Forward-Port-Of: odoo/enterprise#114078
This update fixes the appearance of contract-related buttons on the employee form. It keeps the “New Contract” label on one line at narrow widths and makes the contract template button match the surrounding interface more consistently.
Original PR description
- Add `text-nowrap` to the "New Contract" button to prevent text from splitting at narrow viewport widths - Fix contract template button styling: remove incorrect classes and align font-size and border with the surrounding UI task-6068488 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#256017
The button for contract templates on the employee form now matches the surrounding interface more closely. This improves the visual consistency of the page and makes the form look more polished for users.
Original PR description
Fix contract template button styling: remove incorrect classes and align font-size and border with the surrounding UI task-6068488 Forward-Port-Of: odoo/enterprise#112113
The calendar popover no longer shows a tooltip when hovering over a boolean field. This avoids displaying unhelpful HTML content and makes the calendar view cleaner and less confusing for users.
Original PR description
Before this commit, the tooltip of a boolean field in calendar popover shows html content when the user hovers the boolean field. This commit removes the tooltip of boolean field in calendar popover since the information inside that tooltip is not really useful for the user. Issue found during the development of task-5994205 Forward-Port-Of: odoo/odoo#260012 Forward-Port-Of: odoo/odoo#259011
This update ensures that changes to salary information within the salary configurator correctly update related mobility budget calculations. Previously, changes outside this specific context could cause inconsistencies. This change improves the accuracy of mobility budget calculations by limiting updates to the relevant salary data.
Original PR description
For consistency purposes, we only trigger the inverse on the mobility budget computation if we are in the context of the salary configurator. Changing the wage in the back end or changing the employer cost should only touch the wage and not other benefits Forward-Port-Of: odoo/enterprise#112510 Forward-Port-Of: odoo/enterprise#111828
This update resolves an issue preventing developers from creating new Odoo development repositories. Previously, the system required an existing addons directory, now it accepts empty repositories, streamlining the process for building new Odoo modules. This change improves developer workflow and reduces friction for creating new development environments.
Original PR description
Initialize a new empty git repository where you are going to vide-code some new Odoo modules. Because the repository is empty (no addon yet) the CLI fails with an "option --addons-path: the path <path> is not a valid addons directory". This makes vide-coder sad, and bigrams want vide-coders to be happy, so drop the sanity-check and also accept empty addons. Forward-Port-Of: odoo/odoo#259007 Forward-Port-Of: odoo/odoo#256913
This update fixes an issue where scanning GS1 barcodes with leading zeros (like EAN-13 codes) would sometimes fail to correctly identify products. The change ensures that barcodes are accurately matched to their product variants, improving the reliability of the point-of-sale system. This prevents lost sales and ensures accurate product identification.
Original PR description
When scanning a GS1 barcode whose GTIN-14 has a leading zero (e.g. a product stored with EAN-13 "5400000002649" is encoded as GTIN-14 "05400000002649"), the product lookup in _getProductByBarcode failed because the exact string did not match the stored barcode. opw-6117948 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#259199
This update fixes an issue where dropdown menus in the Odoo interface appeared cramped due to missing vertical spacing. The change restores natural spacing, ensuring items don't overlap when group headers are sticky, improving the overall user experience.
Original PR description
Recent structural changes added `p-0` to the menu class, removing the vertical padding from the dropdown. Rather than padding the scroll container directly (which would conflict with sticky group headers), apply `margin-top/bottom` on the first/last children of `.o_select_menu-choices` so the spacing scrolls naturally without creating a gap items could bleed through when a group header is stuck. task-6095912 Forward-Port-Of: odoo/odoo#258929
This update resolves a visual issue where the 'to_review' badge on employee forms wasn't highlighting correctly. This was caused by a change in how tracking messages were stored after a previous update. The fix ensures the badge accurately indicates review tasks, improving the employee workflow.
Original PR description
After master-field-tracking-poc-ppr removed the mail.tracking.value model, tracking messages are now stored with message_type='tracking' instead of 'notification'. The thread_patch.js highlight filter was still matching on 'notification', causing no messages to be found when hovering the to_review badge on the employee form. task-6128747
This update fixes an issue where creating a physical inventory adjustment with a zero quantity difference generated unnecessary journal entries. The change ensures that account moves are only created when there's a valid stock movement, reducing accounting noise and improving data accuracy. This impacts the stock accounting module.
Original PR description
**Issue**: Applying a physical inventory adjustment with a 0 quantity difference creates an account move with 0 debit/credit, resulting in accounting noise. **Steps to reproduce**: - Configure a product with perpetual valuation - Go to Inventory > Configuration > Warehouse Management > Locations - Remove the internal filter and open the "Inventory adjustment" location - Set a Loss Account - Go to physical inventory - Create and apply for this product with counted quantity of 0 - Go to Journal Items -> An item is created **Cause**: While checking whether an `account.move` should be created: https://github.com/odoo/odoo/blob/9dfd673465e4a3326a6caa64c8d61fe7319cbc44/addons/stock_account/models/stock_move.py#L613-L620 The quantity of the `stock.move` is not taken into account. opw-5957406 Forward-Port-Of: odoo/odoo#257650 Forward-Port-Of: odoo/odoo#254331
This update resolves an issue where saving certain website templates (like order confirmation emails) would trigger an error due to how the system processed empty `t-foreach` loops. The fix ensures the template's HTML is valid, preventing the system from incorrectly modifying the template's structure and causing the error. This improves the stability and reliability of the website's email templates.
Original PR description
**Steps to reproduce:** - Install sale / website_sale - In debug mode, go to Settings app - Go to Technical > Email > Email Templates - Try to edit and save "Sales: Order Confirmation" or "Ecommerce:…
**Steps to reproduce:**
- Install sale / website_sale
- In debug mode, go to Settings app
- Go to Technical > Email > Email Templates
- Try to edit and save "Sales: Order Confirmation" or "Ecommerce: Cart Recovery"
- QWebError is raised: 'IndentationError: unexpected indent'
**Issue:**
Before a `mail.template` is rendered in the html editor it must be valid html (even if they contains qweb elements) to avoid the browser silently moving elements around to match its specifications (and breaking template logic). This is also what happens with `DOMParser.parseFromString` function.
e.g. the browser moves html elements out of the parent `<table>` if they are not the children of a `<tr>` `<td>`.
```xml
<table>
<t t-foreach=...>
<tr>
<td>1</td>
</tr>
</t>
</table>
```
Becomes:
```xml
<t t-foreach=...>
</t>
<table>
<tbody>
<tr>
<td>1</td>
</tr>
</tbody>
</table>
```
**Fix:**
The template is still working if not edited, but we need to ensure the template `body_html` is valid html to avoid the hierarchy modification.
related: https://github.com/odoo/odoo/commit/dbd8b879fd95f3e913e1c777cb8619c4e0673b03
similar issue: https://github.com/odoo/odoo/pull/259548
opw-6055026
Forward-Port-Of: odoo/odoo#256605This update fixes a bug in the HTML editor where email addresses weren't automatically converted into clickable links after a space. Now, typing an email address followed by a space will create a functional mailto link, making it easier to send emails directly from within the editor.
Original PR description
Before this commit: when typing an email address, it's not converted to a mailto link after spacing. After this commit: the mailto link is created after spacing. task- 6053993 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#258736 Forward-Port-Of: odoo/odoo#257497
This update fixes a display issue in grouped list views where the pager incorrectly showed a limited count instead of the total number of records. The system now accurately reflects the total record count when using a pager, improving the user experience and data accuracy. This ensures users always see the complete picture when navigating large lists.
Original PR description
When a pager is needed in a grouped list view and if the total number of record is greater than the `count_limit` (by default equal to 10000); opening the group or pressing the "Next" button will display the `count_limit` in the Pager.
This behavior can be optimized since the `web_read_group` call already computed the total count.
This commit allow the grouped list pager to display the total record count if it was already computed.
Steps to reproduce:
in a list view with 10 records, all in the same group for simplicity:
```xml
<list limit="2" count_limit="8">
<field name="foo"/>
</list>
```
- group the view by "foo" => The pager displays: `"1-2 / 10"`
- click on the 'next' button of the pager => The pager displays: `"3-4 / 8"`
8, the `count_limit` is shown instead of 10, the number of records in the group.
task-6053705
Forward-Port-Of: odoo/odoo#259858
Forward-Port-Of: odoo/odoo#259562This update resolves an issue where close buttons on views without names triggered unexpected behavior in the system. Now, the system accurately identifies when a close button is used, ensuring proper tracking and functionality. This improves the reliability of action callbacks.
Original PR description
View buttons with no name cause onClosed to be called without any parameters even if special=true or dismiss=true. This commit fixes that which allows to know if a close/discard button caused the action onClosed callback. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#260482 Forward-Port-Of: odoo/odoo#260301
This update resolves a compatibility issue between Odoo and Python 3.14, specifically related to how data sets are handled. The change ensures Odoo functions correctly on the Resolute environment, addressing a technical detail that improves stability. This update primarily impacts the core system.
Original PR description
Forward-Port-Of: odoo/odoo#259669 Forward-Port-Of: odoo/odoo#258568
This update ensures that signed documents attached to projects or tasks automatically save to the project's designated Documents folder, mirroring the behavior of regular attachments. Previously, signed documents defaulted to 'My Drive,' creating inconsistency. This change improves organization and simplifies document management within Odoo Enterprise.
Original PR description
Steps to Reproduce --- - Request a signature from a project task or project and complete the signing process. - In the chatter, click "Add to Documents" on the signed attachment. Issue --- Signed documents attached to projects or tasks default to "My Drive" when added to Documents, instead of using the project's configured Documents folder. Current Behaviour --- - Regular task/project attachments correctly preselect the project Documents folder. - Signed attachments fall back to "My Drive". Expected Behaviour --- Signed documents linked to projects or tasks should preselect the project's Documents folder, consistent with regular attachments. Fix --- Extend get_documents_operation_add_destination to handle sign.request attachments linked to project.task or project.project, resolving to the corresponding project Documents folder. task - 5226770 Forward-Port-Of: odoo/enterprise#105600
This update streamlines the loading of data for the self-ordering point of sale module. By only retrieving the necessary information, the system now runs more efficiently, particularly when handling self-ordering transactions. This change improves the overall speed and responsiveness of the self-ordering experience.
Original PR description
This commit optimizes pos_config and pos_session data loading by only loading the fields required for self-ordering. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#259126 Forward-Port-Of: odoo/odoo#257865
This update optimizes the loading of data for the self-ordering point-of-sale system. By limiting the fields loaded, the system now runs more efficiently, particularly when handling self-ordering transactions. This results in faster response times and a smoother user experience for customers using self-ordering.
Original PR description
This commit optimizes pos_config and pos_session data loading by only loading the fields required for self-ordering. X-original-commit: ce78609b368e541a70c17141ee5b51543c73c1d0 Forward-Port-Of: odoo/enterprise#113801 Forward-Port-Of: odoo/enterprise#113661
This update fixes an issue where Arabic text on invoices was incorrectly formatted in English reports. The change ensures parentheses and other characters are properly aligned with the Arabic text, improving readability for international customers. This resolves a display problem related to how Odoo generates PDF invoices.
Original PR description
**Problem:** When printing an invoice in English (LTR report) with a product whose name contains Arabic text and parentheses (e.g., لوحة توزيع كهربائية 100 أمبير (شنايدر )), the brackets appear in…
**Problem:** When printing an invoice in English (LTR report) with a product whose name contains Arabic text and parentheses (e.g., لوحة توزيع كهربائية 100 أمبير (شنايدر )), the brackets appear in the wrong position in the generated PDF. **Steps to reproduce:** 1. Create a product named: لوحة توزيع كهربائية 100 أمبير (شنايدر ) 2. Create an invoice with that product 3. Print the invoice PDF in English 4. Observe the brackets are misplaced in the description column **Current behavior:** Parentheses appear detached from the Arabic word they enclose, floating at the wrong end of the text. **Expected behavior:** Parentheses correctly wrap the enclosed Arabic text. **Cause of the issue:** Odoo's report CSS sets `direction: ltr` on elements that are ancestors of the line description span. When CSS `direction: ltr` targets the same element as `dir="auto"`, wkhtmltopdf's WebKit engine lets the CSS rule win, keeping the paragraph base direction as LTR. The Unicode BiDi algorithm then resolves parentheses (neutral characters) using LTR as the base direction, misplacing them. **Fix:** Placing `dir="auto"` directly on the `<span>` that renders the line description — rather than the parent `<td>` — avoids the CSS override. wkhtmltopdf then detects the first strong character (Arabic) and uses RTL as the base direction for that span, allowing the BiDi algorithm to correctly position the brackets. opw-5884712 Forward-Port-Of: odoo/odoo#259594 Forward-Port-Of: odoo/odoo#251190
This update fixes an intermittent issue where the receipt logo and QR codes were sometimes missing from printed tickets. The change ensures images are fully loaded before printing, guaranteeing a complete and professional-looking receipt for customers. This improves the overall user experience and brand image.
Original PR description
The receipt logo (and other images like QR codes) was sometimes missing from the printed ticket. This happened intermittently because the receipt image was being generated (captured from an iframe) before the browser had finished decoding and rendering the logo image within that iframe. This commit updates PosTicketPrinterService to use the waitImages utility, ensuring that all images in the receipt's iframe are fully loaded and rendered before returning the iframe for further processing (printing or canvas capture). --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#258705
This update fixes an issue where the timesheet and grid views were displaying incorrectly, with overlapping elements and inconsistent formatting. Specifically, column widths were adjusted to ensure the timesheet's magnifying glass and overtime data were properly displayed without overlap or spanning multiple lines, improving the overall user experience.
Original PR description
# [FIX] web_grid: column width with new time widget in month This commit increases the default width of the grid columns. Prior to this, the magnifying glass in Timesheets overlapped with the times in month scale, because the columns were too small. # [FIX] timesheet_grid: column overtime layout Without this commit, the overtimes were spanning two lines because the columns were too small. This commit changes the layout so that it spans one line to be consistent with the grid values. task-6121017 Forward-Port-Of: odoo/enterprise#114356
This update ensures that vehicle information is correctly included in XML export files for community database versions of Odoo Enterprise. Previously, vehicle data was only included when the 'account_accountant_fleet' module was installed. This change expands the data available in community databases, improving reporting and data consistency.
Original PR description
[FIX] account_accountant_fleet: vehicle sent in XML when an invoice line has a vehicle linked, the vehicle license plate will be in the export XML file only if the enterprise module `account_accountant_fleet` is installed. Any community db will then not have the ref included This commit moves the vehicle data in `account_fleet` to expose it to community dbs runbot-242562
This update corrects a visual issue where the timesheet display overlapped records when scrolling on smaller screens. The changes expand the timesheet layout and adjust its height to prevent double-scrolling, ensuring a smoother and more user-friendly experience for timesheet management.
Original PR description
Before: The systray overlaps the records when scrolling on small screens Changes: - Expands the record list to avoid scrolling overlaps - Make the timesheet list expand before the checkout button to ensure no overlap - Restrict the height of the timesheet list to avoid the double-scrolling problem --- task: 6115674 Forward-Port-Of: odoo/enterprise#114093
This update adjusts how Odoo counts database queries when using its demo data. This optimization improves the speed and efficiency of the demo environment, making it faster to test and understand Odoo's features. The change ensures a smoother experience when working with the demo data.
Original PR description
Query counts were updated for demo data. runbot-242325 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#260442 Forward-Port-Of: odoo/odoo#260297
This update fixes an issue where dropdown labels in the bottom sheet would sometimes overflow or overlap with the checkmark icon, particularly on smaller screens. The changes ensure labels wrap correctly and consistently reserve space for the checkmark, resulting in a cleaner and more user-friendly experience.
Original PR description
**Purpose of this PR:**
Before this commit, in the bottom sheet, dropdown labels could overflow their active container or overlap with the checkmark icon when selected.
This commit:
- Allows dropdown labels in bottom sheets to wrap on small screens.
- Reserves space for the checkmark icon in all bottom sheet dropdowns if any item is selected, ensuring consistent alignment.
<table>
<tr>
<td><b>Before</b></td>
<td><b>After</b></td>
</tr>
<tr>
<td><img src="https://github.com/user-attachments/assets/8f347abc-fe26-427a-95ec-97ace3a0c5a2" width="300"/></td>
<td><img src="https://github.com/user-attachments/assets/6d6104b5-46c3-404b-be09-1cfa55209a96" width="300"/></td>
</tr>
</table>
task-[6095602](https://www.odoo.com/odoo/project/1519/tasks/6095602)
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#257572The progress bars should show the rate of reviewed and supervised balances/checks. Currently, the bars are too short, and the rate displays None. task-5246850
Original PR description
The progress bars should show the rate of reviewed and supervised balances/checks. Currently, the bars are too short, and the rate displays None. task-5246850
This update resolves an error that occurred when users removed the dismissal date from the 'End of Collaboration' form. The fix adds a check to ensure the dismissal date is valid before performing date comparisons, preventing a type error. This ensures the form functions correctly regardless of whether the dismissal date is set.
Original PR description
Currently, an error occurs when user removes dismissal date on `End of Collaboration` form. Steps to replicate: - Install `hr` with demo. - Open any employee (e.g.- Abigail Peterson) > Click on cog…
Currently, an error occurs when user removes dismissal date on `End of Collaboration` form.
Steps to replicate:
- Install `hr` with demo.
- Open any employee (e.g.- Abigail Peterson) > Click on cog button > End of Collaboration.
- Remove value from `Dismissal date` and click else where.
Error:
```
File "/home/odoo/odoo19/community/addons/hr/models/hr_employee_departure.py", line 56, in _compute_action_date
if departure.action_date and departure.action_date < departure.departure_date:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: '<' not supported between instances of 'datetime.date' and 'bool'
```
Cause:
- As dismissal date is assigned from departure date [here] and the user removed the value from dismissal date so we receive it as false.
- So, we receive the error from [this] line, as `departure.departure_date` is received as False.
Solution:
- Added a conditional check for `departure_date` before the date comparison.
[here]: https://github.com/odoo/odoo/blob/a9d1b7ad18cfbc90fa415af6675518d687f072f9/addons/hr/models/hr_employee_departure.py#L51
[this]: https://github.com/odoo/odoo/blob/a9d1b7ad18cfbc90fa415af6675518d687f072f9/addons/hr/models/hr_employee_departure.py#L56
No ID
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-prThis update corrects a recent change that introduced extra whitespace into our translation files, causing problems with exporting and using existing translations. The fix restores the original process of removing whitespace, ensuring accurate and consistent translations across the Odoo platform. This prevents translation errors and maintains the quality of our software.
Original PR description
Due to the refactor in this commit[^1], we lost the stripping of whitespace from QWeb translations, which caused a lot of whitespace to be included in the exported POT files, invalidating existing translations. This commit restores the stripping of whitespace from QWeb translations. [^1]: https://github.com/odoo/odoo/commit/9eac755406028496375025c8c7fe4128c8740079
This update corrects a technical issue in the IoT setup process that was causing an error. The change ensures the correct default value is used, aligning with Odoo's standard practices and preventing the setup from failing. This improves the stability and reliability of the IoT functionality.
Original PR description
Due to the refactoring in odoo/enterprise#111457, the empty string was removed as an option from the IoT subtype selection. However, in the `/iot/setup` controller the empty string was explicitly used as the default value, which now causes an error due to it not being a valid option. This commit fixes the issue by instead using `False` as the default value, as is standard for Odoo fields.
This update adjusts how social media links are managed within Odoo Enterprise. Following a recent change, social media fields were removed from the website, and this update moves those links to the company record for consistency. This ensures all relevant company information, including social media presence, is accurately reflected.
Original PR description
Since https://github.com/odoo/odoo/pull/236918, there is no more social media fields on website so we move them to res company to comply with website.
This update resolves an issue where Odoo tests were unreliable due to fluctuating timezone settings. Specifically, the rental testing environment was previously dependent on demo data, causing inconsistent results. This change ensures a consistent UTC timezone for all tests, improving stability and reliability.
Original PR description
When demo data is installed, Robodoo's timezone is set to Europe/Brussels. Rental tests expect the environment timezone (`self.env.tz`) to be UTC. However, if Robodoo is the current user and no timezone is set in the context, the environment falls back to the user's timezone. Because Robodoo's timezone changes depending on whether demo data is installed, tests can become unstable. This commit updates the renting app's common test setup to ensure a stable timezone. runbot-242821
A test within the Indian payroll module (l10n_in_payroll) was failing due to a missing employee type ID. This update correctly assigned the necessary employee type ID, resolving the test failure and ensuring proper payroll calculations. This fix improves the stability of the payroll functionality.
Original PR description
[FIX] l10n_in_payroll: fix missing employee type id
Bug reproduction: Go to master and try to run test_in_hr_version_percentage_computation test by installing l10n_in_hr_payroll only. It fails and throws an error.
Bug cause: The employee has not employee_type_id and when with Form is used, employee_type_id is a required field and must be filled in.
Bug solution: I assigned the Indian employee type as a employee_type_id
Runbot Error:
Link 1: https://runbot.odoo.com/odoo/error/241955
Link 2: https://runbot.odoo.com/odoo/error/242490
task - 6117742This update resolves an issue preventing users from increasing the quantity of combo products with 'Sell when Out-of-Stock' disabled. The system now correctly limits the quantity to 1, ensuring accurate inventory tracking and preventing over-ordering. This change was triggered by a recent code update.
Original PR description
You cannot increase the quantity of a combo product that has options with Sell when Out-of-Stock disabled Steps to reproduce: 1. Install Inventory and eCommerce 2. Go to Website > eCommerce >…
You cannot increase the quantity of a combo product that has options with Sell when Out-of-Stock disabled Steps to reproduce: 1. Install Inventory and eCommerce 2. Go to Website > eCommerce > Products and create a new product "Combo" 3. Set the Product Type to Combo, create and edit a Combo Choice "test" with two options "test 1" and "test 2". Both have Track Inventory enabled, 5 Quantity On Hand and Sell when Out-of-Stock disabled 4. Publish product "Combo" to the website 5. Click on smart button "Go to Website" to open the shop page of product "Combo" 6. Try to increase the quantity 7. The quantity is limited to 1 Solution: Always set the quantity input's maximum when `has_max_combo_quantity` is true Issue: We only set the quantity input's maximum if `allow_out_of_stock_order` is false This error was introduced in https://github.com/odoo/odoo/commit/0247538efe788a9ff9a4d58f64470325348a4eaa opw-6050876 Forward-Port-Of: odoo/odoo#260523 Forward-Port-Of: odoo/odoo#257386
This update fixes a bug that prevented users from using keyboard shortcuts (like Tab and Enter) to select values within selection fields in list views. Previously, these shortcuts were blocked, limiting usability. Now, selection fields function correctly with standard keyboard navigation.
Original PR description
Steps: - Open any editable list view (for example sub-list view in sales) - Either it has a selection field or you add it via studio - With two values (for example "true" and "false") - Add a record to your list view - Try to edit the selection field - Popover is opened - You can select any value with a mouse click - You can navigate through values with arrows - You can't select values with `Enter` and `Tab` So list cell in edit mode has a function for all theses hotkeys: - `tab` - `shift+tab` - `enter` - `escape` Because `ListRenderer.onCellKeydown` is called before `hotkeyService.onKeyDown`, if any hotkeys is handled in cell edit mode it will be prevented and the hotkeyService will not propagate it to `select_menu`. That's why arrows are working, because there are not listed in cell edit mode keys. opw-6025476 Forward-Port-Of: odoo/odoo#259699 Forward-Port-Of: odoo/odoo#255029
This update fixes a minor usability issue where the button to add a photo to a contact was too small. The change moves the image upload logic to JavaScript, making it easier to maintain and ensuring a consistent user experience when adding images to contact records. This improves the overall user experience for contact management.
Original PR description
This PR aims to fix an issue where the click zone for `.o_image_uploader_container` doesn't take the appropriate space when adding a new photo to a contact. task-5100043 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#228330
A recent update resolved a bug that caused reports to crash when comparing data containing text. This issue occurred when the report included a string value, leading to an incorrect evaluation of comparison conditions. The fix ensures reports function correctly regardless of the data types within the report.
Original PR description
To reproduce: - Create a company in LU - Open the annual tax report for LU - Click on the comparison filter, compare with 1 period in the past ==> Traceback. This happens because that report contains a string value (an editable one, but it's not important here). Since there are only 2 comparison periods, we try creating the "%" column, comparing their amounts. The condition checking whether or not to display "N/A" was wrong, as it considered the values could only be int/float or None. Here, they are strings, so we don't enter that condition and crash when trying to evaluate float_is_zero on a string. Forward-Port-Of: odoo/enterprise#114296 Forward-Port-Of: odoo/enterprise#112619
This update resolves an issue where the 'Time Off Type' dropdown was empty when creating time off entries via the Gantt view. The fix prevents a technical glitch that was skipping field changes, ensuring computed values are correctly displayed and the dropdown functions as expected. This improves the user experience for time off management.
Original PR description
**Steps to Reproduce:** 1. Open Time Off App->Management->Time Off->Gantt View 2. Highlight multiple dates/cells to trigger the multi-create popover, then click "Set". 3. Open the "Time Off Type"…
**Steps to Reproduce:**
1. Open Time Off App->Management->Time Off->Gantt View
2. Highlight multiple dates/cells to trigger the multi-create popover, then click "Set".
3. Open the "Time Off Type" dropdown. The dropdown appears empty.
**Bug Cause:**
When forceFullDuration is true and request_duration is pre-populated in initial values, the form detects no field changes and skips triggering onchange. This prevents computed fields like allowed_work_entry_type_ids from being evaluated, resulting in an empty domain filter ('id', 'in', []).
**Solution:**
Remove the pre-population of request_duration in initial values when forceFullDuration is true. The context value force_full_duration is sufficient to filter the request_duration field to show only "full" option.
By not pre-setting the value, the form detects a field change and properly triggers onchange, allowing computed fields to evaluate and populate the Remove the pre-population of request_duration in initial values when forceFullDuration is true. The context value force_full_duration is sufficient to filter the request_duration field to show only "full" option. By not pre-setting the value, the form detects a field change and properly triggers onchange, allowing computed fields to evaluate and populate the allowed_work_entry_type_ids correctly.
**Task:** 6109569
Forward-Port-Of: odoo/enterprise#114050This update prevents email notifications from being sent when generating test payslips. This change improves the testing process by reducing unnecessary email traffic and ensuring consistent test results. It addresses a potential issue where test emails could be generated during development.
Original PR description
In this commit, we prevented email sending during test print payslips. task-6147651 Forward-Port-Of: odoo/enterprise#114593
This update fixes an issue where complex emojis were being incorrectly split into individual characters in the Odoo Discuss messaging platform. The change improves emoji rendering, ensuring that emojis like ❤️🔥 are displayed correctly. This ensures a better user experience for all users sending and receiving messages.
Original PR description
Prior to this commit, emoji sequences were rendered incorrectly in Discuss. The existing regex failed to match multi-codepoint sequences, splitting complex emojis (like ❤️🔥) into separate individual emojis (❤️ and 🔥). Steps to reproduce: 1. Post a message in Discuss containing "🤷♂️" 2. Notice the message displays "🤷♂" instead This commit refines `EMOJI_REGEX` to match complete emoji sequences. [Task-6128638](https://www.odoo.com/odoo/project/1519/tasks/6128638) Forward-Port-Of: odoo/odoo#259829
This update removes an outdated requirement to specify a country for payment tokens used on subscription invoices. Previously, this caused issues with invoice processing, particularly with certain payment providers. This change simplifies the process and aligns with current payment provider requirements.
Original PR description
Before this commit, a country was mantadory on the payment token when it was used to pay invoices of subscriptions. This behavior was fetched back from internal code in 15.3. This issue was not visible until recently. Some token are fine without country, the provider allows it but the cron fails to process the sale order when the contract is processed. THis commit remove that old constraint. opw-5268156 task-5349998 Forward-Port-Of: odoo/enterprise#113715 Forward-Port-Of: odoo/enterprise#100166
This update resolves a recurring test failure (runbot error 242012) related to product imports. The fix ensures the tests no longer rely on demo data, making them more reliable and consistent. This improves the overall stability of the product import process.
Original PR description
runbot error: 242012 (lasted error in `Post install tests for pos_restaurant -> !sale`: resolved) Forward-Port-Of: odoo/odoo#255497