Daily updates from Odoo
Thursday, March 6, 2025
17 changes · 18.0
Resolved issues and error corrections
Fixes an issue where a point of sale session could reuse an empty order from a previous session, causing customer order tracking numbers to continue from the wrong place. New sessions now start tracking numbers correctly at 1, making receipts and order tracking clearer for staff and customers.
Original PR description
Currently, when you make a os order, close the session an then re-open it without going through the backend, the starting tracking number is related to the previous session. Steps to reproduce: ------------------- * Open pos shop * Make an order and pay it * Select **New order** * Close the session, do not go in the backend * Re-open the session > Observation: The tracking number is like `X03`. If we make an order, the tracking number will then be `(X+1)01`. Why the fix: ------------ When closing the register the current order is marked as cancelled and a reloading of the page is done. When reloading, the `onMounted` of the product screen is triggered which creates a new order. We will condition the effect of the `onMounted` in a `useEffect` so that we don't create new orders when we are closing the session. opw-4435140
This update adjusts an accounting test so it works correctly when certain secured accounting access is assigned to users by default, such as in the German localization. It helps keep automated checks reliable without changing business functionality.
Original PR description
The test `test_account_group_account_secured` introduced in #197558 fails when the `group_account_secured` group is added by default to the users, as is the case in l10n_de. This fix modifies the test by checkign that the user groups didn't change after hashing moves from the only journal with 'Hash on Post', instead of checking that `group_account_secured` is not part of the user's groups. runbot-159826 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Spreadsheet dashboard date filters now display their configured label, making it easier to tell similar filters apart. This helps users choose the correct filter when dashboards include multiple date-based controls.
Original PR description
Currently, the date filters do not have their title displayed in the `FilteValue` component which is an issue in dashboards where one could have multiple date filters defined and could not differentiate them. This revision adds the fiter label as a title such that users can identify the right filter given that they gave it an appropriate label. task-4606670 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 fixes a crash that could happen in the HTML editor when the selected content changed around links. Users can continue editing content more reliably without being interrupted by an error.
Fixes an issue where creating a Point of Sale store for a Mexican company could fail if a default accounting tag had been deleted. The system now continues account creation without that missing tag, helping users complete POS setup without manual technical intervention.
Original PR description
Currently, an error occurs when creating an account with a default tag `Debit Balance Account`, if it has been deleted. **Steps to reproduce:** - Install `l10n_mx`, `accountant`, `point_of_sale`…
Currently, an error occurs when creating an account with a default tag `Debit Balance Account`, if it has been deleted. **Steps to reproduce:** - Install `l10n_mx`, `accountant`, `point_of_sale` modules without demo data. - Change company country to `Mexico`. - Delete the records `Debit Balance Account` of **account tag**, `Cash` of **journals** and **chart of Accounts** from `Accounting > Configuration `. - Create a POS store. - Observe the error. **Error:** `ValueError: External ID not found in the system: l10n_mx.tag_debit_balance_account` The error occurs because the system attempts to fetch the tag `l10n_mx.tag_debit_balance_account` at [1], but it is unavailable as the user has already deleted it. This commit ensures that if the tag does not exist, it proceeds without assigning it, preventing the error. [1] - https://github.com/odoo/odoo/blob/63fc0d1cefaf8f59acd0743a225d1002425ff156/addons/l10n_mx/models/account_account.py#L12 sentry-6356695465 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fixes an error that could occur after hiding the website header on course pages. Users can now save pages with the header disabled without encountering a crash, improving reliability for website editing.
Original PR description
**Problem**: After commit [9cf7726](https://github.com/odoo/odoo/commit/9cf7726d0402353ccef551148010aaff8a2059be), `headerEl` can be `null` if the "Show Header" option is turned off, causing a traceback. **Solution**: Check if `#wrapwrap header` exists and ensure `headerEl` is not `null`. **Steps to Reproduce**: 1. Install **E-learning**. 2. Open **Website > Site > Courses**. 3. Open any course. 4. Switch to **Edit mode**. 5. In the editor menu, disable **"Show Header"** under **Theme > Advanced**. 6. Save. 7. A traceback occurs. opw-4565265 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix keeps long channel member names contained within the member list in Discuss and Live Chat. It improves readability and prevents names from spilling into surrounding interface areas.
Original PR description
**Purpose:** to remove text overflow bug in the channel member name within the member list. **before :**  **after:**  --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fixes how EDI proxy client key files are named when identifying details are not yet available. Instead of creating unclear names like `False_False.key`, the system now uses a more meaningful file name, making setup and troubleshooting easier.
Original PR description
In most cases, at this time of the process the edi_identification and the client_id are not known and the key's name end up to be `False_False.key`, which is not very descriptive. task-no **Before:**  **After:** 
The calendar view now correctly centers the red dot that marks today. This small visual fix makes the current date easier to identify and improves polish in back-end calendars.
Original PR description
This commit fixes vertical misalignment of today indicator in back-end calendars. task-4617623 | Before | After | |--------|--------| | <img width="1115" alt="Screenshot 2025-03-04 at 16 55 25" src="https://github.com/user-attachments/assets/b879fcb1-c416-44ea-956d-ce9c4c8328f2" /> | <img width="1095" alt="Screenshot 2025-03-04 at 14 17 45" src="https://github.com/user-attachments/assets/47e64b96-2ca2-4ec5-83ab-d3d8e133175d" /> | --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
When an Argentinian company generates a certificate request without choosing a private key, the newly created key is now automatically shown in settings. Automatically generated keys also receive time-based names, making it easier to identify the correct key when uploading the official certificate later.
Original PR description
Steps to reproduce: 1. Install l10n_ar_edi 2. Use an Argentinian company 3. Go to the "Argentinean Localization" section of the settings 4. Make sure "Private Key" and "Certificate" are empty. Save.…
Steps to reproduce: 1. Install l10n_ar_edi 2. Use an Argentinian company 3. Go to the "Argentinean Localization" section of the settings 4. Make sure "Private Key" and "Certificate" are empty. Save. 5. Click on "Generate Request". 6. A key has been created but looks like it's not set on the company. --- Description of the issue this commit addresses: When generating a certificate request without selecting a private key to generate the certificate request with, a private key is generated by the system but in the settings windows, the field remains empty. Also, later, after retrieving the certificate from the official platform and trying to insert it in the database, it is required to link it with the private key that was used for its generation but since all automatically generated keys share the same name, this can be quite hard. --- Desired behavior after this commit is merged: When using the "Generate Request" button with no private key selected, the Private Key fields is populated with the key that was created for the generation of the request. Also, the names of the automatically generated keys use the current time for differenciation purposes. --- Note on the fix: The error happened because when using the Generate Request button, the key is created by a method called via another request so virtually, the assignment happens in another window. To fix that issue, the key has to be created and assigned before making any other request. --- task-4393259
Work entries based on employee attendances now exclude overtime that has been refused. This prevents payroll-related work entry durations from incorrectly including time that should not be paid or tracked as worked.
Original PR description
### Issue: - Refused overtime in attendance, is not correctly excluded from work entries, for employees where the contract work entry resource is attendances. ### Steps To Reproduce: - Create a new employee with a 40h work schedule. - Create a new contract for the employee, and set the `Work Entry Source` to `Attendances` - Change the contract status to running. - Go to the attendance tab. - Create a new attendance for the employee. - Make sure the attendance interval includes some overtime. - Confirm the attendance. - Refuse the overtime in the attendance. - Go to work entries and regenerate new ones. - Notice the work entry duration includes refused overtime. ### Solution: - In `_get_attendance_intervals` we rely on the `check_out` date to determine the attendance interval. however this date coresponds to the end of the attendance including refused overtime. - We modified the attendance `check_out` date to remove hours that are refused overtime. opw-4571285
This change prevents users from accidentally creating company-related folders in the wrong personal area from configuration screens. It also lets teams delete unused app folders after disabling related integrations, while restoring the right folder when those integrations are re-enabled.
Original PR description
See included commits that * allow deleting unused company folders * prevent quick creating folders in the config settings opw-4444537 Task-4531261
This update ensures document owners and inherited folder members keep the correct access when documents are created or copied. It fixes access issues for HR Payroll employee declarations so the right payroll folder members can view generated documents, while hiding owner-only access details from the permissions panel.
Original PR description
\+ tests update in documents_approval Fix owner edit role member after copy or creating inside a folder, including while specifying access_ids. Allow client code to add members to the default members…
\+ tests update in documents_approval Fix owner edit role member after copy or creating inside a folder, including while specifying access_ids. Allow client code to add members to the default members added by the base logic of documents (owner's log) and folders inherited values => Fix HR Payroll Employee Declaration where members of the payroll folder would not have access to the generated documents. The paradigm is: * The owner should always have a "document.access" record created * It should be possible to add a member in addition to the inherited ones. * If one passes values for a member when creating, it should override the default value for that partner. * If access_ids is passed as `False`, it should prevent inheriting access (but not prevent a role=False record for owner). * Follow-up of https://github.com/odoo/enterprise/pull/77783, there is no need to enforce logic for owner's `documents.access` role as the owner is basically an empowered editor. Additionally, make sure that * No membership (document.access with role) is created for odoobot * The access of owner is not shown on the permission panel Task-4593290
Fixed an issue where shortcuts to link and video documents could appear incorrectly in the Documents kanban view. Users will now see the proper preview format in My Drive, making shortcuts easier to recognize and use.
Original PR description
Steps to reproduce: 1. Upload a link and Video type documents 2. Create a shortcut 3. Go to My drive 4. Kanban card not displayed correctly Technical Reason: When creating a shortcut via 'action_create_shortcut', missing 'mimetype' and 'url' fields caused improper rendering of link/video shortcuts. After this commit: will display the proper format of the link/video. Task-4477679
This change makes a helpdesk knowledge test run reliably whether or not demo data is installed. It standardizes the admin user's signature in the test so automated checks are not affected by differences in sample data.
Original PR description
Before this commit, the `helpdesk_pick_template_as_message_from_knowledge` tour fails in no demo because the admin user is not named `Mitchell Admin` and so the step does not find the signature field. This commit adds the signature on the admin user to make sure the signature will be the same with demo data and without demo data.
Appointment confirmation emails are now properly translated when customers book through the website in Spanish. This improves the customer experience by ensuring booking details are communicated in the selected language.
Original PR description
Steps to reproduce: - Go to website and set the lang to Spanish - Book an appointment from the website Bug: The confirmation email sent to the customer is not correctly translated to Spanish opw:4382606
Fixed an issue where using the jump-to-target action from a shortcut document could fail to select the original source document. This makes navigation from shortcuts in Documents more reliable for users working in My Drive.
Original PR description
Steps to reproduce: 1. create a shortcut document in My Drive 2. select that document 3. click on the jumpToTarget button to access the source document 4. it won't select the source document / original document Technical Reason: When selecting a document, it was incorrectly assigning the wrong res_id to originalSelection. After this commit: will select the correct source document from the shortcut document. Task-4506244