Tuesday, January 6, 2026
58 changes · master
Resolved issues and error corrections
This update resolves a warning related to employee compensation calculations within the US payroll module. The team re-added a necessary logic to correctly identify employees without worker compensation, ensuring accurate reporting and compliance. This fix improves the reliability of payroll data.
Original PR description
description: following the refactor (https://github.com/odoo/enterprise/pull/83136), the warning (`hr_payroll_dashboard_warning_employee_wa_without_worker_compensation`) has been altered. fix: this commit adds back `not` to compute the `employees_without_worker_compensation` accurately. :) task-5407490 Forward-Port-Of: odoo/enterprise#101663
This update fixes a visual issue in Odoo's Chatter where attachments and emoji reactions would overlap, creating a cluttered and difficult-to-read message view. The change adds spacing to ensure attachments and reactions are clearly separated, improving the overall user experience and readability of messages.
Original PR description
**Description of the issue/feature this PR addresses:** ---------------------------------------------- In version 19, when a message in the Chatter includes an attachment and an emoji reaction is…
**Description of the issue/feature this PR addresses:** ---------------------------------------------- In version 19, when a message in the Chatter includes an attachment and an emoji reaction is added, both elements appear visually too close to each other. This overlap creates a cluttered look and reduces readability in the message view. **Current behavior before PR:** ---------------------------------------------- - Emoji reactions and attachment previews are rendered too close together. - Negative or insufficient top margin on the reactions container causes overlap. - Visual inconsistency between text-only messages and messages with attachments. **Desired behavior after PR is merged:** ---------------------------------------------- - Proper spacing between attachments and emoji reactions in the Chatter. - Consistent, clean layout across all message types. - Improved readability without affecting compactness for text-only messages. Task-5259482 ---------------------------------------------- I confirm I have signed the CLA and read the PR guidelines at https://www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#237943
This update ensures that the highlight color used in the website footer automatically adjusts when the website's theme is changed. Previously, the highlight color remained a default purple, regardless of the selected theme. This change improves the visual consistency and branding of the website.
Original PR description
Steps to reproduce: 1. Go to the theme tab and change the colors of the main preset. 2. Select any text in the footer. 3. Expand the toolbar and click the highlight option. Issue: The highlight…
Steps to reproduce: 1. Go to the theme tab and change the colors of the main preset. 2. Select any text in the footer. 3. Expand the toolbar and click the highlight option. Issue: The highlight selector still uses the default purple color instead of adapting to the updated theme preset. This happens because the text highlight color uses "--o-color-1", which does not update when the theme colors are modified. Fix: Used "var(--hb-cp-o-color-1)" as the default text highlight color instead of "--o-color-1", ensuring the highlight automatically adapts to theme changes. Before This Fix: | highlight selector color before changing theme preset | highlight selector color after changing theme preset | |-----------------------------|---------------------------------| | <img width="450" height="404" alt="image" src="https://github.com/user-attachments/assets/c92eed7e-1856-4e08-879a-a74e2506ab9c" /> | <img width="399" height="389" alt="image" src="https://github.com/user-attachments/assets/9a938e80-9e01-49fd-b6a1-cf9baaa64358" /> | After This Fix: | highlight selector color before changing theme preset | highlight selector color after changing theme preset | |-----------------------------|---------------------------------| | <img width="394" height="413" alt="image" src="https://github.com/user-attachments/assets/674958bc-7df7-44fa-97c0-5ae78608dc6a" /> | <img width="408" height="428" alt="image" src="https://github.com/user-attachments/assets/1d48ca49-7d18-4681-8443-b9887eef0dbf" /> | task-5375414 Co-author: Alay Patel <alap@odoo.com> Forward-Port-Of: odoo/odoo#238471
This update enhances the compatibility of the import action feature, allowing users to specify the target model when importing data. This change addresses a previous issue and ensures existing import actions continue to function correctly. It's a minor fix to maintain backward compatibility.
Original PR description
This commit follows up the commit [1] and allows adding an `model` to the parameters of the `import` action, for retrocompatibility purposes. Note that, this retrocompatibility existed before the commit [2], which was partially reverted by the commit [1]. [1] https://github.com/odoo/odoo/commit/7e351d87a5b6faad5bef447bdb077b7637f9c936 [2] https://github.com/odoo/odoo/commit/033d6afe36426067a7bada8b812898169d7968de Forward-Port-Of: odoo/odoo#241993
This update removes a previously implemented fix for the account import action. A similar correction has already been addressed in a related extended class, making this reversion unnecessary. This ensures consistent functionality within the account import process.
Original PR description
Since [1] the fix on account_import_action is not needed anymore, a similar fix is done in the extended class. [1] https://github.com/odoo/odoo/commit/7e351d87a5b6faad5bef447bdb077b7637f9c936 Forward-Port-Of: odoo/enterprise#103216
This update clarifies the behavior of a specific function within the Odoo account module. Previously, colleagues were under the impression that this function created new records when it actually only updated existing ones. This change ensures consistent understanding and prevents potential misinterpretations of the account system.
Original PR description
I have adding a docs for force_create that I have added in a previous task as it was not clear for some colleagues that it do not create but still updates the available records 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#241995
This update fixes a visual issue on the user profile page where course tags were being cut off. The change adjusts the layout to ensure all tags are fully visible, maintaining a consistent and professional appearance. This improves the user experience by preventing information truncation.
Original PR description
In the website profile page, the course tags are slightly cut on the bottom. This commit adapts the block size to fit the entire tag. Note that the combo of fixed height / hidden overflow is actually intended to only show a single line of tags and not all of them, to avoid having a variable course card total height. Task-5457464 Forward-Port-Of: odoo/odoo#241897
This update corrects a bug where subscription order processing was repeatedly triggered, leading to inefficiencies. The fix ensures that order progress is accurately tracked, preventing redundant processing steps and improving order management. This resolves a potential issue with order completion times.
Original PR description
Before this commit, when the continue instruction was called before the _subscription_commit_cursor call, the order would be reprocessed again and and again. Commit with a progress=1 was commited but if the continue was called before, progress with 0 was never called. Forward-Port-Of: odoo/enterprise#102142
A technical issue causing errors when accessing holiday attests in the payroll module has been fixed. The update ensures the system correctly handles data related to payslips, preventing a crash during the process. This improves the reliability of holiday request workflows.
Original PR description
Issue: in debug mode, the function `validateProps` is called on the component so it raises an error because `payslipsYear` is in the props but not defined in the schema Steps to reproduce (developer mode): - fill in the departure notice period and payslip wizard - try to open departure: holiday attests from the cog menu - you get a traceback because of unknown key `payslipsYear` Fix: added `payslipsYear` to the props definition task-id: 5398621 Forward-Port-Of: odoo/enterprise#101605
This update fixes a minor typo in a report generation method within the Odoo Enterprise application. The change ensures consistent naming conventions and improves the overall readability of the code. This ensures accurate address formatting in reports.
Original PR description
Self explanatory. formated -> formatted and _get is more consistent with Odoo naming conventions. No task ID
This update fixes an issue where clicking on employee avatars within vehicle records didn't open the employee details. The outdated widget was replaced with a new, supported version, ensuring users can now easily access employee information from vehicle records. This improves the user experience and data accessibility.
Original PR description
**Steps to reproduce:** - Install the Fleet and Employees modules. - Navigate to the Fleet app. - Open any vehicle record. - Click on the employee avatar displayed on the vehicle form. **Issue:** - Clicking on the employee avatar does not open the employee details card. **Cause:** - The currently used widget is outdated and no longer functions correctly. **Fix:** - Replaced the old widget with the new, supported widget. task-5410251
This update fixes a reporting issue in the French P&L reports. The 'owner remuneration' account (644) was incorrectly categorized as 'tax and duties'. This change ensures accurate reporting of wages and salaries for French businesses, aligning with accounting standards.
Original PR description
Account '644 owner remuneration' was in the 'tax and duties' category in the french P&L but it belongs to the 'wages and salaries' category task-5446018 Forward-Port-Of: odoo/enterprise#103214 Forward-Port-Of: odoo/enterprise#103061
This update enhances the security of our expense tracking system by adding a crucial layer of protection during database copies. This ensures that database copies created for support investigations won't inadvertently impact the live production system or customer data, providing a safer environment for troubleshooting.
Original PR description
This commit adds a complement to the neutralization necessary for the hr_expense_stripe module. The main neutralization is handled by the certificates module, but this covers a rare edge case (creation of new accounts in production mode for companies that do not already have an account), and makes the overall neutralization more bullet proof. ---------------------------------------------------------------------- The purpose of the standard neutralization framework is to allow us to create database copies that will not interact with external systems in ways that could impact the production database (or if it is not possible to prevent the interactions, make sure that they are benign or won't result in actual changes), or impact the customers of the operator of the production database. This is mainly useful to allow safe support investigation on database duplicates. Forward-Port-Of: odoo/enterprise#102702
This update addresses an issue where the Swedish blackbox feature in Odoo would generate tracebacks when receiving non-UTF-8 characters from connected devices. The fix silently ignores these decoding errors, preventing disruptions and ensuring reliable data transmission from serial devices.
Original PR description
If a non utf-8 chracter is returned by a serial-connected device, the supported method of the swedish bb raises a traceback. Forward-Port-Of: odoo/odoo#242114
This update resolves an issue where color fields within editable lists weren't consistently saving changes when using the 'bottom' editing mode. Previously, edits to color fields were lost. This fix ensures that color field changes are now reliably saved when the list is in 'bottom' mode, improving data accuracy and usability.
Original PR description
This commit fixes the issue where editing a field with widget="color" does not save it when the list is in editable="bottom" mode. project.task~5262582 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#238644
This update corrects a minor layout issue in the partnership module. A recent change shifted the grade ID field, and this fix restores it to its original position. This ensures data is displayed correctly and consistently within the system.
Original PR description
The following commit [1] modified the position of the VAT field, which caused the grade_id field to be shifted. So this commit updates the xpath to restore grade_id to its original location. [1]: https://github.com/odoo/odoo/commit/3a56f59d466e72b3bf99f241c479cd3130173b41 task-5461569 Forward-Port-Of: odoo/odoo#242006
This update fixes an issue where Odoo incorrectly processed partner names with only one word. Previously, single-word names resulted in an empty first name field. Now, single-word names are correctly assigned to the first name, ensuring accurate data entry and reporting for partner information.
Original PR description
Description of the issue/feature this PR addresses: The name splitting logic fails when the partner name contains only one word, resulting in an empty first name. Current behavior before PR: Splitting a single-word name returns an empty first name and assigns the word to the last name. Desired behavior after PR is merged: A single-word name is correctly assigned to the first name field, leaving the last name empty. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#241926
This update fixes a potential issue where printing failed on Windows systems. By adding a catch-all exception handler, the system now gracefully manages printing errors, preventing disruptions to users. This enhances the overall stability and reliability of the IoT device printing functionality.
Original PR description
This commit adds the try/except block around print_raw method of the virtual iot box to allow catching exceptions when printing on Windows Forward-Port-Of: odoo/odoo#238774 Forward-Port-Of: odoo/odoo#238633
This update resolves a crash that occurred when exporting data from the MRP MPS view. The issue was caused by a recent change that incorrectly pulled data from a related model. Now, the export function correctly displays the expected fields from the 'mrp.product.forecast' model, ensuring data exports work as intended.
Original PR description
Steps to reproduce: - Go to MPS - Select one or more records - Click on Action > Export - Search and expand "Forecasted quantity at date" - Select "Forecasted quantity at date/Minimum to Replenish" - Export Before: A traceback is raised with the following error: "ValueError: Invalid field 'min_to_replenish_qty' on 'mrp.product.forecast'" This is caused by the model being overwritten by "mrp.production.schedule". The regression was introduced by commit ac52882, which added a default model "mrp.production.schedule". After: The export works correctly with sub fields. https://github.com/odoo/enterprise/commit/ac52882891a9ede6a5b008ac39fc62b82b7bf813 opw-5406704 Forward-Port-Of: odoo/enterprise#103097
This update resolves a bug that prevented sale orders with zero unpaid amounts from appearing in the POS menu, causing test failures. The change increases the sale order quantity to 1, ensuring the order is visible and the tests can run correctly. This improves the reliability of the POS functionality.
Original PR description
Because of https://github.com/odoo/odoo/pull/230809, it will cause the quotations/orders menu to filter out any sale orders which have an unpaid amount of 0. The test_rental_pos test tries to create a sale order with a quantity of 0 and then settle it in the POS, but because of the filter, the sale order will not show up in the menu causing the test to fail. This PR is to increase the quantity in the sale order to 1 so that the order shows up and the test can be executed properly. Task-5138081 Forward-Port-Of: odoo/enterprise#96876
This update fixes an issue where assigned values in project properties would disappear after saving. The problem stemmed from how the system handled data retrieval, specifically when creating Many2one relationships. The fix ensures that property values are correctly saved and displayed.
Original PR description
**Steps to produce:** - Install project module. - Go to project > Open any project > Open any task > Click on gear icon. - Click on Add properies > Set Field type as `Many2one` and Model as…
**Steps to produce:** - Install project module. - Go to project > Open any project > Open any task > Click on gear icon. - Click on Add properies > Set Field type as `Many2one` and Model as `Contact`. - Now assign value to Property 1 > Click on `External button` > Click on `Save & Close`. **Issue:** - The assigned value disappears after saving. **Root cause:** - At [1], since `id` is not an active field (see [2]), it is not present in record.data, which is expected. However, record.data is then passed to m2oTupleFromData, which assumes that the data includes an id because it is normally used on data coming directly from the ORM. - Additionally, since display_name is also not present, m2oTupleFromData falls back to record.data.name, which is not proper. **Solution:** - Use an ORM read to retrieve the proper display_name of the record before constructing the Many2one tuple. [1]: https://github.com/odoo-dev/odoo/blob/24ccc3faf14ade70b21bf253af16a534df726fc8/addons/web/static/src/views/fields/properties/property_value.js#L87-L89 [2]: https://github.com/odoo/odoo/blob/369ca1e5a154235e80b9ea6af7b3f10442c0939f/addons/web/static/src/model/relational_model/record.js#L793-L795 Before: <img width="589" height="68" alt="bef" src="https://github.com/user-attachments/assets/b2aeba0c-1c52-4663-9f94-5c7808a882db" /> After: <img width="613" height="81" alt="after1" src="https://github.com/user-attachments/assets/a3b3d733-929d-4a24-9e17-c73d9569e9b7" /> **opw-5257819** --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#240443 Forward-Port-Of: odoo/odoo#238052
This update removes the document selector from scheduled messages generated for EDI processes (like 'EDI, by Post'). This prevents users from adding attachments to these system-generated messages, aligning with how they're intended to be used. This change supports a new requirement for invoice validation errors before scheduling.
Original PR description
PURPOSE: - This commit makes the document selector invisible on the scheduled messages, which are generated from the account_move_send_wizard, like scheduled messages for 'EDI, by Post' methods. - Because we don't want to allow users to add attachments to such messages, as these messages are system-generated. Related to 'Schedule the send & print invoice' task. Related Community PR: https://github.com/odoo/odoo/pull/210730 Task: 4677423
This update fixes a minor issue where job application emails incorrectly displayed 'your applicant' in the subject line. The change now ensures the subject line accurately reflects 'your application,' improving clarity and professionalism for applicants. This ensures a better user experience.
Original PR description
Before this commit, when you applied for a job, the email notification you received incorrectly showed "your applicant" in the subject line (or header) instead of the: "your application." This change fixes that issue by correcting the header name in the email. task-5270293
This update improves the speed of account reports by optimizing how the system checks for specific issues like unknown partners and overdue payments. By streamlining data queries, the reports now run more efficiently, reducing processing times and improving overall system performance. This change focuses on internal improvements to the account reporting module.
Original PR description
* For unknown partner checks, instead of generating the lines twice, perform one query similar to report. * For overdue payable/receivable checks, instaed of building the report to get the `Older` period total, perform a limit query to have same info. * Consider return dates in the action of openning the report. task-5429134
This update resolves a technical issue related to the l10n_gt_edi module, specifically adding a 'neutralization' process. This ensures that database copies created for support investigations are safe and won't unintentionally impact the live production system or customer data.
Original PR description
This commit adds the missing neutralization necessary for the l10n_gt_edi module The purpose of the standard neutralization framework is to allow us to create database copies that will not interact with external systems in ways that could impact the production database (or if it is not possible to prevent the interactions, make sure that they are benign or won't result in actual changes), or impact the customers of the operator of the production database. This is mainly useful to allow safe support investigation on database duplicates. Forward-Port-Of: odoo/enterprise#102695
This update fixes an issue where newly added buttons in the form editor weren't correctly focused or displayed in the sidebar. The fix ensures a smoother workflow for users creating and editing buttons within the Odoo Enterprise web_studio interface. This improves usability and efficiency.
Original PR description
Have an arch with many conditional button in the header Click on Add a button in the form editor. Before this commit, the new button was not correctly focused and the sidebar did not display the properties of the new button. This was because we gave the wrong xpath coordinates to focus to the editor. After this commit, this flow works as expected task-5364798 Forward-Port-Of: odoo/enterprise#102380 Forward-Port-Of: odoo/enterprise#101059
This update corrects a display inconsistency in promotions where the discount product name was incorrectly linked to the promotion description. This issue stemmed from a technical workaround introduced previously to address an accounting problem. Removing this field ensures accurate discount descriptions are shown to users.
Original PR description
### Issue: Due to this issue, users can change the technical field `discount product` which cause inconsistency in discount description. #### To reproduce: 1- Create a promotion called `AAA`: -…
### Issue: Due to this issue, users can change the technical field `discount product` which cause inconsistency in discount description. #### To reproduce: 1- Create a promotion called `AAA`: - Rules: If minimum 50.0 spent grant 1 point per order - Rewards: 10% discount per order in exchange of 1 point 2- Using debug mode, in promotion's reward view, change the `Description on order` to `AAA 10%`. Save the promotion and you can see the `Discount product`'s name is set to the same description. 3- Create another promotion called `BBB`: - Rules: If minimum 50.0 spent grant 1 point per order - Rewards: 10% discount per order in exchange of 1000 points. 4- In promotion reward's view change the `Discount product` to `AAA 10%` which is promotion `AAA`'s discount product. 5- Change the `Description on order` to `BBB 10%` and save. 6- You can see the name of `Discount product` is changed as well. 7- In promotion `AAA` and you can see the description and the name of `Discount product` mismatch. 8- Navigate to shop, and add a product to cart with a price of more than 50. 9. You can see after applying promotion `AAA` the description from promotion `BBB` is shown. ### Cause: The technical field `Discount product` is never meant to be changed, and this field is introduced for reporting purposes and showing the discount applied in cart. However, this field is added to view in #132857. This is done as a hack to find the `Discount product` created for the promotion, as a workaround for an accounting issue due to adding account to `Discount product`, and originally `discount_line_product_id` was not supposed to be shown or changed through form. After discussion with PO, we decided this field should be removed from the view. Also removing this field will not undo the main fix of #132857, and that workaround was introduced only to find the `Discount product` for that specific client's use case. opw-5229633 Forward-Port-Of: odoo/odoo#240684
This update enhances the reliability of our accounting tests by preventing unnecessary invoice line creation. Previously, tests were sometimes failing due to duplicate invoice line IDs. This change ensures tests run smoothly and consistently, reducing the risk of false failures and improving overall test stability.
Original PR description
Enterprise PR: https://github.com/odoo/enterprise/pull/102632 Forward-Port-Of: odoo/odoo#241288
This update corrects a minor bug in the live chat feature that prevented conversation descriptions from working correctly. The issue stemmed from a subtle coding difference that wasn't detected by existing tests. Adding new tests ensures this functionality now operates as expected.
Original PR description
*: im_livechat Accidental regression from https://github.com/odoo/odoo/pull/237749 The code had getter named `allowDescriptionsTypes` and the patch was `allowDescriptionTypes`. While this looks the same at a glance, there's is a "s" in "description(s)" that differs. This subtle change was not caught due to lack of test coverage, which this commit adds. Forward-Port-Of: odoo/odoo#242070
This update resolves an issue where unnecessary dialogs appeared during One-click Payment in the POS system, leading to errors. The fix prevents the creation of new orders during One-click Payment, ensuring a smoother checkout process for customers. It also corrects a bug where the Delivery preset was incorrectly removed.
Original PR description
steps: - Configure a default preset as Delivery or Takeout and enable One-click Payment - Open the POS restaurant. - Open any table and add a product. - Click the One-click payment method. issue: - Unnecessary dialogs appear on the ReceiptScreen (e.g., customer selection or time-slot selection), followed by traceback. reason: - The order is validated on the ProductScreen during One-click Payment and ProductScreen creates new draft order. fix: - After this commit, new order will not be created on the ProductScreen with One-click Payment.. - If validation fails (e.g., an RPC error), it will redirected back to the previous screen. - In case of Delivery preset, on discard do not remove Delivery preset. task-5391389 Forward-Port-Of: odoo/odoo#241906 Forward-Port-Of: odoo/odoo#239038
This update corrects a previous issue where attendance managers could modify their own attendance records. The change removes this automatic permission from the 'Officer: Manage attendances' group, ensuring accurate attendance tracking and data integrity. This improves the reliability of attendance data.
Original PR description
Currently, attendance managers of some employee are assigned implicitly the right to self edit their own attendance, which should not be the case. This PR removes the implicit right of self attendance edit from the "Officer: Manage attendances" group. Task: 5384284
This update adds a critical neutralization process for the l10n_tw_edi_ecpay module, allowing support teams to safely examine database copies without risking changes to the live system. This ensures investigations of duplicate databases are conducted securely and without impacting our customers or production data.
Original PR description
This commit adds the missing neutralization necessary for the l10n_tw_edi_ecpay module introduced in [1] The purpose of the standard neutralization framework is to allow us to create database copies that will not interact with external systems in ways that could impact the production database (or if it is not possible to prevent the interactions, make sure that they are benign or won't result in actual changes), or impact the customers of the operator of the production database. This is mainly useful to allow safe support investigation on database duplicates. [1] https://github.com/odoo/odoo/pull/223132 Forward-Port-Of: odoo/odoo#240975
This update includes a new test to ensure that work entries are generated correctly within the HR module. This fix addresses a potential issue with the work entry generation process, improving the reliability and accuracy of HR data. The test confirms the fix implemented in a previous pull request.
Original PR description
This commit adds a test for this fix PR: https://github.com/odoo/odoo/pull/239855 task-5413594 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#240185
This update includes a new test to verify the correct generation of work entries within the Belgian HR payroll module. This ensures accurate payroll calculations and compliance with local regulations. The test was added in response to a previous fix.
Original PR description
This commit adds a test for this fix PR: https://github.com/odoo/odoo/pull/239658 task-5413594 Forward-Port-Of: odoo/enterprise#102217
This update fixes a minor issue where navigation using the up/down arrow keys within the HTML editor was not functioning correctly when inserting stars. The fix ensures that all lines, including those with stars, are accessible via keyboard navigation, improving the user experience. This resolves a previous bug related to cursor placement.
Original PR description
When put on a single line, the `o_stars` blocks are not reachable by up/down keyboard navigation because they lack `FEFF` characters to put the cursor. This commit fixes this be removing the outdated `200B` characters that were introduced in [1] and making `o_stars` surrounded by `FEFF`. Steps to reproduce: - Write two lines of text - Add a third line between the two by pressing enter at the end of the first one - Insert stars with `/stars` - Navigate with up/down arrow - Notice that the line with the stars is not skipped - Press Backspace before the stars and before the third line so that everything is on the same line - Press Enter before and after the stars to put then back in three lines - Navigate with up/down arrow => The line with the stars was skipped task-5392572 Forward-Port-Of: odoo/odoo#239432
This update resolves an error that prevented users with basic employee management rights from accessing employee appraisals. The fix ensures that only approvers and administrators can view appraisals, improving security and preventing unexpected application behavior. This change aligns with the intended access controls for the Appraisals module.
Original PR description
An error occurs when a user with `Employee Management` rights, but without any appraisal rights, tries to open an employee’s appraisals. **Steps to Reproduce:** 1) Install Appraisals App.(with Demo).…
An error occurs when a user with `Employee Management` rights, but without any appraisal rights, tries to open an employee’s appraisals. **Steps to Reproduce:** 1) Install Appraisals App.(with Demo). 2) Log in as admin, open Marc Demo in Settings > Users & Companies > Users, and set `Employees: Officer (Manage all employees)` under HR section. 3) Log in as Marc Demo and open any employee profile (e.g., Anita Oliver). 4) Click on `Appraisals smart button`. **Error:** `IndexError: tuple index out of range` **Root Cause:** When a user has only employee management rights, `self.appraisal_ids` received in the method at [1] becomes an empty tuple. Accessing `self.appraisal_ids[0].id` therefore raises an `IndexError`. **FIX:** If no `appraisal_ids` are available, return the list view of appraisals, matching the behavior from previous versions. [1]- https://github.com/odoo/enterprise/blob/3ee1df0b806f9c73d79b8b55fcc7d55b530d9e6b/hr_appraisal/models/hr_employee.py#L169-L180 sentry-7032734789 Forward-Port-Of: odoo/enterprise#102994 Forward-Port-Of: odoo/enterprise#99662
This update resolves a problem causing test failures related to the calendar popover's animation. The change simplifies the test by reducing reliance on strict timing, ensuring the test consistently passes and accurately verifies the popover's final placement.
Original PR description
This commit addresses a timing issue in the calendar popover rendering test. Previously, `runAllTimers` was used to wait for the popover animation to complete before verifying its position. However, this approach was not fully reliable, leading to flaky test results. The solution removes the dependency on `runAllTimers` and slightly relaxes the position assertion. This allows the test to pass even if the animation has not fully completed, prioritizing the correctness of the final placement logic over the animation timing. runbot-error-237534 Forward-Port-Of: odoo/odoo#242074
This update resolves an accessibility issue by removing the `<main>` element from Odoo's Kanban views. The change ensures compliance with web standards, preventing multiple `<main>` elements within a single document, which can improve usability for users with disabilities. This update focuses on enhancing the user experience and accessibility of the Odoo platform.
Original PR description
For accessibility reasons, there should never be more than one `<main>` element in the document [1]. In kanban, we use the main tag in archs, and the kanban compiler leaves it as is in the compiled template. As a consequence, there's one `main` element inside each kanban card (see the Contact kanban view for instance). This commit converts the `main` node in the kanban compiler into a `<div class="o_record_main"/>` and adapts the css and selectors accordingly. [1] https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/main task-5423577
This update addresses an accessibility issue by preventing multiple `<main>` elements within Odoo's Kanban views. The change converts the original `<main>` tag to a custom `<div>` element, ensuring compliance with web standards and improving the user experience for individuals using assistive technologies. This ensures a more accessible and consistent interface.
Original PR description
For accessibility reasons, there should never be more than one `<main>` element in the document [1]. In kanban, we use the main tag in archs, and the kanban compiler leaves it as is in the compiled template. As a consequence, there's one `main` element inside each kanban card (see the Contact kanban view for instance). This commit converts the `main` node in the kanban compiler into a `<div class="o_record_main"/>` and adapts the css and selectors accordingly. [1] https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/main task-5423577
This update corrects a bug where vehicle contracts were incorrectly created in a 'running' state, regardless of their start and end dates. The fix adjusts contract dates in tests to align with recent changes, resolving broken test cases related to payroll and accounting calculations. This ensures accurate reporting and data processing.
Original PR description
Previously, any vehicle contract was created in the running state regardless of the start and end dates of the contract but this has been fixed and contracts are created with the appropriate state. Some tests relied on the old assumption and had dates in the past which made them created as expired and not taked into consideration in some calculations which in turn caused those tests to break. This commit updates the creation and expiration dates of some contracts used in the broken tests to make them work again. Task-ID: 5176374 [Related PR](https://github.com/odoo/odoo/pull/232966)
This update resolves a technical error that prevented users from utilizing the AI-powered refusal feature for applicants. The issue stemmed from a missing required field within the application, causing a system error. Adding the necessary field now allows users to correctly utilize this functionality.
Original PR description
Step to reproduce: - install hr_recruitment. - go to any applicant in any job position. - click on refuse button. - click on AI button Issue: - traceback occurs Reason: - required field for using this widget is not defined. - so it tries to slice the res_ids field which is still not defined Solution - add the necessary fields required for the widget. task-5058510
This update resolves a technical error that prevented users from utilizing the AI-powered refusal feature for applicants. The issue stemmed from a missing required field within the module, causing a system crash. The fix adds the necessary field definitions to ensure the AI functionality operates correctly.
Original PR description
Step to reproduce: - install hr_recruitment. - go to any applicant in any job position. - click on refuse button. - click on AI button Issue: - traceback occurs Reason: - required field for using this widget is not defined. - so it tries to slice the res_ids field which is still not defined Solution - add the necessary fields required for the widget. task-5058510
This update resolves a significant number of lint warnings within the Odoo server code. Addressing these warnings improves the stability and reliability of the server, reducing potential issues and enhancing the overall performance of the Odoo platform. This is an internal improvement focused on code quality.
Original PR description
It is very hard to work with that file due to all the lint warnings. Fix all of them once for all.
This update improves the clarity of our gratuity reports. Now, the report will display how the gratuity amount is calculated, providing greater transparency and accuracy for financial reporting. This change ensures compliance and better understanding of payroll calculations.
Original PR description
Before: - We were not printing any information about how gratuity is being calculated. After: - We are going to print information about how gratuity is being calculated. task-5454700 Forward-Port-Of: odoo/enterprise#103131
This update resolves a technical issue that prevented accurate reporting of invoice reconciliation data when multiple bank transactions were used. The fix ensures the system correctly handles invoices reconciled with multiple bank statements, preventing a 'ValueError' that impacted reporting accuracy. This improves the reliability of financial reports.
Original PR description
### Issue description: The `_compute_full_amount_switch_html` method assumes that `reconciled_lines_excluding_exchange_diff_ids` contains at most one line (which is true only for move lines of bank statement lines). However, if an invoice is reconciled with multiple bank transactions, when accessing the `full_amount_switch_html` for any move line in the invoice, it triggers `ValueError: Expected singleton`, as the compute method uses the reconciled_lines as if they are a single line. ### Steps to reproduce: 1. Create an invoice 2. Reconcile the invoice with multiple bank transactions. 3. Perform a read on the `full_amount_switch_html` field on the invoice line from the invoice (using the web tool, or add the field to any view). 4. You will get `ValueError: Expected singleton: account.move(XX, XX)` opw-5224135 Forward-Port-Of: odoo/enterprise#103202 Forward-Port-Of: odoo/enterprise#102048
This update ensures our translations are current and optimized for Weblate, the tool we use to manage translations. We cleaned up outdated files and streamlined the translation process, improving the quality and efficiency of our internationalization efforts. This work is part of a larger effort to improve the user experience for our global customer base.
Original PR description
We did the following: - Update the PO files by taking the version from 19.0 and `msgmerge` them with the latest POT file. - Update the `.weblate.json` file to target the right project. - Update the `.weblate.json` file to add/remove modules that were changed. Related: https://github.com/odoo/enterprise/pull/102739 Related: https://github.com/odoo/design-themes/pull/1201 Related: https://github.com/odoo/industry/pull/1460 Related: https://github.com/odoo/documentation/pull/15825 Forward-Port-Of: odoo/odoo#241030
This pull request updates translations for Odoo, ensuring they're compatible with the Weblate translation tool. It cleans up outdated and unused translation files, streamlining the localization process and improving efficiency.
Original PR description
We did the following: - Update the PO files by taking the version from 19.0 and `msgmerge` them with the latest POT file. - Update the `.weblate.json` file to target the right project. - Update the `.weblate.json` file to add/remove modules that were changed. Related: https://github.com/odoo/odoo/pull/241030 Related: https://github.com/odoo/design-themes/pull/1201 Related: https://github.com/odoo/industry/pull/1460 Related: https://github.com/odoo/documentation/pull/15825 Forward-Port-Of: odoo/enterprise#102739
This update adjusts the timing of checks for video calls to prevent accidental disconnections when the Odoo server is temporarily slow. Increasing the check interval allows for a missed ping, ensuring calls continue to function smoothly. This enhances the overall reliability of video communication within Odoo.
Original PR description
Before this commit, the ping to keep rtc sessions alive was done every 30 seconds and had a 1 minute timeframe to successfully ping, which meant that missing a single ping would drop the rtc session. This commit increases the timeframe to 1 minutes and 15 seconds so that one ping can be missed. This can help preventing disconnections when the Odoo server is slow, as calls can work fine without a stable connection to the odoo server (since P2P and SFU connections are independent from Odoo once the connections are initialized). task-5177246 Forward-Port-Of: odoo/odoo#234553
This update resolves an issue where the version timeline would disappear when zoomed out and introduce a scrollbar when zoomed in. Now, all versions appear correctly regardless of zoom level, providing a cleaner and more intuitive user experience for managing versions.
Original PR description
Description of the issue/feature this PR addresses: Current behavior before PR: . When you zoom-out below 100%, the other versions from the version bar disappear, leaving only the active one . Wen zoom-in, a side vertical scrollbar appear Desired behavior after PR is merged: . all versions on timeline appears normally without sides scrollbar task-5401380 Forward-Port-Of: odoo/odoo#239315
This update corrects a technical issue where pressing `shift+space` in the kanban view caused a system error. Now, users can reliably select kanban records using the keyboard, improving usability and preventing disruptions to workflow. This change ensures a smoother experience for all users navigating the kanban interface.
Original PR description
Before this commit: When navigating the kanban view using the keyboard, pressing `shift+space` for the first time to select a kanban record caused a traceback. After this commit: The traceback no longer occurs, and the kanban record is correctly selected. task-5410164 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#240389
This update fixes an issue where resizing images within website pages broke responsiveness on smaller screens (like mobile). The change ensures images adapt correctly to different display sizes by using percentage-based widths and automatic height adjustments, maintaining image quality across devices.
Original PR description
Problem: On website pages, resizing an image using the transform option breaks responsiveness across display sizes. After resizing on desktop, the image may overflow its container on smaller screens. Cause: The resize logic currently sets both width and height in `px`. Once fixed in pixels on a large screen, the image no longer adapts when the responsive container becomes smaller on mobile. Solution: Use a percentage value for `width` and set `height` to `auto`. This preserves responsiveness while keeping the aspect ratio correct. Using `height: auto` is required because setting both width and height in percentages would still ignore height in practice. Steps to reproduce: - Add a card snippet to a website page. - Resize the image. - Switch the display mode to mobile. - Observe that the image is no longer responsive. opw-5368040 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#241416
This update resolves an issue where attachments weren't consistently displayed on leave request forms after saving. The fix addresses a technical limitation in how Odoo handles attachments linked to leave requests, ensuring that attachments are correctly shown when a new request is created or refreshed.
Original PR description
to reproduce: ============= - from form view, create a leave request with an attachment - save the leave request - the attachment is not displayed on the form (reloading the page shows it correctly)…
to reproduce:
=============
- from form view, create a leave request with an attachment
- save the leave request
- the attachment is not displayed on the form (reloading the page shows it correctly)
Problem:
========
- When sving the leave request, we call `web_save` which will handle the creation, then calls `web_read` to read the updated data back from the server.
- Even though `web_read` and `web_save` are called in the same transaction, but `web_read` doesn't see `attachment_ids` because of the limited implementation of Many2oneReference (ir.attachment.res_id):
- Its `_update_inverses` won't be called when the value is changed when `field.write`
- when `record.attachment_ids = attachment`, the ORM won't automatically set `attachment.res_model = record._name`
Solution:
=========
as work arround, we can call `invalidate_recordset` for leave requests after setting `attachment_ids` in `_inverse_supported_attachment_ids` so that `web_read` will read the correct value from database.
opw-5157790
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#233003This update resolves a sporadic test failure related to how partner suggestions are sorted. The fix ensures the test accurately reflects the system's data by waiting for the necessary updates to be processed before verification. This improves the stability and reliability of the suggestion sorting functionality.
Original PR description
Before this commit, the test "Sort partner suggestions by recent chats" fails non-deterministically due to a race condition. This failure occurs because the test relies on the `last_interest_dt` timestamp being updated after sending a message to "User 2". Although the message post triggers a bus notification to update the store, the UI displays the message optimistically. As a result, the assertion for the message's existence occasionally passes before the bus notification was processed, leaving the sorting logic to run with stale data (where "User 2" was still ranked behind "User 3"). This commit fixes the issue by waiting for the sidebar to reorder "User 2" to the top. Since the sidebar ordering relies on the same server data (last_interest_dt) as the suggestion sorting, this ensures the store has processed the bus event before the test verifies the suggestion order. runbot-237553 Forward-Port-Of: odoo/odoo#241690 Forward-Port-Of: odoo/odoo#241619
A recent issue preventing users from correctly navigating the website's carousel tour has been resolved. The fix prevents a technical glitch where pressing 'Enter' caused the tour to fail to load properly. Users can now reliably use the 'Tab' key to move through the carousel steps.
Original PR description
__Before this commit:__ The tour `snippet_carousel_clickable_slides` sometimes fails because the URL anchor does not get removed when Enter is pressed. __Reason:__ When inputting in an `Autocomplete`, the `loadingPromise` is set and it's only resolved after the sources are loaded. If Enter is pressed before it is resolved, the `onchange` event is not fired because [`preventDefault` is called inside `onInputKeydown`][1]. __Fix:__ Use Tab in `snippet_carousel_clickable_slides` instead of Enter because Tab doesn't have this behavior. [1]: https://github.com/odoo/odoo/blob/6c07ba93171eb25be64ef990d047915fac2f3381/addons/web/static/src/core/autocomplete/autocomplete.js#L401 runbot-234687 Forward-Port-Of: odoo/odoo#241914
This update ensures that the bill date is always required when creating invoices. Previously, users could skip this field, leading to potential data inconsistencies. Now, a clear notification will appear if the bill date isn't provided, helping ensure accurate record-keeping and financial reporting.
Original PR description
Make bill date required on form view to display a 'Missing required field' notification when not set. task-5361931 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#238911
This update fixes a bug that caused Odoo to crash when a user's session information (specifically, the ‘persona’ data) was missing. The change ensures Odoo gracefully handles this situation, improving stability and preventing disruptions to user workflows. This resolves a potential point of failure for users.
Original PR description
<img width="889" height="290" alt="image" src="https://github.com/user-attachments/assets/c2519e22-f7c4-4d53-885d-01674b248260" /> Forward-Port-Of: odoo/odoo#242060
This update fixes inaccuracies in the VAT report formulas used by the l10n_lt module. The changes ensure the report accurately calculates VAT amounts, improving the reliability of financial reporting for Lithuanian businesses using Odoo.
Original PR description
With this PR, some wrong formulas in VAT report will be updated. task-5447677 Forward-Port-Of: odoo/odoo#241802
This update quietly resolves a warning message appearing during Odoo startup related to the `PyKCS11` library. While this warning didn't cause any functional issues, it was generating unnecessary log tracebacks. This change improves Odoo's stability and log clarity.
Original PR description
Importing `PyKCS11` was raising the following warning: ``` py.warnings: <frozen importlib._bootstrap>:488: DeprecationWarning: builtin type SwigPyObject has no __module__ attribute ``` It doesn't cause any issue, but adds two tracebacks in the logs on Odoo startup. This commit simply hides the warning. Forward-Port-Of: odoo/odoo#241740