Daily updates from Odoo
Monday, September 22, 2025
47 changes · 19.0
Enhancements to existing features
Payslips that have reached the validated stage now display as "Done" instead of "Validated". This aligns the wording with pay runs, reducing confusion for payroll users reviewing payroll progress.
Original PR description
If the payslip status is "validated", the display status for the payslip is "Validated". The display has been changed to "Done" to match with the payrun's status.
Users can now add SEO-related link settings such as nofollow, noreferrer, noopener, and sponsored when creating or editing links. This helps businesses better manage search engine behavior, paid-link disclosure, referral privacy, and safer external links from edited content.
Original PR description
Before this commit:- Users could not add any SEO-related attributes when creating a link in the HTML editor. After this commit: Users can now add SEO-optimized attributes while creating or editing a link. The available attributes meaning are: nofollow: Instructs search engines not to follow the link. noopener: Improves security and performance by preventing the new page from accessing the original window. noreferrer: Hides referrer information sent to the target site. sponsored: Marks the link as sponsored or paid content. This improvement makes link creation more SEO-friendly and secure. task-4896906
Portal users can now get emoji suggestions while typing in chatter conversations, making messages quicker and more expressive. This improves the customer-facing communication experience in portal discussions and live chat interactions.
Original PR description
* = im_livechat This commit enables emoji suggestions in the portal chatters. task-4661468
Australian payroll has been updated to apply the latest ATO Schedule 8 student and training support loan withholding rates and calculation flow. This helps employers calculate compliant payslips for the September 2025 mid-year tax table update.
Original PR description
This commit updates the Schedule 8 witholding flow and rate for mid year update as per ATO guidelines effective from 24-09-2024. https://softwaredevelopers.ato.gov.au/2025-pay-you-go-payg-withholding-tax-tables Task: 5088270 Forward-Port-Of: odoo/enterprise#95083
XML imports now create one clear, consistently formatted message instead of several disordered chatter entries. The message also includes the imported XML, making invoice reception and Peppol import history easier to review and audit.
Original PR description
Previously, the import of an XML was doing many consecutive logs into the chatter in a weird order. We now have one single log that formats the import in a reliable way. We also display the XML itself into the chatter. **Before:** <img width="717" height="597" alt="image" src="https://github.com/user-attachments/assets/f65d75a1-c79e-4597-8134-a82e42a22701" /> **After:** - Regular XML import <img width="719" height="266" alt="image" src="https://github.com/user-attachments/assets/5e58a81c-e89e-4a74-95ae-8af0021097fa" /> - Peppol reception <img width="533" height="264" alt="image" src="https://github.com/user-attachments/assets/0249c061-85e3-4664-a6bd-e7a57c90f581" /> task-none (feedback from AL + DLE)
Resolved issues and error corrections
Fixed an issue where Saudi Arabia invoice PDFs could omit the company logo when another localization module was installed. This ensures printed invoices display the correct company branding for customers and compliance documents.
Original PR description
steps to reproduce: ------------------- 1. Install `l10n_sa_edi` and `l10n_latam_invoice_document` 2. Create and confirm an invoice. 3. Print the invoice PDF issue: ------ The company logo is not…
steps to reproduce:
-------------------
1. Install `l10n_sa_edi` and `l10n_latam_invoice_document`
2. Create and confirm an invoice.
3. Print the invoice PDF
issue:
------
The company logo is not printed on the invoice PDF.
cause of the issue:
-------------------
The `l10n_latam_invoice_document` hides the standard company logo if
`company_header` is set to true:
https://github.com/odoo/odoo/blob/0f6cb037e05db86e808682659a12442464b2cdd2/addons/l10n_latam_invoice_document/views/report_templates.xml#L6-L8
In the case of `l10n_sa`, the custom_header value is set because of this condition:
https://github.com/odoo/odoo/blob/0f6cb037e05db86e808682659a12442464b2cdd2/addons/l10n_sa/views/report_invoice.xml#L23
However, the condition in `l10n_latam_invoice_documnet` expects
a callable record instead of static XML data, which is incorrect:
https://github.com/odoo/odoo/blob/022fcbcf40a28afa56010f6130c26bb0503d5467/addons/l10n_latam_invoice_document/views/report_templates.xml#L9-L14
solution:
---------
Renaming the variable to `custom_header_sa` resolves the issue.
<details>
<summary>Click here to see:</summary>
Before:
<img src="https://github.com/user-attachments/assets/f4606a44-10ce-4038-92a3-2c8ec2a69edf"/>
After:
<img src="https://github.com/user-attachments/assets/70055155-63f2-4fec-aaf6-3bf5587f5591"/>
</details>
opw-4977422
Forward-Port-Of: odoo/odoo#225476Creating a field service task from a template now correctly keeps the template’s “Under Warranty” setting. This prevents service teams from losing warranty information when using task templates, helping avoid incorrect billing or follow-up handling.
Original PR description
**Steps to reproduce:**
- Install industry_fsm_sale
- Create a task template with "Under Warranty" enabled
- Create a task from that template
**Issue:**
The created task does not carry over the "Under Warranty" value from the task template.
**Cause:**
The `under_warranty` field has `copy=False`, so the value is not transferred.
**Fix:**
Updated the copy method to check for `copy_from_template` in the context. If the task template has "Under Warranty" enabled, the field is explicitly set on the new task.
task: 5083386
Forward-Port-Of: odoo/enterprise#95112
Forward-Port-Of: odoo/enterprise#94924This fixes bus notifications so users receive updates through both their direct groups and any groups they inherit. Administrators and other users with implied group membership will now see relevant Discuss channel updates immediately without needing to reload.
Original PR description
To target users of a group, bus notifications are sent on group records. To do so, user groups are added to its bus subscription. However, since odoo/odoo#179354, only explicit groups are added, not every implied group. It's incorrect. For example, sending on the user channel doesn't notify administrators while it should. Steps to reproduce (note that the steps are only working for admin): - Click the gear button on the sidebar in discuss page to navigate to the channel kanban view as admin - Click the `New` button and create a channel with an internal users group as `Auto Subscribe Groups` - Go back to the discuss main page. The new channel will not be pinned unless you reload the page See: https://github.com/odoo/odoo/pull/179354/files#r1954163704 Forward-Port-Of: odoo/odoo#217543
Spanish translations for Peruvian tariff fraction entries and withholding codes were corrected so users see clearer, consistent labels. This reduces confusion when working with Peruvian electronic invoicing and stock localization data.
Original PR description
## Issue: The latest `tariff_fraction` entries were not properly translated into Spanish There were also inconsistencies in the translation of some `withhold codes` ## Cause: The `.po` and `.pot` files were not correctly populated In addition, the translation of "Others" in `l10n_pe_withhold_code` conflicted with `l10n_pe_edi_reason_for_transfer__13`, because the `msgid` is the same but not the `msgstr` should be different opw-4741731 Forward-Port-Of: odoo/enterprise#95019 Forward-Port-Of: odoo/enterprise#92758
Bookkeeper and related accounting users can now open India tax returns without access errors on document summary lines. This keeps tax return review and navigation smooth for permitted users.
Original PR description
Before: - Bookkeeper users (`group_account_user`) encountered an access error of gstr document summary line when opening tax returns. - The error occurred because access rights were missing for the given model. Fix: - Added access rights for readonly, basic and accounting users. - Bookkeeper users can now view and navigate their permitted tax return records without errors. Impact: - Ensures smooth access to tax returns for Bookkeeper role.
Event-related emails now use embedded image icons instead of website-only icon styling. This helps recipients see the intended visual elements consistently across email clients and external mail servers.
Original PR description
Font awesome classes must no be inserted into email as external servers do not use them so icons are not displayed. This commit replaces i tags with font awesome classes in mail by images. Task-5082165 Forward-Port-Of: odoo/odoo#226331
Website sitemaps now avoid listing the same page more than once when website controllers are customized or extended. This helps keep sitemap files cleaner for search engines without changing which pages are included.
Original PR description
When extending controllers (e.g. `WebsiteSale.shop`), sitemap entries were duplicated because deduplication relied on the endpoint function object. Overridden methods result in different function objects but identical sitemap URLs, leading to duplicates. This commit fixes the issue by deduplicating on the generated sitemap location (`loc['loc']`) instead of the function object, ensuring unique URLs in the sitemap even when controllers are extended. Fixes #224193 Forward-Port-Of: odoo/odoo#226810 Forward-Port-Of: odoo/odoo#224406
This fixes an issue where changing an employee's check-in or check-out time could incorrectly reset approved extra hours to zero. Extra hours now recalculate when attendance times change, unless the user has intentionally edited the extra-hours value themselves.
Original PR description
**Steps to reproduce** - Automatically approved attendances. - Create an attendance and save it. - Note the "Extra hours" displayed. - From the form view, change the check in or check out and save…
**Steps to reproduce** - Automatically approved attendances. - Create an attendance and save it. - Note the "Extra hours" displayed. - From the form view, change the check in or check out and save it. - Issue: "Extra hours" are 0. Expected: they should be the same as "Worked extra hours", as the user has not manually modified the field. **Cause** Issue since cc81bb59f87540cf4dd8da65510417d8023ef65b The problem is that a 0 value for `overtime_hours` was computed for the `NewId` record used during edition in the interface. This meant `validated_overtime_hours` was also set to this value https://github.com/odoo/odoo/blob/cc81bb59f87540cf4dd8da65510417d8023ef65b/addons/hr_attendance/models/hr_attendance.py#L171 and sent on save, which meant the value was not further recomputed in `_update_overtime`. https://github.com/odoo/odoo/blob/cc81bb59f87540cf4dd8da65510417d8023ef65b/addons/hr_attendance/models/hr_attendance.py#L408 **Change** We avoid a recomputation of `validated_overtime_hours` in the interface (which wasn't useful anyway, it was set to 0) to avoid it being interpreted as a manual change by the user. opw-5003488 Forward-Port-Of: odoo/odoo#226393 Forward-Port-Of: odoo/odoo#222689
This fix corrects Philippine localization tax setup so VAT-exempt fiscal positions and taxes are classified properly. It helps businesses avoid incorrect tax labels or country restrictions when configuring Filipino company accounting.
Original PR description
### Steps to reproduce: - Install "l10n_ph" and switch to a Filipino company - Check the tax "0% Exempt", it has both "VAT Exempt" and "VAT Registered" ### Cause: The CSV was badly generated because of the fiscal position tax mapping before 18.3. ### Solution: Fix the CSV. Also delete the country for the fiscal position "VAT Exempt". This is a [recommendation from AYH on discord](https://discord.com/channels/678381219515465750/687337689988726949/1410930795329097880). opw-5044305 Forward-Port-Of: odoo/odoo#227261
The product comparison page layout has been adjusted so desktop visitors no longer see unnecessary horizontal scrollbars. This keeps the comparison table aligned with the page header and footer, improving the browsing experience without changing functionality.
Original PR description
This PR fixes an issue about the `website_sale_comparison` page showing an unwanted scrollbar on desktop. Since each `.o_wsale_compare_table_column` element comes with a padding on the left and right side, it was creating a misalignment between the page content and the page header and footer. With this commit, we fix the issue by assigning a new `width` to the container, based on those padding values. task-5076730 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The Automation Rules trigger dropdown now uses the correct background color when dark mode is enabled. This fixes a visual inconsistency so users get a cleaner, more consistent experience while creating automation rules.
Original PR description
Steps: - Install `base_automation` - Enable dark mode - Open Automation rules - Create a new rule - open trigger dropdown - the dropdown background is still in light mode This commit apply $dropdown-bg on `o_field_base_automation_trigger_selection` opw-5064357 Forward-Port-Of: odoo/odoo#226666 Forward-Port-Of: odoo/odoo#226116
This fixes an automated test so it works correctly when demo data is present. It helps keep quality checks reliable and prevents false failures during development and release validation.
This update corrects a typo in internal documentation for a core Odoo operation. It does not change how the system works, but helps keep developer-facing guidance accurate and easier to understand.
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
This fix updates an automated barcode inventory test so it waits for the correct step before continuing. It helps reduce false build failures and improves confidence in the stock barcode workflow validation.
Original PR description
The `test_put_packs_in_existing_pack` tour was using an erroneous trigger causing race condition. This commit replaces this trigger by another one to be sure previous step is completed before going forward. Runbot build error: [232638](https://runbot.odoo.com/odoo/runbot.build.error/232638)
A timing issue in an accounting guided test was fixed so product selection is properly recognized before the next check runs. This improves reliability of automated validation, especially when localization features take slightly longer to load.
Original PR description
Issue: The tour was failing because the product was not being selected in time. As a result, the subsequent step that checks whether the product is selected was consistently failing. Cause: In the Romanian localization, the `FetchInvoicesCogMenu` component uses an `isDisplayed` argument with async/await. This introduces a delay before the component is fully rendered. Meanwhile, the tour step was executing too early, before the product was actually selected. Fix: Increase the wait time to 1000ms to ensure the product is properly selected before the following step is executed.
This fixes an issue where subscription contracts with no amount due could still appear as needing an invoice. It helps keep billing queues cleaner and prevents staff from spending time reviewing contracts that should not generate invoices.
Original PR description
Forward-Port-Of: odoo/enterprise#94626
This update makes Malaysia electronic invoicing tests more consistent by using fixed tax settings in additional scenarios. It reduces the chance of test failures caused by unrelated default tax or product tax changes, helping maintain confidence in future updates.
Original PR description
follow-up on https://github.com/odoo/odoo/pull/227111 The fixes helped improve the stability of the tests, but a few using different ways of setting up their invoices (or SO) went through without the change. This adds the fixed tax to these as well, so that they should no longer fail if a side effect changes the default tax/product tax. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update improves the website builder by delaying tooltip checks until they are actually needed. This reduces unnecessary work during page editing and should make builder rows render more quickly, especially on complex pages.
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 Forward-Port-Of: odoo/odoo#223945
The salary offer screen now uses theme-aware background colors instead of a fixed color. This improves readability and visual consistency for users working in dark mode.
Original PR description
With this commit the background-color is not hardcoded anymore; the background color is calculated with the bootstrap variable text-bg-secondary task-5089515
An unnecessary background log message was removed from the spreadsheet chart configuration area. This keeps browser tools cleaner for support and development without changing how users work with spreadsheets.
Original PR description
Task: 0
The account merge wizard now uses the full available space to show its list view. This fixes a display issue where the list became progressively narrower during repeated rendering, making the wizard harder to use.
Original PR description
Use the full width of the wizard to display the list view. It was even worse because the width of the view was being reduced in multiple renders with a few frames per second.
The website shop checkout test was made more reliable by waiting for page elements before continuing. This helps reduce false test failures and keeps quality checks aligned with the current "Add to Cart" button wording.
Original PR description
The add_to_cart_snippet_tour was unstable due to race conditions. some steps executed before their target elements were actually present, causing failures in subsequent steps. This commit ensures the tour runs reliably by adding explicit wait conditions between the affected steps, so the elements are guaranteed to exist before moving on. In addition, the tour is updated to reflect the recent change where the button label was renamed from "Continue Shopping" to "Add to Cart" [1]. [1] https://github.com/odoo/odoo/commit/786c6c00701bcc30c1f2aa04d7fd9ee7bd4c511b#diff-5ac64dbfc12558f048e995a7d75f91d915161063741ddf36281062b273598a51 runbot-231474
Duplicate records can now be found and merged in single-company databases even when their company value differs. This helps teams clean up data more reliably without needing multi-company settings or workarounds.
Original PR description
**Issue** In single company databases, it wasn't possible to find duplicate records with different `company_id` values to merge them (in multi company databases, it is possible to enable the "Cross-Company" option on the deduplication rule). **Change** Always ignore the company field in single company databases. opw-4794408 Forward-Port-Of: odoo/enterprise#94797 Forward-Port-Of: odoo/enterprise#93184
This fixes a crash in the website editor when resizing the title area of a newly added Floating Cards item. Users can now add and adjust these cards without encountering an error, improving reliability while editing website pages.
Original PR description
*: html_builder In the "Floating Cards" snippet, after adding a new card, when trying to resize its title column vertically, a traceback appears. It happens because this grid item does not have the `g-col-*` class, which is needed for the resize in grid mode to work. This commit adds this class. Steps to reproduce: - Drop a "Floating Cards" snippet. - Add a card. - Click on the new card title and resize the column vertically. => Traceback The issue was previously addressed in [1], but a refactor of the Floating Cards snippet in master introduced a duplicate template, and the fix was applied to the incorrect one. [1]: https://github.com/odoo/odoo/commit/78f6e70e0777f5b063524ead73ddaae93ba55f22 Forward-Port-Of: odoo/odoo#226260
The Spanish Mod347 tax report now includes withholding tax lines when calculating report amounts. This prevents understated totals for affected customer or vendor transactions, helping businesses file more accurate Spanish tax reports.
Original PR description
Withholding taxes should be taken into account in mod347 tax report. Steps: - Create a bill for a spanish customer - Set the amount of 40000, tax 21% and 15% withholding tax - Go to mod347 tax report -> Line "B - Sales of goods and services greater than 3.005,06 €" is showing 42,400.00 instead of 48,400.00 (same goes for other lines with similar configuration) Before this commit, custom engines domains were only including aml with payable or receivable account. With this commit, we include tax lines that are of type 'retencion' in the custom engines domains. opw-4448662 Forward-Port-Of: odoo/enterprise#95066 Forward-Port-Of: odoo/enterprise#94338
Users can now open the debug Data view on records that include field properties without encountering an error. This helps administrators and support teams inspect record data reliably, including custom property fields.
Original PR description
Example Steps: - Install `crm` - Add a random field properties in a random form view - Enable debug mode - Open debug menu - Select Data - Traceback ```py raise ValueError(f"Invalid field…
Example Steps:
- Install `crm`
- Add a random field properties in a random form view
- Enable debug mode
- Open debug menu
- Select Data
- Traceback
```py
raise ValueError(f"Invalid field {field_name!r} on model {self._name!r}")
ValueError: Invalid field 'properties.xyz' on model 'x.y'
```
There are two causes for this problem.
First, we use orm.read to retrieve data from records, which does not directly handle sub-field properties. We only need to use `definition_property` (which contains the overall schema of the JSON field).
Second, when displaying the data, we use JSON.stringify with `replacer`:
```js
get content() {
const record = this.props.record;
return JSON.stringify(record, Object.keys(record).sort(), 2);
}
```
In this case, replace contains all the keys present in record, sorted. The problem is that the properties fields are themselves objects that contain the keys: `name`, `string`, `type`, `default`, `value`.
And giving an array to replace in `JSON.stringify` will filter the keys and keep only those that are whitelisted in it.
```js
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify
const foo = {
foundation: “Mozilla”,
model: “box”,
week: 45,
transport: “car”,
month: 7,
};
JSON.stringify(foo, [“week”, “month”]);
// ‘{“week”:45,“month”:7}’, only keep ‘week’ and “month” properties
```
This will ignore the keys of the properties fields.
The fix is therefore to sort the object before stringifying it, without using replace.
Thanks to these two fixes, the data is displayed as expected, regardless of whether there are field properties or not.
opw-5017425
Forward-Port-Of: odoo/odoo#225572
Forward-Port-Of: odoo/odoo#224084This pull request resolves several user-facing issues, including payment checkout errors, invoice tax handling problems, and website editing layout glitches. It improves reliability for businesses using online payments, Indonesian e-Faktur invoicing, point of sale, events emails, and website snippets.
Customers using self-ordering will no longer see time slots that are already full or have passed. This prevents invalid selections and makes the ordering experience clearer and more reliable.
Original PR description
When selecting a preset in pos_Self_order the slots were not filtered. Issues: - Full slots were still displayed - Slots in the past were still displayed
The website editor now correctly hides the image width setting when an image is placed inside a card. This restores the intended editing experience and helps prevent layout options that do not apply in that context.
Original PR description
When converting the options to Owl, the behavior from commit [1], which hid the image width option for images inside cards, was lost. We are reintroducing it here. [1]: https://github.com/odoo/odoo/commit/4dcd1f9607ecc1ea932e02128a3e6f01d652cba6 Forward-Port-Of: odoo/odoo#227444
The project budget demo data was updated to remove sample purchase information that no longer applies. This prevents demo environments from relying on an app connection that has been removed, keeping setup cleaner and more reliable.
Original PR description
Since 5cf91390dd7c320c3348d509d3f33a499e760259, `account_budget` doesn't depend on `purchase` anymore. Remove `purchase` related demo data.
This update ensures invoices for foreign customers in Saudi e-invoicing use an accepted alphanumeric Other Buyer ID value. It helps avoid ZATCA acceptance warnings and supports smoother invoice validation for affected businesses.
Original PR description
When an invoice is being issued to a Foreign Customer, the Other Buyer ID (Other Buyer ID (BT-46) <cac:AccountingCustomerParty / cac:Party / cac:PartyIdentification / cbc:ID>) should be OTH and filled accordingly to avoid an acceptance warning from ZATCA. According to ZATCA, the value needs to be in alphanumeric format, even if the value does not follow the specific country's VAT format Task-id: 5075005 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#227511 Forward-Port-Of: odoo/odoo#226593
This fixes an issue where the Project screen could fail when two independent modules used the same ordering value for stat buttons. The view now remains usable even when those values are duplicated, reducing disruption for users working with customized project setups.
Original PR description
Description of the issue/feature this PR addresses: If a sequence in function _get_stat_buttons in project.project is repeated, the view view fail because we are using the sequence as key Current behavior before PR: If we repeat a sequence in two independent modules, the view fails. Desired behavior after PR is merged: The view works as expected --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#227382
This fixes an error that could occur when calculating external taxes for point-of-sale orders using AvaTax. The change removes an outdated internal reference so affected orders can process tax data correctly.
Original PR description
Since [this PR](https://github.com/odoo/enterprise/pull/82623), defination of `_get_lines_eligible_for_external_taxes` was removed but a reference to it still remained, causing the following error when calling the `_get_line_data_for_external_taxes` method:. `AttributeError: 'pos.order' object has no attribute '_get_lines_eligible_for_external_taxes'` Fix: Removed reference to `_get_lines_eligible_for_external_taxes` from `_get_line_data_for_external_taxes` at [1]. [1]- https://github.com/odoo/enterprise/blob/9a1544d19c1f5f3546c04022a11601df43199d10/pos_avatax/models/pos_order.py#L15-L18 sentry-6843827499 Forward-Port-Of: odoo/enterprise#93490
This fix stops the Point of Sale restaurant flow from treating every product category as needing preparation when no kitchen printer or preparation display category is configured. Staff can now add and pay for orders without seeing an unnecessary “send to preparation” prompt, reducing confusion during checkout.
Original PR description
Steps to reproduce: - Open a pos restaurant config that has no prep printer/display. - Add an orderline. - The order button appear and if you try to pay the popup ask for send to preparation is shown. Issue: If there is no preparationCategories for a config getOrderChanges consider that all the available categories are the preparationCategories. Fix: If there is no preparationCategories, set the orderline uiState hasChange to false. Note: When no preparation printer category is defined, no categories is to be return by default. For the preparation display, if no preparation categories is selected preparationCategories will return all the available categories. Task-5016231 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#222950
The Danish minimal balance sheet and profit and loss reports were corrected so report formulas no longer include extra signs that could produce wrong values. Report line names and translations were also cleaned up for clearer presentation and consistency.
Original PR description
In the minimal reports of l10n_dk, it appears that some expression ended with a sign and the report engine was given wrong value. This commit will remove the extra sign to correct the report and also remove the letter or number before the name. This commit will remove the extra sign to correct the report and also remove the letter or number before the name. This commit will change the translation accordingly to the other commits task-4949062 Forward-Port-Of: odoo/enterprise#94350 Forward-Port-Of: odoo/enterprise#91135
Mobile shoppers now see clearer visual feedback when browsing secondary product images. This removes confusing duplicate dot indicators so the image area feels intentional and less like a broken carousel.
Original PR description
This pr fixes a confusing behavior when interacting with products' secondary images on mobile. The previous implementation showcased two dots for each image (4 tot.), one of which "active". The…
This pr fixes a confusing behavior when interacting with products' secondary images on mobile. The previous implementation showcased two dots for each image (4 tot.), one of which "active". The attempt was of emulating carousel indicators. Unfortunately, since dots were absolute positioned, the design failed to correctly communicate the user the actual behavior, leading to confusion and to the impression that the element itself was affected by a bug. This commit simply toggle a class, triggering the right design when necessary. Note that this implementation doesn't need to be scoped for specific resolutions, since cards are scroll-able only on mobile. Debouching is not required neither since the events are fired when the user intentionally interact with the element only. task-5082527 --- Before https://github.com/user-attachments/assets/8cbe6040-2e5d-48d6-951a-65f8fe0aae6c ---- After https://github.com/user-attachments/assets/9f3671ec-77eb-478b-840f-676f91bf50e2 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Restaurant POS orders no longer appear as needing preparation when no preparation printer or display category is configured. This prevents unnecessary prompts during payment and keeps the ordering flow clear for staff.
Original PR description
Steps to reproduce: - Open a pos restaurant config that has no prep printer/display. - Add an orderline. - The order button appear and if you try to pay the popup ask for send to preparation is shown. Issue: If there is no preparationCategories for a config getOrderChanges consider that all the available categories are the preparationCategories. Fix: If there is no preparationCategories, set the orderline uiState hasChange to false. Note: When no preparation printer category is defined, no categories is to be return by default. For the preparation display, if no preparation categories is selected preparationCategories will return all the available categories. Task-5016231 Forward-Port-Of: odoo/enterprise#92541
Searching from the Help page now completes reliably instead of triggering an error. This prevents users from seeing a traceback and keeps the help experience smooth when looking for support content.
Original PR description
Steps to reproduce: 1. Navigate to the Help menu. 2. Search for any term in the search bar. - A traceback occurs. Issue: The search method did not wait for the RPC call to complete and returned a promise prematurely, leading to an unhandled traceback. Fix: Ensure the method properly awaits the RPC call before returning the result.
This fixes cases where selecting text inside editor buttons or adjacent links could accidentally include too much content. Users editing website or HTML content can now double- or triple-click more predictably without replacing an entire button or selecting text from the next link.
Original PR description
Commit 1: Reproduction: 1. triple click in a button and input something 2. the whole button is replaced Before this commit: On triple click we select the whole block by default After this commit: For…
Commit 1: Reproduction: 1. triple click in a button and input something 2. the whole button is replaced Before this commit: On triple click we select the whole block by default After this commit: For buttons, when we triple click, we select the content of the button node Commit 2: [FIX] html_editor: limit word selecting of double click inside link Before this commit: when two links or buttons are next to each other without a space, double clicking the last word of the first link will spread the selection over the second link's first word. This is the default of browser's behavior. Reproduction: 1. create 2 links with different urls, one with label `test one`, second with `test two` 2. double click the `one` of the first link, the selection will spread to the second link. so `one` and `test` are both selected After this commit: We seperate the double click selection correction to the link plugin. Because now we have the selection properly set inside the link without including the feff characters, the previous fix of the selection isn't needed anymore. task-4897848 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#219278
A Dutch balance sheet label had the wrong language code, causing it to be treated as Dutch instead of German. This fix assigns the correct German language code so the report displays the intended translated term consistently.
Original PR description
One term in the Dutch balance sheet was having the `nl` language code instead of `de`. This commit corrects that. Forward-Port-Of: odoo/enterprise#95118
Features or functions removed from Odoo
This change removes a temporary HR screen adjustment that is no longer needed because the alignment issue has been fixed properly elsewhere. Users should see the same corrected field layout, with less temporary customization to maintain.
Original PR description
This PR removes the hotfix for the alignment issue of the m2o field as it is fixed more properly by the PR https://github.com/odoo/odoo/pull/226214. Task-5078736
Documentation and clarification updates
ALUBENA TERRA has added its signed Contributor License Agreement documentation. This is a legal and administrative update that helps confirm contributions can be accepted under Odoo's 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