Tuesday, January 27, 2026
31 changes · saas-19.1
Resolved issues and error corrections
This update resolves a problem where toggling image captions caused layout disruptions, particularly when images were placed within tables or other non-paragraph containers. The fix ensures images remain correctly positioned within their original layout structure, improving the visual consistency of records.
Original PR description
Description of the issue this PR addresses: - When toggling an image caption, the logic only checks whether the image or figure’s closest block is editable. This causes images inside non-paragraph containers (such as table cells, list items, blockquotes, and columns) to be repositioned, breaking the original layout. Desired behavior after PR is merged: - Image caption toggling correctly handles paragraph-related containers, ensuring the image remains within its original structural context (tables, lists, blockquotes, columns) without altering the layout. Steps to Reproduce: - Open a to-do record. - Insert a table. - Add an image inside any table cell. - Toggle the image caption multiple times (3–4 times). task-5485697 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#245227 Forward-Port-Of: odoo/odoo#243454
This update resolves an issue where users would encounter an error when creating inherited views. The fix ensures that a validation error is triggered if the XPath syntax is incorrect, preventing the application from crashing and improving the user experience when customizing views.
Original PR description
Currently, an error occurs when a user creates an inherited view. **Steps to Reproduce:** - Go to `Settings > Technical > User Interface > Views`. - Create a new view by entering `name` and selecting…
Currently, an error occurs when a user creates an inherited view.
**Steps to Reproduce:**
- Go to `Settings > Technical > User Interface > Views`.
- Create a new view by entering `name` and selecting any `inherited view`.
- In the `Architecture`, enter the below code:
```
<xpath position="replace">
<field name="name"/>
</xpath>
```
- Now save the view.
`TypeError: Argument must be bytes or unicode, got 'NoneType'`
Cause:
As we can see, when the user enters an xpath without the expr attribute, and when it goes to find the inherited node [1]. Since the expr is missing, its value becomes None [2]. Passing this None as an argument [3] causes the error.
This commit ensures that when a user creates or edits a view with an xpath that is missing the expr attribute, a ValidationError is raised indicating that the expr attribute is missing in the XPath.
[1]: https://github.com/odoo/odoo/blob/4876a54e8cfb3a115b5423db102fc2b7a40b196a/odoo/tools/template_inheritance.py#L145
[2]: https://github.com/odoo/odoo/blob/4876a54e8cfb3a115b5423db102fc2b7a40b196a/odoo/tools/template_inheritance.py#L76
[3]: https://github.com/odoo/odoo/blob/4876a54e8cfb3a115b5423db102fc2b7a40b196a/odoo/tools/template_inheritance.py#L78
[4]: https://github.com/odoo/odoo/blob/4876a54e8cfb3a115b5423db102fc2b7a40b196a/odoo/addons/base/models/ir_ui_view.py#L377-L384
sentry-7161414430
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#242203This update resolves an issue causing a 'NameError' in the TFN dashboard warning, preventing incorrect warnings from appearing for employees applying for TFN. The fix ensures the system correctly identifies and displays relevant warnings related to TFN status, improving payroll accuracy. This upgrade was necessary to maintain consistent reporting.
Original PR description
Steps to reproduce: ------------------- 1. Install l10n_au_hr_payroll. 2. Enable multi-company and switch to an AU company. 3. Change an existing employee’s company to the AU company ([employee…
Steps to reproduce:
-------------------
1. Install l10n_au_hr_payroll.
2. Enable multi-company and switch to an AU company.
3. Change an existing employee’s company to the AU company
([employee created more than 28 days ago](https://github.com/odoo/enterprise/blob/7adab8bfdccf5f0e97eb2894e065b63ea8200d20/l10n_au_hr_payroll/data/hr_payroll_dashboard_warning_data.xml#L31)).
4. Under the payroll tab, set the TFN Status to:
"Employee applied for TFN but didn't receive it yet, less than 28 days ago".
5. Open Payroll.
Issue:
--------
A traceback occurred:
```
Error: NameError("name 'invalid_employees' is not defined")
```
Cause:
------
The evaluation code computes `warning_count` using
an undefined `invalid_employees` variable.
Solution:
---------
Define `invalid_employees` before using it to compute
`warning_count` and `warning_records`.
**NOTE:**
The [upgrade script](https://github.com/odoo/upgrade/blob/ed5bc3fd99ef6fba4bc7162934df36396ae9fc3f/migrations/l10n_au_hr_payroll/saas~18.4.1.0/end-migrate.py#L30) is already available from version 18 to 19.
opw-5459998
Forward-Port-Of: odoo/enterprise#103777This update ensures that new partners created during shared sign requests automatically use the signer's name instead of their email address. Previously, the system defaulted to using the email as the partner name, which caused confusion and potential data inconsistencies. This change improves data accuracy and user experience.
Original PR description
Version: - saas-18.2 Steps to reproduce: - Create a shared sign request. - Open the shared signing link and complete the signature process. - During signing, a new partner gets created for the signer if not already exists. Before: - When the user signs the shared sign request and a new partner is created, the partner name is not set and email is used as name. After: - Now, when a user signs a shared sign request and a new partner is created, the system automatically sets the partner name using the signer name. task-5776339 Forward-Port-Of: odoo/enterprise#105271 Forward-Port-Of: odoo/enterprise#104869
This update fixes an issue where a specific error occurred when a leave request was linked to a refused allocation, triggering the 'Time Off: Cancel invalid leaves' cron job. The fix addresses a problem with how data was being accessed, preventing a traceback and ensuring the system handles refused allocations correctly.
Original PR description
When a leave is linked to a refused allocation and the cron ``Time Off: Cancel invalid leaves`` runs, a traceback occurs. Steps to reproduce the error: - Install ``hr_holidays`` without demo data -…
When a leave is linked to a refused allocation and
the cron ``Time Off: Cancel invalid leaves`` runs, a traceback occurs.
Steps to reproduce the error:
- Install ``hr_holidays`` without demo data
- Create a new Time Off Type > Time Off Requests, Approval: No Validation >
Allow Negative Cap: True > Maximum Excess Amount: 2
- Create an Accrual Plan using default values
- Create a New Allocation
- Allocation Type: Accrual Allocation
- Set the Time Off Type and Accrual Plan created above
- Allocation: 1 day > Approve
- Create a new Time Off in the near future (in the current month) and select the Time Off Type created above
- Go back to the Allocation > Refuse
- Run the cron ``Time Off: Cancel invalid leaves``
Traceback:
``IndexError: list index out of range``
https://github.com/odoo/odoo/blob/bc5f24195a486112574900015ecbcf0e3ba32145/addons/hr_holidays/models/hr_leave.py#L1535-L1536
Here, ``leave_type_data`` becomes ``defaultdict(<class 'list'>, {})``
because when the allocation is refused and the cron runs,
the ``get_allocation_data`` method returns an empty defaultdict.
As a result, accessing the index leads to the above traceback.
sentry-6874651972
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#243505
Forward-Port-Of: odoo/odoo#227201This update corrects a minor technical issue related to printer disconnection tracking. Previously, a specific device configuration caused a system error. The fix ensures accurate disconnection counts, improving the stability and reliability of the printer interface.
Original PR description
This commit fixes an edge-case between the disconnect counter logic, and the logic added in odoo/odoo#224200 to prevent printers switching between `lpd` and `socket` protocols. In this case, a device is returned that only has the `identifier` key set. Because the driver has already been instantiated, this didn't break anything before, but now it also clears the `disconnect_counter` key, leading to a traceback on the next iteration of the interface when it tries to check the `disconnect_counter`. The fix is simply to include the `disconnect_counter` as well. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#245719
This update resolves a bug that caused the follow-up report to crash when users unfolded partner lines while prefix groups were enabled. The fix ensures the report correctly handles data retrieval, preventing a key error and improving stability for users.
Original PR description
When prefix groups were enabled, and a prefix group line had been unfolded, the report crashed when trying to unfold the partner. This happened because res_ids_map is computed for each of the unfolded lines, including the prefix groups one, which then had no 'res.partner' key, causing a key error. Forward-Port-Of: odoo/enterprise#105525
This update corrects an issue with how URLs are encoded in the website's sales functionality. The fix ensures that all necessary data is properly transmitted, preventing potential errors and improving the reliability of the sales process. This is a routine maintenance update.
Original PR description
Oversight of https://github.com/odoo/odoo/pull/238396 Calling `urlencode` with the result of `parse_qs` is incorrect, and requires `doseq=True` to work as expected. opw-none --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update resolves a visual glitch in the time-off UI for Belgian employees. Previously, sickness relapse fields appeared unexpectedly after approving time off. The fix adjusts the layout to properly position these fields, ensuring a consistent and user-friendly experience.
Original PR description
Bug production steps: Select employee works in Belgium company, go to timeoff and approve >= 1 months time off and select new timeoff after 1-2 days and there Sickness Relapse fields occur in the shifted UI. Bug cause: The field sickness_relapse added after attach file part, before there was label for the attach file part and it was occupying 2 columns, after removing column it occupies only 1 and the first part of the boolean sickness relapse fields come next to the attach file part. Bug solution: Make the colspan 2 for the attach file part, by that way the sickness_relapse will start from the below line. task - 5493425 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#245605 Forward-Port-Of: odoo/odoo#243753
This update resolves a bug where enabling the 'Auto Crop' feature for product images in the online shop didn't actually crop the images as expected. The previous code was overriding the intended image settings, leading to a broken feature. This fix ensures that 'Auto Crop' now correctly adjusts the product image size.
Original PR description
Steps to reproduce: =================== 1- Go to website > shop & open edit mode 2- Select any product and click on "paint-brush" icon 3- Click on "Image ratio" option and enable "Auto crop" -> nothing happens to the images. Cause: ====== After this commit [1] `object-fit-contain` was used even for auto crop which will override the `o_wsale_products_opt_thumb_cover` class object-fit value. Solution: ========= Apply basic fit contain only when autocrop is disabled. [1]: https://github.com/odoo/odoo/pull/238108/commits/002a8a1ff65fd48fd69e41c9a881fddceee34bf5 opw-5868057 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#245258
This update fixes a bug where tax return labels weren't correctly translated when a new language was installed. The system now automatically generates translations for all existing tax return labels upon language installation, ensuring consistent and accurate labeling across all supported languages. This improves the user experience for international users.
Original PR description
**Commit 1:** [FIX] account_reports: translation of account returns states Steps to reproduce: - Open the tax returns - Set an account opening date to generate some returns - Add another language to…
**Commit 1:** [FIX] account_reports: translation of account returns states Steps to reproduce: - Open the tax returns - Set an account opening date to generate some returns - Add another language to the database and select it -> The states of the returns (the little bubble in the kanban cards) aren't translated even though the translation is present in the pot and po files. **Commit 2:** [FIX] account_reports: translation of date in returns title Steps to reproduce: - Have 2 languages on the db - Generate the tax returns by going to Accounting/Tax Returns and set the opening date - Switch to the second language -> The period displayed in the name of each return isn't translated **Commit 3:** [FIX] account_reports: translate account returns name after lang installation Steps to reproduce: - Generate the tax returns by going to Accounting/Tax Returns and set the opening date - Install another language -> The names of the returns aren't translated in the new language. Solution: When installing a new language, generates the translation of the title for all existing returns task-5421659 Forward-Port-Of: odoo/enterprise#102559
This update addresses a limitation in the account online synchronization process where access tokens expire quickly. We've implemented a new consent token system – a unique, secure identifier linked to the user – to ensure reliable consent management and continued synchronization functionality. This change improves the user experience and data integrity.
Original PR description
In this commit:bf5b7d0 we introduce a message on the account_online_link to be able to manage the consent. (one needed fix in this commit:https://github.com/odoo/enterprise/commit/1c84804fd3f0c0d1d23916b9f6a388616f66ac7e) This commit will change the way we manage the consent since the access token is in fact available only for 30 min, so the link in the chatter would not work. We decided to have a consent token which is a uuid4 encoded in base64 (url safe) and link it to the odoofin user. task-5187621 Forward-Port-Of: odoo/enterprise#105392 Forward-Port-Of: odoo/enterprise#105202
This update resolves an issue where the 'All Warehouses' placeholder in the product routing settings was misleading. Previously, it prevented users from correctly setting up reordering rules to prioritize specific warehouses. This change ensures the placeholder accurately reflects the functionality, allowing for proper route configuration and improved inventory management.
Original PR description
Update warehouse_ids placeholder ("All Warehouses") to a new placeholder that reflect its behavior.
### Steps to reproduce:
* Enable multi-Step Routes
* Inventory > Routes > Buy > Warehouses
* Select the checkbox but leave the field empty (placeholder says "All Warehouses")
### Steps to verify behavior:
* Leaving the warehouse_ids fields empty ("All Warehouses")
* Create a product tracked by quantity and add a vendor
* Create a Reordering Rule
-> It doesn't put the "Buy" route by default as it should
opw-5264571
Forward-Port-Of: odoo/odoo#245547This update fixes an issue where tooltip labels and help text appeared on the same line in tree views. The change ensures that tooltips now display with proper line breaks, improving readability and the overall user experience. This enhances the clarity of information presented within the Odoo application.
Original PR description
Tooltip `label` and `help` appear on the same line because the `o-tooltip--string` on the `help` make it display inline. Move `o-tooltip--string` to be on the entire component instead. reference comment: https://github.com/odoo/odoo/pull/243295#issuecomment-3742599307 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update resolves a display issue within the Coffee Break theme, specifically related to the presentation of social links. Previously, these links appeared on separate lines. Now, they are correctly aligned, ensuring a consistent and professional appearance for users. This improves the overall user experience.
Original PR description
This commit fixes a display issue with the coffeebreak theme. The new social links weren't correctly displayed, forming 2 lines instead of 1. Now they are all aligned. task-5868123 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
A bug was causing a multi-company error when generating offers for new applicants in the recruitment process. This fix created a specific demo data record for the 'Experienced Developer' role in Belgium, resolving the issue and ensuring correct offer generation for Belgian users. This was a backport of a previous task.
Original PR description
## Issue: When we go to recruitment and try to generate offer for a new applicant for job position 'Experienced Developer', it shows multi company error. ## Steps to reproduce: 1. Go to recruitment for US company 2. Make a new applicant for the position 'Experienced Developer'. 3. Then generate offer for that applicant, multi company error will come. ## Cause: The job was inherited and given `contract_template_id`. ## Fix: Made a new record for Belgium Job position 'Experienced Devloper(BE)'. backport of task-4885755 task-5445798 Forward-Port-Of: odoo/enterprise#104013 Forward-Port-Of: odoo/enterprise#102991
This update resolves an issue where country-based filtering within work entries wasn't functioning correctly, leading to errors. The fix ensures accurate country filtering, eliminating module loader errors and improving the usability of this feature.
Original PR description
Issue: The country_id related field on work entries was not stored, causing domain filters and search on this field to fail and triggering client-side errors. Fix: Use search parameter on field to write function so field can be used safely in search domains and filters. Impact: Country-based filtering now works correctly without triggering module loader errors. Task: 5406904 Forward-Port-Of: odoo/odoo#243564 Forward-Port-Of: odoo/odoo#239573
This update adds a 'View' button to the package history list, allowing users to directly access the associated package records. Previously, users couldn't open these records from the package history, which has now been resolved to improve tracking and management of stock packages. This enhancement streamlines the process of reviewing package details.
Original PR description
Steps to reproduce: - Enable packages - Do a reception with a product and put it in a pack - Open the 'Packages' stat button - View button is at the end of every line, to open the package - Go back to the picking and validate it - Open the 'Packages' stat button again Issue: There isn't any 'View' button, so we can't open the package records from here. It was done somewhat on purpose, as it's a list of `stock.package.history` and not `stock.package`, so we wouldn't open the right record. But we can simply add a button that opens the linked package instead. opw-5436847 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#245238
This update fixes a bug where the sitemap generated for eCommerce categories included products that were marked as archived. The system now correctly filters out categories containing only archived products, ensuring the sitemap accurately reflects the live, active products available for sale. This improves the accuracy of our website's sitemap and helps search engines prioritize the correct products.
Original PR description
To reproduce:
- Connect as "admin"
- Go to "Website / eCommerce / Products / eCommerce Category"
- Create a new category "Test With Archived Products"
- Go to "Website / eCommerce / Products"
- Create a product:
- name it "Test Archived"
- in "Sales" tab, under "eCommerce Shop" section, set category to:
"Test With Archived Products"
- then archive the product
- Clear the sitemap attachment and go to /sitemap.xml
The sitemap has an entry for "Test With Archived Products" but it should should not be visible as there are only archived products for that category.
Since odoo/odoo@d3fd767b0568, access rules domain are always optimized with `active_test=False`, so ensure we only return public category that have active products.
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#236256This update ensures the Helpdesk dashboard's styling is consistent with other Odoo dashboards. Specifically, the conditional formatting for the Top Customers pivot has been extended to include all rows, and border styles have been aligned. This improves the overall visual appearance and user experience.
Original PR description
## Description - The Top Customers pivot shows 10 rows, but the conditional format covered only 9. Extend the CF range so the last row is formatted. - Adjust border ranges so the helpdesk dashboard matches the styling used in other dashboards. Task: [5448434](https://www.odoo.com/odoo/project/2328/tasks/5448434) Forward-Port-Of: odoo/enterprise#103793 Forward-Port-Of: odoo/enterprise#103019
This update resolves a minor rounding discrepancy in the calculation of withholding taxes for AR transactions. Specifically, the withholding amount was slightly off, resulting in a difference of 0.01. The fix ensures accurate tax calculations for purchases, improving financial reporting precision.
Original PR description
Steps to reproduce: - Set company to (AR) Responsable Inscripto - In Accounting > Settings, choose Round per Tax as the rounding method. - Go to Accounting > Taxes, duplicate IIBB WTH CABA 0%, and set Amount to 4.5%. - Open partner ADHOC SA, in the accounting tab add the new tax in Purchase Withholding - Create a new vendor Bill to vendor ADHOC SA with unit price 156,087.00 - Confirm and open Payment wizard Issue: Withholding amount is 7023.91, but it should be 7023.92 It occurs that the computed amount is 7023.915. Then when the tax repartition values are computed, the value is rounded and rounding difference are redistributed in the tax lines, so it seems the value has been rounded down. opw-5154585 Forward-Port-Of: odoo/odoo#241633
This update resolves a problem where the VoIP demo tour wasn't functioning correctly with the standard demo data. The code was adjusted to ensure the correct contact and activity are selected during the tour, and the tour file was moved to the appropriate location for better organization.
Original PR description
Make sure we select correct contact/activity when with demo data. Also move the tour to correct file.
This update resolves a potential error that could occur during the uninstallation process when an `ir.model.data` record has a zero `res_id`. The fix adds a filter to ensure only valid record IDs are processed, preventing a traceback and ensuring smoother uninstallation workflows. This improves stability and reliability.
Original PR description
linked to https://github.com/odoo/odoo/pull/245469, there is another case in the uninstallation flow that can raises a traceback in case of a `ir.model.data` where `res_id = 0` This commit adds an…
linked to https://github.com/odoo/odoo/pull/245469, there is another case in the uninstallation flow that can raises a traceback in case of a `ir.model.data` where `res_id = 0`
This commit adds an additional filter to the domain used to browse `ir.model.data` in `_module_data_uninstall` in order to avoid selecting any that would contain a falsy `res_id` and thus cause the above-mentioned assertion to fail.
One way to reproduce this in a new trial:
- Create a new trial with several modules: `account`, `crm`, `project`, `sales`
- Install `web_studio`
- Uninstall `base_automation`
- Traceback
```
File “/home/odoo/src/odoo/saas-19.1/odoo/orm/models.py”, line 5200, in browse
assert all(ids) or all(isinstance(x, NewId) or x for x in ids), “Invalid falsy real id”
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError: Invalid falsy real id
```
This is due to an `ir.model.data` containing a falsy res_id in the internal code of `saas_trial` (`installed-17`)
This fix will avoid any additional traceback like this one.
opw-5865316This update fixes an issue where new partners, particularly those in EU countries, were incorrectly assigned a specific pricelist. Previously, all partners received a default pricelist, even when it matched the standard one. This change ensures that EU partners automatically use the standard pricelist, simplifying pricing and eliminating manual assignments.
Original PR description
Versions -------- - 18.0+ Steps ----- 1. Have a way to check the `specific_property_product_pricelist` field; 2. create a pricelist for EU countries; 3. delete all other regional pricelists; 4.…
Versions -------- - 18.0+ Steps ----- 1. Have a way to check the `specific_property_product_pricelist` field; 2. create a pricelist for EU countries; 3. delete all other regional pricelists; 4. create a new partner in a EU country; 5. create a new partner outside a EU country; 6. create a new partner without a country. Issue ----- Inconsistent behavior: - EU partner has no `specific_property_product_pricelist` value set, as it's identical to the default `property_product_pricelist`. - The other partners do have a `specific_property_product_pricelist` value set to the default value, as if a user manually assigned them. Cause ----- In the `_inverse_product_pricelist` method, the `default_for_country` pricelist is an empty recordset if the partner has no `country_id` or none of the pricelists have a country groups with the partner's `country_id` in it. Solution -------- Introduce a `_get_country_pricelist_multi` method that can be used by `_get_partner_pricelist_multi` and `_inverse_product_pricelist` to ensure that they both return the same result for any given country (including none), and use this as the `default_for_country`. > [!Note] > An alternative approach could be to replace the `_inverse_product_pricelist` method with an `onchange` method, as the docstring of the `_get_partner_pricelist_multi` method states: >> First, the pricelist of the specific property (res_id set), this one is created when saving a pricelist on the partner form view. > > This suggests a behavior that more closely resembles the purpose of an `onchange` method, instead of an `inverse`. opw-5385213 Enterprise PR: https://github.com/odoo/enterprise/pull/103116 (only modifies a test) Forward-Port-Of: odoo/odoo#245681 Forward-Port-Of: odoo/odoo#241736
This update corrects a discrepancy in a sales subscription test. The test previously incorrectly prioritized pricelists based on default partner settings. The fix ensures consistent pricelist ordering, resolving a minor issue that could have affected subscription pricing calculations. This change improves test reliability.
Original PR description
Versions -------- - 18.0+ Issue ----- Commit a840e4250666 changed a `sale_subscription` test as pricelist ordering was changed. Before, it was `sequence asc, id desc`, now it is `sequence asc, id asc`. However, in the updated tests, it expects the first pricelist created with sequence 4 to be before the second pricelist with sequence 2. This was only happening due to default pricelists getting set as the `specific_property_product_pricelist` if the partner has no country assigned to them. Solution -------- As the behavior is now identical for partners with or without a country assigned to them, we can resolved the test setup by giving both pricelists an identical sequence, making the ordering fall back on `id` like a840e4250666 intended. opw-5385213 Related: https://github.com/odoo/odoo/pull/241736 Forward-Port-Of: odoo/enterprise#105475 Forward-Port-Of: odoo/enterprise#103116
This update fixes a technical detail related to the translation of Odoo's Greek language support. The incorrect language code ('gr') was replaced with the correct code ('el') in several configuration files. This ensures accurate translations and proper functionality for Greek-speaking users.
Original PR description
--- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#245617 Forward-Port-Of: odoo/odoo#244684
This update resolves several minor issues within the IoT driver component of Odoo. Specifically, it prevents logging errors when exceptions occur, shortens a debugging token to avoid problems, and clarifies communication types for actions on the IoT device. These changes ensure smoother operation and stability of the IoT integration.
Original PR description
This PR adds minor fixes 1) We avoid logging the receipt in case of exception 2) We trim the remote debug token to avoid errors. 3) We add the communication type (websocket/controller) for actions on the iot box task-5881030
This update addresses a confusing warning displayed on voice channels when users didn't have camera permissions. The fix ensures that the camera button isn't highlighted in red or with a warning unless the channel is specifically set up for video conferencing. This simplifies the user experience and avoids unnecessary alerts.
Original PR description
Only channels that have cameraPermission of `prompt` should show the red and warning. If the permission is `denied` or `granted`, no badge should be shown. task-5263066 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#236297
This update fixes a technical issue where subcontracting manufacturing orders (MOs) were sometimes incorrectly identified as having multiple destination receipts. Previously, older versions of the system could create MOs with multiple receipt destinations, leading to a single destination being recorded. This change ensures accurate tracking of subcontracting MOs, resolving a potential data inconsistency.
Original PR description
Since commit fc66e2d4eb638f1486e69cd5920f02c787055da1 , a subcontracting MO only has one destination receipt. However, Subcontracting MOs created in previous versions can still have multiple move_dest_ids, hence `is_subcontract` must be accessed in a filter or after an `ensure_one()` OPW-5493343 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#243742
This update resolves a potential issue where tracking numbers in the POS Self Order module could collide. Because we couldn't add new fields directly to the main Odoo version, a simple method was used to generate unique tracking numbers by adding a random letter prefix. This ensures order tracking remains accurate and reliable.
Original PR description
Since we cannot add fields in stable we use a little trick to avoid collisions in tracking numbers for POS Self Order module. We do a modulo operation on the ID of the PoS config to select a random letter from A-Z and prepend it to the tracking number. Forward-Port-Of: odoo/odoo#245476
This update resolves an issue where gift cards were being printed repeatedly during point-of-sale transactions. Now, gift cards are only printed once when initially created, streamlining the process and preventing unnecessary printing. This improves efficiency and reduces potential printing costs.
Original PR description
*: pos_loyalty Gift card are now printed only one time at the creation not after each use. Forward-Port-Of: odoo/odoo#244089