Wednesday, April 15, 2026
31 changes · saas-19.2
New functionality added to Odoo
This update introduces basic financial reports tailored for Uzbekistan businesses within Odoo. It includes essential reports like the Balance Sheet and Profit & Loss Report, allowing users to generate key financial data specific to Uzbekistan's accounting standards. This expands Odoo's capabilities to meet the needs of businesses operating in that region.
Original PR description
This commit introduces basic report package for Uzbekistan and includes Balance Sheet and Profit & Loss Report. task-3927927 Community PR - https://github.com/odoo/odoo/pull/241811 Forward-Port-Of: odoo/enterprise#113652 Forward-Port-Of: odoo/enterprise#103136
This update adds a Polish Outliner (POT) file for the l10n_uz module, which supports Uzbek language localization for Odoo. This expansion allows Odoo to be used by businesses operating in Uzbekistan, improving its global reach and compliance with local regulations. It's a foundational step towards offering a fully localized experience for Uzbek-speaking users.
Original PR description
Related: https://github.com/odoo/enterprise/pull/113933 Forward-Port-Of: odoo/odoo#259342
Enhancements to existing features
This update automatically populates the TimesheetSystray with the project and task the user was working on when they opened it, making it easier to start logging time. Before this change, users had to manually select these values. The update also ensures that the selected project and task are actually valid for timesheet tracking.
Original PR description
To ease UX, we default the project and/or task field of the TimesheetSystray to the one that the user has opened (if the values were not already set manually by the user). OPW-6122906
Resolved issues and error corrections
This update corrects a minor issue in the Batch Payment report. Previously, the report would incorrectly display placeholder values ('ABC Holder Name' and 'Demo Ref') when the Account Holder Name field was left blank. This fix ensures the report accurately reflects the payment details, providing a cleaner and more professional output for users.
Original PR description
**Steps to reproduce:**
- Install the `account_batch_payment` module.
- Navigate to Invoicing > Customers > Payments.
- Create a new payment with `Payment Type: Send` and
select a customer without setting an `Account Holder Name`.
- Create a batch payment including this payment.
- From the gear icon, click `Print Batch Payment`.
**Observation:**
In the generated report:
- `Account Holder Name` shows `ABC Holder Name`.
- `Memo` shows `Demo Ref`.
**Root Cause:**
At [1], the default demo values ("ABC Holder Name", "Demo Ref") are rendered
when the fields are empty, instead of being left blank.
**Fix:**
This commit ensures that the `Account Holder Name` and `Memo` are `blank`
in the printed Batch Payment report when their values are not set.
[1]:
https://github.com/odoo/enterprise/blob/327d4478128f33fb2e0c477533bd4983178abf17/account_batch_payment/report/account_batch_payment_report_templates.xml#L36-L38
opw-6092595
Forward-Port-Of: odoo/enterprise#113515Features or functions removed from Odoo
This pull request removes outdated translation data specifically for Uz (Uzbekistan) reports from the project's web translation files. This cleanup streamlines the translation process and ensures that only relevant language resources are included. The change improves the efficiency of future localization efforts.
Original PR description
Related: https://github.com/odoo/odoo/pull/259342 Forward-Port-Of: odoo/enterprise#113933
Code cleanup and technical improvements
This update streamlines a key function within our account reporting system, specifically related to analytic coverage calculations. The change improves the efficiency of report generation, leading to faster processing times and a smoother user experience. This is an internal technical update focused on performance.
Original PR description
Simplification of the function 'compute_sql_analytic_coverage' in account_analytic_line in the report module. Forward-Port-Of: odoo/enterprise#113842
This update resolves a test failure related to inter-company stock transfers. The test required demo data to function correctly, which is no longer needed. By removing the dependency on demo data, the test now passes consistently in a standard Odoo environment.
Original PR description
*: sale_purchase_stock_inter_company_rules ### Steps to reproduce: - Create a DB without demo data - Install stock_dropshipping, sale_purchase_stock_inter_company_rules - Run the test `test_08_dropship_inter_company_vendor_to_customer` ### Issue: The test `test_08_dropship_inter_company_vendor_to_customer` fails here: https://github.com/odoo/enterprise/blob/fd3c9d894d8821ed1d1a110cdffb5e16fb54590a/sale_purchase_stock_inter_company_rules/tests/test_inter_company_po_to_so.py#L497-L501 since the `lot_ids` are only visible for users with the `stock.group_production_lot` group: https://github.com/odoo/odoo/blob/544961c1c6db254c4292d88096bdf9363e35f0bc/addons/stock/views/stock_picking_views.xml#L310-L318 And this group is only implied with demo data: https://github.com/odoo/odoo/blob/544961c1c6db254c4292d88096bdf9363e35f0bc/addons/stock/data/stock_demo.xml#L190-L193 opw-6085811 Forward-Port-Of: odoo/enterprise#113120
This update fixes an issue where the payroll warning date incorrectly jumped to the next month when the system date was set before the closing day. The fix ensures the warning remains in the current month until the closing day has passed, improving payroll accuracy and reducing potential user confusion.
Original PR description
steps to reproduce: - install `hr_payroll` - set closing day as "5th of next month" (via schedule warning) - set system date as <5 of the month - notice that the warning date jumped to next month description: - it should stay in the current month until closing day has passed cause: - there was no check for if the closing day has passed while in the next month scenario fix: - jump to next month only if today has passed closing date. (also fixed a wrong docstring) [task#6084911](https://www.odoo.com/odoo/project/1251/tasks/6084911)
This update fixes a calculation issue related to canteen costs in the payroll module for Belgium (l10n_be_hr_payroll). Previously, the system didn't accurately calculate canteen costs when there were no recorded workdays. This change ensures that canteen costs are now correctly simulated within the payroll configuration.
Original PR description
We add simulation context in the canteen cost condition, since we dont have worked day lines in that case
This update corrects inaccurate titles and links within the Phone dashboard. The changes ensure that users are presented with the correct information and navigation, improving the overall user experience. This fix was implemented as part of a larger effort to maintain dashboard accuracy.
Original PR description
This commit fixes two titles (and links) in the Phone dashboard. Task: 6120857
This update streamlines the loading of data for self-ordering point-of-sale systems. By limiting the fields loaded, the system now performs more efficiently, reducing loading times and improving the overall user experience. This optimization enhances the speed and responsiveness of self-ordering transactions.
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#113661
This update resolves a technical issue that could cause errors when generating sale commission reports. The fix prevents a specific error related to date formatting, ensuring the reports run smoothly and accurately. This improves the reliability of our sales reporting functionality.
Original PR description
Before this commit, the following traceback could occurs when filtering the current period in achievements.
File "/home/arj/PycharmProjects/worktree/saas-19.1/enterprise/sale_commission/report/achievement_report.py", line 79, in _search
date_to_list = date_to_domain and [datetime.strptime(d[2], '%Y-%m-%d') for d in date_to_domain if len(d) == 3 and d[2]]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/_strptime.py", line 554, in _strptime_datetime
tt, fraction, gmtoff_fraction = _strptime(data_string, format)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/_strptime.py", line 333, in _strptime
raise ValueError("time data %r does not match format %r" %
ValueError: time data 'today' does not match format '%Y-%m-%d'
Forward-Port-Of: odoo/enterprise#112981This update simplifies the user interface by renaming the 'Audit Report' to 'Annual Report'. This change eliminates potential confusion for users regarding reporting terminology, improving clarity and ease of use. This is a routine improvement to enhance the user experience.
Original PR description
The user interface currently uses both the terms "Audit Report" and "Annual Report", which can be confusing for users. To eliminate this confusion, "Audit Report" will be renamed to "Annual Report". backport of https://github.com/odoo/enterprise/commit/c2fc5a1643f2e005007437f7ae655d2329ac49ad [feeback-6088379](https://www.odoo.com/odoo/project.task/6088379) Forward-Port-Of: odoo/enterprise#113191 Forward-Port-Of: odoo/enterprise#112989
This update resolves an issue preventing Point of Sale (PoS) users from accessing the sinvoice symbol. By adding the necessary access rights, this change ensures PoS users can utilize this important feature, improving operational efficiency. The fix was part of a larger update related to Odoo version 19.2.
Original PR description
Add access right for sinvoice symbol so that PoS user can access to it. Forward-Port-Of: odoo/odoo#259045
This update fixes a potential issue where website tours could incorrectly proceed due to a faulty check for an empty chat window. The change implements a more reliable method to confirm the chat window is truly empty before allowing the tour to continue, ensuring a smoother user experience.
Original PR description
The previous negative assertion could pass prematurely during fast tour execution. Switching to a specific text based assertion ensures the step only proceeds once the empty conversation is explicitly confirmed. Forward-Port-Of: odoo/odoo#258921
This update fixes an issue where icons were removed when creating links from selections within the HTML editor. The change ensures icons are treated like images during link creation, maintaining their appearance in the final output. This improves the user experience and consistency of links.
Original PR description
Problem: When a selection contains both text and an icon, creating a link removes the icon from the content. Cause: Icons should be treated the same way as images during link creation. If an icon is present in the selection but not handled like an image, it gets removed when the link is applied. Solution: Handle icons in the same way as images when processing selections for link creation, ensuring they are preserved. Steps to reproduce: - Add text "abc" followed by an icon. - Select both the text and the icon. - Create a link. - Observe that the icon is removed and only the text remains. opw-6066195 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#256631 Forward-Port-Of: odoo/odoo#256002
This update fixes a visual issue on the self-order combo screen where product images were distorted. We've adjusted the image styling to ensure all images, regardless of their aspect ratio, display correctly and consistently. This improves the user experience and presentation of products on this screen.
Original PR description
Before this commit, the product image shown in the header of the combo screen in the self order interface was squished to fit the container, resulting in distortion for non-square images. After this commit, we add the `object-fit: cover` style to match the how the images are displayed elsewhere in self order. Before the change: <img width="595" height="536" alt="image" src="https://github.com/user-attachments/assets/fb90167c-8c28-46c9-9ab5-3ac472299c67" /> After the change: <img width="597" height="538" alt="image" src="https://github.com/user-attachments/assets/44d5c5a6-037b-46e2-8a28-5ef9df4d5e58" /> Product screen for reference (no change): <img width="561" height="143" alt="image" src="https://github.com/user-attachments/assets/4ee20d8c-9cde-4cc8-bcf1-8179f878a517" /> --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#257489
This update resolves a validation error that occurred when the partner autocomplete feature attempted to use incorrectly formatted VAT numbers. The fix automatically ignores invalid VAT values returned during autocomplete, ensuring data integrity and a smoother user experience. This change requires the `base_vat` module to be installed.
Original PR description
### Issue: When autocompleting some partners, the returned VAT could be in an invalid format, leading to a validation error You need `base_vat` installed to get the issue ### Cause: The partner autocomplete feature relies on IAP credits for full data retrieval When no credits are available, only the VAT is returned if it was already fetched before In some cases, this VAT value is incorrectly formatted, which triggers a validation error when applied to the partner ### Fix: Invalid VAT values returned by the autocomplete are now ignored to prevent errors Since the correct VAT cannot be retrieved without IAP credits, the value is simply removed ### Steps to reproduce: - Install `l10n_cy` (we need a localization to enable base_vat) - Create a new partner from an invoice - Enter TONYO 360 and select the autocomplete suggestion Before the fix: The VAT field is filled with an invalid value, causing a validation error opw-6030164 Forward-Port-Of: odoo/odoo#255476
This update resolves an issue where uploading an empty PDF file caused a system crash. The fix adds a validation check to ensure uploaded file content is valid, preventing TypeErrors and ensuring stable operation when users attempt to upload invalid files.
Original PR description
Issue: - Uploading an empty PDF triggered a stack trace. - The uploaded file content sometimes returned False instead of bytes. - Passing this value to io.BytesIO() raised a TypeError. Fix: - Added a check to ensure the content is valid. Impact: - Prevents crashes when users upload empty or invalid PDF files. TaskID-6004471 Forward-Port-Of: odoo/odoo#252208
This update resolves an issue where the Sales/Purchase Tax Report was displaying incorrect, doubled amounts for import VAT taxes. The fix eliminates redundant tax tag definitions, ensuring accurate reporting of untaxed and VAT amounts for imported goods. This improves the reliability of financial reporting.
Original PR description
The Sales/Purchase Tax Report showed doubled untaxed amounts and VAT amounts for bills using import VAT group taxes (e.g. "Imported VAT 10%").
The root cause: the Form 01/GTGT report (line C.I.1 "Purchased Goods and Services") defined its own tax_tags expressions for import VAT tags (e.g. tax_purchase_import_10_base), while the child line C.I.a ("Including: imported Goods and Services") referenced the exact same tags. This created two rows per import VAT tag in account_report_expression.
Fix: remove the redundant tag expressions from line C.I.1 and replace them with aggregation references to C.I.a (23a24a.amount_untaxed and 23a24a.balance). Each import VAT tag now has exactly one expression, so the JOIN produces one row per line, so no more doubling.
task-6083697This update fixes a problem where multiple email aliases could lead to duplicate records being created when emails were processed concurrently. The change uses a locking mechanism to ensure that only one record is created for each email, regardless of how many aliases receive it. This improves data accuracy and reliability.
Original PR description
Concurrent processing of emails with the same `Message-Id` can create duplicate records. ### Steps to reproduce 1. Configure multiple mail aliases (e.g., two helpdesk teams). 2. Send one email with…
Concurrent processing of emails with the same `Message-Id` can create duplicate records. ### Steps to reproduce 1. Configure multiple mail aliases (e.g., two helpdesk teams). 2. Send one email with both aliases as recipient. The Mail Transfer Agent may invoke `odoo-mailgate.py` once per recipient, resulting in concurrent processing of the same email in separate transactions. We expect one record per alias/team, but duplicates may be created. ### Cause This is a race condition in the `Message-Id` deduplication logic, caused by concurrent transactions and PostgreSQL snapshot isolation. Odoo uses the `REPEATABLE READ` isolation level. This means that each transaction takes a snapshot of the database at its first query and cannot see changes committed by other concurrent transactions. When two concurrent transactions process the same email: 1. Both enter `message_process` and take their snapshot. 2. Both search for the `Message-Id`. Because their snapshots don't include each other's work, both find nothing. 3. Both create records. Even if one transaction commits before the other performs the check, the second transaction still uses its original stale snapshot and create duplicates. ### Fix After the initial duplicate check, attempt to acquire a transactional advisory lock on a hash of the `Message-Id` using `pg_try_advisory_xact_lock`. If another transaction is already processing the same email and holds the lock, the call returns false and the email is treated as a duplicate. If the lock is acquired, processing continues as normal. opw-5116492 Forward-Port-Of: odoo/odoo#258847 Forward-Port-Of: odoo/odoo#250027
This update ensures that attachments uploaded to cloud storage retain their original file type. Previously, the system was incorrectly guessing file types, which could lead to issues with how files were handled. This fix improves the reliability of cloud storage uploads and prevents potential data inconsistencies.
Original PR description
When uploading an attachment to cloud storage via `_post_add_create(cloud_storage=True)`, the attachment's original `mimetype` is guessed even if we specify it. With this commit we explicitly preserve given mimetype Discovered during task-5153790 Forward-Port-Of: odoo/odoo#258251 Forward-Port-Of: odoo/odoo#257979
This update fixes an issue where the color picker preview didn't accurately reflect gradient backgrounds applied to the header theme. The fix ensures the preview correctly displays gradient styles by utilizing CSS variables, addressing a discrepancy between the targeted editing element and the actual applied styles.
Original PR description
### Issue: Color picker preview not showing correctly when a theme with a gradient background is applied to the header. ### Steps to reproduce: 1. Go to the Theme tab and open the color presets…
### Issue: Color picker preview not showing correctly when a theme with a gradient background is applied to the header. ### Steps to reproduce: 1. Go to the Theme tab and open the color presets dropdown. 2. Select any preset and set its background to a gradient. 3. Apply this theme to the header. ### Reason: - The color picker preview relies on `getComputedStyle` of the current editing element to determine what background to show. - For the header, the targeted editing element is `#wrapwrap > header`, but the actual gradient styles are applied to its inner `<nav>` elements (e.g., via `customizeWebsiteColorAction`). - Since the `background-image` property is never applied directly to the header element itself, computing its style does not capture the gradient defined on its inner elements, resulting in an incorrect or missing preview. ### Fix: - Avoid depending strictly on the computed style of the main editing element for generating the preview. - Ensure the preview accurately reflects the applied styles by utilizing CSS variables, even when certain builder actions apply those styles to inner elements rather than the primary targeted element, as demonstrated in the header example with `customizeWebsiteColorAction`. task-[6075788](https://www.odoo.com/odoo/project/974/tasks/6075788) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#256566
This update corrects how image sizes are displayed in the website builder, specifically addressing issues with CORS-protected images. It now accurately reflects the actual image size and prevents incorrect size displays when images are blocked due to CORS restrictions. This ensures consistent image handling across the platform.
Original PR description
[FIX] html_builder, *: hide the size of CORS-protected images *: html_editor Steps to reproduce: - Add an image on the website. - Replace it with a CORS-protected image. -> The image options display…
[FIX] html_builder, *: hide the size of CORS-protected images *: html_editor Steps to reproduce: - Add an image on the website. - Replace it with a CORS-protected image. -> The image options display a size, but it is incorrect. The problem is that it is not the real size of the image but the size of a default image (due to it, if you replace the image by another CORS protected one, you'll see that the size of the image remains the same). Indeed, the size of an image (in bytes) is computed from the length of the raw b64 content of the image, on which a ratio of 3/4 is applied. Because the image is CORS protected, we can not retrieve the raw b64 of the image so the image size should not be displayed. This commit hides the size of CORS protected image as it is impossible to retrieve. Note: example of a CORS protected image: https://tinyjpg.com/images/social/website.jpg task-5405262 --------------------------------------------------------------------------------------------------------------------------------------------- [FIX] html_builder, *: correctly determine image mimetype *: html_editor The goal of this commit is to improve the way the mimetype of an image is determined if the information is not in the DOM. Before this commit, the system relied on the extension of the image source to determine its mimetype. This is not really robust and it is easily trickable. For example, in `html_editor`, if an image in a html field comes from an attachment, its `src` attribute will end by the attachment name. If a user changes the attachment name extension, the next time the image is added on the DOM, the extension is changed but the mimetype of the image is unchanged. To solve the problem, the mimetype of the image is determined thanks to the headers of the http request to the `src` of the image. That way, the information comes from the server hosting the image. task-5405262 --------------------------------------------------------------------------------------------------------------------------------------------- [FIX] html_builder, website: enable the quality change on shaped img This commit improves [this one] by adding a test (this commit was created before [this one] was merged). [this one]: https://github.com/odoo/odoo/commit/738d5fb5ae2154e1f6993817fab5471d2d4384fa task-5405262 --------------------------------------------------------------------------------------------------------------------------------------------- [FIX] html_builder, *: hide shape option for CORS-protected images *: website Steps to reproduce the problem: - Add an image on the page. - Replace the image by a CORS protected one. - Try to apply a shape on the image. -> Traceback The goal of this commit is to hide the "Shape" option if the "original image" of an image is not retrievable. Indeed, in this case, the option will fail to apply correctly. task-5405262 --------------------------------------------------------------------------------------------------------------------------------------------- [FIX] html_builder, *: avoid displaying options that are not compatible *: html_editor, website Few options like filter, quality, format and cropping rely on canvas to work. The problem is that it does not work correctly for mimetypes like `svg` or `gif`. Indeed, if an image modification is done on such images, it will automatically be transformed into a `png` by default. To avoid it, this commit hides the options that rely on a canvas manipulation when clicking on a `svg` or `gif` image. The process image function has also been adapted to not try to transform an image if its mimetype is not compatible with a canvas transformation. Instead, those images are directly transformed into `b64` images without any transformation. Thanks to it, a shape can be applied on a `svg` or a `gif`. task-5405262 --------------------------------------------------------------------------------------------------------------------------------------------- [FIX] html_builder, *: apply shape on replaced svg and gif images *: website Steps to reproduce the problem: - Add a "Text-Image" snippet on the page and add a shape on the image. - Replace the image by a svg or a gif. -> A shape is displayed on the image options but the shape is not applied on the image. task-5405262 --------------------------------------------------------------------------------------------------------------------------------------------- [FIX] html_builder, *: avoid copying options on new incompatible images *: html_editor, website Steps to reproduce: - Add an image on the website. - Add a shape on the image. - Replace the image by a CORS-protected one. -> The image still has the shape data attributes on its HTML element while it should not as it does not have the prerequisites to have a shape (it does not have an original source). The same problem exists with the hover effect. This commit moves the logic that transfers the shape and hover effect on replaced images from `html_editor` to the responsible plugins in `html_builder` and `website`. It also adds a check to verify that the replaced image is eligible to have a particular option before transferring its data information. task-5405262 Forward-Port-Of: odoo/odoo#259032 Forward-Port-Of: odoo/odoo#251703
This update streamlines the loading of data for the self-ordering point-of-sale system. By only retrieving the necessary information, we've reduced the system's load and improved its responsiveness. This results in a smoother and faster experience for users placing self-orders.
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#258744 Forward-Port-Of: odoo/odoo#257865
A previous error caused a blank page when users clicked the 'Check the sample button' in the sales module. This was due to a change in the link to the sample quotation PDF. This update provides a working link, resolving the issue and ensuring users can access the sample.
Original PR description
Currently, a 404 error is occurring when the user clicks on the Check the sample button. **Steps to produce:** - Install sales module without demo data. - Click on the check a sample. its clean! button. **Issue:** - A 404 error occurs with a blank page. **Cause:** - This issue is occurring because the link to open the sample quotation pdf was changed in the Odoo documentation. **Solution:** - Give a valid link to open the sample quotation pdf. - similar fix already did [here1] & [here2]. [here1]: https://github.com/odoo/odoo/commit/38431f3aef57c5b91644b4c5241f226beb917b12 [here2]: https://github.com/odoo/odoo/commit/610cea89c37454a4ddb68939333b4b363f2f81a2 opw-6099641 opw-6074953 Forward-Port-Of: odoo/odoo#259150 Forward-Port-Of: odoo/odoo#258003
This update fixes an issue where users couldn't easily switch back to the 'All Countries' filter after selecting a specific country in the website CRM. The change ensures a smoother user experience by allowing users to quickly view all partners regardless of their initial country selection. This improves usability and data accessibility.
Original PR description
Before this commit, since the GET param is not set on the url, once you have a country selected you cannot go back to 'All countries'.
This update corrects a technical issue where a log message incorrectly indicated a missing delivery address when one was actually present. The change ensures that the log message is only displayed when a valid partner ID is genuinely missing, improving the clarity of system notifications. This prevents unnecessary alerts and streamlines troubleshooting.
Original PR description
PR https://github.com/odoo/odoo/pull/248034 removed the `partner_id` existence check, causing the "No Delivery Address" error to be logged even when a delivery address was present. This commit restores the check so the message is only logged when `partner_id` is actually missing. task-5933473
This update fixes a display issue in the HTML editor's task history dialog. Previously, the date of the first task revision was incorrectly shown with a user-specific time offset. Now, all task revision dates are consistently displayed in UTC, ensuring accurate and reliable tracking of changes.
Original PR description
Description of the issue/feature this PR addresses: The record's `create_date` from `orm.read` is a naive datetime string in UTC, but `DateTime.fromFormat` without a zone option interprets it in the browser's local timezone. This causes the initial revision's date to be shifted by the user's UTC offset in the history dialog. Current behavior before PR: 1) Create a task 2) Change/Add description in it 3) Check the version history 4) the task is having wrong date/date & time in the 1st revision (in my case -5:30 hours) <img width="749" height="515" alt="image" src="https://github.com/user-attachments/assets/e9480570-7458-4e0a-9bba-6514d6b1aacf" /> Desired behavior after PR is merged: <img width="751" height="483" alt="image" src="https://github.com/user-attachments/assets/ff9d1c95-fc8e-40bb-8cf8-bab39c9cd59b" /> --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#256653
This update streamlines the color picker interface for website design options like icons, snippets, and scroll buttons. Previously, irrelevant tabs were displayed, which has now been corrected to ensure a cleaner and more focused design experience. This improves usability and consistency for our website builders.
Original PR description
This commit ensures the correct tabs are displayed in the color picker for Icon, Snippet Tabs and Scroll Button options. The Theme tab was previously shown for these options, although it was not relevant in this context. The color picker now only displays the tabs that make sense for each option. 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#259220 Forward-Port-Of: odoo/odoo#249419
This update resolves an issue where accounting administrators without Point of Sale access were encountering an AccessError when viewing invoices linked to POS orders. The fix removes unnecessary access checks within the system's data retrieval process, allowing authorized users to access invoices correctly.
Original PR description
An accounting administrator without Point of Sale access would get an AccessError when opening a customer invoice linked to a POS order. The `edi_show_cancel_button` computed field calls `_get_move_applicability()`, which in turn calls `_move_has_settle_or_deposit_pos_order()`. That method was reading `invoice.pos_order_ids.lines` without `sudo()`, causing the ORM to enforce access rights on `pos.order` for the current user. Users who only have accounting rights (no "Point of Sale/User" or "Inventory/User" group) would therefore get an AccessError. opw-6044860 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#254905