Friday, November 29, 2024
27 changes · 17.0
Resolved issues and error corrections
The Peppol invoice email footer was adjusted so links no longer interrupt sentences, making the text easier to translate naturally in languages such as Dutch and German. This improves readability for recipients without changing invoice sending behavior.
Original PR description
In previous commit [1] we added text at the bottom of email sent when sending invoices, this doesn't work well for translation to have <a> tags in the middle of sentences, in particular in Dutch and German. We move the cliquable URL at the end of the sentence in an icon. [1]: https://github.com/odoo/odoo/commit/42cc1ea713aa977794231897b2f04758e30d8e19 task-no 
This fix ensures company names are normalized before checking whether they are already included in generated journal email aliases. It prevents duplicate company-name fragments and helps imports, such as Winbooks, create the expected unique aliases.
Original PR description
When generating the mail alias for a journal, we check whether the name of the company is already in it, and add it if it's not. The problem is before this commit, we didn't sanitize the name of the company to do that check, so a company name with spaces or accents would never be detected as part of the alias, and could end up being in it twice. This caused issues in the Winbooks import of one customer, who ended up with duplicate aliases because of that, since the journal code was not properly added to the generated alias while it should, and a duplicate of the company name was put instead. opw-4196597
Invoices issued in a foreign currency with only 0% tax now still show the company-currency totals table on the PDF. This helps businesses provide clearer invoice documents and meet reporting expectations even when no tax amount is due.
Original PR description
When creating an invoice in foreign currency with only 0% tax, we still want to display the company currency table on the invoice pdf. task-4367088 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Remaining leave balances now ignore time off types that are hidden from the employee dashboard. This prevents employees and managers from seeing inflated or misleading available leave totals.
Original PR description
This commit excludes the time off types which are hidden from dashbaord in the count of employee's remaining leaves. task-4268945 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix makes stock rule selection predictable when multiple rules have the same matching criteria. It helps avoid inconsistent stock routing outcomes caused by records being ordered differently in similar situations.
Original PR description
The sorted part doesn't have a fallback on sequence and id. So in some cases, if the rules share the same selection data, it could be not deterministic 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
This update avoids briefly setting a subscription's end date to today while a renewal is being processed. This reduces the risk of temporary inconsistent dates that could disrupt customer-specific subscription customizations.
Original PR description
[FIX] sale_subscription: prevent end_date regression
Before this commit, the end_date was always set to today in 'set_close'.
During a renewal, it is later updated. Unfortunately, it could break
customization when the parent end_date was set to today during a short
amount of time. During that time, it would be earlier than the
start_date and this could lead to issues on some customizations.
taskid: 4367646This update resolves an issue where users' LinkedIn accounts were unnecessarily disconnecting during comment loading. The fix ensures disconnections only occur when there's a genuine problem with fetching comments, improving the user experience and preventing frustrating interruptions.
Original PR description
This commit fixes an issue with the social_linkedin module's comments fetch methods introduced in https://github.com/odoo/enterprise/pull/67079. This method disconnects the user from its account every time they open a post's comments, even if all API calls are successful. This shouldn't happen as nothing wrong happened to warrant a disconnection on our end. Now the user's account is disconnected if and only if there was an actual issue when fetching comments. task-4363737 Forward-Port-Of: odoo/enterprise#74672
This update fixes a printing issue where long account names in PDF reports caused text to overflow. The change adds a styling override to properly wrap long account names, ensuring reports are formatted correctly and readable. This improves the user experience when generating and printing financial reports.
Original PR description
Issue: When printing PDF reports, long account names cause the report to overflow out of the page. Steps to reproduce: - Install the accounting app - Enable "Analytic Accounting" in the settings -…
Issue: When printing PDF reports, long account names cause the report to overflow out of the page. Steps to reproduce: - Install the accounting app - Enable "Analytic Accounting" in the settings - Create one (or more) analytic account(s) with very long names - Open either "Balance Sheet" or "Profit and Loss" reporting - Do an "Analytic Group By" with the created account(s) - Print the PDF Cause: The default style in the associated scss file does not use wrapping. https://github.com/odoo/enterprise/blob/bf6c64b8fd5591f271e9b0f18f40d205a64cd5bd/account_reports/static/src/scss/account_pdf_export_template.scss#L41 Solution: Override the default style by using the "o_overflow_name" class. This is the class already used for handling overflow in the tables' content lines. This gives a more readable result than just editing the "white-space" field (see below for comparison). The proposed solution gives the following result:  As opposed to just editing to "white-space: wrap;"  Ticket: opw-4277596
This update resolves an issue where users without the 'account.group_account_invoice' group couldn't access the purchase order view after installing the l10n_ke_edi_oscu_stock module. The change restricts access to a key model, ensuring all users can properly manage purchase orders.
Original PR description
At the moment, when `l10n_ke_edi_oscu_stock` is installed, the purchase order view is broken for users that don't belong to the `account.group_account_invoice` group, because they don't have access to the `l10n_ke_edi.customs.import` model. This commit restricts the `l10n_ke_customs_import_ids` field on the `purchase.order` view to the `account.group_account_invoice` so that this error no longer occurs. runbot-70725
This update resolves an issue where spreadsheet thumbnails weren't displaying correctly in Safari and other Webkit browsers. The fix ensures that thumbnails are converted to a compatible format (PNG) when WebP conversion fails, improving the user experience across different browsers.
Original PR description
In safari (and all webkit navigators) `HTMLCanvasElement.toDataUrl` does not support `image/webp` as `type` parameter. https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/toDataURL#browser_compatibility Before this commit, spreadsheet_edition/hooks.js:useSpreadsheetThumbnail draws an image to a canvas and convert it to base64. But the code assumes that the conversion to webp will work. `toDataUrl` uses `png` type if it doesn't work https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/toDataURL#type With this commit, the regexp that removes the encoding data will supports `webp` **and** `png`
This update fixes a potential issue where errors during API calls to the Ecuadorian tax system (l10n_ec_edi) would display confusing tracebacks to users. By catching a broader range of exceptions, including timeouts, the system is now more stable and reliable when communicating with external services.
Original PR description
At the moment, the SOAP call in `_l10n_ec_get_client_service_response` catches `ConnectionError`, but some exceptions raised by zeep (such as `Timeout`) are not caught and will cause a traceback for the user. We catch `RequestException` to make sure that these are caught. task-none Forward-Port-Of: odoo/enterprise#74266
This update corrects a technical error impacting the generation of CFDI invoices in Mexico. Specifically, the 'Pagos' namespace was incorrectly removed from the schemaLocation attribute, causing compatibility issues with Quarum pac. This fix ensures invoices are correctly formatted and processed.
Original PR description
after this commit [1] the **Pagos** namespace was always removed from the schemaLocation attribute, this was causing error for Quarum pac. this commit fix the issue by filtering the schemaLocation attribute based what is present in namespace map. [1] https://github.com/odoo/enterprise/commit/dd18e0829810df7594730e14e09ac2174eedcc32 opw-4168509
This update reverts a previous change to the payroll expense testing process. It corrects a requirement that an employee’s bank account must be set up before approving the payroll expense sheet. This ensures the testing process accurately reflects how the system functions in a real-world scenario, preventing potential errors.
Original PR description
This reverts commit 8bc7dfb8f994c2f1147bdba9a5a2cc6c965595bb related: https://github.com/odoo/odoo/pull/188956 task-4206895 Forward-Port-Of: odoo/enterprise#74769
This update resolves an issue where users were not receiving reminders to sign up for Odoo Enterprise. The fix ensures that the system correctly triggers a reminder email by simulating a user click within the sign-up tour, improving the user experience and sign-up conversion rates.
Original PR description
In this commit, we fix sign_resend_expired_link_tour tour by doing click in step action instead of doing nothing.
This update corrects an issue where a confirmation email was incorrectly sent when changing payment methods for subscriptions. The fix filters out validation transactions, ensuring emails are only triggered for actual payment confirmations, improving email efficiency and reducing potential noise for users.
Original PR description
Versions -------- - 17.0+ Community: https://github.com/odoo/odoo/pull/188440 >[!important] >All functional changes are made in `sale`, this PR simply adds a test. Steps ----- 1. Have a confirmed…
Versions -------- - 17.0+ Community: https://github.com/odoo/odoo/pull/188440 >[!important] >All functional changes are made in `sale`, this PR simply adds a test. Steps ----- 1. Have a confirmed subscription; 2. go to subscription management in portal; 3. set or change payment method. Issue ----- The following email is sent: > A payment [...] amounting $ 0.00 for [...] has been confirmed. Cause ----- The `_reconcile_after_done` override in `sale` sends a payment succeeded mail for any sale order linked to a transaction that wasn't confirmed by that transaction. It currently assumes all the transactions in `self` are actual payment operations, as any `validation` gets filtered out in `_finalize_post_processing`, before `_reconcile_after_done` is called[^1]. This assumption no longer holds with `sale_subscription` installed, which also calls `_reconcile_after_done` on validation transactions to manage payment tokens linked to subscriptions[^2]. Solution -------- Filter out `validation` transactions before calling `_send_payment_succeeded_for_order_mail` on linked orders. opw-4169491 [^1]: https://github.com/odoo/odoo/blob/12de68d342b/addons/payment/models/payment_transaction.py#L998-L1003 [^2]: https://github.com/odoo/enterprise/blob/bbd1be56538/sale_subscription/models/payment_transaction.py#L135-L144
This update corrects a potential error in the UPS integration that could occur when adding a ReferenceNumber to delivery requests. By validating the origin and destination pairs beforehand, the system now ensures accurate request creation and avoids disruptions to the shipping process. This improves the reliability of our UPS delivery functionality.
Original PR description
…ing ReferenceNumber to the request opw-4358458 Forward-Port-Of: odoo/enterprise#74751
This update resolves an issue where account line labels could display as either empty strings or False, leading to inconsistent search results. The fix standardizes label handling to False when a value is empty, aligning with expected database behavior and improving search accuracy. This ensures consistent reporting and data retrieval.
Original PR description
**[FIX] account_asset: fix empty string and False/None inconsistencies** (adapting tests)
When empty, the name field of account.move.line could inconsistently hold either an empty string or False. This inconsistency led to different results when searching for lines with an empty label, as label->not set and label == "" yielded different outcomes. The latter behavior aligns with expected ORM operations.
This fix ensures the name field is set to False whenever the computed result is an empty string, standardizing search behavior. We also adapt some tests to the new behavior in enterprise.
opw-4167139
[community PR](https://github.com/odoo/odoo/pull/186079)
Forward-Port-Of: odoo/enterprise#73256This update corrects a minor error in how payroll calculations are processed when multiple input values are involved. This ensures more accurate and reliable payroll processing for employees, particularly those with complex compensation structures. The change improves the overall stability and accuracy of the HR payroll module.
This update fixes a technical issue in the payroll module that caused a traceback error when an employee was removed from a payslip. The fix ensures that the system correctly handles changes to employee records, preventing errors and maintaining data integrity. This improves the reliability of payroll processing.
Original PR description
…ayslip form Steps: • Install the payroll app. • Install l10n_au_hr_payroll module. • Open payslip and remove the employee from the form and click outside to apply changes. • It will cause the traceback error. Cause of the issue: • After removing the employee name corresponding contract will become empty. • The issue is due to empty record set of contract. Fix: • Added a check to ensure contract is present. task-4341523
Miscellaneous changes
When using ship later on a settle order, the qty_delivered on the original order would not take into account if the pos order has been delivered or not. Steps to reproduce: ------------------- * Install pos_sale module * Enable ship later * Create an order with any product * Open the PoS and settle the order * Validate the order and use ship later option > Observation: If you go on the sale order the qty_delivered will be 1 but the order has not been delivered yet. Why the fix: --
Original PR description
When using ship later on a settle order, the qty_delivered on the original order would not take into account if the pos order has been delivered or not. Steps to reproduce: ------------------- * Install pos_sale module * Enable ship later * Create an order with any product * Open the PoS and settle the order * Validate the order and use ship later option > Observation: If you go on the sale order the qty_delivered will be 1 but the order has not been delivered yet. Why the fix: ------------ We make sure that if the pos order is linked to a picking, the picking should be completely done to count the qty as delivered. opw-4199142 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#185456
Users rely on analytical accounting for accurate sales reporting. In operations involving automated inventory valuation, when an account move is confirmed, cogs entries are created with the same analytic account as the product line. However, due to a recent commit this is no longer the case. Steps to reproduce: - Enable Analytic Accounting and Anglo-Saxon Accounting in the settings - Create a storable product - Set inventory valuation to Automated on the product's category - Add
Original PR description
Users rely on analytical accounting for accurate sales reporting. In operations involving automated inventory valuation, when an account move is confirmed, cogs entries are created with the same analytic account as the product line. However, due to a recent commit this is no longer the case. Steps to reproduce: - Enable Analytic Accounting and Anglo-Saxon Accounting in the settings - Create a storable product - Set inventory valuation to Automated on the product's category - Add a cost to the product - Create an invoice with the product and add an analytic distribution - When the invoice is confirmed, COGS line are created Issue: Analytic distribution is not applied to COGS line This reverts commit https://github.com/odoo/odoo/commit/2a5463eb013aecc1d24041928974a9bbff5fb23a. opw-4347110 opw-4351323 opw-4351111 opw-4350640 opw-4350188 ... Forward-Port-Of: odoo/odoo#188865
Improve access related tests for mail.message and their sub models. Currently tests are dependent on discuss.channel model, and not always written in a clear way. Understanding the purpose of each test is not crystal clear. We now use a test model with simple rules, defined in test_mail addon. It allows to simulate models with * public access; * portal access; * internal access; * admin access; using ACLs and ir.rules. Tests are rewritten to be more concise and precise an
Original PR description
Improve access related tests for mail.message and their sub models. Currently tests are dependent on discuss.channel model, and not always written in a clear way. Understanding the purpose of each test is not crystal clear. We now use a test model with simple rules, defined in test_mail addon. It allows to simulate models with * public access; * portal access; * internal access; * admin access; using ACLs and ir.rules. Tests are rewritten to be more concise and precise and use new models. This is done in stable to keep coherency in tests codebase. It also eases writing bugfixes as tests won't have to be modified during forward port process. Finally it allows to backport improvements or fixes in later versions if it applies to previous versions. Task-4320561 Forward-Port-Of: odoo/odoo#186394
This revert commit 063e224c17c0e0194e5ade6acbe82ff38a669b54 Many customers don’t use the bank account field on the employee form, and the change was blocking for them. Enterprise: https://github.com/odoo/enterprise/pull/74769 task-4206895 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#188956
Original PR description
This revert commit 063e224c17c0e0194e5ade6acbe82ff38a669b54 Many customers don’t use the bank account field on the employee form, and the change was blocking for them. Enterprise: https://github.com/odoo/enterprise/pull/74769 task-4206895 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#188956
When we click on a many2one field we want to open the dropdown with or without a query input. The use of the query input is determined by a simple heuristic `savedValue !== inputValue`. The issue here is that we could have extra spaces either in the saved value or in the input value. These extra spaces can influence the search results so we need to trim them. opw-4146031 Forward-Port-Of: odoo/odoo#188933
Original PR description
When we click on a many2one field we want to open the dropdown with or without a query input. The use of the query input is determined by a simple heuristic `savedValue !== inputValue`. The issue here is that we could have extra spaces either in the saved value or in the input value. These extra spaces can influence the search results so we need to trim them. opw-4146031 Forward-Port-Of: odoo/odoo#188933
Currently a parse error would arises if the user deletes the saleable product category and try to install POS To reproduce this issue 1) Install Sale Management without a demo data 2) Delete the Saleable product category 3) Try to install POS Error:- ``` ParseError: while parsing /home/odoo/src/odoo/18.0/addons/point_of_sale/data/point_of_sale_data.xml:21, somewhere inside <record id="product_category_pos" model="product.category"> <field name="parent_id" ref="product.
Original PR description
Currently a parse error would arises if the user deletes the saleable product category and try to install POS To reproduce this issue 1) Install Sale Management without a demo data 2) Delete the…
Currently a parse error would arises if the user deletes the saleable product category and try to install POS
To reproduce this issue
1) Install Sale Management without a demo data
2) Delete the Saleable product category
3) Try to install POS
Error:-
```
ParseError: while parsing /home/odoo/src/odoo/18.0/addons/point_of_sale/data/point_of_sale_data.xml:21, somewhere inside
<record id="product_category_pos" model="product.category">
<field name="parent_id" ref="product.product_category_1"/>
<field name="name">PoS</field>
</record>
```
This error is occurring because the user deleted the saleable product category, which leads to the above traceback as the saleable product category is referenced at multiple places to create master data.
https://github.com/odoo/odoo/blob/51296055790f8c6f01dfbbc82ca340756c54cdb3/addons/point_of_sale/data/point_of_sale_data.xml#L16
We can resolve this issue by preventing the user to delete the saleable product category.
sentry-6026143114
Forward-Port-Of: odoo/odoo#188788Before this commit, we are not following this rule, causing warning at validation. https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/UBL-CR-600/ task-no Forward-Port-Of: odoo/odoo#188844
Original PR description
Before this commit, we are not following this rule, causing warning at validation. https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/UBL-CR-600/ task-no Forward-Port-Of: odoo/odoo#188844
**[FIX] account: fix empty string and False/None inconsistencies** When empty, the `name` field of `account.move.line` could inconsistently hold either an empty string or False. This inconsistency led to different results when searching for lines with an empty label, as `label->not set` and `label == ""` yielded different outcomes. The latter behavior aligns with expected ORM operations. This fix ensures the name field is set to False whenever the computed result is an empty string, standa
Original PR description
**[FIX] account: fix empty string and False/None inconsistencies** When empty, the `name` field of `account.move.line` could inconsistently hold either an empty string or False. This inconsistency led to different results when searching for lines with an empty label, as `label->not set` and `label == ""` yielded different outcomes. The latter behavior aligns with expected ORM operations. This fix ensures the name field is set to False whenever the computed result is an empty string, standardizing search behavior. opw-4167139 [Enterprise PR](https://github.com/odoo/enterprise/pull/73256) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#186079