Daily updates from Odoo
Wednesday, April 8, 2026
128 changes
23 changes
Resolved issues and error corrections
This update fixes an issue where the helpdesk website displayed all published knowledge articles, regardless of which team they were linked to. Now, the website only shows articles connected to the specific helpdesk team, improving the user experience and ensuring relevant information is presented. This change was driven by a bug fix (opw-5913355).
Original PR description
To reproduce: ============= - create multiple published knowledge articles - link one of them to a helpdesk team - check the help page on website -> all public articles are listed Problem: ======== when fetching the articles to list, we don't take into account the team configuration and we list all the published articles. Solution: ========= fetch only the article linked to the team or its children. opw-5913355 Forward-Port-Of: odoo/enterprise#113025 Forward-Port-Of: odoo/enterprise#109361
This update resolves a crash issue that occurred when opening Gantt views on days with Daylight Saving Time transitions. Specifically, the change addresses a calculation error related to time zones, preventing the Gantt view from freezing during these transitions. This ensures a more reliable experience for users across different time zones.
Original PR description
Steps to reproduce 1. Set your timezone to Asia/Beirut 2. Open a Gantt view (e.g. Planning) in week scale on the last Sunday of March (DST spring-forward day) Issue Beirut's DST spring-forward makes that day only 23 hours long. luxon's .diff() works in absolute time, so diffColumn() returned a float (e.g. 6.958 instead of 7 for a full week). Array(6.958) throws RangeError: Invalid array length, crashing the entire gantt view. Forward-Port-Of: odoo/enterprise#112840
This update resolves an error that occurred during the registration of super payments in the Australian payroll system. By initializing the error message to an empty string, the system now correctly handles data and avoids returning NULL values. Associated tests have been added to ensure this fix is reliable.
Original PR description
. Initialize the error message with an empty string to avoid returning NULL. . Add corresponding tests task-6091444 Forward-Port-Of: odoo/enterprise#112930
This update fixes an issue where chart links didn't correctly direct users to the appropriate view for each data source (e.g., a list view for a list datasource). Previously, users were directed to a default action view, which was confusing. This change ensures links within charts now consistently navigate to the correct data source view type.
Original PR description
Currently, if the user clicks on a datasource link (inside a chart) they will be directed to the default view of the action realted to the datasource model but it will not go to the corresponding type of view (e.g. a list datasource should direct to a list view). Task-5957004 Forward-Port-Of: odoo/enterprise#108158
This update fixes an issue related to how dates and times are displayed, specifically the inclusion of seconds. The change restores the original behavior of showing seconds when requested, and clarifies the datetime format system. This ensures consistent and accurate time representation across the Odoo Enterprise platform.
Original PR description
In this [commit] the short format has been removed from misc methods because there was no more _short format fields in res.lang. But the short format was used to remove seconds from the res.lang format. Now, this behaviour has been restored with the new datetime format system and the unused format 'long' and 'full' has been removed from the doc string to avoid misunderstanding. The formatDateTime from the JS use the format from the res.lang too. So the same behaviour has been implemented there to be able to show seconds through the option 'showSeconds'. It's also fix the fact that this option didn't have any effect when the datetime was shown in numeric mode. [commit]: odoo/odoo@062b140 opw-6030342 Forward-Port-Of: odoo/enterprise#112505
This update resolves an issue where the system incorrectly identified employees as eligible for late hours reporting when they hadn't recorded a check-in time. The fix ensures that late hours visibility is only calculated for employees with a valid check-in record, preventing errors and improving data accuracy.
Original PR description
_compute_l10n_sa_late_hours_visible, calling min() on the mapped check_in values and then .date() would crash with an AttributeError when check_in is False (e.g. during an onchange triggered by clearing the check_in field in the form view). Filter out records without a check_in before computing the date range, and mark them as not visible since late hours cannot apply without a check-in time. task-6067640 Forward-Port-Of: odoo/enterprise#111935
This change adjusts the VAT number used in the 'L10nThaiTaxReportTest' test case to align with recent updates in how companies and individuals are created within the Odoo system. This ensures the reports accurately reflect current Thai tax regulations and avoids potential discrepancies.
Original PR description
in this commit:- - We're changing partner's vat in 'L10nThaiTaxReportTest' and adopting new vat as per new way of creating company and individual. as `branch name` is depend upon 'is_company'. - see https://github.com/odoo/odoo/commit/f6e431c813787958897526a4d6570124048b428a task-6002111 Forward-Port-Of: odoo/enterprise#112434
This update fixes a layout issue in the Italian Libro Giornale PDF report. When accounts with long names are used, the report's formatting was broken, causing excessive column expansion and gaps. The fix adds a CSS class to handle these long account names, resulting in a cleaner and more readable PDF report.
Original PR description
When generating the Libro Giornale (IT) PDF report with an account that has a very long name, the column expands excessively and break the layout. Steps to reproduce: - With an IT company setup - Have an account with a very long name - Create an invoice using the account - Open Accounting / Reporting / Audit Reports / Journal Audit - Select variant "Libro Giornale (IT)" - Print PDF Issue: The long account name makes the column excessively large. As a result, the font shrinks to fit the page width, leaving wide gaps between lines. **before patch** <img width="794" height="493" alt="screenshot_047" src="https://github.com/user-attachments/assets/6faa5b57-9c60-41cb-9200-003a50019180" /> **after patch** <img width="793" height="553" alt="screenshot_046" src="https://github.com/user-attachments/assets/e97c8948-410b-4201-83c3-04173220d9ce" /> opw-5457103 Forward-Port-Of: odoo/enterprise#112743
This update corrects a technical issue that prevented users from accessing the timesheet assistant. A duplicate file was identified and removed during the update process, resolving an error related to duplicate keys within the configuration. This ensures a smoother experience for users managing their timesheets.
Original PR description
In PR: https://github.com/odoo/enterprise/pull/108360/changes `aw_local_config.js` was replaced by `frequency_viewer_local_config.js` but in the Forward from saas-19.1 to saas-19.2, both files were maintained https://github.com/odoo/enterprise/commit/3ced9cf68affd973c570e92627361cd0db8eb518
This update resolves an issue preventing the download of Intrastat reports for businesses using commas as decimal separators instead of periods. The fix also addresses a previous error related to product weights, improving overall report generation reliability. A clearer error message has been added to assist users.
Original PR description
Before this commit, in 19.0+, languages that use commas instead of periods for decimals could not download the intrastat report. Simply attempting to change a string to a float was not enough. Also, when a product had a NoneType weight assigned to it another trace back would occur. This also adds a more descriptive and helpful error message. opw-6026730 Forward-Port-Of: odoo/enterprise#112627
This update fixes how default customer partners are assigned when creating orders in our Point of Sale (POS) system for specific countries (Chile, Colombia, Ecuador, and Guatemala). The change centralizes partner assignment, ensuring more consistent and accurate order creation across these localized versions of Odoo Enterprise. This improves the reliability of POS transactions.
Original PR description
Replace the `createNewOrder()` override with `getDefaultPartnerId()` in l10n_cl_edi_pos, l10n_co_edi_pos, l10n_ec_edi_pos and l10n_gt_edi_pos. The default partner assignment is now handled centrally in `point_of_sale`'s `createNewOrder()`. opw-6077656 Forward-Port-Of: odoo/enterprise#112467
This update adds a required field to Milestone actions within Odoo to ensure database upgrades run smoothly. Specifically, it addresses a technical constraint that prevents both an action ID and a Python method from being defined simultaneously. This change is a necessary maintenance update to maintain system stability.
Original PR description
Add an empty `python_method` field to the Milestones embedded actions. This is necessary to satisfy the `_check_only_one_action_defined` constraint during database upgrades. The `ir.embedded.actions` model enforces an XOR constraint between `action_id` and `python_method`, preventing both fields from being set simultaneously. Related PR: https://github.com/odoo/odoo/pull/254102 task-5993183 Forward-Port-Of: odoo/odoo#254106
A minor bug causing a traceback when deleting a toggle list item has been resolved. The fix prevents an error when there isn't a subsequent item in the toggle list, ensuring the delete function works correctly. This improves the stability and reliability of the To-Do module.
Original PR description
Steps to Reproduce: - Go to To-Do → Create New - Create a toggle list - Type something in the title - Press the delete button Description of the issue: - A traceback occurs. Cause: - In `handleDeleteForwardTitleEnd`, there is a check to verify whether the toggle title’s next sibling matches the toggle selector. However, when there is no next sibling, calling `matches()` results in a traceback. Solution: - Only check `matches()` if the next sibling exists. task-6040479 Forward-Port-Of: odoo/odoo#257157 Forward-Port-Of: odoo/odoo#254557
This update corrects a problem where incorrect timezone selections in event creation led to website rendering errors. The fix removes unsupported timezones like 'localtime' from the available options, ensuring event displays are accurate and reliable. This prevents disruptions to the user experience.
Original PR description
### Issue before this commit: When creating an event, the timezone selection dropdown could include values such as localtime or Factory. If one of these values was selected and the event was later…
### Issue before this commit: When creating an event, the timezone selection dropdown could include values such as localtime or Factory. If one of these values was selected and the event was later displayed on the website, it will led to a traceback error such as: Unknown timezone localtime. As a result, the event page will fail to render correctly or trigger runtime errors related to timezone handling. ### Steps to reproduce the issue: 1. Install Ecommerce and Events apps 2. Go to Ecommerce > Site > Events 3. Create a new test event 4. Activate the Unpublished button 5. Click on the button "Events" 6. Set the display timezone as localtime 7. Click the button "Go to website" 8. Traceback will appear saying: Unknown timezone localtime ### Cause of the issue: The issue was caused by the way the list of available timezones was generated. Timezones are retrieved using the system-provided timezone database through Python’s zoneinfo module. This list includes certain special or internal entries such as localtime and Factory. These entries are not meant to be used as real timezones but were still included in the selection field used by the event model. Since the code responsible for formatting event dates expects valid IANA timezone identifiers, selecting one of these special entries could cause failures. ### Reason to introduce the fix: The fix ensures that unsupported or special timezone entries are excluded from the list of selectable timezones. By filtering out values such as localtime and Factory, the system prevents users from selecting timezones that cannot be safely used in event date computations. opw-5994939 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#252476
This update fixes an issue where clicking links within charts directed users to the wrong views related to data sources. Now, chart links will correctly navigate users to the appropriate view type – for example, a list datasource will open a list view, ensuring a smoother and more accurate user experience.
Original PR description
Currently, if the user clicks on a datasource link (inside a chart) they will be directed to the default view of the action realted to the datasource model but it will not go to the corresponding type of view (e.g. a list datasource should direct to a list view). Task-5957004 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#249883
This update fixes an issue with how dates and times are displayed in Odoo. Specifically, the display of seconds was restored, aligning with the new datetime format system. This ensures consistent time formatting across the application, regardless of the display mode.
Original PR description
In this [commit] the short format has been removed from misc methods because there was no more _short format fields in res.lang. But the short format was used to remove seconds from the res.lang format. Now, this behaviour has been restored with the new datetime format system and the unused format 'long' and 'full' has been removed from the doc string to avoid misunderstanding. The formatDateTime from the JS use the format from the res.lang too. So the same behaviour has been implemented there to be able to show seconds through the option 'showSeconds'. It's also fix the fact that this option didn't have any effect when the datetime was shown in numeric mode. [commit]: odoo@062b140#diff-61162ac65633a1c7b054fc83ce1813f1a7984e3169ff36021713ef441f62a208 opw-6030342 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#255004
This update resolves an issue where invoice generation would fail if a line item lacked tax information. The fix adds a check to prevent the system from attempting to calculate tax values when none are defined, ensuring invoices are generated correctly. This improves invoice accuracy and prevents potential errors.
Original PR description
Issue: Attempting to generate facturae document for an invoice without a tax set on one or more line resulted in an IndexError. Solution: adding a check that prevents the function from trying to build tax values when there is no tax on the line. task-none --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#256819
This update resolves a visual bug where applying solid text colors in the HTML editor resulted in a persistent gradient background. The fix ensures that the gradient is correctly removed regardless of how the text color is applied (inline style or class-based), improving the consistency and appearance of text within the editor.
Original PR description
Steps to reproduce: - Go to a To-do note - Select a word - Apply a gradient as the text color - Re-open the color picker - From the Solid tab, select the primary color (o-color-1) Description of the issue: - The gradient is not removed and ends up being displayed as a background color Cause: - In the `colorElement` method, the gradient is removed when applying a text color via inline styles. However, when applying a color via class (e.g., text-*), the gradient is not properly cleared. Only the text-gradient class is replaced, while the gradient style remains, causing it to appear as a background color. Solution: Ensure the gradient is removed in both cases: - when applying a color via class and when applying a color via inline styles in `colorElement`. task-6045533 Forward-Port-Of: odoo/odoo#257045 Forward-Port-Of: odoo/odoo#254654
This update resolves an issue where the animation intensity slider disappeared after switching animation modes on the website. The fix prevents a redundant class from being added, ensuring the slider remains visible when changing animation effects. This improves the user experience for website editors.
Original PR description
Steps to reproduce: 1. Go to the website and enter edit mode. 2. Click any text in the footer. 3. Change the animation mode from _none_ to _on appearance._ 4. Select the _zoom out_ effect; the intensity slider is visible. 5. Change the animation mode to _on scroll_. Issue: The animation intensity slider is no longer visible. It only reappears after reselecting the same effect. Reason: The `apply` method of `SetAnimationModeAction` always adds the "**o_anim_fade_in**" class, even when an animation effect is already selected. When switching the animation mode, this additional class prevents the intensity slider from being displayed. task-5896549 Forward-Port-Of: odoo/odoo#257887 Forward-Port-Of: odoo/odoo#246921
This update reduces the size of images within chat bubbles and discussion threads to improve visual appearance. The change was necessary due to a previous design where image sizes were linked, resulting in oversized IM status elements. This update ensures a cleaner and more consistent look.
Original PR description
Before this commit, the size of IM status in ChatBubble and Mobile Discuss were too big. This happens because the `DiscussAvatar` component, which groups the img and IM status, is made from SVG, so…
Before this commit, the size of IM status in ChatBubble and Mobile Discuss were too big. This happens because the `DiscussAvatar` component, which groups the img and IM status, is made from SVG, so that there's mask of image around the IM status. Size of the IM status is coupled with size of the img, so for example if the IMG is twice as big as the default size, then the IM status is also twice as big, which is roughly what chat bubble and mobile discuss have. This commit reduces the size of IM status of chat bubble and mobile discuss to 75%, so that this looks better. This is made possible by providing `iconExtraTransform`, some extra `transform` that are applied on the image mask related to icon and the icon itself. This allows the scale down the IM status in addition to the mask, and offset the position with the new scaling. Before / After <img width="63" height="393" alt="Screenshot 2026-03-06 at 14 15 40" src="https://github.com/user-attachments/assets/6ef2ae3d-d54c-461e-9688-91c69d5631ff" /> <img width="64" height="401" alt="Screenshot 2026-03-06 at 14 15 12" src="https://github.com/user-attachments/assets/edeb2175-698c-4734-8e98-d0b373e7aabc" />
This update addresses a technical issue within the web editor by preventing direct modifications to its history. Removing this functionality also resolves a related problem with data copying, ensuring stability. This change improves the reliability of the web editor.
Original PR description
This commit prevent direct write to history, also, removes it from copy_data as it would fail anyway when trying to write the history Forward-Port-Of: odoo/odoo#220239 Forward-Port-Of: odoo/odoo#217167
This update allows administrators to remove outdated or incomplete zero-value account move lines. Previously, these lines couldn't be deleted, leading to potential data clutter. This change streamlines account management by allowing the removal of unnecessary entries, improving data accuracy and efficiency.
Original PR description
-added some conditions to allow the user to remove some zero move lines as they may have been created and do not have good information. task-4590580 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#257148 Forward-Port-Of: odoo/odoo#202272
This update resolves an issue where the width of avatar names was incorrectly set to zero, resulting in a small display. The fix adjusts the width to the correct size, ensuring avatars display properly. This improves the visual consistency and usability of the system.
Original PR description
This commit fix the width of the displayName option of the Avatar component which was fixed to zero (bootstrap class 'w-0') Task-5122979 Forward-Port-Of: odoo/odoo#257869 Forward-Port-Of: odoo/odoo#257587
21 changes
Resolved issues and error corrections
This update adjusts the VAT number used in the 'L10nThaiTaxReportTest' test case to align with recent changes in how companies and individuals are created within Odoo. This ensures accurate reporting for Thai tax purposes and maintains consistency with updated business processes.
Original PR description
in this commit:- - We're changing partner's vat in 'L10nThaiTaxReportTest' and adopting new vat as per new way of creating company and individual. as `branch name` is depend upon 'is_company'. - see https://github.com/odoo/odoo/commit/f6e431c813787958897526a4d6570124048b428a task-6002111
This update fixes an issue where the helpdesk website displayed all published knowledge articles, regardless of which team the helpdesk was associated with. Now, the website only shows articles linked to the specific helpdesk team or its related teams, improving the user experience and ensuring relevant information is presented.
Original PR description
To reproduce: ============= - create multiple published knowledge articles - link one of them to a helpdesk team - check the help page on website -> all public articles are listed Problem: ======== when fetching the articles to list, we don't take into account the team configuration and we list all the published articles. Solution: ========= fetch only the article linked to the team or its children. opw-5913355 Forward-Port-Of: odoo/enterprise#113025 Forward-Port-Of: odoo/enterprise#109361
This update resolves a technical issue preventing the accurate registration of super payments in the Australian payroll system. The fix initializes an error message to avoid returning NULL values, ensuring data integrity. New tests have been added to verify the corrected functionality.
Original PR description
. Initialize the error message with an empty string to avoid returning NULL. . Add corresponding tests task-6091444 Forward-Port-Of: odoo/enterprise#112930
This update resolves a crash in the Gantt view that occurred when opening the view on days with Daylight Saving Time transitions. The fix addresses an issue where incorrect time calculations led to a data error, preventing users from accessing the Gantt chart. This ensures the Gantt view remains stable across different time zones.
Original PR description
Steps to reproduce 1. Set your timezone to Asia/Beirut 2. Open a Gantt view (e.g. Planning) in week scale on the last Sunday of March (DST spring-forward day) Issue Beirut's DST spring-forward makes that day only 23 hours long. luxon's .diff() works in absolute time, so diffColumn() returned a float (e.g. 6.958 instead of 7 for a full week). Array(6.958) throws RangeError: Invalid array length, crashing the entire gantt view. Forward-Port-Of: odoo/enterprise#112840
This update resolves a technical issue in the UrbanPiper Test Order wizard where clicking an 'open product' icon caused a system error. The fix disables the product form opening functionality within this specific wizard, preventing the error and improving stability. This ensures the test order process functions correctly.
Original PR description
Steps to Reproduce ---------- - Make an UrbanPiper Test Order - Select a product - Click the external-link (open) icon - POS traceback appears Issue ----------- Clicking the “open product” icon triggered a traceback because the POS attempted to load the missing hr_expense_product_form view. Fix -------------- Disable form open/create for the product field to remove the quick-open product icon, as there is no need to open the product form from this wizard. Task-6089707
This update fixes an issue related to how dates and times are displayed in the Enterprise version of Odoo. The system now correctly shows seconds when requested, and previously hidden formatting options have been removed for clarity. This ensures consistent and accurate time representation across the application.
Original PR description
In this [commit] the short format has been removed from misc methods because there was no more _short format fields in res.lang. But the short format was used to remove seconds from the res.lang format. Now, this behaviour has been restored with the new datetime format system and the unused format 'long' and 'full' has been removed from the doc string to avoid misunderstanding. The formatDateTime from the JS use the format from the res.lang too. So the same behaviour has been implemented there to be able to show seconds through the option 'showSeconds'. It's also fix the fact that this option didn't have any effect when the datetime was shown in numeric mode. [commit]: odoo/odoo@062b140 opw-6030342 Forward-Port-Of: odoo/enterprise#112505
This update corrects a test within the Odoo Enterprise web_studio module to reflect a recent change in the user interface label for a text formatting option. Specifically, the test now correctly identifies the new label 'Select text style' instead of the previous 'Select font style'. This ensures the test accurately validates the functionality after the label update.
Original PR description
#### Description of the change: - Update the expected test string from "Select font style" to "Select text style" after the label change. community-https://github.com/odoo/odoo/pull/236904 task-5155813
This update fixes a layout issue in the Italian Libro Giornale PDF report. When accounts with long names are used, the report's formatting was broken, causing excessive column expansion and gaps. The fix adds a CSS class to handle long account names, resulting in a cleaner and more readable report.
Original PR description
When generating the Libro Giornale (IT) PDF report with an account that has a very long name, the column expands excessively and break the layout. Steps to reproduce: - With an IT company setup - Have an account with a very long name - Create an invoice using the account - Open Accounting / Reporting / Audit Reports / Journal Audit - Select variant "Libro Giornale (IT)" - Print PDF Issue: The long account name makes the column excessively large. As a result, the font shrinks to fit the page width, leaving wide gaps between lines. **before patch** <img width="794" height="493" alt="screenshot_047" src="https://github.com/user-attachments/assets/6faa5b57-9c60-41cb-9200-003a50019180" /> **after patch** <img width="793" height="553" alt="screenshot_046" src="https://github.com/user-attachments/assets/e97c8948-410b-4201-83c3-04173220d9ce" /> opw-5457103 Forward-Port-Of: odoo/enterprise#112743
This update resolves an issue preventing the correct generation of Intrastat reports when using French language settings that utilize commas as decimal separators. The fix also addresses a previous error related to product weights, ensuring smoother report processing. This improvement enhances the reliability of Intrastat reporting for French-speaking users.
Original PR description
Before this commit, in 19.0+, languages that use commas instead of periods for decimals could not download the intrastat report. Simply attempting to change a string to a float was not enough. Also, when a product had a NoneType weight assigned to it another trace back would occur. This also adds a more descriptive and helpful error message. opw-6026730 Forward-Port-Of: odoo/enterprise#112627
This update fixes how default customer partners are assigned when creating orders in our Point of Sale (POS) system for specific countries (Chile, Colombia, Ecuador, and Guatemala). The change centralizes partner assignment, ensuring consistent and accurate order creation across these localized versions. This improves order processing reliability and data accuracy.
Original PR description
Replace the `createNewOrder()` override with `getDefaultPartnerId()` in l10n_cl_edi_pos, l10n_co_edi_pos, l10n_ec_edi_pos and l10n_gt_edi_pos. The default partner assignment is now handled centrally in `point_of_sale`'s `createNewOrder()`. opw-6077656 Forward-Port-Of: odoo/enterprise#112467
This update adds a required empty field to Milestone actions within Odoo. This change ensures the system's database remains stable during upgrades by adhering to a technical constraint that prevents conflicting action definitions. It’s a routine maintenance update to maintain data integrity.
Original PR description
Add an empty `python_method` field to the Milestones embedded actions. This is necessary to satisfy the `_check_only_one_action_defined` constraint during database upgrades. The `ir.embedded.actions` model enforces an XOR constraint between `action_id` and `python_method`, preventing both fields from being set simultaneously. Related PR: https://github.com/odoo/odoo/pull/254102 task-5993183 Forward-Port-Of: odoo/odoo#254106
This update fixes an issue where the animation intensity slider disappeared after switching animation modes on the website. The problem stemmed from a code change that consistently added a styling class, preventing the slider from reappearing until the same effect was selected again. This ensures a consistent and expected user experience when customizing website animations.
Original PR description
Steps to reproduce: 1. Go to the website and enter edit mode. 2. Click any text in the footer. 3. Change the animation mode from _none_ to _on appearance._ 4. Select the _zoom out_ effect; the intensity slider is visible. 5. Change the animation mode to _on scroll_. Issue: The animation intensity slider is no longer visible. It only reappears after reselecting the same effect. Reason: The `apply` method of `SetAnimationModeAction` always adds the "**o_anim_fade_in**" class, even when an animation effect is already selected. When switching the animation mode, this additional class prevents the intensity slider from being displayed. task-5896549 Forward-Port-Of: odoo/odoo#246921
A minor bug that caused a traceback when deleting a toggle list item has been resolved. The fix prevents an error when there isn't a subsequent item in the toggle list, ensuring the delete function works correctly. This improves the stability and reliability of the To-Do module.
Original PR description
Steps to Reproduce: - Go to To-Do → Create New - Create a toggle list - Type something in the title - Press the delete button Description of the issue: - A traceback occurs. Cause: - In `handleDeleteForwardTitleEnd`, there is a check to verify whether the toggle title’s next sibling matches the toggle selector. However, when there is no next sibling, calling `matches()` results in a traceback. Solution: - Only check `matches()` if the next sibling exists. task-6040479 Forward-Port-Of: odoo/odoo#257157 Forward-Port-Of: odoo/odoo#254557
This update fixes a misleading error message users saw when trying to add property fields to records without a parent (like categories). The message has been replaced with a clearer instruction: "A <parentFieldLabel> is needed to add property fields." This ensures users understand the requirement and can easily correct the issue.
Original PR description
Issue: ------------------------------------------ - When using property fields (e.g., products since 18.1 where categories are optional), users trying to add a property field without a parent…
Issue: ------------------------------------------ - When using property fields (e.g., products since 18.1 where categories are optional), users trying to add a property field without a parent document receive a generic warning: "You need edit access on the parent document to update these property fields". - This message is misleading and does not explain the actual dependency. How to reproduce: ------------------------------------------ 1. Create or edit a record (e.g., product) without setting its parent (e.g., category). 2. Try to add a property field. Cause of the issue: ------------------------------------------ - In `checkDefinitionWriteAccess`, when `definitionRecordId` is missing, the method returns `false`, triggering a generic access-rights warning. Solution: ------------------------------------------ - Added a check at the beginning of `onPropertyCreate` verify if `definitionRecordId` exists. - If missing, following error is raised using the parent field label: "You must set the '%s' field to create a property field." task-4589393 Forward-Port-Of: odoo/odoo#257875 Forward-Port-Of: odoo/odoo#205107
This update resolves an issue with the Windows IoT installer by correcting file paths and adjusting logging levels. The change ensures the installer functions correctly and provides more detailed information for troubleshooting, improving stability and reliability.
Original PR description
this commit fixes incorrect paths for the Windows IoT installer and updates log levels to INFO instead of WARNING.
This update corrects a visual issue where the display name within avatars appeared extremely narrow. The fix adjusts the width of the avatar component, ensuring names are displayed correctly and consistently. This improves the overall user experience and presentation of user profiles.
Original PR description
This commit fix the width of the displayName option of the Avatar component which was fixed to zero (bootstrap class 'w-0') Task-5122979 Forward-Port-Of: odoo/odoo#257869 Forward-Port-Of: odoo/odoo#257587
This update resolves an issue where the search panel displayed an error message ('Too many items to display') when dealing with large datasets. By adding a filter to limit the number of records shown, the search panel now correctly displays data without the error, improving the user experience. This ensures a smoother and more reliable search experience, especially with extensive data.
Original PR description
Have a search view with searchpanel having a filter or a category with a limit. For exemple in sale.order:
```
<searchpanel>
<field name="partner_id" icon="fa-filter" groupby="parent_id" limit="80" enable_counters="True"/>
</searchpanel>
```
On a database with a lot of data, in the category partner of search panel, there is an error 'Too many items to display.'.
Now in the search view, add a filter to restrict the number of records, and hence the number of partners in the search panel below the limit.
Before this commit, the error was still displayed. Now, it isn't, and the data are properly displayed.
Closes #257749
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#257908
Forward-Port-Of: odoo/odoo#257821This update fixes an issue where kiosk orders were automatically replaced with generic names like 'Table tracker X'. Now, customers can consistently use the custom order name they initially entered, ensuring accurate order tracking and a better customer experience. This change improves order clarity and reduces potential errors.
Original PR description
Before this commit, when a customer placed an order from a kiosk and provided a custom name, it was systematically overwritten by the backend with a generic "Table tracker X" or the tracking number. task-id: 6014281 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update fixes an issue with how dates and times were displayed, specifically regarding the inclusion of seconds. The change restores the original behavior of showing seconds when requested, and clarifies documentation to avoid confusion. This ensures consistent and accurate time formatting across Odoo.
Original PR description
In this [commit] the short format has been removed from misc methods because there was no more _short format fields in res.lang. But the short format was used to remove seconds from the res.lang format. Now, this behaviour has been restored with the new datetime format system and the unused format 'long' and 'full' has been removed from the doc string to avoid misunderstanding. The formatDateTime from the JS use the format from the res.lang too. So the same behaviour has been implemented there to be able to show seconds through the option 'showSeconds'. It's also fix the fact that this option didn't have any effect when the datetime was shown in numeric mode. [commit]: odoo@062b140#diff-61162ac65633a1c7b054fc83ce1813f1a7984e3169ff36021713ef441f62a208 opw-6030342 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#255004
This update resolves an issue where invoice generation would fail if a line item didn't have a tax assigned. The fix adds a check to prevent the system from attempting to calculate tax values when none are present, ensuring invoices are generated correctly even for invoices without taxes.
Original PR description
Issue: Attempting to generate facturae document for an invoice without a tax set on one or more line resulted in an IndexError. Solution: adding a check that prevents the function from trying to build tax values when there is no tax on the line. task-none --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#256819
This update resolves a visual glitch that appeared when formatting tables in the To-Do module. Specifically, applying formatting like bold would create unexpected blank lines above the table. The fix prevents styling of system nodes, ensuring proper layout and a consistent user experience.
Original PR description
Steps to Reproduce - Go to To-Do - Add a table - Type content inside the table - Select all using Ctrl + A - Apply formatting (e.g., Bold) Description of the issue: An empty line appears above the table and the layout shifts unexpectedly after applying formatting. Cause: `data-selection-placeholder` nodes exist before and after the table. These nodes normally have zero height. When selecting all content, these placeholder nodes are also included in the selection. Applying formatting styles them as well, which changes their height from zero. As a result, they become visible and appear as newly added blank lines, even though no new line was actually inserted. Solution Exclude system nodes, such as selection placeholder elements, from formatting operations. This prevents them from being styled and avoids unintended layout shifts. task-5976361 Forward-Port-Of: odoo/odoo#252416
4 changes
Resolved issues and error corrections
This update fixes an issue where the helpdesk website displayed all published knowledge articles, regardless of which team they were linked to. Now, the website only shows articles connected to the specific helpdesk team, improving the user experience and ensuring relevant information is presented. This change was driven by a bug fix (opw-5913355).
Original PR description
To reproduce: ============= - create multiple published knowledge articles - link one of them to a helpdesk team - check the help page on website -> all public articles are listed Problem: ======== when fetching the articles to list, we don't take into account the team configuration and we list all the published articles. Solution: ========= fetch only the article linked to the team or its children. opw-5913355 Forward-Port-Of: odoo/enterprise#113025 Forward-Port-Of: odoo/enterprise#109361
This update resolves a crash in the Gantt chart view that occurred when opening the chart on Daylight Saving Time (DST) transition days. The issue stemmed from a calculation error related to time zone differences, specifically impacting users in locations like Beirut. This change ensures the Gantt chart remains stable and functional across all time zones.
Original PR description
Steps to reproduce 1. Set your timezone to Asia/Beirut 2. Open a Gantt view (e.g. Planning) in week scale on the last Sunday of March (DST spring-forward day) Issue Beirut's DST spring-forward makes that day only 23 hours long. luxon's .diff() works in absolute time, so diffColumn() returned a float (e.g. 6.958 instead of 7 for a full week). Array(6.958) throws RangeError: Invalid array length, crashing the entire gantt view. Forward-Port-Of: odoo/enterprise#112840
This update fixes an issue preventing users from editing their Amazon fulfillment channel settings. The previous display used a read-only widget, blocking changes. Now, the channel is displayed correctly, allowing users to manage their Amazon fulfillment options as intended.
Original PR description
Commit 67c45d6494f082e2ee83b9a84611e8b8fe8f4fd5 intended to make `amazon_channel` editable by users. However, the field was displayed with the `badge` widget, which is read-only, so it remained uneditable. Use an editable display for `amazon_channel` so the original fix works as intended. Forward-Port-Of: odoo/enterprise#112866
This update fixes an issue where the Libro Giornale (IT) PDF report would break its layout when an account with a long name was used. By adding a CSS class, the column width is now properly controlled, preventing excessive expansion and ensuring a clean, readable report. This improves the user experience for generating financial reports.
Original PR description
When generating the Libro Giornale (IT) PDF report with an account that has a very long name, the column expands excessively and break the layout. Steps to reproduce: - With an IT company setup - Have an account with a very long name - Create an invoice using the account - Open Accounting / Reporting / Audit Reports / Journal Audit - Select variant "Libro Giornale (IT)" - Print PDF Issue: The long account name makes the column excessively large. As a result, the font shrinks to fit the page width, leaving wide gaps between lines. **before patch** <img width="794" height="493" alt="screenshot_047" src="https://github.com/user-attachments/assets/6faa5b57-9c60-41cb-9200-003a50019180" /> **after patch** <img width="793" height="553" alt="screenshot_046" src="https://github.com/user-attachments/assets/e97c8948-410b-4201-83c3-04173220d9ce" /> opw-5457103 Forward-Port-Of: odoo/enterprise#112743
13 changes
Resolved issues and error corrections
This update fixes a technical issue preventing users from opening the 'Split Production' view within the MRP module. The problem stemmed from a missing product unit of measure, causing an error. This change ensures the view opens correctly and reliably for all users.
Original PR description
Steps to reproduce: - Install `mrp` module - Active debugger > Open view - Open `Split Production` view Traceback: `AssertionError: precision_rounding must be positive, got 0.0 (saas-18.3) ` `ValueError: Expected singleton: uom.uom() (19.0)` When trying to open the view directly, we do not receive the `product_uom_id` from the wizard in compute method `_compute_num_splits`, which leads to an error. sentry-7379431482
This update resolves a problem where tours weren't running correctly after editing views in Studio. The issue stemmed from a misleading module entry ('studio_customization') being included in the tour process. This fix filters out these invalid entries to ensure tours function reliably.
Original PR description
Step to reproduce: - start a fresh db, install studio and pos - using studio, edit any view (add or remove a field) - run any tour Observation: - we are not able to run any tour Traceback ``` File…
Step to reproduce:
- start a fresh db, install studio and pos
- using studio, edit any view (add or remove a field)
- run any tour
Observation:
- we are not able to run any tour Traceback
```
File "/home/odoo/odoo/codebase/odoo/18.0/odoo/addons/base/models/ir_qweb.py", line 2703, in _get_lazy_bundles_from_js
for fname in glob.iglob('**/static/src/**/*.js', root_dir=modroot, recursive=True):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/glob.py", line 46, in iglob
root_dir = os.fspath(root_dir)
^^^^^^^^^^^^^^^^^^^
TypeError: expected str, bytes or os.PathLike object, not bool
```
Cause:
- `_get_lazy_bundles_from_js` fetches module path for all installed module in addons
https://github.com/odoo/odoo/blob/05d0944a7640e196db989039140ae5ddb12152ac/odoo/addons/base/models/ir_qweb.py#L2686-L2697
- in case we have a view edited, we get the `studio_customization` as installled module, which doesn't have any path in addons. i.e. False
Fix:
- filter out such pseudo-modules from the list
Note: this is not a reported issue, i stumbled across it, hence made a fix
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#257806This update fixes an issue where the helpdesk website displayed all published knowledge articles, regardless of which team the helpdesk was associated with. Now, the website only shows articles linked to the specific helpdesk team or its related teams, improving the user experience and ensuring relevant information is presented.
Original PR description
To reproduce: ============= - create multiple published knowledge articles - link one of them to a helpdesk team - check the help page on website -> all public articles are listed Problem: ======== when fetching the articles to list, we don't take into account the team configuration and we list all the published articles. Solution: ========= fetch only the article linked to the team or its children. opw-5913355 Forward-Port-Of: odoo/enterprise#113025 Forward-Port-Of: odoo/enterprise#109361
This update resolves a crash in the Gantt chart view that occurred when opening the chart on days with Daylight Saving Time transitions. The fix addresses an issue where incorrect time calculations led to a data error, causing the chart to malfunction. This ensures the Gantt chart remains stable across different time zones.
Original PR description
Steps to reproduce 1. Set your timezone to Asia/Beirut 2. Open a Gantt view (e.g. Planning) in week scale on the last Sunday of March (DST spring-forward day) Issue Beirut's DST spring-forward makes that day only 23 hours long. luxon's .diff() works in absolute time, so diffColumn() returned a float (e.g. 6.958 instead of 7 for a full week). Array(6.958) throws RangeError: Invalid array length, crashing the entire gantt view. Forward-Port-Of: odoo/enterprise#112840
The search panel was displaying an error message when dealing with large datasets. This update adds a filter to limit the number of results shown, resolving the 'Too many items to display' error and ensuring a smoother user experience when searching for partners. This improves the usability of the search functionality.
Original PR description
Have a search view with searchpanel having a filter or a category with a limit. For exemple in sale.order:
```
<searchpanel>
<field name="partner_id" icon="fa-filter" groupby="parent_id" limit="80" enable_counters="True"/>
</searchpanel>
```
On a database with a lot of data, in the category partner of search panel, there is an error 'Too many items to display.'.
Now in the search view, add a filter to restrict the number of records, and hence the number of partners in the search panel below the limit.
Before this commit, the error was still displayed. Now, it isn't, and the data are properly displayed.
Closes #257749
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#257908
Forward-Port-Of: odoo/odoo#257821This update ensures the category selector in Point of Sale displays consistently across all devices and user experiences. Previously, styling was inconsistent due to conditional application, now both product and category lists are always styled, improving the user interface and overall presentation.
Original PR description
Before this commit: ==================== Previously, the `category-list` class was conditionally applied based on `show_category_images`, which caused inconsistent styling and layout issues. After this commit: ======================= This commit ensures that both `product-list` and `category-list` classes are always present, providing consistent rendering of the category selector. Task-6092404 Forward-Port-Of: odoo/odoo#257251
This update resolves an issue where the invoice generation process would fail if a tax wasn't properly configured on an invoice line. The fix adds a check to prevent the system from attempting to calculate tax when none is defined, ensuring invoices are generated correctly. This improves invoice accuracy and prevents potential errors.
Original PR description
Issue: Attempting to generate facturae document for an invoice without a tax set on one or more line resulted in an IndexError. Solution: adding a check that prevents the function from trying to build tax values when there is no tax on the line. task-none --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#256819
This update addresses a situation where outdated, zero-value account entries were sometimes created, causing potential issues. The fix allows users to remove these entries, streamlining account management and improving data accuracy. This change ensures a cleaner and more efficient accounting process.
Original PR description
-added some conditions to allow the user to remove some zero move lines as they may have been created and do not have good information. task-4590580 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#256369 Forward-Port-Of: odoo/odoo#202272
This update ensures that the milestone list view, regardless of whether it's accessed from the Kanban or top bar, displays all relevant sales-related information like 'Quantity (%)'. Previously, the top bar action used a simplified view, leading to incomplete data. This change standardizes the view for a more complete and accurate representation of project milestones.
Original PR description
Steps to reproduce: - 1. Install the sale_project module. 2. Open a project and ensure it is billable. 3. Compare the view opened from the "Milestones" link in the Kanban view with the view opened from the "Milestones" top bar action. Issue: - The milestone list view opened from the top bar action does not display sales-related fields (e.g., "Quantity (%)"). Cause: - The Kanban view calls the `action_get_list_view` python method, which is overridden in sale_project to add a custom list view including sales-related fields. The top bar action was using a static XML action, bypassing this python logic. Fix: - Update the Milestones embedded actions to call the `action_get_list_view` python method instead of using a static XML action, ensuring top bar uses the same view as others. task-5993183
This update corrects a bug in the reconciliation process within Odoo. Previously, creating a reconciliation model without specifying a partner or account would default to a liquidity account, causing errors. Now, the system requires either a partner or account to be set, ensuring accurate reconciliation reporting.
Original PR description
**Steps to reproduce:** - Go to Accounting dashboard - From Bank journal, open Reconciliation Models list - Create a new reconciliation model - Add counterpart line without partner and account - Click on "Automate" **Issue:** The operation fails because the default account of the bank journal is used as there is no user and no account configured for the counterpart. Which results on several lines using a liquidity account (i.e. the cause of the error). Either a partner or an account should be set on a counterpart line. opw-6056737 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update fixes an issue where event descriptions in Outlook Calendar downloads were displayed as raw HTML code instead of properly converted. The team added formatting to ensure HTML content is correctly translated to text for Outlook, improving the accuracy of event details when users download and view them.
Original PR description
### Steps to reproduce: - Download Events app. - Pick an event and click "Go to website". - Download the Outlook Calendar. ### Issue: - The HTML content within the event description is displayed as raw code and not converted properly - This happens because outlook takes the description as text and displays it in the ics file without conversion ### Solution: - Since we're working with *Outlook Calendar*, X Alt formatting was added to format HTML to text opw-5237027 Forward-Port-Of: odoo/odoo#246603
This update fixes an issue where the Libro Giornale (IT) PDF report would break its layout when an account with a long name was used. The change adds a CSS class to manage column width, preventing excessive expansion and ensuring a cleaner, more readable report. This improves the user experience for generating financial reports.
Original PR description
When generating the Libro Giornale (IT) PDF report with an account that has a very long name, the column expands excessively and break the layout. Steps to reproduce: - With an IT company setup - Have an account with a very long name - Create an invoice using the account - Open Accounting / Reporting / Audit Reports / Journal Audit - Select variant "Libro Giornale (IT)" - Print PDF Issue: The long account name makes the column excessively large. As a result, the font shrinks to fit the page width, leaving wide gaps between lines. **before patch** <img width="794" height="493" alt="screenshot_047" src="https://github.com/user-attachments/assets/6faa5b57-9c60-41cb-9200-003a50019180" /> **after patch** <img width="793" height="553" alt="screenshot_046" src="https://github.com/user-attachments/assets/e97c8948-410b-4201-83c3-04173220d9ce" /> opw-5457103 Forward-Port-Of: odoo/enterprise#112743
This update resolves a problem where EPD bill payments weren't correctly marked as 'paid' in the accounting system. The fix ensures that payments are accurately reflected after reconciliation, improving the reliability of financial reporting. This was triggered by a specific test scenario involving early payment terms and bank transactions.
Original PR description
Steps to reproduce: - Create an early payment term. - Create a Vendor Bill with EPD and post it. - Register a payment for this bill (no outstanding account set on journal => no move created). - Create a bank transaction fully paying the bill. - Reconcile the transaction with the bill. Issue: Access the payment of the bill. The payment state remains 'in_process' instead of 'paid'. Fix in community: https://github.com/odoo/odoo/pull/256486 opw-5881976
4 changes
Resolved issues and error corrections
This update corrects a technical issue preventing users from editing their Amazon fulfillment channel settings. The fix ensures the channel is displayed correctly and allows for necessary adjustments to be made. This improves the flexibility and control users have over their Amazon sales operations.
Original PR description
Commit 67c45d6494f082e2ee83b9a84611e8b8fe8f4fd5 intended to make `amazon_channel` editable by users. However, the field was displayed with the `badge` widget, which is read-only, so it remained uneditable. Use an editable display for `amazon_channel` so the original fix works as intended. Forward-Port-Of: odoo/enterprise#112866
This update fixes an issue where the helpdesk website displayed all published knowledge articles, regardless of which team they were linked to. Now, the website only shows articles connected to the specific helpdesk team, improving the user experience and ensuring relevant information is presented. This change was driven by a bug fix (opw-5913355).
Original PR description
To reproduce: ============= - create multiple published knowledge articles - link one of them to a helpdesk team - check the help page on website -> all public articles are listed Problem: ======== when fetching the articles to list, we don't take into account the team configuration and we list all the published articles. Solution: ========= fetch only the article linked to the team or its children. opw-5913355 Forward-Port-Of: odoo/enterprise#113025 Forward-Port-Of: odoo/enterprise#109361
This update resolves a crash in the Gantt chart view that occurred when opening the chart on days with Daylight Saving Time transitions. The fix addresses an issue where incorrect time calculations led to a data error, causing the chart to malfunction. This ensures the Gantt chart remains stable across different time zones.
Original PR description
Steps to reproduce 1. Set your timezone to Asia/Beirut 2. Open a Gantt view (e.g. Planning) in week scale on the last Sunday of March (DST spring-forward day) Issue Beirut's DST spring-forward makes that day only 23 hours long. luxon's .diff() works in absolute time, so diffColumn() returned a float (e.g. 6.958 instead of 7 for a full week). Array(6.958) throws RangeError: Invalid array length, crashing the entire gantt view. Forward-Port-Of: odoo/enterprise#112840
This update fixes an issue where the Libro Giornale (IT) PDF report would break its layout when an account with a long name was used. The change adds a CSS class to manage column width, preventing excessive expansion and ensuring a clean, readable report. This improves the user experience for IT companies generating these reports.
Original PR description
When generating the Libro Giornale (IT) PDF report with an account that has a very long name, the column expands excessively and break the layout. Steps to reproduce: - With an IT company setup - Have an account with a very long name - Create an invoice using the account - Open Accounting / Reporting / Audit Reports / Journal Audit - Select variant "Libro Giornale (IT)" - Print PDF Issue: The long account name makes the column excessively large. As a result, the font shrinks to fit the page width, leaving wide gaps between lines. **before patch** <img width="794" height="493" alt="screenshot_047" src="https://github.com/user-attachments/assets/6faa5b57-9c60-41cb-9200-003a50019180" /> **after patch** <img width="793" height="553" alt="screenshot_046" src="https://github.com/user-attachments/assets/e97c8948-410b-4201-83c3-04173220d9ce" /> opw-5457103 Forward-Port-Of: odoo/enterprise#112743
13 changes
Resolved issues and error corrections
This update fixes a misleading chart in the Purchase & Vendor Analysis dashboard. The chart title was previously inaccurate, suggesting supplier dependency instead of showing purchase orders by buyer. The title has been corrected to accurately reflect the data displayed, improving clarity for users.
Original PR description
Issue Before This Commit: ====================== Currently, the pie chart titled `Supplier Dependency Chart` in the Purchase & Vendor Analysis under the Logistics section is misleading because it…
Issue Before This Commit: ====================== Currently, the pie chart titled `Supplier Dependency Chart` in the Purchase & Vendor Analysis under the Logistics section is misleading because it suggests that the chart represents dependency on each supplier. However, the chart actually shows how many purchase orders are created by each buyer. Additionally, when there are no purchase orders, the sample pie chart displayed uses the title `Purchase Orders by Buyer`, which creates inconsistency between the actual chart title and the sample chart title. Steps to Reproduce: ================= - Install the **purchase_stock** module with demo data. - Go to the **Dashboard** app. - Open the **Purchase & Vendor Analysis under the Logistics** section. - Scroll down to locate the pie chart titled **Supplier Dependency Chart**. Cause of the Issue: ================ In this [PR](https://github.com/odoo/enterprise/pull/93921), at [this line](https://github.com/odoo/enterprise/pull/93921/changes#diff-61d19b77200011a8808542c134a675631e6d4b4dbc88ca99353cacfe3448b396), The pie chart title was incorrectly set to `Supplier Dependency Chart`, which does not reflect the underlying data, as the chart displays purchase orders grouped by buyer. After This Commit: ================ The pie chart title is corrected from `Supplier Dependency Chart` to `Purchase Orders by Buyer`, ensuring it accurately repersent the underlying data and avoids misleading users. TaskID-5891759 Forward-Port-Of: odoo/enterprise#110434
This update fixes an issue where the helpdesk website displayed all published knowledge articles, regardless of which helpdesk team was viewing them. Now, the website only shows articles linked to the specific team or its associated teams, improving the user experience and ensuring relevant information is presented.
Original PR description
To reproduce: ============= - create multiple published knowledge articles - link one of them to a helpdesk team - check the help page on website -> all public articles are listed Problem: ======== when fetching the articles to list, we don't take into account the team configuration and we list all the published articles. Solution: ========= fetch only the article linked to the team or its children. opw-5913355 Forward-Port-Of: odoo/enterprise#113025 Forward-Port-Of: odoo/enterprise#109361
This update resolves a crash in the Gantt chart view that occurred when opening the chart on days with Daylight Saving Time transitions. The fix addresses an issue where incorrect time calculations led to a data error, preventing users from accessing the Gantt chart. This ensures the Gantt chart remains stable across different time zones.
Original PR description
Steps to reproduce 1. Set your timezone to Asia/Beirut 2. Open a Gantt view (e.g. Planning) in week scale on the last Sunday of March (DST spring-forward day) Issue Beirut's DST spring-forward makes that day only 23 hours long. luxon's .diff() works in absolute time, so diffColumn() returned a float (e.g. 6.958 instead of 7 for a full week). Array(6.958) throws RangeError: Invalid array length, crashing the entire gantt view. Forward-Port-Of: odoo/enterprise#112840
This update fixes misleading low wage warnings in Odoo's Belgian payroll module (l10n_be_hr_payroll). Previously, warnings appeared regardless of contract start dates, causing confusion. Now, warnings only appear if the contract starts in the past or if the wage is zero and the contract starts in the future, ensuring accurate and relevant alerts for HR users.
Original PR description
Before this change, if you created an employee from scratch in a belgian company with l10n_be_hr_payroll installed, you would automatically get a warning saying that you were below minumum wage. This would happen even if there was no contract defined on the version which doesn't make sense. Here, we add the showing condition that the contract date start on the version should be in the past. Another warning that was showing inappropriately is the one saying that the annual salary is below a certain amount and to add transport benefits. This was, for example, showing even if the contract was starting in the future. The new conditions are: - If contract starts in the future and the wage is 0 we don't show it. - If the contract starts in the future, the wage is != 0 but still insufficient, we show. - If the contract starts in the past, we show even if the wage is 0. Task: 6064262
This update restores the previous template structure used in the M3 project, incorporating necessary adaptations. It addresses a technical issue related to existing code and ensures compatibility with current functionality. This change focuses on stability and aligns with previous design standards.
Original PR description
This commit reverts the changes made for M3 to the arch, and bring back the previous template with some adaptation when needed. Note: * M3: some class are still present task-6054024 Co-authored-by: Romeo Fragomeli <rfr@odoo.com>
This update fixes an issue related to how dates and times are displayed in Odoo. The system now correctly shows seconds when requested, and previously hidden formatting options have been removed to avoid confusion. This ensures consistent and accurate time representation across the application.
Original PR description
In this [commit] the short format has been removed from misc methods because there was no more _short format fields in res.lang. But the short format was used to remove seconds from the res.lang format. Now, this behaviour has been restored with the new datetime format system and the unused format 'long' and 'full' has been removed from the doc string to avoid misunderstanding. The formatDateTime from the JS use the format from the res.lang too. So the same behaviour has been implemented there to be able to show seconds through the option 'showSeconds'. It's also fix the fact that this option didn't have any effect when the datetime was shown in numeric mode. [commit]: odoo/odoo@062b140 opw-6030342 Forward-Port-Of: odoo/enterprise#112505
This pull request addresses a small typographical error within the l10n_be_hr_payroll module. The fix ensures accurate calculations related to employee payroll in Belgium. This update improves the overall reliability of the payroll processing system.
Original PR description
typo in https://github.com/odoo/enterprise/pull/113076
This update resolves an issue where the system incorrectly identified employees without a recorded check-in time as eligible for late hours calculations. The fix ensures that records without a check-in are excluded from late hours visibility, preventing errors and ensuring accurate reporting. This improves the reliability of late hours tracking.
Original PR description
_compute_l10n_sa_late_hours_visible, calling min() on the mapped check_in values and then .date() would crash with an AttributeError when check_in is False (e.g. during an onchange triggered by clearing the check_in field in the form view). Filter out records without a check_in before computing the date range, and mark them as not visible since late hours cannot apply without a check-in time. task-6067640 Forward-Port-Of: odoo/enterprise#111935
This update resolves a potential error in the l10n_hk_hsbcnet module that could have prevented correct assignment of HSBC bank accounts for autopay. The change adds a check for valid account numbers before assigning sanitized account numbers, ensuring accurate processing of financial data. This improves the reliability of HSBC bank integration.
Original PR description
. Add account_number check before assign sanitized_account_number task-6049640 Forward-Port-Of: odoo/enterprise#112864
This update fixes a layout issue in the Italian Libro Giornale PDF report. When accounts with long names are used, the report's column width expands too much, causing text to shrink and creating unsightly gaps. The fix adds a CSS class to manage the column width, resulting in a cleaner and more professional report layout.
Original PR description
When generating the Libro Giornale (IT) PDF report with an account that has a very long name, the column expands excessively and break the layout. Steps to reproduce: - With an IT company setup - Have an account with a very long name - Create an invoice using the account - Open Accounting / Reporting / Audit Reports / Journal Audit - Select variant "Libro Giornale (IT)" - Print PDF Issue: The long account name makes the column excessively large. As a result, the font shrinks to fit the page width, leaving wide gaps between lines. **before patch** <img width="794" height="493" alt="screenshot_047" src="https://github.com/user-attachments/assets/6faa5b57-9c60-41cb-9200-003a50019180" /> **after patch** <img width="793" height="553" alt="screenshot_046" src="https://github.com/user-attachments/assets/e97c8948-410b-4201-83c3-04173220d9ce" /> opw-5457103 Forward-Port-Of: odoo/enterprise#112743
This update resolves an issue preventing the download of Intrastat reports for languages that use commas instead of periods as decimal separators. The fix also addresses a previous error related to product weights, improving the overall stability and reliability of the Intrastat reporting process. A more informative error message has been added for better troubleshooting.
Original PR description
Before this commit, in 19.0+, languages that use commas instead of periods for decimals could not download the intrastat report. Simply attempting to change a string to a float was not enough. Also, when a product had a NoneType weight assigned to it another trace back would occur. This also adds a more descriptive and helpful error message. opw-6026730 Forward-Port-Of: odoo/enterprise#112627
This update fixes how default customer partners are assigned when creating orders in our point-of-sale system. Previously, each localized version of the system handled this separately. Now, the system uses a central method to determine the default partner, ensuring consistency across all locations and reducing potential errors.
Original PR description
Replace the `createNewOrder()` override with `getDefaultPartnerId()` in l10n_cl_edi_pos, l10n_co_edi_pos, l10n_ec_edi_pos and l10n_gt_edi_pos. The default partner assignment is now handled centrally in `point_of_sale`'s `createNewOrder()`. opw-6077656 Forward-Port-Of: odoo/enterprise#112467
Code cleanup and technical improvements
This update standardizes the styling of the AI logo across Odoo by renaming the CSS class from `ai-logo-icon` to `oi-ai-logo`. This change improves the overall consistency and maintainability of the codebase, making future updates easier to manage.
Original PR description
*=ai,ai_knowledge,ai_website,test_discuss_full_enterprise Rename `ai-logo-icon` class to `oi-ai-logo` to follow Odoo icon naming conventions This change aligns the AI logo CSS class with the standard `oi-*` naming pattern used by Odoo icons, improving consistency and maintainability across the codebase.
6 changes
Resolved issues and error corrections
This update fixes an issue where the helpdesk website displayed all published knowledge articles, regardless of which team the helpdesk was associated with. Now, the website only shows articles linked to the specific helpdesk team or its related teams, improving the user experience and ensuring relevant information is presented.
Original PR description
To reproduce: ============= - create multiple published knowledge articles - link one of them to a helpdesk team - check the help page on website -> all public articles are listed Problem: ======== when fetching the articles to list, we don't take into account the team configuration and we list all the published articles. Solution: ========= fetch only the article linked to the team or its children. opw-5913355 Forward-Port-Of: odoo/enterprise#113025 Forward-Port-Of: odoo/enterprise#109361
This update resolves a crash in the Gantt chart view that occurred when opening the chart on days with Daylight Saving Time transitions. The fix addresses an issue where incorrect time calculations led to a data error, causing the chart to malfunction. This ensures the Gantt chart remains stable regardless of time zone settings.
Original PR description
Steps to reproduce 1. Set your timezone to Asia/Beirut 2. Open a Gantt view (e.g. Planning) in week scale on the last Sunday of March (DST spring-forward day) Issue Beirut's DST spring-forward makes that day only 23 hours long. luxon's .diff() works in absolute time, so diffColumn() returned a float (e.g. 6.958 instead of 7 for a full week). Array(6.958) throws RangeError: Invalid array length, crashing the entire gantt view. Forward-Port-Of: odoo/enterprise#112840
This update prevents rental products from displaying the 'out of stock' ribbon on the website when their quantity is low. This change ensures a more accurate representation of product availability for rental customers, aligning with the time-based stock management of rental products. The fix corrects a technical issue where the system incorrectly flagged rental products as out of stock.
Original PR description
Currently, when a rental product's quantity on hand drops to 0, the out-of-stock ribbon is displayed on the website for that product. Steps to produce: --- - Install the `eCommerce Rental with Stock…
Currently, when a rental product's quantity on hand drops to 0, the out-of-stock ribbon is displayed on the website for that product. Steps to produce: --- - Install the `eCommerce Rental with Stock Management` module. - Create a rental product and set Quantity On Hand to 1. - Under the Sales tab, disable `Sell when Out of Stock`. - Under the Rental Prices tab, add pricing. - Go to `website > ecommerce > products > product ribbons`. - Open `out of stock` ribbon > set assign as `when out of stock`. - Create and Confirm a rental order for that product and validate the pickup. - The product's Quantity On Hand drops to 0. - Opening the product on the website Observation: --- - The product shows the out-of-stock ribbon. Cause: --- - At [1], the or condition evaluates to True because the ribbon is configured as `when out of stock`, `Sell when Out of Stock` is disabled under the Sales tab, and `_is_sold_out` also returns True since the quantity dropped to 0 after the pickup was validated. As all conditions are met, the ribbon is returned and displayed without ever checking whether the product is a rental. Skip the out-of-stock ribbon assignment for rental products, since their stock availability is time-based. [1]: https://github.com/odoo/odoo/blob/12dd03fb678870ddd3f1f8dca66aa3f934aa7985/addons/website_sale_stock/models/product_ribbon.py#L21-L28 opw-6081483 ---
This update fixes an issue related to how default customer partners are assigned when creating orders in Odoo Point of Sale for specific countries (Chile, Colombia, Ecuador, and Guatemala). The change centralizes partner assignment, ensuring more consistent order creation across these localized versions. This improves order processing reliability.
Original PR description
Replace the `createNewOrder()` override with `getDefaultPartnerId()` in l10n_cl_edi_pos, l10n_co_edi_pos, l10n_ec_edi_pos and l10n_gt_edi_pos. The default partner assignment is now handled centrally in `point_of_sale`'s `createNewOrder()`. opw-6077656
This update fixes a layout issue in the Italian Libro Giornale PDF report. When accounts with long names are used, the report's column width expands, causing font shrinkage and excessive spacing. The change adds a CSS class to manage column width, resulting in a cleaner and more readable PDF report.
Original PR description
When generating the Libro Giornale (IT) PDF report with an account that has a very long name, the column expands excessively and break the layout. Steps to reproduce: - With an IT company setup - Have an account with a very long name - Create an invoice using the account - Open Accounting / Reporting / Audit Reports / Journal Audit - Select variant "Libro Giornale (IT)" - Print PDF Issue: The long account name makes the column excessively large. As a result, the font shrinks to fit the page width, leaving wide gaps between lines. **before patch** <img width="794" height="493" alt="screenshot_047" src="https://github.com/user-attachments/assets/6faa5b57-9c60-41cb-9200-003a50019180" /> **after patch** <img width="793" height="553" alt="screenshot_046" src="https://github.com/user-attachments/assets/e97c8948-410b-4201-83c3-04173220d9ce" /> opw-5457103 Forward-Port-Of: odoo/enterprise#112743
This update corrects a stability issue within the expense wizard for Stripe integration. By switching to a temporary model type, the wizard now functions more reliably, preventing potential errors and ensuring smoother expense processing. This change focuses on internal improvements to the Odoo Enterprise system.
Original PR description
`HrExpenseStripeTestPurchaseWizard` is currently using a normal `Model`, but it's a wizard, so use a `TransientModel`.
10 changes
Resolved issues and error corrections
This update fixes a minor issue with the SendCloud delivery module by adding a clearer error message to users when delivery problems occur. This helps users quickly understand the reason for the failure and take appropriate action, improving the overall delivery process. The change was driven by a specific user feedback ticket.
Original PR description
Add hint with error message. ----- Ticket: opw-6072855
This update resolves a bug that caused Odoo reports to crash when comparing data containing string values. The fix ensures the report accurately handles different data types during comparisons, improving overall stability and reliability. This prevents unexpected errors when users utilize the report comparison feature.
Original PR description
To reproduce: - Create a company in LU - Open the annual tax report for LU - Click on the comparison filter, compare with 1 period in the past ==> Traceback. This happens because that report contains a string value (an editable one, but it's not important here). Since there are only 2 comparison periods, we try creating the "%" column, comparing their amounts. The condition checking whether or not to display "N/A" was wrong, as it considered the values could only be int/float or None. Here, they are strings, so we don't enter that condition and crash when trying to evaluate float_is_zero on a string.
This update fixes a bug that prevented product descriptions from appearing on barcode receipts. Previously, only the product name was shown. Now, when a product has a description, it's correctly displayed on the barcode receipt, improving clarity and accuracy for users.
Original PR description
**problem:** The description/internal notes of a product is not displayed on the barcode interface. **steps to reproduce:** 1. Create a product with a "Description" 2. Create and confirm a request…
**problem:** The description/internal notes of a product is not displayed on the barcode interface. **steps to reproduce:** 1. Create a product with a "Description" 2. Create and confirm a request for quotation for this product through the purchase app 3. Open the receipt in the barcode app 4. The description is not visible on the line **cause:** - The JS barcode model (`/stock_barcode/barcode_picking_model.js`) never propagated the description_picking from the parent stock.move record to the stock.move.line data used by the UI template. - The view did not have a tag for the description. - In Python (`_get_stock_barcode_data()`) in `stock_barcode/stock_picking.py` did not filter out the redundant default description_picking, which was set to product.name when no specific picking description exists on the product. **fix:** - In `_get_stock_barcode_data()`, recompute the move description to be the actual description (or `False` when empty/default 'product.name'). - We need to propagate the description_picking from stock.move to the stock.move.line data, and render it in the views. opw-6058584
This update resolves an issue preventing non-stock users from duplicating helpdesk tickets with associated sales. The fix sets the product ID to 'false' during duplication, allowing users without stock access to create copies of tickets. This improves usability for all users.
Original PR description
Steps to reproduce: - Install helpdesk_sale_timesheet. - Create a Helpdesk Ticket and set its sale_line_id. - Log in as a user without stock.group_stock_user access. - Try to duplicate the ticket. Issue: Duplicating a ticket raises an AccessError because the user lacks stock rights required when copying the product_id. Fix: Set `product_id` to False during duplication for non-stock users. Reference: https://github.com/odoo/enterprise/pull/9100 task-5356318
This update resolves a technical issue that prevented users from closing sessions when generating the DSFinV-K export for German Point of Sale certifications. The change ensures a fallback user ID is used, allowing session closure to proceed smoothly. This improves the reliability of the certification export process.
Original PR description
Before this commit, closing a session was blocked if an order was missing the user_id field during DSFinV-K export generation. opw-6067382
This update fixes an issue where the employee health warning incorrectly flagged individuals with long-term sick leaves. The change adjusts the logic to include employees who have been on sick leave for at least 31 days, ensuring more accurate reporting of employee health status. This improves the reliability of the HR dashboard.
Original PR description
-**Issue**: The warning shows employees who had a long sick leaves before 31 days, which is incorrect. -**Fix**: Adjust the logic to include employees who have been on a sick leave for the past 31 days (at least). Forward-Port-Of: odoo/enterprise#112985
This update resolves an issue that occurred when a product was removed from a POS order, preventing a crash. The fix ensures the system handles cases where a preparation display order has no assigned stage, avoiding an error and maintaining order processing functionality. This improves stability and reliability for users.
Original PR description
When a product is removed from a POS order, _process_preparation_changes sorts the preparation display lines by their current stage sequence to determine cancellation priority. This relies on `order_stage_ids[-1]`, which raises an IndexError when a preparation display order has no stage assigned. Steps to reproduce: 1. Create a preparation display with at least one category filter. 2. Add a product to the POS with no POS category assigned. 3. Add that product to an order and send it. 4. Remove the product from the order and proceed to payment. 5. → IndexError: tuple index out of range opw-6089731 Forward-Port-Of: odoo/enterprise#112757
This update enhances error tracking for invoice processing within the account_peppol module. By including full error tracebacks in logs, developers can quickly identify and resolve issues, leading to faster problem resolution and improved system stability.
Original PR description
This change improves error logging when receiving invoices by including the full traceback in the logs. This provides better visibility into the root cause and simplifies debugging by giving more context around the error. opw-6059877 Forward-Port-Of: odoo/odoo#256619
This update resolves an issue where tours would fail to run after making changes to views using the Studio customization tool. The fix filters out a misleading module entry, 'studio_customization,' that was incorrectly identified as an installed module. This ensures tours function correctly after view modifications.
Original PR description
Step to reproduce: - start a fresh db, install studio and pos - using studio, edit any view (add or remove a field) - run any tour Observation: - we are not able to run any tour Traceback ``` File…
Step to reproduce:
- start a fresh db, install studio and pos
- using studio, edit any view (add or remove a field)
- run any tour
Observation:
- we are not able to run any tour Traceback
```
File "/home/odoo/odoo/codebase/odoo/18.0/odoo/addons/base/models/ir_qweb.py", line 2703, in _get_lazy_bundles_from_js
for fname in glob.iglob('**/static/src/**/*.js', root_dir=modroot, recursive=True):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/glob.py", line 46, in iglob
root_dir = os.fspath(root_dir)
^^^^^^^^^^^^^^^^^^^
TypeError: expected str, bytes or os.PathLike object, not bool
```
Cause:
- `_get_lazy_bundles_from_js` fetches module path for all installed module in addons
https://github.com/odoo/odoo/blob/05d0944a7640e196db989039140ae5ddb12152ac/odoo/addons/base/models/ir_qweb.py#L2686-L2697
- in case we have a view edited, we get the `studio_customization` as installled module, which doesn't have any path in addons. i.e. False
Fix:
- filter out such pseudo-modules from the list
Note: this is not a reported issue, i stumbled across it, hence made a fix
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#257806Features or functions removed from Odoo
This pull request removes a mistakenly added translation file for the website_twitter module. The file was previously corrected in another pull request, and this action ensures the codebase remains clean and consistent. This change has no impact on Odoo's functionality.
Original PR description
Wrongly added in https://github.com/odoo/odoo/pull/172269. Module was deleted in https://github.com/odoo/odoo/pull/172755. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
6 changes
Resolved issues and error corrections
This update fixes a warning related to employee sick leave durations. Previously, the system incorrectly flagged employees with sick leaves exceeding 31 days. The change now accurately identifies employees who have been on sick leave for the past 31 days, ensuring accurate reporting and compliance.
Original PR description
-**Issue**: The warning shows employees who had a long sick leaves before 31 days, which is incorrect. -**Fix**: Adjust the logic to include employees who have been on a sick leave for the past 31 days (at least).
This update resolves an error that occurred when removing products from POS orders, specifically when a product lacked a POS category. The fix prevents a program crash (IndexError) that could disrupt order cancellation processes. This ensures smoother and more reliable order management within the POS system.
Original PR description
When a product is removed from a POS order, _process_preparation_changes sorts the preparation display lines by their current stage sequence to determine cancellation priority. This relies on `order_stage_ids[-1]`, which raises an IndexError when a preparation display order has no stage assigned. Steps to reproduce: 1. Create a preparation display with at least one category filter. 2. Add a product to the POS with no POS category assigned. 3. Add that product to an order and send it. 4. Remove the product from the order and proceed to payment. 5. → IndexError: tuple index out of range opw-6089731
This update corrects a display issue where the product count in the stat button on Sale Order Lines created from tasks would incorrectly show '0 products' until the task was saved. Now, the counter accurately reflects the products associated with the task, providing a more reliable view of sales activity.
Original PR description
Previously, when creating a Sale Order Line on the fly from a task, the product count in the stat button showed '0 products' until the task was saved. Now, the counter no longer drops to 0 when the record is not saved. task-4276677
This update enhances error tracking for invoice processing within the account_peppol module. By including full error tracebacks in logs, developers can now quickly identify and resolve issues related to invoice receipt, leading to faster problem resolution and improved system stability.
Original PR description
This change improves error logging when receiving invoices by including the full traceback in the logs. This provides better visibility into the root cause and simplifies debugging by giving more context around the error. opw-6059877 Forward-Port-Of: odoo/odoo#256619
This update prevents the system from deleting user-modified views (COW views) during a routine cleanup process. Previously, these views were incorrectly identified as orphaned and removed, disrupting website customizations. The fix ensures that only truly orphaned views are deleted, preserving user-created content.
Original PR description
**Description** This PR fixes an issue where COW views created by users were being deleted during `_theme_cleanup`. **Issue:** [odoo/odoo#233723](https://github.com/odoo/odoo/issues/233723) ### Explanation The `_theme_cleanup` method deleted all views with `theme_template_id=False`. COW views created when users edited generic views also had `theme_template_id=False` because the field has `copy=False`. As a result, the method couldn’t distinguish between true orphans and user customizations. ### Solution Before deleting, the cleanup process now checks if a generic parent view exists. Only views without generic parents (true orphans) are deleted. task-5248173
This update resolves an issue where archived product filters were failing in Odoo 17.0. The fix ensures that display names are correctly loaded for archived records, allowing them to be included in spreadsheet global filters and improving overall filter functionality. This ensures accurate reporting and data access for archived items.
Original PR description
## Description: Steps to reproduce: - Open Dashboard > Sales > Sales. - Search for an item to filter. - Click the "Product" filter. - Click "Search more". - Search for an archived product. - Select it to add it to the filter. Issue: The filter needs `nameService.loadDisplayNames()` to resolve the label of the selected record ids. In 17.0, that service calls `webSearchRead()` without `active_test=False`, so archived records are filtered out and treated as missing. This makes spreadsheet global filters fail on archived records. Fix: Fetch display names with `active_test=False` in the shared web `nameService`, so already-known archived record ids can still be resolved. Task: [6094596](https://www.odoo.com/odoo/project/2328/tasks/6094596) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr