Daily updates from Odoo
Saturday, March 28, 2026
53 changes
9 changes
Resolved issues and error corrections
This update resolves an issue where excessively long product names in the Master Production Schedule would cause other schedule columns to disappear from view. The fix wraps long product names within the HTML tag to prevent this visual disruption and ensure the entire schedule remains visible.
Original PR description
Problem: In the master production schedule, if a product on the schedule has a name that would extend to the right edge of the screen, all of the other colums for the schedule will be completely hidden. Solution: We will wrap the text in the <a> tag containing the product name. Steps to Replicate (Runbot v19): 1. Open the Master Production Schedule 2. Click the pencil on one of the products 3. Click into the product and change its name to be something very, very long 4. Navigate back to the MPS and notice that you cannot see the actual schedule elements, even if you scroll to the end. opw-6066088 Forward-Port-Of: odoo/enterprise#111896
This update resolves problems with exporting the trial balance and working files in Odoo Enterprise. Specifically, incorrect dates in the working file exports and issues with the custom template were addressed, ensuring accurate reporting.
Original PR description
Steps to reproduce: - Export the PDF of the trial balance OR - Export a working file Both use the custom template of the trial balance. The date of the working file was also incorrect.
This update resolves an issue where the system incorrectly identified direct deposit accounts due to changes in Wise's API response format. The fix ensures the system consistently handles both 'swift_code' and 'SwiftCode' variations, preventing errors and ensuring accurate processing of direct deposit payments. This improves the reliability of the direct deposit feature.
Original PR description
Internally, Wise has changed their return value of their API to sometimes return `swift_code` and other times return `SwiftCode` depending on the create time of the recipient account. If the account is older than a few months it will use `SwiftCode` as the return value of GET /v2/accounts when they are created with type `swift_code` in the POST. As such, to be defensive this code handles both cases to not make any assumptions in case users have old or new accounts. This stops a traceback where the system doesn't think it's a swift account and tries to access abartn even though it doesn't exists. task-6070033 Forward-Port-Of: odoo/enterprise#112075
This update resolves a technical issue that was causing instability in Odoo's VoIP testing. The fix removes unnecessary event listeners that were previously leaking memory, ensuring the test suite runs reliably. This improves the overall quality and stability of Odoo's VoIP features.
Original PR description
Forward-Port-Of: odoo/odoo#256376
This update fixes an issue where Odoo's translation caching wasn't working correctly when related fields were updated. Specifically, when a translated field changes, dependent calculations using that field's translation in another language were incorrectly dropping the cached translation. This change ensures that existing translations are retained in the cache, improving performance and data consistency.
Original PR description
when related translated field (field_x) is changed when onchange, if another computed fields which depends on the field_x is recomputed but using another language value of the field_x. The orm should keep the existing translations in the cache but not drop them. 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#256324 Forward-Port-Of: odoo/odoo#256111
This update resolves a technical issue preventing a key test from running correctly within the sale order management module. The test has been moved to the related module, ensuring proper functionality and stability. This change improves the reliability of our sales order processing system.
Original PR description
Issue: --- `is_optional` does not exist in `sale` module, leading to runbot issue. The test needs to be moved to `sale_management`. runbot-242127 Forward-Port-Of: odoo/odoo#256099
This update corrects an issue in Odoo invoices' PDF reports where section formatting caused column misalignment, specifically when 'Hide Composition' was enabled. The fix ensures consistent alignment of subtotal information, improving invoice presentation and readability. This improves the professional appearance of invoices.
Original PR description
**Problem:** In invoice PDF reports, when a section has Hide Composition enabled having a product inside, the description cell reserves too many columns (that are not available like quantity, unit…
**Problem:** In invoice PDF reports, when a section has Hide Composition enabled having a product inside, the description cell reserves too many columns (that are not available like quantity, unit price) while the quantity is still rendered as (1.00 Units), and unit price/discount/tax cells are conditionally omitted for section/subsection display types. This adds the extra table cells (quantity "1.00 units", total amount) after the first few reserved columns, this shifts the quantity/amount column a few positions to the right resulting in inconsistency mapping between the values and the name of the column. Before: <img width="1622" height="867" alt="2026-03-25_10-56" src="https://github.com/user-attachments/assets/57d6857a-7763-48d3-8131-fdc4e37a6704" /> After: <img width="1628" height="771" alt="2026-03-25_13-55" src="https://github.com/user-attachments/assets/d9df6cbe-3c23-4874-b50f-6797ef644c03" /> **Steps to reproduce:** 1- Create a customer invoice 2- Add a section. 3- Add products under the section with quantity and price 4- Enable hide composition on the section 5- Confirm and print the invoice PDF 6- Observe the section subtotal rows shifted by one column **Cause:** In grouped rendering, line_colspan for non-product rows still reserves Quantity,Unit Price columns, while hide_details also renders a dedicated quantity cell (1.00 Units). This makes the row consume extra columns and breaks alignment. **Solution:** For grouped rows in hide_details mode, We need to render the description cell with a minimal colspan (1) and explicitly keep the remaining column slots stable: keep Quantity cell (1.00 units), Unit Price, Discount, taxes as an empty placeholder cells if not available. --- opw-6030372 Forward-Port-Of: odoo/odoo#256233 Forward-Port-Of: odoo/odoo#255334
A technical problem with how Odoo processed spreadsheet data was causing errors. This update removes a formatting issue (a trailing line break) from JSON files before they're used, ensuring the spreadsheet data can be correctly processed and used. This prevents errors when sharing and opening the Sales Commission spreadsheet.
Original PR description
Steps to reproduce: - Share the Sales Commission spreadsheet - Open the shared link ⮕ traceback This was caused by the trailing line break in the json, so the last character was not a `}`. Task: 6064328 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#256475 Forward-Port-Of: odoo/odoo#255523
This update corrects a timezone discrepancy in the generation of EDI export files for sales orders. Previously, the date used in the EDI file didn't align with the order's creation time, leading to potential errors. This fix ensures the EDI date matches the order's UTC timestamp, improving data accuracy and consistency.
Original PR description
The Issue: Before this commit, the generated EDI XML used `sale_order.create_date.date()` to populate the IssueDate node, while the test used `datetime.today().date()` to build the expected value. Since `create_date` is a UTC timestamp set by the database and `datetime.today()` returns the local system time, these diverge when the server timezone is ahead of UTC and the test runs shortly after local midnight (e.g., runbot at 01:00 CET produces UTC date Jan 11 vs local date Jan 12). The Fix: Align the test to derive its expected date from `so.create_date.date()` instead of `datetime.today().date()`, ensuring both sides use the same timezone-consistent source of truth. runbot-237841 I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#256065
5 changes
Resolved issues and error corrections
This update fixes a test failure related to optional discount line editing within the sale_management module. The test was incorrectly placed in the sale module, causing a runbot issue. Moving the test to the correct location ensures proper functionality and stability of the discount editing process.
Original PR description
Issue: --- `is_optional` does not exist in `sale` module, leading to runbot issue. The test needs to be moved to `sale_management`. runbot-242127 Forward-Port-Of: odoo/odoo#256099
This update resolves a technical issue that was causing instability in Odoo's VoIP testing. The fix ensures that event listeners are properly removed after tests, preventing memory leaks and improving the reliability of the test suite. This ultimately contributes to a more stable and dependable Odoo platform.
Original PR description
Forward-Port-Of: odoo/odoo#256376
This update fixes a performance issue related to Odoo's translation caching. Previously, when a translated field was updated, it could trigger unnecessary recalculations of other dependent fields, even if those fields used a different language value. Now, Odoo will retain existing translation caches, improving speed and efficiency when updating related fields.
Original PR description
when related translated field (field_x) is changed when onchange, if another computed fields which depends on the field_x is recomputed but using another language value of the field_x. The orm should keep the existing translations in the cache but not drop them. 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#256324 Forward-Port-Of: odoo/odoo#256111
A technical issue with how Odoo processed spreadsheet data was causing errors. This update corrects a problem where a trailing character in the spreadsheet's JSON format was preventing it from being correctly read and used. This ensures the spreadsheet data is processed reliably.
Original PR description
Steps to reproduce: - Share the Sales Commission spreadsheet - Open the shared link ⮕ traceback This was caused by the trailing line break in the json, so the last character was not a `}`. Task: 6064328 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#256475 Forward-Port-Of: odoo/odoo#255523
This update corrects a problem where the date format in EDI export files was inconsistent due to timezone differences between the database and test environments. The fix ensures that all dates are generated using the correct UTC timestamp, improving the accuracy and reliability of the EDI data. This impacts sales order generation and reporting.
Original PR description
The Issue: Before this commit, the generated EDI XML used `sale_order.create_date.date()` to populate the IssueDate node, while the test used `datetime.today().date()` to build the expected value. Since `create_date` is a UTC timestamp set by the database and `datetime.today()` returns the local system time, these diverge when the server timezone is ahead of UTC and the test runs shortly after local midnight (e.g., runbot at 01:00 CET produces UTC date Jan 11 vs local date Jan 12). The Fix: Align the test to derive its expected date from `so.create_date.date()` instead of `datetime.today().date()`, ensuring both sides use the same timezone-consistent source of truth. runbot-237841 I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#256065
1 change
Resolved issues and error corrections
This update resolves a technical issue that was causing instability in Odoo's VoIP testing. The fix ensures that event listeners are properly removed after tests, preventing memory leaks and improving the reliability of the test suite. This enhances the overall stability of the VoIP features.
Original PR description
Forward-Port-Of: odoo/odoo#256376
38 changes
Resolved issues and error corrections
This update resolves a technical issue that caused Odoo to crash when viewing signed PDF documents. The fix ensures PDFs are processed correctly as binary data, generating the necessary image URIs and allowing users to view signed documents without errors. This improves the reliability of the signature feature.
Original PR description
Before this commit, viewing a signed PDF caused an AttributeError because the code incorrectly attempted to access a .content attribute on a bytes object. After this commit, the signature frame is processed directly as binary data, ensuring the image URI is generated correctly. taskid-3054211
This update simplifies the Customer Statement report by removing a redundant column – ‘No Follow-Up’ – which was causing potential confusion. This change ensures the report focuses on relevant financial information, improving its usability for users.
Original PR description
Currently, the `Customer Statement report` includes the `No Follow-Up` column. **Steps to reproduce:** - Install the `account_reports` module. - Go to Invoicing> Customers > Customers and open any company partner. (e.g., Azure Interior) - Click the `Payable` smart button. - Select `Report: Customer Statement`. **Observation:** The `No Follow-Up` column appears in the `Customer Statement report`. However, this column is only relevant for the `Open Items`. In the Customer Statement report it has no functional purpose and may create `confusion`. **Fix:** This commit removes the `No Follow-Up` column from the `Customer Statement report`. Upgrade PR: https://github.com/odoo/upgrade/pull/9733 opw-5743390
This update resolves a bug where users could incorrectly create 'Requested Documents' instead of folders when syncing Peppol documents. To avoid a complex workaround and a functional issue with folder placement, the ability to create or edit these documents through the settings has been disabled. This ensures accurate Peppol document synchronization.
Original PR description
Before this commit a user could create or edit a folder in the accounting settings to sync peppol documents to. The issue was that this created a 'Requested Document' instead of a folder. This commit removes the possibility to create or edit documents through the settings. An alternative would have been to add the contex to create a Folder instead of a Requested Document, however another problem then arises: the folder is created in My Drive, which does not make any functional sense. Therefore we are disabling creation and edit. This is the same logic applied in 8ada2a4f. Task-6063736 Forward-Port-Of: odoo/enterprise#111884 Forward-Port-Of: odoo/enterprise#111761
This update ensures that all future appraisals, associated appraisal roles, and personal goals are automatically removed when an employee leaves the company. This prevents outdated appraisal data from remaining active and simplifies the process for new employee onboarding.
Original PR description
Currently, when an employee leaves the company, their future appraisals remain active and can still be completed. This fix ensures that, upon employee departure: - all future appraisals are removed - the employee is removed from appraisals where they are an appraiser - all their personal goals are archived - only active (non-archived) appraisals are counted in the employee’s smart button task: 6036427 Forward-Port-Of: odoo/enterprise#111611
This update prevents data merge operations from failing silently when they take too long. Instead, a warning is displayed, suggesting users merge smaller groups of records and reloading the model upon successful completion. This enhances the reliability of the data cleaning process.
Original PR description
Display a warning notification when the merge operation times out instead of failing silently. Suggest merging fewer records and reload the model on success. task-5912855 Forward-Port-Of: odoo/enterprise#110763
This update ensures that changes to a subscription's salesperson are automatically reflected for all associated contacts. Previously, updates only applied to the main company partner, creating inconsistencies. A new test has been added to guarantee this improved functionality and reduce manual data updates.
Original PR description
Before this commit, changing the salesperson on a subscription only updated the company partner, leaving child contacts with outdated salesperson info. After this commit, updating the subscription's salesperson also updates all child contacts of the company, ensuring consistency across the portal and reducing manual work. An unit test was added to ensure this behavior. task-5917271 Forward-Port-Of: odoo/enterprise#111861 Forward-Port-Of: odoo/enterprise#108339
This update restores the display of a proxy token for users in Egypt, addressing a previous removal that hid this functionality. The token is now stored directly in the database instead of requiring a modal, streamlining the process for Egyptian users. This change ensures consistent functionality for this specific region.
Original PR description
Proxy token generation was removed to avoid showing a modal with a token nobody cares about except Egypt. We reintroduce token generation, but display it to the database instead of showing a modal. see odoo/odoo#255121 Forward-Port-Of: odoo/enterprise#111608 Forward-Port-Of: odoo/enterprise#111496
This update fixes a usability issue on mobile devices where a key button was hidden within a dropdown, making it difficult to complete the loan creation process. The change ensures the compute button is always accessible on mobile, streamlining the user experience and preventing the widget from being destroyed.
Original PR description
Forward-Port-Of: odoo/enterprise#110931 Forward-Port-Of: odoo/enterprise#110120
This update resolves a technical issue preventing users from printing ESG reports. The fix removes an unnecessary check in the report generation process, which was causing an error when searching for account movements. This ensures that ESG reports can now be successfully printed, improving reporting accuracy and user experience.
Original PR description
Steps to reproduce:
1. From Accounting, create a Vendor bill with today's date, and containing a line
2. Confirm (post) it
3. Make the Payment ('Pay' stat button)
4. Create a VSME or CSRD report from the ESG App, for the current year
5. Try to print it
=> A traceback occurs (in _get_payment_terms_data()) as we are trying to search on the 'active' field of account.move, which does not exist. => Solution: remove this uneeded check
version-19.0
Forward-Port-Of: odoo/enterprise#111816This update fixes a minor issue where many search dialogs within the Web Studio module lacked clear titles. Now, most of these dialogs display meaningful titles, improving usability and clarity for users creating and editing actions. This ensures a more intuitive experience when working with the Web Studio interface.
Original PR description
Before this commit, a lot of search More dialogs did not have a meaningful title because one parameter was usually not set. After this, most or all the selectCreateDialog have a meaningful title task-5932652 Forward-Port-Of: odoo/enterprise#111948
This update fixes a persistent error that occurred when attempting to activate payments through Odoo. The issue stemmed from discrepancies in payment activation status between Odoo and the payment provider, leading to a misleading error message. This change ensures payments are correctly activated within Odoo, preventing future disruptions.
Original PR description
It may be possible that payments are activated on provider side / odoofin side and not on Odoo side, in that case when we want to activate the payments it leads to an userError but the value is never changed on the db so the error will continue to happen indefinitelly. task-5490817 Forward-Port-Of: odoo/enterprise#107696
This update fixes an issue where fields weren't being populated correctly when new records were created in certain Odoo modules. The change ensures that all required fields are accurately set during record creation, improving data integrity and preventing potential errors. This primarily impacts the HR and Web Studio modules.
Original PR description
See https://github.com/odoo/odoo/pull/199647. Forward-Port-Of: odoo/enterprise#111898 Forward-Port-Of: odoo/enterprise#109725
This update fixes an issue where document creation times were displayed incorrectly across different views in Odoo. The fix ensures that document timestamps are shown in the user's local timezone, providing a more accurate and consistent experience. This improves usability and data clarity for users managing documents.
Original PR description
Step to reproduce: 1. Install `documents` 2. Upload a document and open the tree view 3. Compare the field `Created On` and the time from the `Manage Versions` action Issue: - The displayed time is inconsistent between the tree view and the dialog Cause: - The datetime used in Manage Versions is formatted without converting it from UTC to the user’s timezone Solution: - Use timezone-aware datetime helpers so values are converted from UTC to the user’s timezone. Before: <img width="1328" height="81" alt="image" src="https://github.com/user-attachments/assets/2a02f03c-714d-417d-a805-fd0dd7c52753" /> <img width="636" height="297" alt="image" src="https://github.com/user-attachments/assets/c4514469-2f51-493f-8991-32371fb7f338" /> After: <img width="641" height="312" alt="image" src="https://github.com/user-attachments/assets/3979ece8-635a-4b54-9b53-d8b28b3336ec" /> opw-5467782 Forward-Port-Of: odoo/enterprise#104443
This update corrects a technical issue where the system was incorrectly limiting VAT number lengths when communicating with FedEx. The change ensures that VAT numbers, including those from countries like Switzerland with longer formats, are properly transmitted to FedEx, preventing delivery errors. This resolves a compatibility problem and maintains accurate shipping data.
Original PR description
Issue ----- Fedex limits VAT numbers to 18 char long strings. This is contradictory with how they are stored in db for some countries (eg Switzerland, where the format is CHE-123.456.788 VAT -> 19 char long). Steps to reproduce ----- - Setup Fedex - Create a customer - Company (for VAT number) - VAT number: CHE-123.456.788 TVA - Create a delivery and confirm it Cause ----- VAT number is retrieved as is in https://github.com/odoo/enterprise/blob/0220d413988708c662ffca3c7fb38641c3d9870a/delivery_fedex_rest/models/fedex_request.py#L332-L343 ----- Ticket: opw-5926452 Forward-Port-Of: odoo/enterprise#111864 Forward-Port-Of: odoo/enterprise#109999
This update addresses a privacy concern by hiding the total due amount from minimal cashiers when viewing partner lists. Previously, this exposed sensitive financial information to cashiers, which is now corrected to protect customer data. This change enhances security and aligns with best practices for cashier operations.
Original PR description
Before this commit, the total due amount was visible for minimal cashier in the partner list. This could leak sensitive information to the cashier, which is not desirable. opw-6039529 Forward-Port-Of: odoo/enterprise#111103
This update resolves a minor issue where the helpdesk tour occasionally failed due to the tour attempting to click a button before the kanban view was fully loaded. By ensuring the kanban view is fully rendered before the tour attempts to interact with it, this fix improves the overall stability and reliability of the tour experience.
Original PR description
This PR fixes a flickering failure in the `helpdesk_tour` ### Problem In the kanban view, the tour occasionally tried to click the "New" (quick create) button before the view's internal structure was fully painted. This caused the tour to click a wrong element. ### Solution Updated the step trigger to include a selector for the kanban group (`.o_kanban_group`). By requiring the presence of the group container, we ensure that: 1. The page content has actually loaded. 2. The specific "New" button within the kanban context is visible and ready. **Runbot ID: 223081** Forward-Port-Of: odoo/enterprise#110333
This update corrects a minor error in the demo data for the l10n_ch_hr_payroll module. Specifically, an incorrect reference to insurance information was removed, ensuring the demo data accurately reflects the module's functionality. This ensures consistent and reliable demo data for testing and training.
Original PR description
This commit removes an unnecessary record and fix wrong reference to the insurance line of the insurance group in the demo data of the l10n_ch_hr_payroll module. task-6070942 Forward-Port-Of: odoo/enterprise#112121
This update optimizes the testing process for our VoIP system by pre-generating a key demo bundle. Previously, this bundle was rebuilt repeatedly during tests, causing significant delays. This change dramatically improves test execution speed and efficiency.
Original PR description
This commit sets the `voip.assets_sip_demo` bundle to be pregenerated while running tests to avoid rebuilding it at runtime (i.e. +800 times with a db "all"). Forward-Port-Of: odoo/enterprise#112140
This update ensures the KMD INF report only includes partners with a total turnover of at least 1,000 EUR. Previously, all partners were listed, regardless of turnover. Now, the report accurately filters based on invoice and credit note totals, improving report accuracy and data efficiency.
Original PR description
The KMD INF report should only include partners whose total turnover for the period reaches 1,000 EUR. Before this PR: - The report did not check this threshold, so partners below €1,000 were still shown. After this PR: - The threshold is now calculated correctly based on specific rules: - The threshold is calculated separately for invoices and credit notes per partner. - If invoices total base amount >= €1,000 OR credit notes total base amount >= €1,000, both invoices and credit notes are included in the report - The same logic applies to bills and refunds in Part B. task-5373606 Forward-Port-Of: odoo/enterprise#112123 Forward-Port-Of: odoo/enterprise#101333
This update resolves an issue where the Customer Ratings form in the Helpdesk module displayed a duplicate 'Comment' field. The fix made the redundant 'publisher_comment' field invisible, streamlining the form and improving the user experience. This ensures a cleaner and more intuitive interface for rating feedback.
Original PR description
**Steps to reproduce:** - Go to helpdesk > Reporting > Customer Ratings. - Open any rating record. - Observe that the 'Comment' field is displayed twice. **Issue:** - The form view contains a two different field with same string i.e feedback and publisher_comment **Fix:** - Made the publisher_comment field invisible in helpdesk's customer rating **Task-id: 5359052** Forward-Port-Of: odoo/enterprise#100823
A test was failing intermittently because the system wasn't loading all necessary partner data due to a limit on the number of users loaded. This change increases the loading limit to ensure the correct partner information is always available, preventing test failures and improving reliability.
Original PR description
In the test, test_pos_settle_due_with_rounding, the partner that we want to check was sometimes not loaded in the frontend due to the default limit of 100 users loaded. Those users are loaded by priority of number of orders and then name. In the test, no order has been made before so we only check the alphabetical order of the names and the partner we want to check is not always in the first 100. In the fix, we change the limits to a very big number to be sure that the partner is loaded. runbot-error: 241039 Forward-Port-Of: odoo/enterprise#110130
This update prevents the entire reports cron job from stopping if an error occurs during report generation. Previously, a single error would halt the entire process. Now, the cron will continue to attempt sending other reports, improving reliability and ensuring timely report delivery.
Original PR description
If an error is raised during the export of reports cron execution, the whole cron stops due to the fact that the error is never catched This commit will ensure that even if there is an error with one of the report export, the cron won't top and will try to send to other documents task-5469038 Forward-Port-Of: odoo/enterprise#111732 Forward-Port-Of: odoo/enterprise#105191
This update resolves an issue where discounts weren't being correctly applied in the self-order point-of-sale flow. The fix ensures that discount information is properly passed during order processing, preventing errors and ensuring accurate pricing calculations. This improves the reliability of the self-order system.
Original PR description
In the pos self-order flow, `_check_pos_order_lines` does not forward the `discount` field when sanitizing order lines. This caused `_merge_order_lines` to raise a `KeyError` when using `itemgetter('discount')` on lines that lack the key.
opw-6052719
Forward-Port-Of: odoo/enterprise#111591This update resolves an issue where reports related to employee termination holidays were not generating correctly when certain property settings were missing. The fix ensures that the report generates accurately regardless of the presence of these settings, improving the reliability of this important HR reporting process. This change ensures consistent and accurate reporting for employee termination holidays.
Original PR description
Forward-Port-Of: odoo/enterprise#112200
This update fixes an issue with the layout of tax return check cards in the Odoo interface. The changes create a cleaner, more organized design, improving readability and reducing visual clutter. This ensures a more professional and intuitive user experience.
Original PR description
Description of the issue this commit addresses: The UI of the tax return check cards has too many white spaces and misaligned items causing counterintuitive reading. --- Desired behavior after this commit is merged: The cards have a cleaner spacing within them so the UI looks cleaner. --- task-6003121 Forward-Port-Of: odoo/enterprise#110136
This update fixes a problem where users with limited access (Invoicing Users) couldn't validate bills when audit reports were present. The fix ensures validation works correctly without requiring additional user permissions, improving the invoicing process for all users.
Original PR description
An issue occurs when an Invoicing User tries to validate a bill while an audit report exists, resulting in an access error because the user does not have permission to access account.report. Steps to reproduce: - Create an audit report for the current year - Create a user with only the “Accounting / Invoicing” access - Log in with this user and attempt to validate a bill, the access error appears on account.report since only Bookkeeper, Invoicing & Banks and Read-only accounting group has access to return. This fix ensures the validation works correctly without requiring extra access. opw-6049259 Forward-Port-Of: odoo/enterprise#111782
This update resolves a potential error where the 'signRequestToken' value wasn't consistently being sent to the signing controller. The fix ensures that this critical information is always correctly transmitted, improving the reliability of the signing process. This prevents potential disruptions to users completing the signing workflow.
Original PR description
Before this commit, the `this.signInfo.get("signRequestToken")` variable could be undefined in some cases. This commit ensure the correct values are always sent to the controller in the propagation.
task-6064181
Forward-Port-Of: odoo/enterprise#111786This update removes a confusing purple pill that appeared on mobile devices when using Web Studio's approval features. This change simplifies the user experience for mobile users, preventing accidental clicks on the pill and ensuring a smoother workflow. It addresses a usability issue reported by users.
Original PR description
Steps: - Install `web_studio` - Add an approval rule to any action in any form view (example preview button) - Open this form view - You will have a purple info pill in every action button in the form view This can be confusing for people wanting to click on the button on mobile but instead, they click on the purple pill + we don't even want this opw-5911667 Forward-Port-Of: odoo/enterprise#111770
This update resolves an error that occurred when users removed the interval setting from expense cards. The fix ensures the system defaults to 'all-time' when no interval is specified, preventing a KeyError and ensuring the expense card functionality continues to work correctly. This improves stability and user experience.
Original PR description
Currently, an error occurs when the user removes the interval from the expense card. **Steps to Reproduce:** - Install the `hr_expense_stripe` module. - Go to `Expenses` > `Cards`. - Click `New` and remove the `interval value (All Time)`. `KeyError: False` When the user removes the interval, the system attempts to access the interval from `interval_multiplier_map`. However, since the interval becomes False, it raises a KeyError at [1]. This commit ensures that when no interval is set, the system defaults to `all_time` as the interval, since `all_time` is ignored as the default value. [1]:- https://github.com/odoo/enterprise/blob/06be616bb4d74f0a089e8e318d25c2424594f813/hr_expense_stripe/models/hr_expense_stripe_card.py#L287 Forward-Port-Of: odoo/enterprise#110639
This update fixes a bug that prevented users from adding reactions to messages within the ‘mail_group’ module in Discuss. The fix ensures that the ‘add reaction’ button isn’t displayed for message types that don’t inherit from the standard message format, improving stability and usability.
Original PR description
Steps to reproduce: - Install the mail_group module - Open Discuss - Go to the History tab - Add a reaction on a message that has model mail.group - Throws an error The error occurs because the mail.group model does not implement the `_get_allowed_access_params()` method, which is invoked during the process here. Actually, the "add reaction" button should not be shown on messages whose model does not inherit from mail.thread. This commit fixes the issue by hiding the "add reaction" button on messages with models that don’t inherit from mail.thread, such as `mail.group`. community: https://github.com/odoo/odoo/pull/218615 Task-5098050 Forward-Port-Of: odoo/enterprise#112158 Forward-Port-Of: odoo/enterprise#111271
This update adds a new wage type in the Swiss payroll module (l10n_ch_hr_payroll) to accurately reflect 200% overtime rates. This change ensures compliance with Swiss labor regulations and provides more precise payroll calculations for employees working overtime.
Original PR description
Forward-Port-Of: odoo/enterprise#110796
This update fixes a problem preventing db_users from successfully connecting to their databases. Previously, connection attempts were blocked due to access rights issues. Now, users are correctly directed to the database website for login or connection, ensuring seamless access.
Original PR description
The aim of this commit is to allow a db_user to be able to connect to a database in which he should be able to connect. Before this commit: Clicking on connect would stumble upon access rights issues on system.parameter and on `database_api_key_to_use`. After this commit: User are correctly redirected on the db website, either already connected or on the login page. task-id: 6046086 Forward-Port-Of: odoo/enterprise#112081 Forward-Port-Of: odoo/enterprise#111965
This update corrects a failing tour within the HR Referral module. The issue stemmed from unexpected access rights, which has now been resolved by changing the company referenced in the tour. This ensures the tour functions correctly and prevents disruptions for users.
Original PR description
Before this commit, the tour `hr_referral_utm_campaign_tour` was failing because of some weird access rights issues. The issue did not seem to be reproducible in local with similar condition. This commit changes the company used in that tour runbot issue 239152 Forward-Port-Of: odoo/enterprise#111805
This update fixes an issue where duplicating a product template automatically published it, even if the original wasn't. The change ensures that duplicated products remain unpublished by default, aligning with expected behavior and preventing unintended product listings. This improves data consistency and reduces potential errors.
Original PR description
Issue: --- Duplicate product template creates a published product which is not expected. Duplicated products should be unpublished by default. #### Steps to reproduce: 1- Create a product and add a…
Issue: --- Duplicate product template creates a published product which is not expected. Duplicated products should be unpublished by default. #### Steps to reproduce: 1- Create a product and add a eCommerce category. 2- Without publishing the product duplicate it. Even though the original product is not published, the duplicated one is published. Expected: Regardless of published state of original product, the duplicated product should not be published. Cause: --- This regression is introduced in https://github.com/odoo/enterprise/pull/66218 to create a `is_published` product if `public_categ_ids` is set. However this was only supposed to be when creating a new product using form. It makes the create to ignore `is_published` default value even in copy. Fix: --- We can make sure if `is_published` is in create vals, don't force `is_published` to be set True. However, as `copy=False` in `is_published` field definition, it won't be in vals in copy. By overriding `copy_data`, we can ensure vals is present in copy. #### Note: `product_barcodelookup` doesn't depend on `website_sale`. However, `product_categ_ids` is used in this module. In the test for the same case we only run the test if the module is installed. This would be fine as this is a post-install test. opw-6014789 Forward-Port-Of: odoo/enterprise#112063 Forward-Port-Of: odoo/enterprise#111340
This update resolves a problem where Web Studio exports were incorrectly formatting property data. The fix converts the data to the correct XML format before exporting, ensuring accurate and reliable exports of Web Studio configurations. This improves the consistency and reliability of exported settings.
Original PR description
Since this commit*, properties are exported as an orm field object, while this method is meant to export the fields into xml records. This commit fixes this by converting the value before exporting it (using hidden _values). *https://github.com/odoo/odoo/commit/6f5e7aa783b336941f95c66ae70cb4ee160c00f4 Forward-Port-Of: odoo/enterprise#110336
This update resolves a bug where report date filters weren't correctly applied, particularly when using custom date ranges. Users could experience reports defaulting to previous periods. The fix simplifies date selection by removing the requirement for a 'custom' period type.
Original PR description
original pr: https://github.com/odoo/enterprise/commit/40484f985f511edd7ba2ae759ce63ef564bcf1f7 The The original pr forgot to change some values in the options of reports concerning the filter date. This is an issue for example when the report opens by default on previous period. Another way to reproduce is for example to create a working file with very custom dates, for example 1st February to 14 March, then exporting it. Then the date of the options won't be correct. To simplify the process, we don't require the key 'period_type': 'custom' when specifying dates on the options. Forward-Port-Of: odoo/enterprise#112201
This update corrects a technical issue impacting the accuracy of timesheet suggestions. The team fixed a bug where the system was incorrectly using a description field instead of the intended template field for calculating event frequencies. This ensures timesheet suggestions are more reliable and aligned with the intended functionality.
Original PR description
This PR fixes two bugs related to the timesheets assistant, and its recently introduced feature that allows counting event project matching frequency separately from their label. - When saving timesheets from suggestions, we were taking its "Description" field for frequency calculations instead of the "Template" field, which was introduced in this purpose. - The "Template" field was added in the wrong place in the code, causing it to be sent to the back end as a field value when creating timesheets and causing a traceback. Forward-Port-Of: odoo/enterprise#112342
This update streamlines the timesheet tour process after a recent change. The tour now automatically generates a user and displays empty lines in the timesheet grid when the view is empty, preventing errors and improving usability. This ensures a smoother experience for users adding timesheets.
Original PR description
In this commit: - Timesheet tour was adapted after the timer removal - To avoid blocking the tour: - An employee is automatically generated for the current user when trying to add a timesheet instead of displaying a validation error - My timesheets > few empty lines are displayed when the Grid view is empty task-5925597 Forward-Port-Of: odoo/enterprise#110520