Thursday, June 4, 2026
28 changes · saas-19.3
Resolved issues and error corrections
This update resolves an issue where changes made to form fields within a translation dialog were unexpectedly saved, even if the user didn't click 'OK' to confirm. The fix ensures that changes are only applied when the user explicitly saves the translation, improving data consistency and preventing unintended modifications. This improves the user experience and reduces potential errors.
Original PR description
[FIX] website: stop saving an attribute translation on close Steps to see the issue: - Drop a form on your page - Add a placeholder on one of the inputs - Save your changes, and switch to another language - Start translating - Click on the input with the placeholder - Make some changes to the placeholder, but don't click "Ok" - Close the dialog => The changes are still applied. task-5190459 Forward-Port-Of: odoo/odoo#264052
This update fixes an issue where the cursor position was incorrect after moving content within the HTML editor. Now, when moving a table or paragraph, the cursor automatically adjusts to remain within the newly positioned content, ensuring a smoother and more intuitive editing experience. This improves usability and prevents confusion for users.
Original PR description
#### Description of the issue/feature this PR addresses: - MoveNode restores the cursor at the container end position - After moving a table, the cursor ends outside the table body #### Desired behavior after PR is merged: - Preserve the selection if it was inside the moved node - Otherwise place the cursor at the start of the moved node #### Steps to reproduce: - Create a table in the editor - Move the table using Movenode - Drop the table and check the cursor position - The cursor ends outside the moved table body - Select some text in a paragraph - Move that paragraph using Movenode - The selection is placed at the end of the moved node task-6215743 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#267844 Forward-Port-Of: odoo/odoo#264264
This update optimizes the styling of Odoo's Kanban dropdowns, specifically addressing slow CSS performance. By simplifying the CSS rules and adjusting how borders are displayed based on screen size, this change improves the responsiveness and speed of the Kanban interface.
Original PR description
This commit removes several expensive CSS selectors. After reviewing all usages, we found that `.o_kanban_card_manage_settings` always contains `div` elements with `col-*` classes as direct children. We also found that the border behavior depends on the available screen width rather than the bottom sheet itself: it is only needed when the elements are displayed side by side and should be removed when they are stacked vertically. An ´!important´ declaration was also added to compensate for the reduced selector specificity. 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#267979
This update fixes a previous limitation where channel owners without system admin privileges couldn't promote members to admin roles. The change ensures that channel owners can now correctly assign admin access, improving channel management capabilities. This resolves a technical issue impacting channel governance.
Original PR description
`canSetAdmin` was checking the target member role instead of the current user's role. Because of that, a channel owner who was not a system admin could not promote another member to admin. task-6250058 Forward-Port-Of: odoo/odoo#267999 Forward-Port-Of: odoo/odoo#266615
This update fixes an inconsistency in the HTML editor's toolbar. Previously, the toolbar remained active when selecting text within protected blocks like Code or Table of Contents, leading to confusing behavior. Now, the toolbar automatically closes when selecting text within these blocks, ensuring a smoother and more intuitive editing experience.
Original PR description
Problem: The toolbar is disabled when selecting text inside Code or Table of Content blocks, but it remains active when selecting the block itself through the “⋮⋮” handle, leading to inconsistent behavior. Cause: `_updateToolbar` does not check whether `targetedNodes` contains only protected nodes. In such cases, the toolbar should be closed. Solution: When `targetedNodes` contains only protected nodes, prevent the toolbar from opening. Steps to reproduce: - Insert a Table of Content block. - Click on the “⋮⋮” handle while hovering the block. - Observe that the toolbar opens, while it should remain closed. task-6250028 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#266661
This update ensures that file uploads initiated through the link popover are immediately canceled when the user discards the popover. Previously, uploads continued in the background even after the discard button was pressed, leading to potential issues with data integrity. This change improves the user experience by preventing unexpected uploads.
Original PR description
**Current behavior before PR:** Steps to reproduce the issue: - Go to Todo, In the network tab switch to "Slow 4G" so that file upload can take few seconds to upload. - Upload a file using link popover. - While the file upload is in progress, hit the discard button of the link popover. - Notice that the upload continues in the background and when it completes successfully, link is inserted. **Desired behavior after PR is merged:** Discarding the link popover during file upload should cancel the upload request and prevent inserting the link. task-6199113 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#267695 Forward-Port-Of: odoo/odoo#263463
This update corrects a technical problem affecting how the `pdp_verification_display_state` field is calculated. The change replaces a problematic setting with a new method (`depends_context`) to ensure proper functionality within the partner merge wizard, preventing errors.
Original PR description
The computed field `pdp_verification_display_state` uses the `company_dependent` field. This causes an issue with the partner merge wizard in saas-18.2+. This commit fixes it by using the `depends_context` instead. runbot.build.error-939449 Forward-Port-Of: odoo/odoo#267481
This update resolves an issue where demo mode incorrectly required authentication and two-factor authentication (totp). It also corrects a technical error related to how documents were processed, ensuring proper handling regardless of whether the user is a Peppol User or a PDP. This enhancement improves the stability and usability of the demo environment.
Original PR description
And don't force the totp in demo mode Also, fix the mocking of the send_documents when sending documents with a Peppol User and not a PDP one. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#267893 Forward-Port-Of: odoo/odoo#267461
This update corrects a flaw in how Odoo tracks device support status. Previously, changes weren't reliably reflected in the database when a device switched between supported and unsupported states. Now, device status changes are tracked separately, ensuring accurate database updates and preventing issues with device recognition.
Original PR description
When a device is marked unsupported (e.g. FDM after power outage) and becomes supported with the same identifier (e.g. FDM after the client restarts it after the power outage), the changed was not taken into account because we used to track changes in a set of supported + unsupported. We now track changes in supported and unsupported separately to make sure the db is informed of the changes. Forward-Port-Of: odoo/odoo#267967
This fix resolves an issue where creating new survey records would sometimes fail due to an error in how the system handles empty lists. The code now guards against this scenario, ensuring data can be saved correctly. This prevents disruptions to the recruitment process.
Original PR description
To reproduce error. 1) make a new interview record 2) make sure user has interview group but not survey group 3) try to access/make an interview record. convert_to_cache returns none when it is…
To reproduce error.
1) make a new interview record
2) make sure user has interview group but not survey group 3) try to access/make an interview record.
convert_to_cache returns none when it is passed an empty list see link below:
https://github.com/odoo/odoo/blob/b16aaff17a65987c958c3285157ef1e4443e864f/odoo/orm/fields_misc.py#L71
```
Traceback (most recent call last):
File "/home/odoo/src/odoo/saas-19.3/odoo/http/router.py", line 279, in __call__
response = serve_db(request)
^^^^^^^^^^^^^^^^^
File "/home/odoo/src/odoo/saas-19.3/odoo/http/router.py", line 443, in serve_db
raise _update_served_exception(request, exc)
File "/home/odoo/src/odoo/saas-19.3/odoo/http/router.py", line 441, in serve_db
return retrying(serve_func, env=request.env)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/odoo/src/odoo/saas-19.3/odoo/http/retrying.py", line 52, in retrying
result = func()
^^^^^^
File "/home/odoo/src/odoo/saas-19.3/odoo/http/router.py", line 593, in serve_ir_http
response = request.dispatcher.dispatch(rule.endpoint, args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/odoo/src/odoo/saas-19.3/odoo/http/dispatcher.py", line 311, in dispatch
result = self.request.registry['ir.http']._dispatch(endpoint)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/odoo/src/odoo/saas-19.3/odoo/addons/base/models/ir_http.py", line 415, in _dispatch
result = endpoint(**request.params)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/odoo/src/odoo/saas-19.3/odoo/http/routing_map.py", line 207, in route_wrapper
result = endpoint(self, *args, **params_ok)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/odoo/src/odoo/saas-19.3/addons/web/controllers/dataset.py", line 32, in call_kw
return call_kw(request.env[model], method, args, kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/odoo/src/odoo/saas-19.3/odoo/service/model.py", line 55, in call_kw
result = method(recs, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/odoo/src/odoo/saas-19.3/addons/web/models/models.py", line 2084, in onchange
snapshot1 = RecordSnapshot(record, fields_spec)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/odoo/src/odoo/saas-19.3/addons/web/models/models.py", line 2170, in __init__
self.fetch(name)
File "/home/odoo/src/odoo/saas-19.3/addons/web/models/models.py", line 2185, in fetch
self[field_name] = self.record[field_name]
~~~~~~~~~~~^^^^^^^^^^^^
File "/home/odoo/src/odoo/saas-19.3/odoo/orm/models.py", line 6130, in __getitem__
return self._fields[key].__get__(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/odoo/src/odoo/saas-19.3/odoo/orm/fields.py", line 1815, in __get__
self.compute_value(recs)
File "/home/odoo/src/odoo/saas-19.3/odoo/orm/fields.py", line 1986, in compute_value
records._compute_field_value(self)
File "/home/odoo/src/odoo/saas-19.3/addons/mail/models/mail_thread.py", line 502, in _compute_field_value
return super()._compute_field_value(field)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/odoo/src/odoo/saas-19.3/odoo/orm/models.py", line 4340, in _compute_field_value
determine(field.compute, self)
File "/home/odoo/src/odoo/saas-19.3/odoo/orm/fields.py", line 82, in determine
return needle(*args)
^^^^^^^^^^^^^
File "/home/odoo/src/odoo/saas-19.3/addons/hr_recruitment_survey/models/survey_survey.py", line 19, in _compute_allowed_survey_types
survey.allowed_survey_types = [*survey.allowed_survey_types, 'recruitment']
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: Value after * must be an iterable, not bool
```
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-prThis update corrects a technical issue where message authors were sometimes incorrectly identified. The fix ensures that message authors are accurately linked to either partners or guests based on the message's model, improving the reliability of communication tracking. This resolves a potential inconsistency in how message authorship is recorded.
Original PR description
A message's author is identified by one of two fields depending on its model: `author_id` (for partners) or `author_guest_id` (for guests). Previously in `changeThread`, the value of `thread.effectiveSelf` (which can be either a Partner or a Guest) was provided as the `author_id` regardless of its actual model. This commit explicitly uses `store.self_partner` as the `author_id` and `store.self_guest` as the `author_guest_id` to resolve the occasional mismatch. Forward-Port-Of: odoo/odoo#267828 Forward-Port-Of: odoo/odoo#267464
This update resolves an issue where a misleading error was triggered when setting intrastat codes on product templates. The fix ensures the error only appears when creating templates with dynamic attributes and no variants, aligning with how intrastat codes are correctly stored on product variants. This improves data accuracy and prevents unnecessary alerts.
Original PR description
Problem: When saving an intrastat code on a product template with no variants, an error should be raised because intrastat codes are stored on the product variants. However, the error gets raised when creating a product template with intrastat code set because the variants get created after the product template is created, so it doesn't find any variant although the default variant will be created right after saving the product template. Solution: The constraint should only be triggered when saving the intrastat code on a product template with dynamic attributes and no variants. Since dynamic attributes are the only ones that can lead to a product template with no variants, we can check if the product template has dynamic attributes and no variants before raising the error. Forward-Port-Of: odoo/enterprise#118986
This update fixes an issue where broken link trackers were appearing in the system. The changes now require valid alphanumeric codes for link trackers and disable editing the target link after creation, preventing further problems and ensuring data integrity.
Original PR description
1. Remove the possibility to create link tracker with an empty code. Empty code tracker do not work, but still appear in the tracker list. Only accept alphanumerical chars in the tracker code. 2. Set the target link input as disabled after generating the tracker, since editing the target link at this point would have no impact. task-4531974 Forward-Port-Of: odoo/odoo#266733
This update resolves an issue where PDF documents received via email were incorrectly displayed with a duplicate iframe preview. The fix ensures that the document preview accurately shows the PDF content, addressing a potential confusion for users. This was previously addressed in 19.0 and is now reinforced.
Original PR description
**Steps to reproduce:** - Install documents_account - Set up alias to catch incoming mails - Receive a mail with xml attachement which can be previewed as pdf - Go to Documents app - Click on the…
**Steps to reproduce:** - Install documents_account - Set up alias to catch incoming mails - Receive a mail with xml attachement which can be previewed as pdf - Go to Documents app - Click on the document preview - Preview is split in two iframes, both with the same content (pdf) **Issue:** Due to the `isPdf` patch the attachment can match multiple types for the preview (pdf and text) as both getter return `true`. ``` <iframe t-if="state.file.isPdf" ... <iframe t-if="state.file.isText" ... ``` It also seems that xml received by mail are imported as text, which is why the issue doesn't happen when manually uploading the same xml file. **Fix:** Ensure that if the document is matching `isPdf`, it doesn't trigger the second iframe with `isText`. Also it seems fixed in 19.0 as the text iframe is replaced by this xpath: `<xpath expr="//iframe[@t-if='state.file.isText']" position="replace">` which was added for https://github.com/odoo/enterprise/commit/de614ee5e9a087d49939c65c0118ae6164c7b31b related patch: https://github.com/odoo/enterprise/commit/ffcdd2275c8bf564e15151ccbcaf3965ed968450 opw-6018536 Forward-Port-Of: odoo/enterprise#118863 Forward-Port-Of: odoo/enterprise#112041
This update fixes an issue where tracking information in emails was displayed in the wrong order. The change reverses the order of tracking values to match how they are stored in the database, ensuring that the most important tracking details are shown first. This improves the clarity and accuracy of email notifications.
Original PR description
Tracking values are given in a reverse ordering, as DB model reads them by id DESC. Most important one is given last, see 'mail_tracking' module. We therefore have to reverse the list given to the QWeb template.
This update addresses a potential issue with how Odoo updates modules, specifically related to button actions. By adding a short timeout and a rollback mechanism, the system is now more reliable when updating modules and handling user error translations, ensuring a smoother experience for users.
Original PR description
Add a small lock timeout when updating modules just like it is done in master (19.3). Also add rollback so that translation of user errors work (in case we need to fetch the language from the database). runbot-234930 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#267698
This update corrects a technical problem that was only appearing in the community version of Odoo's stock module. The issue involved incorrect links to stock packages, which has now been resolved. This ensures accurate stock tracking and reporting.
Original PR description
Reproducible only in community **Observation** outermost_result_package_id is a enterprise variable in stock_barcode: https://github.com/odoo/enterprise/blob/c5bbcaeed513817fdda1f3f42f4c9b2440264174/stock_barcode/models/stock_move_line.py#L27 It's computed from result_package_id.outermost_package_id: https://github.com/odoo/enterprise/blob/c5bbcaeed513817fdda1f3f42f4c9b2440264174/stock_barcode/models/stock_move_line.py#L29-L33 That variable is available in stock community : https://github.com/odoo/odoo/blob/616e82d7b3a53b1facf481e783baed3e99393d3c/addons/stock/models/stock_package.py#L48 runbot-241085 Forward-Port-Of: odoo/odoo#267653
This update disables the '@' mention feature for visitors in live chat conversations. Previously, visitors could trigger irrelevant suggestions, creating unnecessary noise. This change ensures a cleaner and more focused chat experience for all users.
Original PR description
**Description of the issue this PR addresses:** ---------------------------------------------- Visitors in livechat can trigger partner mention suggestions by typing the @ delimiter in the composer.…
**Description of the issue this PR addresses:** ---------------------------------------------- Visitors in livechat can trigger partner mention suggestions by typing the @ delimiter in the composer. However, visitors can only mention themselves or odoobot, which does not provide meaningful functionality in the context of a livechat conversation. **Current behavior before PR:** ---------------------------------------------- - Visitors can type @ in the livechat composer and trigger partner mention suggestions. - The suggestions only include the visitor themselves or odoobot. **Desired behavior after PR is merged:** ---------------------------------------------- - The @ delimiter is disabled for visitors in livechat threads. - Partner mention suggestions are no longer triggered for visitors. - Internal users (operators) can still use @ mentions normally. Task-5119068 ---------------------------------------------- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#267788 Forward-Port-Of: odoo/odoo#253551
A recent test within the HR Holidays module was failing due to an error in how it checked for related records. This commit corrected the test by using a different method to identify records, preventing installation issues when other modules are installed alongside HR Holidays. This ensures smoother module installations and prevents potential disruptions.
Original PR description
Before this commit, the line https://github.com/odoo/odoo/blob/saas-19.1/addons/hr_holidays/tests/test_holidays_mail.py#L69 used `.id` on a many to many recordset which failed when the recordset had multiple records. This test led to an error when installing other modules with demo data like `test_l10n_be_hr_payroll_account` and the test was run with demo data. This commit uses the `in` operator instead of `==` and avoids `employee_ids.id` to avoid the error. Runbot error: https://runbot.odoo.com/odoo/error/241106 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#266677
This update fixes a visual issue where Polish and Vietnamese characters displayed inconsistently on Android Edge browsers. The fix ensures proper font rendering by providing additional font subsets to browsers that don't fully support Unicode ranges, maintaining consistent character appearance across different devices and browsers.
Original PR description
Scenario: - paste "język việt" (polish + vietnamese) in a page - change website font to not be "Noto Sans", for example: Raleway - open the page on Edge Browser on Android Result: polish and…
Scenario: - paste "język việt" (polish + vietnamese) in a page - change website font to not be "Noto Sans", for example: Raleway - open the page on Edge Browser on Android Result: polish and vietnamese characters are using different font and are visually different than latin character. Cause: google fonts is serving for nearly all browsers font configuration with woff2 files and unicode-range so the user only loads the part of the font that will be used on the website. For Edge browser on android, based on the user-agent chrome is serving only a TTF file without unicode-range because it is thinking that unicode-range is not supported. These files only contain basic latin characters, so extended latin and vietnamese characters are being rendered with fallback "Odoo Unicode Support Noto" that has a different weight and style for the same weight. Fix: For the browser not supporting unicode-range (desktop edge before 2020, Edge on android, …), in addition to latin we ask google fonts to provide([1]) latin-extended and vietnamese subsets in TTF/WOFF files if available. For other subset (hebrew, arabic, cyrillic, …) the intent is to fallback on "Odoo Unicode Support Noto" since they should usually not be mixed with latin characters. Note: Edge on android in reality support unicode range, so this would be solved if google fonts just served the unicode range font configuration for that user-agent. [1]: https://developers.google.com/fonts/docs/getting_started#specifying_script_subsets opw-4642242 Forward-Port-Of: odoo/odoo#267798
This update resolves an issue preventing the unsubscribe dialog on the website from functioning correctly. The change was initially intended to update for a new software version, but a key step was missed, causing a technical error. This fix ensures the unsubscribe dialog is properly displayed and operational.
Original PR description
This commit 974e0066f8c56aad831de97a581e56b95ba53dc6, introduced a bug by adding 'this' to templates in preparation for owl 3. But it omitted this inherited template making the xpath invalid. Task-6276225 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update optimizes the website's performance by replacing a complex selector with a simpler one. This change reduces the time it takes for the website to recalculate styles, particularly when viewing large tables or resizing the browser window, leading to a faster and more responsive user experience.
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#268106 Forward-Port-Of: odoo/odoo#267969
This update resolves an issue where stock move descriptions were incorrectly displaying HTML content due to a fallback mechanism. The change removes this fallback, using the product's display name instead, and standardizes the handling of descriptions across different picking creation methods. This ensures consistent and accurate stock move descriptions.
Original PR description
Currently, if there's no receipt/delivery/internal description, a move description will use a product internal note as a fallback. The issue is that this is an html field and it doesn't show its…
Currently, if there's no receipt/delivery/internal description, a move description will use a product internal note as a fallback. The issue is that this is an html field and it doesn't show its content correctly. This PR aims to remove this fallback. If no description is found, then it proposes to use the display_name of the product, which is later ignored in `stock_move_product_label.js` anyway. Second, if a picking is created manually, the description_picking is in the vals, which triggers `_inverse_description_picking`. This is different if the picking is created by a SO, PO, MO, etc. We're unifying the behavior by making sure to remove `description_picking` from the create vals. However once a move is done, the description should be immutable. So we're also adding a call to `moves_todo._inverse_description_picking` to for a write on `description_picking_manual` when marking a move as done. task 6131699 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update introduces a new keyboard shortcut (ALT + SHIFT + R) to quickly open the timesheet systray. This simplifies the process for employees to record their time, improving efficiency and usability. This change was implemented as a bug fix.
Original PR description
This commit adds an `ALT + SHIFT + R` shortcut to open the timesheet systray. task-6197777 Forward-Port-Of: odoo/enterprise#116753
This update resolves an issue where negative line items in the Mexican CFDI tax calculation were incorrectly distributed. The change addresses a recent update that introduced new line item types, making the previous method for detecting negative lines obsolete. This ensures accurate CFDI reporting for Mexican businesses.
Original PR description
In MX CFDI, negative lines are not allowed so they are distributed over other lines. But because this PR introduces some other `special_type` like `global_discount` and `down_payment`, it becomes useless to check `base_line['special_type'] == False`. Fix for https://github.com/odoo/odoo/pull/267435 task-5900496 --- I confirm I have signed the CLA and read the PR guidelines at [www.odoo.com/submit-pr](http://www.odoo.com/submit-pr) Forward-Port-Of: odoo/enterprise#119327 Forward-Port-Of: odoo/enterprise#119254
This update resolves a technical issue that could cause errors when managing floor screens in the restaurant POS system. The change prevents users from creating duplicate configurations, which avoids a system error and ensures stable POS operation. This improves the reliability of the restaurant ordering process.
Original PR description
Duplicating a floor screen causes a duplicated key exception when rendering the POS. To avoid this issue, duplication on the backend is not allowed. task-6246748 Forward-Port-Of: odoo/odoo#266734
This update ensures that the subject displayed in the chatter reflects any changes made to the message subject within the composer. Previously, updates in the composer weren't immediately visible in the chatter, leading to potential confusion. This improvement provides a more accurate and up-to-date view of message subjects for all users.
Original PR description
If the user updates the subject in the composer, the suggested subject in the chatter should reflect the latest message. task-5944635 Forward-Port-Of: odoo/odoo#267140
Features or functions removed from Odoo
This update simplifies the Point of Sale system by removing a QR code print option that was only relevant for a specific self-ordering restaurant setup. This change streamlines the configuration and improves the overall user experience. The removal also eliminated a redundant link within the Point of Sale module description.
Original PR description
In this commit, --- - pos_self_order: removed the QR code print option from the pos config list view, as printing QR codes is only relevant for restaurants with self-order enabled and is already available in the configuration settings. - point_of_sale: removed the anchor tag from the Point of Sale module description, since the module header already provides the link. task-6222663 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#265472