Wednesday, March 18, 2026
34 changes · saas-19.1
Resolved issues and error corrections
This update resolves an issue where timesheet descriptions were being duplicated when updating timesheet entries in the grid view. The fix ensures that new timesheet lines created after an update retain the original description, maintaining data accuracy and consistency for reporting.
Original PR description
To reproduce: ============= - on timesheet group by Project > Task > Description - on a line with a description, update a 0:00 cell to an other value - refresh or change view to list and back to grid - a new line with description '/' is created with the updated value Problem: ======== when creating the new timesheet it's by default given the name '/' which for the grid view is not in same group as the original line with the description. Solution: ========= when creating the new timesheet, we give it the same description as the original line. opw-5909249 Forward-Port-Of: odoo/enterprise#110554 Forward-Port-Of: odoo/enterprise#108894
This update fixes a visual inconsistency in the Odoo calendar view for timesheets. Previously, negative time entries were displayed as '-1h 15m', which was confusing. Now, the calendar view accurately reflects negative durations like '-45 minutes', aligning with how they're shown in the list view for clarity and accuracy.
Original PR description
The calendar view used Python's `divmod` for time calculations, which renders -45 minutes as -1h 15m. This representation is misleading for timesheet entries, while the list view already displays the values correctly. Adjust the calendar view logic to ensure consistent and accurate handling of negative durations. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#247925
This update resolves a technical error that prevented users from placing lunch orders with vendors when a 'Until Date' was specified. The fix ensures the system correctly handles date comparisons, preventing a traceback and allowing users to complete their orders. This improves the reliability of the Lunch module.
Original PR description
Steps to reproduce: ------------------------------ 1. Install Lunch module 2. Lunch > configurations > Vendors 3. Open any vendor and set Until date to any near future date 4. Go to My Lunch > New Order 5. Click on Any product with above vendor > Add to Cart 6. Click on Order Now Observation: ------------------------------ Traceback Occurs: ``` return not (self.recurrency_end_date and date.date() >= self.recurrency_end_date) and self[fieldname] ^^^^^^^^^ AttributeError: 'datetime.date' object has no attribute 'date' ``` Issue: ------------------------------ `_available_on_date` calls `date.date()` unconditionally, which fails when passed a `datetime.date` object (from `lunch.order`) since date objects lack the `date()` method. Solution: ------------------------------ Check instance type before calling `date()` to handle both `datetime.datetime` and `datetime.date` objects correctly. opw-5948688 Forward-Port-Of: odoo/odoo#249449
This update fixes an issue where the product search bar on the mobile version of the website wasn't functioning correctly. The fix ensures that searches are processed properly, allowing users to find products effectively on their mobile devices. This improves the overall shopping experience for mobile users.
Original PR description
Steps to produce: --- - Install `website_sale` module. - Go to `website > shop`. - Open the `Customizable Desk` product page. - From the website editor, `enable the search bar` for the product page.…
Steps to produce: --- - Install `website_sale` module. - Go to `website > shop`. - Open the `Customizable Desk` product page. - From the website editor, `enable the search bar` for the product page. - Switch to `mobile view`. - Now search for `drawer` in product search. Issue: --- - In mobile view, the search does not work. When performing a search, nothing happens, and the request is not executed. Root cause: --- - At [1], in the search template definition, the action attribute is missing in the search form. Solution: --- - Set the form action using keep(search=0) instead of leaving it undefined. - This ensures that the search behaves correctly depending on the context (global or category-scoped). [1]https://github.com/odoo/odoo/blob/51f59a293de1e86f66f30257f8fc0c419463d18c/addons/website_sale/views/templates.xml#L2239-L2259 opw-5992052 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#251694
This update resolves an issue where clicking on 'reply' links within Odoo mailboxes didn't function correctly. Now, clicking on a reply link will automatically take the user to the original conversation thread, improving the user experience and ensuring messages are easily accessible within their email chains.
Original PR description
Before this change, clicking on a `message in reply` in mailboxes had no effect. The expected behavior is for it to jump to the message in its origin thread. To fix it, this commit ensures that `useMessageHighlight` hook receives the correct thread which in this case is the origin thread of the message in reply. task-5343804 Forward-Port-Of: odoo/odoo#253990 Forward-Port-Of: odoo/odoo#253334
This update resolves an issue where salespeople without project access were unable to open sale orders with timesheet entries. The fix uses `sudo()` to bypass access restrictions when determining button visibility, ensuring all salespeople can manage timesheets on sale orders.
Original PR description
to reproduce: ============= - create a user with only user access to timesheet and no access to project - create and confirm a sale order with a timesheet-delivered service product assigned to that salesperson - record some hours on that SO with another user - open the sale order as that salesperson -> AccessError problem: ======== `_compute_show_hours_recorded_button` reads `timesheet_count` and `project_count` on the sale order, which internally query `account.analytic.line` and `project.project` records. a salesperson without all timesheet or project groups lacks read access to those models, causing an AccessError during the compute. solution: ========= use `sudo()` since the result is only used to determine button visibility and does not expose sensitive data to the user. opw-5893324 Forward-Port-Of: odoo/odoo#248026
This update corrects a warning related to outdated cryptography libraries used in our payment processing system (payment_redsys). The change ensures compatibility with newer versions of the cryptography library, preventing potential issues and maintaining a stable payment experience for our customers.
Original PR description
In cryptography 43.0.0 (present in Debian Trixie), ARC4 and TripleDES were migrated to decrepit [^1], leaving a deprecation warning in the old path. This commit handles both previous pre/post 43.0.0 import path. runbot-233267 [^1]: pyca/cryptography@722a6393e61b3acb569f404218f213fe08478a96 Forward-Port-Of: odoo/odoo#253957
This update prevents ribbon customizations from resetting to default settings when creating a new ribbon. Previously, changes made immediately after creation were lost due to a delay in the ribbon's database assignment. Now, the system waits for the ribbon to be fully created before applying updates, ensuring customizations are reliably saved.
Original PR description
When creating a new ribbon and immediately changing its options, the title and colors would unexpectedly reset to None. This happened because the ribbon was not fully saved in the database before we tried to update its settings, causing the changes to be lost. Now we wait for the ribbon to be properly created and assigned its database identifier before applying any updates. A mapping system tracks the relationship between temporary and final identifiers to ensure changes are always applied to the correct ribbon. task-5503716 Forward-Port-Of: odoo/odoo#227626
This update corrects a display issue in the employee emergency contact section for employees outside of India. Previously, the ‘Relationship’ field was incorrectly shown to all employees, regardless of their company location. This fix ensures the field is only visible for employees associated with Indian companies, improving data accuracy and user experience.
Original PR description
### Steps to reproduce: - Install l10n_in_hr_payroll. - Create an employee (also link a user) in an Indian company and another company. - Go to My Profile > Private Information > Emergency. - The Relationship field is shown for non-Indian employees as well as employees from other countries. ### Issue: - We're not hiding the relationship field if employee is from other country. ### Fix: - We'll hide this field if an employee belongs to non-indian company. Task: 6008888 Forward-Port-Of: odoo/enterprise#109775
This update resolves an issue where image galleries could inadvertently share the same ID, leading to unexpected behavior when saving and refreshing website pages. The fix generates a truly unique ID for each gallery, preventing conflicts and ensuring consistent functionality across user sessions. This improves the stability and reliability of the website builder.
Original PR description
Commit [86a3f41] called `uniqueId()` to generate the image gallery id in the builder options. However, `uniqueId()` is only unique in the course of the current client session. As a result, you could drop a gallery, save your page, refresh it, edit the page and drop another gallery with the same id as the 1st one. Steps to reproduce: - Drop an image gallery - Save - Refresh - Go back to edit - Drop another image gallery => Check their ids. It's very probable that they are the same. - Save - Click on the "Previous" or "Next" arrow of the 2nd gallery => it updates the 1st carousel, not the 2nd one. [86a3f41]: https://github.com/odoo/odoo/commit/86a3f41a71a91c656a9969a4ef251f8c2ce3a266 Forward-Port-Of: odoo/odoo#253960
This update resolves a sporadic test failure related to scrolling to notifications within the email system. The fix ensures messages are fully loaded before the scroll action, preventing conflicts with other UI elements and improving test reliability. This enhances the overall stability of the email functionality.
Original PR description
Before this commit, test 'Can scroll to notification' may fail non-deterministically with the following error: ``` [toBe] expected values to be strictly equal (Element…
Before this commit, test 'Can scroll to notification' may fail non-deterministically with the following error: ``` [toBe] expected values to be strictly equal (Element .o-mail-NotificationMessage:contains(notification 0) not found in viewport of .o-mail-Thread) ``` This happens because while the test is awaiting the scrolling to unread, this is made with just an `await tick()` after opening discuss app. This is not enough: messages need to be loaded and then there's a tick with scroll to unread message. The awaiting of messages being loaded was missing in the test, which this error is fixing. This is important because the opening of pinned panel and click on jump may be triggered before the auto-scroll to unread message, and this is a problem because the jump to pinned message would be cancelled by the scroll to bottom. Also instead of awaiting the tick for scroll to unread message, this commit replaces it by assertion of message list being at the bottom. This asserts precisely the scroll has happen, and its ok to have it scroll at bottom as the last message is short and is necessarily smaller than viewport, thus the auto-scroll to this unread message implies this scrolls to the bottom of message list. Fixes runbot-error-238427 Forward-Port-Of: odoo/odoo#253928
This update resolves a technical issue that caused inconsistent test results in the HTML editor. The fix ensures the editor is fully loaded before tests attempt to interact with it, improving the reliability of the testing process. This contributes to overall product stability and reduces the risk of unexpected behavior.
Original PR description
See commit messages. Forward-Port-Of: odoo/odoo#253051
This update fixes a minor typo in the Odoo software's documentation related to country state selection. The 'Departement' word was incorrectly displayed, which has now been corrected. This ensures users receive accurate information and a better experience when setting up their business data.
Original PR description
Fixes #202198 Split from #249963 per reviewer feedback. **CLA sign-off:** Individual CLA signed (doc/cla/individual/vedantmadane.md) Forward-Port-Of: odoo/odoo#253224
This update ensures that follow-up emails sent regarding invoices include the correct invoice PDF attachment. Previously, emails used a generic attachment, which could be unreliable. Now, only the actual invoice PDF is sent, ensuring accurate and complete invoice information is delivered to customers.
Original PR description
Before, the followup emails used the Invoice's main attachment. This is not correct because a user might have uploaded an arb PDF. Only the actual PDF should be sent. Use `invoice_pdf_report_id` instead of `message_main_attachment_id`. opw-5126420 Forward-Port-Of: odoo/enterprise#110753 Forward-Port-Of: odoo/enterprise#98820
This update restores important VAT checks within the Odoo Enterprise system, which were previously disabled after recent changes. This prevents warnings from appearing when VAT returns are uploaded to Intervat, ensuring accurate reporting and compliance. The changes add a new validation step to guarantee data integrity.
Original PR description
Since the implementation of returns, some VAT checks were no longer being executed. This led to warnings when uploading the XML to Intervat. To catch these issues beforehand, this commit: - Restores the warning checks directly on the report. - Adds a new check on the VAT return that passes only if no warnings are raised. task-5883037 Forward-Port-Of: odoo/enterprise#107152
This update corrects a display issue where the CLABE field was appearing twice in the bank account form for Mexican companies. This change stems from a recent update to how bank information is displayed within Odoo. The fix ensures a cleaner and more accurate user experience.
Original PR description
Currently, the CLABE field appears twice in the bank account form for mexican companies. **Steps to reproduce:** - Install the `l10n_mx` module and switch to the `ESCUELA KEMPER URGATE` company. - Go…
Currently, the CLABE field appears twice in the bank account form for mexican companies. **Steps to reproduce:** - Install the `l10n_mx` module and switch to the `ESCUELA KEMPER URGATE` company. - Go to Invoicing > Customers > Customers and open any company partner. - Open the `Invoicing` tab. - For `Banks`, enter any number and click `Create and edit...`. **Observation:** The `CLABE` field is displayed twice in the bank account form. **Root Cause:** In previous versions, Banks were displayed as `lines` in the contact form. However, starting from `saas-18.2`, Banks are displayed as a `regular field with an internal link` that opens the bank form view. After commit [1], the view at [2] indirectly inherits from `base.view_partner_bank_form`, while the view at [3] directly inherits from the same base view. Both views add the field `l10n_mx_edi_clabe`, resulting in the `CLABE` field being displayed twice for Mexican companies. **Fix:** Since removing an XML view is not considered a stable solution, in the stable versions, so we make this field invisible. In the master, removes the redundant inherited view [2]. [1]: https://github.com/odoo/odoo/pull/187357/commits/05575b10d90cedb1ca9910aaa9f1293c3fafdd26 [2]: https://github.com/odoo/odoo/blob/6c0baa2a976eace1f414731d66674243e90664f2/addons/l10n_mx/views/partner_view.xml#L1-L13 [3]: https://github.com/odoo/odoo/blob/6c0baa2a976eace1f414731d66674243e90664f2/addons/l10n_mx/views/res_bank_view.xml#L15-L25 opw-6014799 Forward-Port-Of: odoo/odoo#252963
This update ensures the title of the embedded account report within the annual report correctly reflects the user's selected language. Previously, the title remained in English regardless of the UI language setting. This change improves the user experience by providing localized content.
Original PR description
### Issue before this commit: When generating the annual report, the title of the embedded account report displayed in the table of contents remained in English even when the user interface language was changed. ### Steps to reproduce the issue: 1. Install another language than english and switch to that one 2. Install Accounting app and audit modules 3. Go to Accounting > Revision > Annual Report 4. Create an Annual Report and click on it 5. Index is in the correct language but the title inside is not ### Cause of the issue: The issue occurred because the name property passed to the AccountReportComponent was not translated. Reason to introduce the fix: To translate the embedded account report title according to the user’s current language. opw-5958383 Forward-Port-Of: odoo/enterprise#109962
This update fixes a usability issue on mobile devices where a key button for loan calculations was hidden within a dropdown. The change ensures a smoother, more intuitive experience when creating new loans on mobile, allowing users to easily access necessary features. This improves efficiency and reduces frustration for mobile users.
Original PR description
Forward-Port-Of: odoo/enterprise#110552 Forward-Port-Of: odoo/enterprise#110120
This update fixes a technical issue in the Odoo Enterprise software related to demo certificates for Peru (l10n_pe_edi). The certificate's lifespan was extended by ten years to ensure it remains valid for testing purposes. This ensures accurate demonstration of the module's functionality.
Original PR description
In runbot's faketime tests, the test 1 year in the future goes past the end date of the demo PE certificate which had a lifetime of 2017-02-25 to 2027-02-25. This commit replaces that with one that lasts another ten years (2026-03-13 to 2036-03-13). runbot-241058 Forward-Port-Of: odoo/enterprise#110719
This update resolves an issue where users couldn't select 'Other Expenses' as an option for expense accounts when creating loans. This change expands the flexibility for accurately categorizing loan expenses, ensuring a more complete and precise record of financial transactions. It improves the usability of the loan management feature.
Original PR description
Allow accounts with the "Other Expenses" type to be selected in the Expense Account field of Loans. task-5946452 Forward-Port-Of: odoo/enterprise#110085
This update resolves an issue that prevented the system from correctly handling KSeF (Polish eInvoice) rate limits. Previously, a technical error occurred when the system reached its request limit, causing a crash. This fix ensures the system gracefully handles rate limits and prevents errors, maintaining reliable invoice processing for Polish businesses.
Original PR description
Before this commit: Steps 1. Create a Polish company 2. Run scheduled action "Polish eInvoice: Download vendor bills from KSeF" 3. If the customer gets 429 Too Many Requests => A traceback error is raised as message isn't an attribute in KSeFRateLimitError object `AttributeError: 'KSeFRateLimitError' object has no attribute 'message'` This happens because `KSeFRateLimitError` does not define a `message` attribute. The message is only passed to the base Exception and stored in `args`. After this commit: Use `str(e)` to properly retrieve the exception message and avoid the AttributeError. opw-6009380 Forward-Port-Of: odoo/odoo#253549
This update resolves an issue where the icon toolbar was unexpectedly appearing in the To-Do module when creating a Table of Contents. The fix removes a redundant check within the HTML editor that triggered this behavior, ensuring a smoother user experience. This improves usability and prevents unnecessary visual clutter.
Original PR description
Steps to Reproduce: - Go to To-Do. - Inside a list, insert a Table of Contents. - Click at the top, outside of the Table of Contents. Description of the issue - The icon toolbar appears unnecessarily. Cause: - This happens because the `icon_plugin` checks whether a node’s child contains an icon and, if so, displays the icon toolbar. Although the Table of Contents contains an icon, this condition passes, causing the toolbar to appear. - The same issue can occur with other elements that contain an icon. For example pressing enter before a star element also opens the icon toolbar. Solution: - Remove the condition that checks whether a node’s child contains an icon. task-5954459 Forward-Port-Of: odoo/odoo#250918
This update resolves a technical issue that was causing test failures in the point-of-sale preparation display module. The trigger that checked for a spinning icon (fa-spin) was removed because it was incorrectly reacting to minor delays, which has now been addressed. This ensures the display functions reliably.
Original PR description
In this commit: = - Removed the trigger that checks for `fa-spin` as it was causing test failures when minor delays occurred between steps. - Checks for `fa-spin(Sync)` is alredy handled by the `isSynced` or `waitRequest`. Runbot-error: [198580](https://runbot.odoo.com/odoo/error/198580), [234025](https://runbot.odoo.com/odoo/error/234025) Forward-Port-Of: odoo/enterprise#87281
This update ensures that the 'File' constructor in Odoo correctly receives the MIME type of uploaded files, aligning with modern web standards. This change improves compatibility with older Chrome versions and ensures files are handled properly across different browsers, preventing potential display or functionality issues.
Original PR description
The `type` option passed to the `File` constructor should be a string representing the MIME type of the content that will be put into the file. Chrome 146 actually follows the Fetch Standard and preserve the data URL MIME type parameter. This commit fixes the malformed MIME types passed to the `File` constructor to ensure proper compatibility with pre/post Chrome version 146 (and actually follow the spec). References: - https://chromestatus.com/feature/4874471565557760 - https://developer.mozilla.org/en-US/docs/Web/API/File/File#type runbot-241901 Forward-Port-Of: odoo/odoo#254154 Forward-Port-Of: odoo/odoo#253631
This update ensures Odoo correctly handles file types when creating files, aligning with modern web browser standards. Specifically, it fixes an issue where file types weren't being properly transmitted, which could cause compatibility problems with older versions of Chrome. This ensures consistent file handling across different browsers.
Original PR description
The `type` option passed to the `File` constructor should be a string representing the MIME type of the content that will be put into the file. Chrome 146 actually follows the Fetch Standard and preserve the data URL MIME type parameter. This commit fixes the malformed MIME types passed to the `File` constructor to ensure proper compatibility with pre/post Chrome version 146 (and actually follow the spec). References: - https://chromestatus.com/feature/4874471565557760 - https://developer.mozilla.org/en-US/docs/Web/API/File/File#type runbot-241901 Forward-Port-Of: odoo/enterprise#110812 Forward-Port-Of: odoo/enterprise#110496
This update corrects a misconfiguration in the Hungarian tax settings. Previously, the 0% EU Goods Intra-community tax was incorrectly linked to external partners. This change ensures the tax is accurately linked to EU partners, aligning with Hungarian tax regulations and improving reporting accuracy.
Original PR description
In Hungary, the 0% Goods Intra-community tax is mapped with the EU partner & Partner outside the EU, which doesn't make sense. Intra-community taxes should only be mapped with the EU partner fiscal position. This commit removes the outside EU position from this task. no-task Forward-Port-Of: odoo/odoo#253526
This update fixes an issue where cancelled vendor bills were incorrectly included in the Sweden accounting SIE export. The fix ensures that cancelled transactions are properly excluded, aligning the export with the general ledger and providing accurate reporting. This prevents discrepancies in financial data.
Original PR description
Steps to reproduce: - Install l10n_se (Sweden - Accounting). - Create a Vendor Bill with a line using Account 4000 (Cost of goods) for any amount (e.g., 10,000 SEK). - Confirm/Post the bill. - Cancel the bill. - Go to Accounting > Reporting > SIE Export and generate the export for the current year. - Open the downloaded .se file and locate the #RES line for Account 4000. Expected: The balance should be 0.00 (cancelled entries must be ignored, matching the GL). Actual: The cancelled amount (10,000) is incorrectly summed into the exported balance. opw-5901999 Forward-Port-Of: odoo/enterprise#110612 Forward-Port-Of: odoo/enterprise#108767
This update resolves an issue where the copyright background color wouldn't apply correctly when the footer had no background color. The fix adds a fallback value to the CSS, ensuring the copyright color displays as intended regardless of the footer's background setting. This improves the visual consistency of the website.
Original PR description
Before this commit, a css error would happen when the user tried to change the copyright background color if the footer had no background color.
This was due to $-footer-color not having a fallback value when neither o-color('footer-custom') nor o-color('footer') was defined.
This commit adds a fallback value to fix the issue.
task-5452457
Forward-Port-Of: odoo/odoo#248283This update resolves an issue where users with dark mode enabled in their browsers (like Brave) experienced usability problems with our point-of-sale and self-order systems. A simple change – adding a meta tag – prevents the browser from overriding our website's colors, ensuring a smooth experience for all customers.
Original PR description
Users who have enabled the dark mode option in Brave that automatically modifies website colors may experience usability issues with the self-order and point_of faile. To avoid this, a meta tag has been added to disable Dark Reader modifications . Task.6037294 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#253892
This update addresses a bug where a caption remained on the HTML editor after replacing an image with another media type. The fix ensures that the caption is automatically removed when an image is replaced, preventing errors and improving the user experience. This ensures consistent behavior and avoids unexpected issues when users modify their content.
Original PR description
**Current behavior before PR:** Steps to reproduce: - Add a caption on an image - Click on image - Replace image by an icon using replace option from Toolbar - Putting cursor on caption input and clicking anywhere outside editable leads to traceback. This happens because after replacing image with an icon, caption is still there but there is no image inside caption. As result, in `cleanForSave` accessing image leads to traceback. **Desired behavior after PR is merged:** Now, if image is replaced by any other media than image, caption is removed. task-5950977 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#253723 Forward-Port-Of: odoo/odoo#249452
This update resolves an issue where clicking 'View' links after deleting a website page (like 'ContactUs') didn't function correctly. The fix ensures that links now accurately direct users to the correct records, improving the user experience and preventing navigation errors. This was a minor bug related to how URLs were constructed.
Original PR description
**Steps to reproduce:** 1. Go to the list view of website pages. 2. Select the page "ContactUs". 3. Click Delete. 4. A warning dialog appears. 5. Unfold one of the lists of records where the page is used. **Issue** Clicking on a record link (for example, "View") does not redirect anywhere. This is due to the use of the model display name in url. caused by https://github.com/odoo/odoo/commit/de302c2d36305c0d7562572a30587641eabfe914 **Fix** Use the model_name instead of the display name in the URL. task-5880458 Forward-Port-Of: odoo/odoo#245932
This update fixes an issue where the Gemini AI occasionally returned empty responses to users, creating a blank screen. The change implements a retry mechanism with increased budget attempts, ensuring a response is always delivered. This improves the user experience by preventing perceived errors when the AI is temporarily unavailable.
Original PR description
It often occurs that gemini responses come back empty without anything to show to the users. Specifically, the response object has content but the "parts" are empty - the place were you either get a function call or a message to the user by the LLM. Prior to this commit, when this occured, we didn't perform any explicit handling. We would always just return what the LLM responded with, which when empty would be nothing. UX wise, it would seem like something broke because the user would basically get no reply. In this commit, we add a retry mechanism in `_request_llm_google` of `llm_api_service.py`, where if we get no response, we increase the thinking budget of the next request and try again. After 3 unsuccessful tries, we send a failure response to the user. Task-5959805
This update resolves a technical issue preventing users from successfully interacting with the AI when viewing documents through the file viewer. The problem stemmed from a negative file ID used by the AI, which was intentionally set by the documents team to prevent data reloading. The fix ensures the AI correctly identifies and processes document attachments.
Original PR description
Before this commit, whenever a user tried to interact with the ai regarding a document opened in the file viewer, they would get a traceback with a 404 error. This was caused by the file id that we passed in the `openAIChat` method of the `AIChatLauncher` service. The id is negative on purpose by the documents team - there is a comment stating that it "prevents a reload from resolving to a real record". On the AI side, when using the id to search for the attachment to send to the AI, we get an error because the id is negative. This bubbles up to the user. We fix this by replacing the `this.file.id` with the `this.file.documentId` which holds the same value - just not-negative. Task-6030598
This update fixes an issue where creating users for employees with identical email addresses would cause an error. Now, the system will display a warning instead, allowing users to create multiple employees with the same email without disrupting the system. This improves user experience and data integrity.
Original PR description
Creating users for multiple employees sharing the same email address raises a traceback.
Stpes to reproduce the error:
- Install the ``hr`` module
- Create two employees with the same email
- Go to List view of employees > Select both employees > Actions > Create user
Traceback:
```py
ValueError: UniqueViolation('duplicate key value violates unique constraint "res_users_login_key"
```
https://github.com/odoo/odoo/blob/0bfd2a253781e43b0e0d16b3fd9d1df485f4fa6b/addons/hr/models/hr_employee.py#L389
The error occurs because the same email is used as the login for multiple users.
This commit ensures that when multiple employees share the same email address,
a warning notification is displayed instead of raising an error.
sentry-7324335174
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#253258