Wednesday, November 26, 2025
16 changes · 18.0
New functionality added to Odoo
This update introduces basic localization support for Mauritania within the Odoo accounting system. It includes translations for key financial reports and data formats, allowing Odoo to correctly handle transactions and reporting requirements specific to Mauritanian regulations. This expands Odoo's reach to a new market and ensures compliance for businesses operating in Mauritania.
Original PR description
task-4236158 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#211906
This pull request updates the Arabic translation files for both the core Odoo application and the Odoo Point of Sale module. These updates ensure accurate and localized Arabic support for users in the Middle East and North Africa region, improving the overall user experience.
Original PR description
ADHOC Task 44224 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update incorporates new translations for the Arabic VAT (e-invoice) functionality within the Odoo Enterprise system. This ensures accurate and compliant reporting for our Arabic-speaking customers, aligning with local regulations and improving the user experience.
Original PR description
Task 44224
Enhancements to existing features
This update clarifies the tooltip for the 'Prices' setting in the configuration. Previously, it stated the setting couldn't be changed after an invoice. Now, it correctly indicates the setting locks once a journal entry is created, providing better guidance for users. This change improves understanding and reduces potential confusion.
Original PR description
This commit improves the tooltip of the Prices setting in configuration. The old tooltip "This setting cannot be changed after an invoice is created." is changed to "This setting locks once a journal entry is created." task-5354382 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Resolved issues and error corrections
This update corrects an issue preventing Odoo from properly retrieving invoice documents from the Viettel e-invoice system. The original problem stemmed from incorrect parameter requirements in the API documentation. By removing unnecessary parameters, the system now successfully retrieves the required invoice files, ensuring accurate data exchange.
Original PR description
* Problem: When trying to get document from sinvoice, we get error not found * Reason: in the api document the parameter not include 'strIssueDate' and also the 'transactionUuid' not require at all, but if we include 'transactionUuid' we still get 400 error 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#236628
This update resolves an issue where the Fedex delivery method would fail when shipping to addresses with state codes like 'Hong Kong Island' in Hong Kong. The fix adds a check to ensure the state code splitting process returns at least two elements, preventing a common error. This ensures reliable shipping functionality for customers in Hong Kong.
Original PR description
Versions -------- - 17.0+ Steps ----- 1. Use Fedex as a Delivery Method 2. On the Website, select a shippable product. Confirm the cart. 3. Ship to a "Hong Kong" address, with "Hong Kong Island" as State. 4. Traceback is raised. Issue ----- Traceback is raised whenever the Fedex Delivery Method is applied to a HK address (be it shipper or receiver) Cause ----- When splitting a state code, there is no check in the `_parse_state_code` function that the result contains at least two elements. Example ----- For a "Hong Kong" address, with "Hong Kong Island" as State: ``` country_code = "HK" state_code = "HK" ``` The method tries to split `state_code` by its hyphen, which returns a single item list. Solution -------- 1. Check for the size of the post-split list before accessing the second item. opw-5257852 Forward-Port-Of: odoo/enterprise#99635
This update fixes a minor issue where the 'Copy' button in the Payment Link wizard incorrectly displayed. The button label has been updated to accurately reflect its function: 'Generate and Copy Payment Link'. This ensures users see the correct instruction when creating payment links.
Original PR description
Steps to reproduce: 1. Install sale_management 2. Create a sale order and confirm it 3. Open the Generate a Payment Link wizard from the cog menu Issue: The button in the wizard displays “Copy” instead of “Generate a Payment Link”. Cause: The custom paymentWizardCopyClipboardButtonField widget did not forward the field’s string to its component props, causing the default "Copy" label to be used. Solution: Forward the string prop in the widget’s extractProps implementation. opw-5224112 Forward-Port-Of: odoo/odoo#236219
This update resolves an issue preventing the 'Payment Reminder' email template from functioning correctly. The fix corrects a technical error related to how the template processes numerical data, ensuring accurate payment reminders are sent to customers. This improves the reliability of our billing communications.
Original PR description
### Steps to reproduce: - Install account_no_followup - Enable debug mode - Settings > Technical > Email > Email Templates - Search for the "Payment Reminder" template > Preview ### > traceback: Can…
### Steps to reproduce: - Install account_no_followup - Enable debug mode - Settings > Technical > Email > Email Templates - Search for the "Payment Reminder" template > Preview ### > traceback: Can not compile expression: "format_amount(object.total_overdue_followup, ### Cause of the issue: The issue is caused by 7e55a28e73cc99184ed9737e672f451d03a3efb3 These lines: https://github.com/odoo/enterprise/blob/079795fe28f55854f9f785e360580a02e6f89d4e/account_no_followup/__init__.py#L7-L15 simply break every concerned template. the reason being that the template.html_body is a Markup and replacing the string: `t-out="*object.total_overdue` in a `Markup` will simply escape the `"` charracter as a `"` replacing this string by: `"t-out="*object.total_overdue"` for instance in `Payment Reminder` template it will alter this line: https://github.com/odoo/enterprise/blob/079795fe28f55854f9f785e360580a02e6f89d4e/account_followup/data/account_followup_data.xml#L18 and replace `<t t-out="format_amount(object.total_overdue, object.currency_id) or ''"/>` by `<t t-out=""format_amount(object.total_overdue", object.currency_id) or ''"/>` This makes the template crash as `""format_amount(object.total_overdue"` is not a valid attribute value. opw-5138378
This update resolves a crash that occurred when users quickly opened the file viewer multiple times, such as by double-clicking attachments. The fix ensures the system properly manages file viewer instances, preventing errors and improving overall stability. This enhances the user experience by eliminating unexpected application interruptions.
Original PR description
Before this commit, quickly triggering the opening of the file viewer multiple times (e.g. double-click on an attachment) caused a crash. This happens because the `createFileViewer` hook generates a `fileViewerId` on initialization. When `open()` is called, it registers the component using this specific ID. If `open()` is triggered a second time while the component is still registered (or being registered), the registry throws an error because duplicate keys are not allowed. This commit fixes the issue by calling `close()` at the beginning of the `open()` function. This ensures that any existing `FileViewer` instance associated with this hook is removed from the registry before a new one is added. task-5262556 Forward-Port-Of: odoo/odoo#237267
This update fixes an issue where vendor bills for Saudi Arabia companies were displaying negative amounts in the currency conversion section. The fix ensures accurate currency calculations and proper bill formatting when dealing with different currency settings. This improves the reliability of financial reporting for SA clients.
Original PR description
**Steps to reproduce:** - Create a vendor bill with currency not matching the currency of an SA company - Print the bill in the SA EDI specific format (is not shown on preview) or export as PDF **Issue:** Amounts displayed in the currency conversion section of the bill incorrectly show negative values for subtotal and total. **Solution:** The view affecting the bill in question referred to `o.amount_untaxed_signed` and `o.amount_total_signed` where either unsigned `o.amount_untaxed` and `o.amount_total` or `abs(o.amount_[...]_signed)` should be used instead, as in other localizations. opw-5253213 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#236654
This update ensures the Sign app meets legal requirements for U.S. companies by notifying users when the sender is based in the U.S. and offering the option to request a paper copy of signed documents. This change enhances compliance and provides a safeguard for our business operations.
Original PR description
Previously, the Sign app did not comply with the ESIGN Act. It now notifies users when the sender company is U.S.-based that they can request a paper copy of a signed document, ensuring ESIGN Act compliance. task-5166918 Forward-Port-Of: odoo/enterprise#97163
This update fixes an issue where the report title for DIAN support documents was incorrectly displayed after the document was stamped by the DIAN. The code was adjusted to ensure the correct 'Documento Soporte' title is used, regardless of DIAN acceptance, improving the accuracy of reports submitted to the tax authority.
Original PR description
Steps: - Create and confirm a vendor bill with 'DIAN Support Documents' journal - Print the PDF — it display 'Documento Soporte' as document title - Send the document to the DIAN and print it again -> the returned PDF with the DIAN stamp now shows 'Factura Electrónica de Venta', it should still be 'Documento Soporte' Cause: In `AccountMove._get_name_invoice_report` we return the name of the report depending on specific conditions, but the order of the conditions prevent to get the right report name as soon as the document has been accepted by DIAN. Fix: Modifying the order of the condition, to redirect to the right report, even when the support document has been accepted by DIAN opw-5119858
This update corrects a bug in the demo kiosk's payment process. Previously, the kiosk incorrectly used a 'meal' payment mode, causing the payment screen to be skipped. This change ensures the kiosk always uses the 'each' payment mode when in kiosk mode, resolving this issue and improving the demo experience.
Original PR description
The field `self_ordering_pay_after` should always be `each` when the `self_ordering_mode` is set to `kiosk`. This is enforced in the `write` method. However, the demo kiosk is created with a `self_ordering_pay_after` value of `meal`, until the `write` method is run. This results in behaviour such as the payment screen being skipped when it is not expected to. This commit sets the correct `self_ordering_pay_after` value of `each` when creating the demo kiosk. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update fixes a technical error that occurred when users attempted to make partial payments using SEPA QR payments in the Point of Sale system. The issue was caused by a missing JavaScript function, which resulted in a traceback error. The fix restricts the 'Adjust Amount' button to compatible payment methods and adds the necessary JavaScript code to handle the payment adjustment, ensuring a smoother payment experience.
Original PR description
Steps to reproduce: ==================== - Create a SEPA QR payment method (for a BE company). - Create an order and select this payment method. - Manually change the payment amount (partial amount). - Confirm the partial payment. - Click on the "Adjust Amount" button a traceback occurs. Issue: ======= In the XML template, the JS method `sendPaymentAdjust()` was being called, but this method was not defined on the JS side, leading to a traceback when the button was clicked. Fix: ===== - Restricted visibility of the "Adjust Amount" button to payment terminal methods that support adjustment. - Added the missing JS method to handle the call and prevent traceback. Task-5241346
This fix resolves an issue where the website page URL input field would intermittently freeze or reset during slow network conditions. The update introduces a debouncing mechanism to prevent unnecessary updates and corrects a related display problem when reverting to the original URL, ensuring a smoother user experience.
Original PR description
Scenario: - edit a website page (eg: /test that you create) - go to Site > Properties - have a slow connection and write in field "Page URL" for some seconds Result: the input jitter, if going too…
Scenario: - edit a website page (eg: /test that you create) - go to Site > Properties - have a slow connection and write in field "Page URL" for some seconds Result: the input jitter, if going too fast the text can be removed to get previous version. Secondary issue: if we cancel our change and set back the original URL, the "Redirect Old Url" part is not hidden. Reason: we trigger onchange at each input event, so if we write 20 letters we will possibly still have 20 onchange that are ongoing and will set back older version of the field value. The secondary issue is because we are using a field using useInputField and FieldUrl but we are hacking it to remove the "/" prefix inside the input. So when the invisible modifier is checked, we check eg. "old_url=/test" against "url=test" that are always different. With this fix: Since the triggered onchange were only to update quicker the condition `invisible="old_url == url"`, we trigger them only if that condition will change, and debounce it to prevent the now single onchange of happening in the middle of text input. And for the secondary issue, we add and remove the / when triggering the onchange. opw-4517181
This update corrects a display issue where the 'Due Date' column disappeared in the phone view of invoices. The problem stemmed from conflicting CSS styles, which caused incorrect column titles. This ensures the 'Due Date' is consistently visible and correctly labeled across all device views.
Original PR description
****Behavior:****
When switching to phone view, the 'Due Date' column name dissapears but the values stay, which causes every further column of the table to have the wrong title.
The removal of the Due Date column is intended, the issue happens beacause the 't-att-class' specifying the condition to make values red was overriding the initial 'class' specifying the behavior in phone view.
**Steps to reproduce:**
- Create an Invoice for the current user
- Go to Website -> User -> My Account -> Your Invoices
- switch to phone view (reduce to less than 768px if not initially the case)
- You'll see the 'Due Date' column name dissapear and the value shift to the next column name ('Amount Due')
opw-5239794