Tuesday, December 30, 2025
29 changes
10 changes
Resolved issues and error corrections
This update adjusts the size of the QR code displayed to customers in Odoo Point of Sale. The previous QR code was too small, making it difficult to scan. This change improves the customer experience and ensures easier order processing.
Original PR description
**Description of the issue/feature this PR addresses:** QR code generated for customer display in Odoo POS is considered too small, therefore need size adjustment for enhanced visibility and user experience. Sizing is adjusted to be more uniformed with the backend popup. task-[5262218](https://www.odoo.com/odoo/project.task/5262218) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#237684
This update fixes a visual issue in the email interface where the unread message separator would overlap with the highlight animation when navigating to new messages. The change restores the correct spacing to ensure the separator is always visible, providing a cleaner and more consistent user experience. This improves the overall readability of the email inbox.
Original PR description
**Description of the issue/feature this PR addresses:** ---------------------------------------------- In saas-18.2, the unread message separator can visually overlap with the message jump/highlight…
**Description of the issue/feature this PR addresses:** ---------------------------------------------- In saas-18.2, the unread message separator can visually overlap with the message jump/highlight animation when navigating to unread messages. This issue was not present in 18.0 and results from reduced vertical spacing between the unread separator and the first unread message. **Current behavior before PR:** ---------------------------------------------- - Clicking the “X new messages” banner triggers a jump highlight animation - The highlighted message overlaps the unread red separator line - The separator becomes partially or fully obscured during the animation **Desired behavior after PR is merged:** ---------------------------------------------- - The unread separator remains clearly visible during message jump/highlight - No overlap occurs between the separator and the highlighted message - Highlight animation behavior remains unchanged - Visual behavior matches the stable experience observed in 18.0 This PR restores sufficient vertical spacing for the unread separator line, preventing overlap without altering message animation or interaction logic. Task-5420965 I confirm I have signed the CLA and read the PR guidelines at https://www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#241294
Previously, out-of-stock messages on the website were rendered as a single line, causing them to overflow and look unprofessional. This update fixes this by ensuring line breaks are preserved, allowing the message to wrap naturally and display correctly within the product badge. This improves the user experience and visual consistency.
Original PR description
- Before saas-18.4, the [out-of-stock](https://github.com/odoo/odoo/blob/saas-18.3/addons/website_sale_stock/static/src/xml/website_sale_stock_product_availability.xml#L8) message was rendered as…
- Before saas-18.4, the [out-of-stock](https://github.com/odoo/odoo/blob/saas-18.3/addons/website_sale_stock/static/src/xml/website_sale_stock_product_availability.xml#L8) message was rendered as plain text without any layout-specific classes, allowing the message to wrap naturally. **Reference of version saas-18.3** <img width="1920" height="768" alt="2025-12-16_18-53" src="https://github.com/user-attachments/assets/d7670fa4-6808-40d7-9bad-768d0637f366" /> - From saas-18.4, the [out-of-stock](https://github.com/odoo/odoo/blob/saas-18.4/addons/website_sale_stock/static/src/xml/website_sale_stock_product_availability.xml#L13-L16) message is rendered using `t-out`, which outputs plain text and collapses line breaks, causing the message to appear on a single line and overflow when used with `d-inline-flex`. See screenshots in the PR description (Before fix). <img width="1920" height="672" alt="2025-12-16_14-28" src="https://github.com/user-attachments/assets/927080cd-f2b0-45cd-ae0a-2917699c05f6" /> - Updated the layout to replace `d-inline-flex` with `d-flex` and apply `text-break` on the message container so long and dynamic texts wrap correctly inside the badge. See screenshots in the PR description (After fix). <img width="1918" height="682" alt="2025-12-16_14-31" src="https://github.com/user-attachments/assets/2cafdc61-e494-468a-9d41-08ab3c83b041" /> opw-5274850 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#240235
This update simplifies the process for restaurant staff when setting up tables. Previously, users had to specify the number of guests each time a preset was activated. Now, the system prompts users to select the number of guests only when a table is first opened with a guest preset.
Original PR description
Before, when a preset with guests option was activated, it asked user to choose the number of guest to the first kitchen sending. Now, we ask user, if the option is activated, when the table is opening for the first time. task: 5431510 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#240964
This update corrects a minor formatting issue in the HR and HR Holidays documentation. The original documentation used section underlines that were too short, causing a warning during the documentation build process. This fix ensures the documentation is properly formatted and consistent, improving the overall user experience.
Original PR description
This pull request fixes improperly formatted reStructuredText section titles in the hr module documentation. The original MD file used a section underline that were shorter than the title text, which caused docutils to raise this warning: (WARNING/2) Title underline too short. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#236908
This update allows accountants to archive reports, streamlining their workflow and reducing clutter. The change was necessary because a standard accountant user lacked the permissions to modify menu items, leading to an access restriction. This fix ensures accountants can manage reports effectively without needing administrative privileges.
Original PR description
As a simple accountant without sysadmin rights, archive a report. A user access is raised because the user doesn't have access to update menuitems. Forward-Port-Of: odoo/enterprise#102276
This update fixes a visual issue where warning tooltips appeared incorrectly across the entire payrun status. Now, tooltips only display on the specific stage where a warning exists, providing a clearer and more accurate representation of the payrun's status. This enhances user understanding and reduces potential confusion.
Original PR description
Issue: The warning tooltip appeared on all stages of the payrun, even when the warning existed only in the current stage. Fix: Show the warning tooltip only on the active stage where the warning or error bubble actually exists. Impact: Makes the payrun status bubbles clearer and prevents users from misunderstanding where warnings actually are. task-5406861
This update fixes a bug where forum images set to specific sizes (50% or 25%) weren't being saved correctly. The system was stripping out inline style attributes, preventing the desired image size from being applied. This change disables the use of inline styles for image sizing in forum posts, ensuring images are displayed as intended.
Original PR description
Problem: When creating a new forum post with an image set to "50%" or "25%" size, the post is saved with the original image size instead of the selected one. Cause: The `Post.content` field has `strip_style=True`, which removes any inline `style` attributes before saving. Since image size ratios were applied using `style="width: 50%"`, the width information was lost. Solution: Disable image size options that depend on inline `style` attributes, as they cannot be preserved when saving forum posts. Steps to reproduce: 1. Go to Forum. 2. Create a new post. 3. Add an image and set its size to 50% or 25%. 4. Save the post — the image appears with its original size. opw-5173917 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#240701 Forward-Port-Of: odoo/odoo#234354
This update resolves an issue where users were unable to set invalid default values for date fields in partner records. The fix prevents the system from throwing an error when attempting to assign incorrect data types, ensuring data integrity and a smoother user experience. This improves stability and reduces potential data entry problems.
Original PR description
Steps:
- Create a user defined defaults value
- Model: res.partner
- Field: date
- Value: 1
- Create a new contact
Actual result:
- invalid field type
- 'int' object is not subscriptable (depends of field type)
Expected result:
- No error
- User is not able to put an invalid value as a default
task-3729963
Forward-Port-Of: odoo/odoo#238539
Forward-Port-Of: odoo/odoo#225991This update fixes an issue where payslips were not correctly displaying currency symbols. A small, hidden field was added to the payslip form to ensure the correct currency is associated with monetary values, leading to accurate reporting and financial data presentation.
Original PR description
The properties widget relies on the presence of the currency field in the view. Add an invisible currency_id field to the payslip form to properly display monetary symbols. task-5357836 Forward-Port-Of: odoo/enterprise#102896
3 changes
Resolved issues and error corrections
This update fixes a visual issue in the email interface where the unread message separator would overlap with the highlight animation when navigating to new messages. The change restores the correct spacing, ensuring the separator remains visible and the animation functions as expected, providing a consistent user experience.
Original PR description
**Description of the issue/feature this PR addresses:** ---------------------------------------------- In saas-18.2, the unread message separator can visually overlap with the message jump/highlight…
3 changes
Resolved issues and error corrections
This update fixes a visual issue in the email interface where the unread message separator would overlap with the highlight animation. By increasing the spacing between these elements, the separator is now clearly visible during message navigation, ensuring a consistent and professional user experience.
Original PR description
**Description of the issue/feature this PR addresses:** ---------------------------------------------- In saas-18.2, the unread message separator can visually overlap with the message jump/highlight…
1 change
Resolved issues and error corrections
This update fixes a potential issue where payroll calculations in the US could incorrectly show employees owing money to the state. The change ensures that taxable income defaults to zero when state deductions exceed gross income, preventing negative values on payslips and ensuring accurate tax reporting.
Original PR description
This commit simply defaults the computed taxable income amount to 0 in case the state deductions are greater than their gross income. Otherwise our payslips would imply that these employees are owed money by the state opw-5137280 Forward-Port-Of: odoo/enterprise#98114
1 change
Resolved issues and error corrections
This fixes a website issue where dynamic snippets could trigger an Odoo Client Error during page loading. Website visitors and editors should now see snippets load more reliably when the size listener is unavailable.
Original PR description
DynamicSnippet._setupSizeChangedManagement() the problem occurs if removeSizeListener() is not defined and you are trying to call it. This would result in an Odoo Client Error Description of the issue/feature this PR addresses: BUG Current behavior before PR: Odoo Client Error Desired behavior after PR is merged: No Error on WEbsite Snippet Load --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
1 change
Resolved issues and error corrections
This update ensures that all work entries are consistently set to 'draft' status when the 'action_set_to_draft' function is used. Previously, this function didn't always work correctly, leading to inconsistencies in the system. This change improves data accuracy and streamlines payroll processing.
Original PR description
Problem ---------- the `action_set_to_draft` should set any work entry to draft regardless of the situation. Solution ---------- If only the state is write to draft, let the whole vals be written task-5410512 Forward-Port-Of: odoo/enterprise#102944 Forward-Port-Of: odoo/enterprise#101891
2 changes
Resolved issues and error corrections
This update fixes an issue where payslips were not displaying currency symbols correctly. A small, hidden field was added to the payslip form to ensure the correct currency is associated with monetary amounts, improving the accuracy of payroll reporting.
Original PR description
The properties widget relies on the presence of the currency field in the view. Add an invisible currency_id field to the payslip form to properly display monetary symbols. task-5357836
3 changes
Resolved issues and error corrections
This update fixes an issue where scanning invalid GS1 barcodes in Point of Sale could incorrectly load products. Previously, scanning a barcode like '0000' would lead to the first product containing '0' in its barcode being loaded. This change ensures that only valid barcodes correctly identify and add the intended product to the sale.
Original PR description
Before this commit, when GS1 barcode was set in the company settings, scanning an invalid barcode may load a wrong product. For example, if the barcode "0000" was scanned, and it would search for all products that contains "0" in their barcode, and load the first one found. opw-5394561 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
1 change
Resolved issues and error corrections
This update fixes a test failure related to the TPAR report. The test now uses current date information, ensuring it runs correctly regardless of the current year and future deployments. This improves the reliability of our reporting processes.
Original PR description
Behavior before:
The TPAR report test used hardcoded dates ('2025-01-01' to '2025-12-31'). When running tests with Faketime or on future deployments, this caused failures because the test did not adapt to the current date.
Behavior after:
The test now uses dynamic dates based on `fields.Date.context_today(self.env.user)`. This ensures the test runs correctly regardless of the current year and avoids issues with hardcoded dates.
Root Cause:
Hardcoded dates in the test conflicted with Faketime, causing the test environment to simulate a future year and fail.
Runbot issue: https://runbot.odoo.com/odoo/runbot.build.error/237547**Description of the issue/feature this PR addresses:** ---------------------------------------------- In saas-18.2, the unread message separator can visually overlap with the message jump/highlight animation when navigating to unread messages. This issue was not present in 18.0 and results from reduced vertical spacing between the unread separator and the first unread message. **Current behavior before PR:** ---------------------------------------------- - Clicking the “X new messages” banner triggers a jump highlight animation - The highlighted message overlaps the unread red separator line - The separator becomes partially or fully obscured during the animation **Desired behavior after PR is merged:** ---------------------------------------------- - The unread separator remains clearly visible during message jump/highlight - No overlap occurs between the separator and the highlighted message - Highlight animation behavior remains unchanged - Visual behavior matches the stable experience observed in 18.0 This PR restores sufficient vertical spacing for the unread separator line, preventing overlap without altering message animation or interaction logic. Task-5420965 I confirm I have signed the CLA and read the PR guidelines at https://www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#241294
This update corrects a technical error that occurred when duplicating Odoo databases. The change ensures the system handles recordsets larger than one, preventing a 'Expected singleton' error. This improves database stability and reliability during duplication processes.
Original PR description
These two computes assume a recordset of size 1. When duplicating databases, the recordset for this method might be more than 1, causing a "Expected singleton" traceback. See opw-5226545 (and linked TOTD thread)
This update adjusts the size of the QR code displayed to customers in Odoo Point of Sale. The previous QR code was too small, making it difficult to scan. This change ensures a better user experience and improved scanning accuracy for customer orders.
Original PR description
**Description of the issue/feature this PR addresses:** QR code generated for customer display in Odoo POS is considered too small, therefore need size adjustment for enhanced visibility and user experience. Sizing is adjusted to be more uniformed with the backend popup. task-[5262218](https://www.odoo.com/odoo/project.task/5262218) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#237684
**Description of the issue/feature this PR addresses:** ---------------------------------------------- In saas-18.2, the unread message separator can visually overlap with the message jump/highlight animation when navigating to unread messages. This issue was not present in 18.0 and results from reduced vertical spacing between the unread separator and the first unread message. **Current behavior before PR:** ---------------------------------------------- - Clicking the “X new messages” banner triggers a jump highlight animation - The highlighted message overlaps the unread red separator line - The separator becomes partially or fully obscured during the animation **Desired behavior after PR is merged:** ---------------------------------------------- - The unread separator remains clearly visible during message jump/highlight - No overlap occurs between the separator and the highlighted message - Highlight animation behavior remains unchanged - Visual behavior matches the stable experience observed in 18.0 This PR restores sufficient vertical spacing for the unread separator line, preventing overlap without altering message animation or interaction logic. Task-5420965 I confirm I have signed the CLA and read the PR guidelines at https://www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#241294
This update fixes a technical error that prevented the system from correctly updating SSL certificate status information. The issue stemmed from incorrect timezone handling during data conversion, which caused a system error. This change ensures certificate updates run smoothly without interruption.
Original PR description
Currently an error occurs when the `iot/box/update_certificate_status` controller tries to write `ssl_certificate_end_date` as `cert.not_valid_after_utc`. Error: `ValueError: unconverted data remains: +00:00` This is because when we convert `cert.not_valid_after_utc` to a string, it will convert the UTC date as ` "2026-03-08 13:06:39+00:00"` and while the system converts this string date with +00:00, it will throw an error. This commit fixes the issue by using a `timezone-naive` value derived from `cert.not_valid_after_utc`. Applying `replace(tzinfo=None)` removes the `+00:00` timezone information and converts the datetime to a `timezone-naive` object. sentry-7016111455
This update adjusts the size of the QR code displayed to customers in Odoo Point of Sale. The previous QR code was too small, making it difficult to scan. This change ensures better visibility and a smoother customer experience.
Original PR description
**Description of the issue/feature this PR addresses:** QR code generated for customer display in Odoo POS is considered too small, therefore need size adjustment for enhanced visibility and user experience. Sizing is adjusted to be more uniformed with the backend popup. task-[5262218](https://www.odoo.com/odoo/project.task/5262218) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#237684
This update fixes an issue where Brazilian POS orders weren't correctly displaying their NFC-e sequence number in the backend. The fix adjusts a key method to ensure order names accurately reflect the defined sequence (e.g., POS-1234 instead of POS-00001), aligning with Brazilian tax regulations.
Original PR description
Brazilian order shoud follow the NFC-e sequence defined in the POS config. Steps to reproduce: ------------------- * Setup a POS in Brazil with NFC-e sequence (set the sequence to 1234) * Create a new order in the POS * Validate the order * Check the order name in backend > Observation: The order name is like: POS-00001 instead of POS-1234 Why the fix: ------------ We adapt the method _compute_order_name to get the correct sequence number if the country is Brazil. opw-5243454
This update resolves an issue that prevented users from creating payslips for contracts without a defined working schedule in the Belgian payroll system. The fix ensures that the system now defaults to the company's standard calendar when a contract lacks a specific schedule, preventing a traceback error. This improves the reliability of payslip generation.
Original PR description
Currently, a traceback occurs when a user tries to create a payslip for a contract that has no working schedule in a Belgian company. **Steps to reproduce this issue:** 1) Install l10n_be_hr_payroll…
Currently, a traceback occurs when a user tries to create a payslip for a contract that has no working schedule in a Belgian company. **Steps to reproduce this issue:** 1) Install l10n_be_hr_payroll and hr_attendance and switch to BE company 2) Create an employee with no working hours. 3) Create a contract for that employee with: - Work entry source as Attendance - No Working Schedule - State should be open/running 4) Click the Payslip smart button to create a new payslip for that contract. 5) A traceback occurs **Error:** ``` ValueError: Expected singleton: resource.calendar() ``` **Cause:** When creating a payslip for a contract with no resource_calendar_id, the method `_get_work_hours_split_half` calls `_get_max_number_of_hours` through self.resource_calendar_id. Since the contract's calendar lacks a resource_calendar_id, this triggers a ValueError in `_get_max_number_of_hours`. https://github.com/odoo/enterprise/blob/193b51ded0dfa46ed75f6c0020f0f5609f4a0f99/l10n_be_hr_payroll/models/hr_contract.py#L472 **Solution:** If the contract or employee does not have a resource_calendar_id, use the default resource_calendar_id from the company instead. opw-5237559
This update resolves a sporadic test failure related to how partner suggestions are sorted, specifically when messages are sent. The fix ensures the test accurately reflects the system's data by waiting for the necessary updates to complete before verification, preventing incorrect sorting results.
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