Daily updates from Odoo
Thursday, November 28, 2024
37 changes · 18.0
Resolved issues and error corrections
This update fixes several user-facing issues, including website scrolling during animations, lost image edits in email campaigns, recruitment activity display, manufacturing work order timing, and CRM contact suggestions. It also improves performance when updating many billable project tasks and adds a job position activities menu, making common workflows more reliable and efficient.
Original PR description
Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix prevents upgrade failures caused by duplicate tracking records when industry modules include files excluded from code line counts. It ensures only new entries are created and makes those entries easier to distinguish across modules.
Original PR description
When upgrading an industry, the records originating from a file listed in `cloc_exclude` entry of the manifest generate an entry in `ir_model_data` with the module `__cloc_exclude__`. When upgrading the module, it tries to create a second time the same entries, raising the unicity constrain. This commit fixes the issue by creating only new `ir_model_data` entries. It also changes the name to better distinguish different modules, who can share same id. opw-4339886 opw-4274755
Invoices in the Jordanian e-invoicing flow now get marked for sending when they are confirmed from list actions as well as regular posting screens. This prevents missing e-invoicing status values and helps ensure invoices continue through the required reporting process.
Original PR description
This commit makes changing the `l10n_jo_edi_state` to `to_send` take effect inside _post instead of action_post. Repro steps of the problem before this commit: 1. Create an invoice in draft state. 2. Attempt to post the invoice from list view (Actions -> Confirm Entries) 3. This calls the _post method but not the action_post method, leaving the invoice with no value for `l10n_jo_edi_state` task-3895493 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Sales users with limited permissions can now send invoices for their own sales orders without needing separate accounting access. This prevents an access error in the invoice sending flow and helps sales teams complete customer billing tasks smoothly.
Original PR description
To reproduce: - Create a user with `Sales / User: Own Documents Only` and no `Accounting` rights - Log-in with that user - Create a Sale Order, add some product and confirm it - Create an invoice for that order, post it and then try to send it => An AccessError is raised: `You are not allowed to access 'Account Move Send Wizard' records.` Salesman record rules where adapted in odoo/odoo@9e769e1b11f2 after the introduction of new 'Send & Print' wizard but not the access rights, which this commit does. opw-4351500 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The manufacturing work order list now uses compact icons and improved dropdown actions, making key controls easier to scan and keeping columns better aligned. Blocked work orders are also more visibly flagged, helping users spot issues faster.
Original PR description
- changed the "start", "pause" and "done" button text to icons to be able to set the button column size at a fixed value - moved the unblock button in the dropdown - made the previous block button toggle between block and unblock - change the dropdown bullet to red when blocked
Odoo no longer creates extra calendar settings records for portal and public users when they do not need them. This reduces unnecessary data creation while keeping calendar privacy behavior consistent by falling back to public privacy when no settings record exists.
Original PR description
Before this commit, res.users.settings entries were being created for portal and public users in the inverse method of the 'calendar_default_privacy' computed field. From now on, we will not create these entries for these type of users anymore since we don't make use of the fields inside it when the user is not internal. After this commit, we no longer create res.users.settings entries for portal and public users since this creation is skipped using the '_is_internal()' check during the inverse method execution. Additionally, we added the 'public' value fallback for the calendar_default_privacy' field when the 'res_users_settings_id' field is not created. task-4260834
Odoo no longer creates automatic stock batches or waves when the Automatic Batches option is turned off, even if grouping preferences are still selected. This prevents unexpected split receipts and keeps warehouse operations aligned with the configured setting.
Original PR description
Issue ===== When one of the operation type settings for auto-batch/auto-wave is enable, the move lines will be batched even if `auto_batch` is disabled. The options for grouping by contact, product or whatever should be used only to define how we want to batch move lines, but at the end, only "Automatic Batches" option should define if we batch or not. How to reproduce ================ - For receipts' operation type, check "Automatic Batches" and "Wavre Grouping" by "Product"; - Once it's done, uncheck "Automatic Batches"; - Create a PO for two different products and confirm it -> You can see two receipts (one for each product) were created. Solution ======== The method `_is_auto_wave_grouped` defines if we need to group by wave or not. To fix the issue, this method also check `auto_batch`, exactly like `_is_auto_batch_grouped` already does. OPW-4349586
This update refreshes the spreadsheet engine and fixes issues affecting formula results, pyramid chart alignment, and conditional formatting data bars. Users should see more accurate spreadsheet behavior and cleaner visual reporting with no expected workflow changes.
Original PR description
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/6e043e413 [REL] 18.0.6 Task: 0 https://github.com/odoo/o-spreadsheet/commit/35ca29c01 [FIX] Evaluation: Remove old spreaded cells from spread relations Task: 4342240 https://github.com/odoo/o-spreadsheet/commit/fbe6f9630 [FIX] chart: center pyramid charts vertical axis Task: 4334617 https://github.com/odoo/o-spreadsheet/commit/64c919e9d [IMP] conditional_format: improve CF data bar behavior for non-matching range sizes Task: 4280720 Co-authored-by: Anthony Hendrickx (anhe) <anhe@odoo.com> Co-authored-by: Alexis Lacroix (laa) <laa@odoo.com> Co-authored-by: Lucas Lefèvre (lul) <lul@odoo.com> Co-authored-by: Dhrutik Patel (dhrp) <dhrp@odoo.com> Co-authored-by: Adrien Minne (adrm) <adrm@odoo.com> Co-authored-by: Mehdi Rachico (mera) <mera@odoo.com> Co-authored-by: Rémi Rahir (rar) <rar@odoo.com> Co-authored-by: Pierre Rousseau (pro) <pro@odoo.com> Co-authored-by: Vincent Schippefilt (vsc) <vsc@odoo.com>
Avatar loading in messaging was simplified to avoid unnecessary permission checks and expensive searches that could slow down large databases. OdooBot avatars remain available, while some broader avatar access behavior was removed to protect performance and scalability.
Original PR description
Easiest possible simplifications with the best possible performance impact. See individual commit messages.
Users without inventory permissions no longer see the serial number shortcut on maintenance equipment records. This prevents confusing access errors and keeps the equipment screen usable for those users.
Original PR description
To reproduce the issue: (Need stock. Enable demo data) 1. In Settings, edit user "Marc Demo": - Inventory: Nothing 2. Log in as Marc Demo 3. Maintenance > Equipment, click on an equipment Error: an…
To reproduce the issue: (Need stock. Enable demo data) 1. In Settings, edit user "Marc Demo": - Inventory: Nothing 2. Log in as Marc Demo 3. Maintenance > Equipment, click on an equipment Error: an Access Error is displayed because a forbidden read operation on `stock.lot` Because of a condition on a smart button of the form view https://github.com/odoo/odoo/blob/f1e217c5cb4934de4cb52d46136d89500d84d904/addons/maintenance/views/maintenance_views.xml#L373-L378 We execute the compute method of `match_serial`, which leads to https://github.com/odoo/odoo/blob/61e586556028aff2f989f5bb90a94afffbd1ac96/addons/maintenance/models/maintenance.py#L166-L170 But the user does not have any access to `stock.lot` (cf step 1). The current diff is not the most elegant one, but: - Adding a `sudo` in the compute method would let the smart button displayed, which would result in a bad UX (when clicking on the button, the user would have another access error) - Adding a `groups` attribute on the button would require a bridge module and would not affect any existing database The above ideas will be applied on master Indirectly related to sentry-5964505411 (cf discussion on PR of https://github.com/odoo-dev/odoo/commit/f1e217c5cb4934de4cb52d46136d89500d84d904)
The payment registration wizard now fills the memo with only the invoice or journal entry reference, instead of combining multiple references in some cases. This prevents confusing payment descriptions and helps keep payment records clearer for reconciliation and communication.
Original PR description
With those commits: https://github.com/odoo/odoo/commit/a6cbb7c2d3538d57dc8498f0dacf4566ea1492e7 https://github.com/odoo/odoo/commit/67e2270d56a81d385db3ca27d29fa3945501fca8 The communication field in the payment register wizard has been changed, when there was only one line we took the line.name. But the line name was in some condition the payment ref and move ref separated with a "-". The communication should only be the move reference or the name of the move. task: 4366478 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The embedded live chat unread message banner now uses the correct text size after a recent chat window redesign made it appear too small. This improves readability for website visitors and keeps chat styling more consistent across Odoo and embedded chat windows.
Original PR description
Since the redesign of chat windows, the "smaller" class is used for the unread message banner. In the embed live chat, rem were converted to em to avoid being impacted by the host font size. However, maintaining consistent styles between odoo and the embed live chat is more complicated because of this. This PR removes this convertion and fixes the text size. before/after 
Products that were previously valued by lot are now updated correctly when their inventory tracking is changed to quantity-based tracking. This prevents receipt validation from being blocked by an outdated lot requirement, helping purchase and inventory flows continue smoothly.
Original PR description
Issue: Cannot validate receipts for products whose tracking changed from lot to quantity. Steps to reproduce: - Install both Inventory & Purchase apps - Create a new product - Track the product's inventory by Lot and set it's valuation by Lot - Set the product's tracking in inventory by quantity - Create a Purchase Order for the product - Confirm the PO - Validate the linked Receipt Cause: Lot valuation is not set to False when changing the tracking of a product from lot to quantity. Solution: Add an onchange on the "[tracking](https://github.com/odoo/odoo/blob/78b8a1670b5272c820f64ef904f4bdf00760031e/addons/stock/models/product.py#L694-L700)" field to update "lot_valuated" to False when **lot_valuated is still True** despite **no tracking being specified**. Ticket: [4345571](https://www.odoo.com/odoo/project/49/tasks/4345571) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Batch transfer shipping weight estimates now include the weight of the package itself, not just the products inside. This makes shipping weight calculations more accurate for warehouse teams and can help avoid underestimating delivery weights.
Original PR description
The `estimated_sipping_weight` value of stock picking batch did not take the package itself into account. Only the weight of the product inside. opw: 4311447 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
Imported sales orders now keep pricing consistent when the incoming purchase order uses a different unit of measure, such as dozens instead of units. This prevents incorrect sale order prices caused by recalculating with the product's default unit instead of the unit on the imported line.
Original PR description
Steps: - Install sale. - Import purchase order file with dozen uom which exist in seller database with unit uom. Issue: - Computed price on sale order is not same as purchase order. Cause: - Having product with unit uom and line with dozen uom will re-compute wrong sale price for line as it'll take uom from product instead of line. Fix: - Avoid re-computing price if matching product does not have same uom set on line Alternative: we can pass uom and quantity in context to properly recompute price same as we pass context in view of SOL. 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
Upgrading certain apps from the Apps screen could fail when the module included a file-exclusion setting in its manifest. This fix reuses existing upgrade records instead of creating duplicates, allowing affected modules such as the construction app to upgrade normally.
Original PR description
When trying to upgrade a module having `cloc_exclude` in its manifest, through the main "Upgrade" button from the Apps list, the installation fails. Steps to reproduce: 1. Install the 'construction' industry app 2. Go to Apps and search for 'construction' 3. Click on the main 'Upgrade' purple button 4. Confirm the upgrade popup Reason: The main 'Upgrade' button is internally calling `_import_zipfile`, this function creates new `ir.model.data` records for xml tags in `idref`. However, when upgrading, we're running this code again, and trying to recreate those records, which fails with a unique id constraint error. Solution: Before creating those records, we now check if they exist, and in that case, we just update their values instead of trying to recreate them. opw-4339886
Fixes how project side panel statistic buttons store and use their context information. This reduces the risk of button actions breaking due to hard-to-read or incorrectly formatted data, improving reliability for project users.
Original PR description
The stringified context is hardly readable and error-prone. After this commit, we keep it like it is given, as a regular JSON object. version-18.0 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update stabilizes an automated website navigation menu test by ensuring pending background actions finish before the browser closes. It helps reduce false test failures and improves confidence in website quality checks, without changing the user-facing website experience.
Original PR description
In this commit, we fix the Uncaught (in promise)Event error in this tour by adding few additionnal steps to ensure every Promise is resumed before to close browser. runbot_error_id~70404 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
Clicking Powerbox options such as Button or Link no longer disrupts the editor selection. This ensures the related setup popovers open correctly, helping users insert and configure content without interruption.
Original PR description
**Problem**: When the Powerbox menu is open (triggered by `/`), clicking on a command changes the selection inside the editor to the clicked element. For certain commands (e.g., "Button" or "Link"), this behavior disrupts functionality by preventing the popover from being properly linked to the newly added element (e.g., `<a>` tag), leading to misbehavior. **Solution**: Prevent selection changes when clicking on the Powerbox menu items, This fix aligns with the solution implemented in version 17.0: https://github.com/odoo/odoo/blob/cd989d4bf0cc4cedf43ec1d1d5a652beed105e23/addons/web_editor/static/src/js/editor/odoo-editor/src/powerbox/Powerbox.js#L51 **Steps to reproduce**: 1. Open the editor and trigger the Powerbox using `/`. 2. Click on "Button" or "Link". 3. Observe that no popover appears to configure the button/link. opw-4333891 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fixes a regression where server actions with assigned user groups could be blocked by record write access checks even when the user belonged to the allowed group. Server actions can now perform intended updates for authorized group members, while actions without group restrictions still enforce normal record-level access rules.
Original PR description
If the action server has a group and the current user belongs to it, skip the write access check on the records. This allows the action server to explicitly modify records even when the user lacks the necessary access rights. However, if the model has write access but no group, ensure the access rule check is performed on the record. This is a regression introduced in version 18.0 by PR https://github.com/odoo/odoo/pull/179148 (commit: https://github.com/odoo-dev/odoo/commit/298c96045ecaff6cdd89cf192d5ed3a7eb931e98)
Point of Sale self-service invoicing no longer fails when an order is invoiced without selecting a customer first. The receipt QR code or portal link now opens the invoice request flow correctly, avoiding an internal server error for customers and staff.
Original PR description
Steps to reproduce: ===== - Enable Self-Service Invoicing and select any method for print (i.e. QR Code or URL) - Place an order without selecting a customer and invoice. - On the receipt screen, a receipt with a QR or portal URL is visible. - Scan the QR code or open the portal URL, and enter the necessary details from the receipt. - Click on the Request Invoice button. - 500 Internal Server Error! Cause: ===== - In the account module, the `portal_my_details_fields` template will check the length of a `invoice_sending_method` which is not passed in `ticket_validation_screen`. Fix: ===== - `invoice_sending_method` is passed while rendering the `point_of_sale.ticket_validation_screen`. task: 4360753 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Pressing Enter in certain protected report sections no longer causes an error. This makes editing Studio reports more reliable and prevents users from being interrupted by a traceback.
Original PR description
Steps to Reproduce: 1. Navigate to Project. 2. Open Studio and go to Reports -> Timesheets Report. 3. Place the cursor before the text "Expression" and press Enter. 4. Next, place the cursor before the text "Name" and press Enter. 5. A traceback occurs. Description of the issue/feature this PR addresses: When pressing Enter with the cursor inside an unsplittable block, instead of creating a new tag, the `insertLineBreakElement`is called which adds a `<br>` and returns `undefined`. Consequently, in `handleSplitBlockHeading`, `newElement` is `undefined`, leading to a traceback when attempting to access its `tagName`. Desired behavior after PR is merged: The traceback no longer occurs when pressing Enter in an unsplittable block. task-4334925
This fix ensures new items or adjustments added to an active Point of Sale order remain attached when the order is pending. It prevents staff from missing changes, such as global discounts, after returning to the floor screen.
Original PR description
Before this commit, when adding a new line to the order, it wasn't added to the pending order. If you clicked back to the floor screen, you might miss the added line. For example, adding a global discount would be missing in that case. opw-4322621 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Double-clicking an image in the HTML editor now opens the image preview instead of the editing toolbar. This makes viewing images faster and aligns the interaction with user expectations.
Original PR description
**Current behavior before PR:** - Double clicking on an image opens the image toolbar. **Desired behavior after PR is merged:** - Now, double clicking on an image opens the image preview instead of toolbar. task:4350231
Spreadsheets now handle missing or renamed Odoo models and fields more gracefully in pivots, lists, and related data sources. Instead of showing technical errors or crashing, users see clearer error messages in affected cells and panels, helping them understand that the underlying data source needs attention.
Original PR description
Before this commit, if a pivot have an invalid model (renaming, deletion, ...), some tracebacks were raised (opening the side panel, ...) This commit fixes the issue by handling the case where the pivot model is invalid by showing a clear error in the cell (this commit) and displaying an error in the side panel of the pivot (see enterprise PR) Task: 4280402 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
The loan computation flow now handles cases where the Start Date is removed instead of showing an error. This helps accounting users continue setting up loans smoothly and avoids interruptions during loan entry.
Original PR description
This error occurs when we remove the Start Date while computing a new loan. Steps to reproduce: - Install ``accountant`` module - Create a new loan in ``Loans``(eg: Test) > Click ``Compute`` button - Add any loan amount and remove ``Start Date`` Traceback: ``TypeError: unsupported operand type(s) for +: 'bool' and 'relativedelta'`` [1]- https://github.com/odoo/enterprise/blob/42b7b322d6c720de45661e3370397adaf74fe1f4/account_loans/wizard/account_loan_compute_wizard.py#L79 sentry-6093500366
This fix ensures the Indian balance sheet report runs the standard report setup logic as intended. It helps prevent missing or incorrect report options after the introduction of a custom handler.
Original PR description
Since https://github.com/odoo/enterprise/commit/e598fcb48b5e4f0126406a4008f175a88528ba85 the balance sheet report has a custom handler. Make indian balance sheet handler execute super method in it's _custom_options_initializer() do execute parent logic.
This fix ensures the Belgian reports setup only creates an accounting journal when one does not already exist. It helps avoid duplicate records during setup or upgrades, reducing cleanup work and improving data consistency.
Original PR description
create account journal only if it doesn't exist related: https://github.com/odoo/upgrade/pull/6714
Fixes an issue where retrying Mexican electronic invoice processing after a Print & Send warning could crash when PAC credentials were missing or incorrect. Users can now retry from the warning flow without encountering the error, improving reliability for invoice handling.
Original PR description
This error occurs when attempting to ``Print & Send`` an invoice using incorrect credentials for the ``Authorized Certification Provider (PAC)`` or if no credentials are provided and you choose to ``Retry`` after receiving the warning. Steps to reproduce: --- - Install ``l10n_mx_edi`` module - Change the company to ``ESCUELA KEMPER URGATE`` - Invoicing > Customers > Invoices > Select an Invoice - ``Print&Send`` (you will face a warning) > CFDI(Notebook page) > Retry Traceback: --- ``TypeError: 'int' object is not iterable`` At [1], we are directly passing the ID of self instead of self. [1]- https://github.com/odoo/enterprise/blob/0f7a4eb991fc59240710c0f8ba78f4da5b889fe6/l10n_mx_edi/models/account_move.py#L1726 sentry-6095574663
The work order list now uses compact icon buttons for common actions like start, pause, and done, reducing wasted space and improving readability. Blocking controls are also clearer, with the unblock action moved into a menu and blocked items more visibly highlighted.
Original PR description
This is only a cosmetic change from a text button to an icon button. The main changes of the PR are done in https://github.com/odoo/odoo/pull/184308/. ----------------------- Community pr description: - changed the "start", "pause" and "done" button text to icons to be able to set the button column size at a fixed value - moved the unblock button in the dropdown - made the previous block button toggle between block and unblock - change the dropdown bullet to red when blocked This commit also modifies the width of the json_popover as it was using the base column width which was too big for the icon. It also modifies the width of the mo_list_dropdown column to limit the empty space. This implies changes in the web module: in `column_width_hook.js`, the width of a widget is equal to it's `listViewWidth`, like the fields. However, unlike the fields, the widget class is missing a validation for that props. task-id: 4279789
The Belgian payroll holiday attest now uses the year when an employee's notice period starts, rather than the year it ends. This avoids incorrect attest information when notice periods cross into a new year and also prevents an error when a contract has no end date.
Original PR description
The year considered in the holiday attest should be the same as the start of the notice period, not the end which could be in the following year. Task: 4274127
This update prevents subscription-related errors when a sales subscription line is not linked to an invoice. It helps keep subscription processing stable in edge cases where invoice references are missing.
Salary payment SEPA files now avoid creating duplicate payment reference lines when the Belgian payroll urgency option is used. This prevents banks from rejecting the generated payment file, helping payroll payments process correctly.
Original PR description
When the `l10n_be_hr_payroll_sepa_salary_payment` context option is passed, an extra `<Ustrd>` gets generated with the Urgency SEPA flag. After the refactoring in odoo/enterprise#60393, when there is no recognized reference type in the default `_get_RmtInf()` generation[^1], we end up with 2 Ustrd elements like this: ```xml <RmtInf> <Ustrd>SPLIP/1234</Ustrd> <Ustrd>/A/ SPLIP/1234</Ustrd> </RmtInf> ``` The SEPA file then gets rejected by banks as invalid. Instead we should detect the pre-existing element and update it. [^1]: https://github.com/odoo/enterprise/blob/42b7b322d6c720de45661e3370397adaf74fe1f4/account_iso20022/models/account_journal.py#L324-L326
Spreadsheet pivots, lists, charts, and related filter panels no longer crash when their underlying Odoo model has been renamed or deleted. Users now see clear error messages instead, helping them understand the issue and continue working without disruptive tracebacks.
Original PR description
Before this commit, if a pivot have an invalid model (renaming, deletion, ...), some tracebacks were raised (opening the side panel, ...) This commit fixes the issue by handling the case where the pivot model is invalid by showing a clear error in the cell (see community PR) and displaying an error in the side panel of the pivot (this commit) Task: 4280402
This update fixes minor display issues in the Documents app when using dark mode. Colors and borders now adapt correctly to the selected theme, improving readability and visual consistency for users.
Original PR description
This PR fixes some minor color scheme issue within Documents. Prior to this PR, some elements where using raw values instead of BS one, which led to some dark mode issues (e.g hardcoding the…
This PR fixes some minor color scheme issue within Documents. Prior to this PR, some elements where using raw values instead of BS one, which led to some dark mode issues (e.g hardcoding the border-color hex will not adapt it if we are in dark mode). Same thing goes for some color mix that were using `$o-white` thus pure black in dark mode, while it should have used `$o-view-background-color` which is already dark mode proof. Since we were tweaking some values here and there, this commit adapts some part of the code by rationalizing the value, either by using BS variables, CSS one to ease the maintainability of the code as well as avoiding `!important` statements. | 18.0 | This PR | |--------|--------| | <img width="310" alt="image" src="https://github.com/user-attachments/assets/16bcf240-84aa-4788-8527-7103a80deb40"> | <img width="308" alt="image" src="https://github.com/user-attachments/assets/476b6fd3-ab4d-4b1e-bf51-1ef50151f333"> | |  |  | task-4357165
A document folder used in an automated deletion test is now given the right internal access so the test administrator can see and edit it. This prevents a test failure caused by recent permission changes and helps keep document deletion behavior reliably validated.
Original PR description
Following odoo/enterprise#73372 where we create a new group, so that the admin users don't see all the documents by default, the admin user used in this tour is not able to see anymore the "Folder1" created in the test as it is owned by odooBot with no additional rights. To solve the problem, we set access_internal="edit" on the "Folder1". Task-4361749
Frontdesk kiosk users can now select and see the correct language instead of being reset to the first option. This helps visitors use the kiosk in their chosen language without confusion.
Original PR description
**Steps:** - Install the frontdesk module - Open the frontdesk kiosk mode - Change the language from the language selector --- **Description of the issue/feature this PR addresses:** In kiosk mode, changing the language from the selector doesn’t apply the selected language. Instead, the field displays the first language in the list as the default, preventing the correct display of the chosen language. --- **Cause:** The `_get_additional_info` function modifies the language format from `_` to `-`, which results in the incorrect language display. --- **Fix:** This PR resolves the issue by returning the language directly without calling `py_to_js_locale`, ensuring the correct format and accurate display of the selected language. task-4223597