Daily updates from Odoo
Thursday, October 17, 2024
36 changes
3 changes
Resolved issues and error corrections
Refreshing the Point of Sale after parking an order no longer makes that parked order the active sale again. This helps cashiers continue with the correct new order and avoids accidentally modifying or charging a parked order.
Original PR description
After parking an order, if you refresh the page the parked order would be selected as the current order. Steps to reproduce: ------------------- * Setup a PoS with atleast one trusted PoS * Open the PoS and add some products to the order * Park the order * Refresh the page > Observation: The parked order is selected Why the fix: ------------ When setting the start order we take the last order saved instead of the first one. opw-4104298 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Dropshipping flows now correctly recognize inter-company transit locations when goods move between vendors, other companies, and customers. This helps avoid incorrect handling or accounting of dropshipped stock in multi-company setups.
Original PR description
Consider the Inter-Company transit location (which is a 'transit' location with no company set) as either a 'customer' or 'supplier' location for dropship purposes. Both 'supplier' and 'customer' need to be considered as the dropship could be either from Vendor -> Other Company or Other Company -> Customer. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix prevents country-based localization modules from being installed automatically while an accounting chart template is still loading. It avoids incomplete accounting setup data and reduces the risk of setup or test failures when creating companies without a predefined country.
Original PR description
Currently there is the following problem when loading a chart template on a company. In case the company has no country set the loading of the template may set it. This can i.e. happen when the…
Currently there is the following problem when loading a chart template on a company.
In case the company has no country set the loading of the template may set it.
This can i.e. happen when the template specifies a `account_fiscal_country_id`.
Setting a country on a company (`write`) may trigger the installation of additional
localization modules related to the country (`install_l10n_modules`).
The problematic `write` happens in `_pre_load_data` but the actual
template data is not loaded yet (happens later in `_load_data`).
This can cause the following 2 issues.
Issue (1)
The new modules may add new data to the current template (modifies the
result of `_get_chart_template_data`).
But this new data is not considered during the current loading
since the template data is fetched before the automatic installation happens.
The module may not work as intended for companies w/o the new data though.
So we would have to reload the chart template manually.
Issue (2)
The auto-installation happens after the chart template info (field `chart_template`)
is set on the company but before the data is actually loaded.
The module installation may trigger a post init hook to set up new
data on companies with the current template (field `chart_template`).
This new setup may rely on the chart template data (from before the
module was installed) being laoded already though.
Issue (2) i.e. causes runbut build error-60149.
During the populate test a company with chart_template 'generic_coa'
is created which causes the installation of module `l10n_us_reports`
during the 'generic_coa' chart template loading.
There the deferred expense and revenue accounts are loaded in a post init hook
via `_load_data` for every company where the `chart_template` field has value 'generic_coa'.
```python
ChartTemplate._load_data({
'res.company': , {
company.id: {
'deferred_expense_account_id': 'prepaid_expenses',
'deferred_revenue_account_id': 'deferred_revenue',
}
}
})
```
Here 'prepaid_expenses' and 'deferred_revenue' are xmlids of accounts of the
'generic_coa' chart template from module 'account'.
Since the template data has not been loaded yet we cannot derefence
these 2 xmlids. In the log we get the following warning:
> Failed when trying to recover prepaid_expenses for field=res.company.deferred_expense_account_id
To avoid this problem we just skip the automatic installing in case we are in the process
of loading a chart template.
runbot build error-601492 changes
Resolved issues and error corrections
This update simplifies how the system checks and opens files inside zipped documents such as spreadsheets and Mexican e-invoicing downloads. It avoids relying on internal software details, making these tests and related file handling more reliable over time.
Original PR description
Checking the filelist size before checking for existence based on `NamedToInfo` is unnecessarily convoluted, we can just compare the list of expected filenames to the `namelist()`. And using entry positions to open them is pretty much insane, just address the files by name, that's both clearer and more reliable. *Technically* for xlsx files we should probably go through `[Content_Types].xml` to retrieve the actual path to the shared strings file, but accessing that file directly is already an improvement I think.
Manufacturing orders created from the Barcode app now use the correct scanned manufacturing operation type. The Barcode app also shows manufacturing work that is ready and still to do, helping users access the right orders more reliably.
Original PR description
In this commit: ================== - replace the domain that applied when we enter the manufacturing operation type from the barcode application to domain 'To Do and MO ready'. task-3925741
21 changes
Resolved issues and error corrections
This fixes an internal issue where grouped list results could be ordered incorrectly when custom field sorting logic contained spaces or line breaks. The change makes ordering more reliable for customized Odoo models and adds tests to prevent regressions.
Original PR description
`_read_group_orderby` used `cr.mogrify`, `split(",")` and `split()[0]` for the
result coming from the `_order_to_sql` which may come from `_field_to_sql`
As a side effect, SQL code after a space/newline not adjacent to a comma will
be dropped after `split()[0]`. So the mogrified customized `_field_to_sql`
shoudn't have any space/newline not adjacent to a comma if the field is used
for `Model._order`.
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-prThe customer portal invoice preview now better matches the invoice layout selected during Print & Send. If a customer has a custom invoice template setting, the portal uses it instead of always showing the default Odoo invoice format.
Original PR description
In the Print & Send, it is possible to use a different report template than the Odoo default one ('account.account_invoices'). This is not reflected in the portal preview.
Solution:
Which template has been used for an invoice is not an information that is saved in Odoo so we can't do something 100% accurate. When an invoice is generated with a different report than Odoo's one we save that as a setting on the partner.
We will render the portal preview with that template if it is set, to try to be closer to what should be shown.
task-no (approved by CHKL)This fixes an issue where the correct PDF report option was not always shown in the accounting Print & Send flow. It helps users reliably select and send the intended document without confusion or extra manual steps.
Original PR description
The display_pdf_report_id is not correctly computed. task-no
This update fixes several user-visible issues, including point of sale rescue sessions failing to open, website Facebook snippets breaking editing, and mailing cover images not appearing correctly. It also improves spreadsheet dashboards by adding favorites and better small-screen layout, while adding invoice list information for fapiao support.
This fixes the placement of editor action buttons when using right-to-left languages such as Arabic. It makes editing content smoother for users working in those languages by respecting the direction set on the main editable area.
Original PR description
Description of the issue this PR addresses: Previously, the positioning of powerbuttons only considered the `dir` attribute on the closest block element. However for true RTL languages like Arabic, the `dir` attribute is applied to the editable container, not the individual nodes. This commit makes sure that `dir` attribute of editable is taken into account when the closest block does not have its own `dir` attribute. task-4259040 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This pull request addresses several user-facing issues across Odoo, including duplicate email attachments, incorrect dropshipping delivery slip descriptions, misplaced table tools in email editing, currency conversion errors in shipping, missing RPC header support, and overly broad calendar email recipients. These fixes help improve accuracy, reduce customer confusion, and prevent unnecessary notifications.
Original PR description
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 fixes a website issue where pages could unexpectedly jump back to the top when a popup appeared while animations were running. The change keeps visitors in the right place on the page, improving the browsing experience for animated website pages.
Original PR description
Since this commit [1], from which the scrolling element is no longer '#wrapwrap' but HTML, test 'snippet_popup_and_animations' fails. Because during animations 'overflow-x: hidden' is added on the…
Since this commit [1], from which the scrolling element is no longer '#wrapwrap' but HTML, test 'snippet_popup_and_animations' fails. Because during animations 'overflow-x: hidden' is added on the scrolling element (HTML). And a the time of a modal show, a 'overflow: hidden' style is added brievly on the 'body' element. Wich cause the page scroll to top when a modal sho while an animation is playing on the page. To fix this, unwanted behavior, we moved the 'overflow-x: hidden' rule added during animations from the HTML the the body. Since this commit [1], from which the scrolling element is no longer '#wrapwrap' but HTML, the test 'snippet_popup_and_animations' fails. This is because during animations, 'overflow-x: hidden' is added to the scrolling element (HTML). At the time a modal shows, an 'overflow: hidden' style is briefly added to the 'body' element, which causes the page to scroll to the top when a modal shows while an animation is playing on the page. To fix this unwanted behavior, we moved the 'overflow-x: hidden' rule added during animations from the HTML to the body." [1]: https://github.com/odoo/odoo/commit/189a7c96e6e26825dc05c0c6466576fe63aa091e task-4185877
Sales users will no longer see a general warning when changing a product's type on sales-related products. This reduces unnecessary interruptions while existing safeguards still block changes when they are not allowed.
Original PR description
Before the commit: Previously, when the product type of an item in a sales order was changed, a warning would be displayed, but users were still allowed to make the change. Although there are other checks in place to prevent changes to the product type under certain conditions, the general warnings were unnecessary. After the commit: Now, there will be no general warning when changing a product's type.
This fix makes the interactive sales walkthrough more reliable by ensuring guidance appears at the right time, users can continue after editing a line price without extra clicks, and the walkthrough does not fail when no document layout setup is needed. It helps users complete the sales flow with fewer interruptions during guided onboarding or training.
Original PR description
This change fixes the following issues, which occured when running the tour interactively: - The tooltip prompting the user to select or create a product wasn't shown, - After setting the SOL's price, the user had to click on the SOL again to trigger the next step (whereas they should be able to click anywhere), - If there was no document layout to configure, the tour would fail.
The Print & Send wizard now shows sending method names in the user's selected language instead of always showing English labels. This improves clarity for multilingual users and helps reduce confusion when sending accounting documents.
Original PR description
The sending methods displayed in the Print & Send wizard were populated using the selection field's `selection` field. This only gave the English terms as defined in the code. This commit fixes that by using another method that gets the values in the current user's language.
This update corrects how accrual carry-over validity is shown in Time Off settings. It prevents an unset validity value from appearing to users and fixes a related display widget name, reducing confusion when configuring leave accrual rules.
Original PR description
in this commit, fixes a issue where carry over validity isn't set value is still visible in view. task-4207945 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 fix prevents the Calendar app from creating user settings records when they are not actually needed. It reduces unnecessary background data creation, helping keep user data cleaner without changing the visible calendar experience.
Original PR description
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 fixes an issue where action buttons in list views were missing on mobile devices. Those buttons now appear in the mobile cog menu, making important list actions accessible for users on smaller screens.
Original PR description
When we create a list view with a header buttons, the buttons didn't displayed in the DOM, but it should have been shift inside the cog menus. 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
When accounting accounts are merged, their translated names are now preserved instead of being lost. This helps multilingual companies keep accurate account labels for users working in different languages.
Original PR description
At the moment, when we merge accounts, we don't merge the account name's translations. This is a bit annoying since one account might have been called 'Account Receivable' in English, and another one might have been called 'Clientes' in Spanish. At the moment, the translations of the other accounts are lost. This commit makes us merge the translations when merging the accounts. taskid: 4210775
Fixes an issue that prevented portal users from previewing quotations for Brazilian companies. This ensures sales documents can be viewed reliably without an error interrupting the customer or sales workflow.
Original PR description
Currently, you view quotations in the portal with a Brazilian company.
### Steps to reproduce
* install `l10n_br_sales`
* switch to a Brazilian company
* attempt to "Preview" a quotation
You should be met with the following traceback:
```
AttributeError: 'NoneType' object has no attribute 'decimal_places'
Template: l10n_br_sales.document_tax_totals_brazil
Path: /t/tr[2]/td[2]/strong
Node: <strong t-out="tax_totals[\'total_amount_currency\']" t-options="{"widget": "monetary", "display_currency": currency}"/>
```
opw-4247492This fix ensures project forecast users see the correct error messages when something needs their attention. Clearer messages reduce confusion and help users understand what action to take.
Original PR description
Fixed incorrect error messages that were previously displayed. task-4193991
The barcode app now shows the appropriate manufacturing orders when entering a manufacturing operation type, focusing on items that are ready or still to do. New manufacturing orders created from a scanned operation type are now assigned to that same operation type, preventing confusion and misrouting in warehouse workflows.
Original PR description
In this commit: ================== - Replace the domain that applied when we enter the manufacturing operation type from the barcode application to domain 'To Do and MO ready'; - Use the right operation type when a new MO is created from the barcode app, regardless it was created by scanning the MO's product or using the form view. task-3925741
The worksheet button on field service task portal pages now appears in the same navigation area as related options like Task and History. This keeps the page layout consistent and prevents the button from looking out of place for customers using the portal.
Original PR description
Before this commit, the worksheet button is wrongly placed in the navbar of the portal form view of a task and so, it will lead to a wrong design for that button. This commit moves that button in the right place to be sure to have the same style than the other nav buttons (this is, `Task`, `History`,...) task-4251535
Manufacturing planning now correctly includes component consumption when calculating starting inventory. This helps planners see more accurate stock levels for components that are also tracked in the Master Production Schedule.
Original PR description
When a MO consumes components that have a MPS record, the MPS does not take the consumption moves into account for the starting quantity of the MPS record. This PR removes that condition to make sure the starting inventory is correctly computed.
Subscription quotations can now be previewed in the customer portal for Brazilian companies without triggering an error. This prevents a blocker for reviewing subscription offers and improves the portal experience for affected customers.
Original PR description
Currently, you view subscription quotations in the portal with a Brazilian company.
### Steps to reproduce
* install `l10n_br_sales`
* switch to a Brazilian company
* attempt to "Preview" the subscription quotation
You should be met with the following traceback:
```
AttributeError: 'NoneType' object has no attribute 'decimal_places'
Template: l10n_br_sales.document_tax_totals_brazil
Path: /t/tr[2]/td[2]/strong
Node: <strong t-out="tax_totals[\'total_amount_currency\']" t-options="{"widget": "monetary", "display_currency": currency}"/>
```
opw-4247492The customer portal now shows the correct upcoming invoice amount for subscriptions instead of zero. This prevents customers from seeing misleading billing information when previewing a sales order.
Original PR description
Version: - 18.0 Steps to reproduce: - Install the sale_subscription module - Create a Sales Order and preview it in the portal Issue: - The next billing amount in the portal shows as zero. Cause: - The wrong amount value is being used in the condition. Solution: - Use the correct total_amount to fix the issue. task-4247106
10 changes
Resolved issues and error corrections
This update resolves an issue where the recurring invoice cron job would fail when consolidated subscriptions were not invoicable or free. The team has implemented a filtering process to handle these subscriptions separately, ensuring invoices are generated correctly and reliably. This improves the stability and accuracy of subscription billing.
Original PR description
Right now, if all consolidated subscriptions are not invoicable or are free, the recurring invoice cron job fails due to a singleton error We filter the subscriptions and handle them separately
This fix resolves a technical issue in the account reports module where grouping data by certain field types would fail when those fields contained empty values. The system now properly handles these empty values during sorting, ensuring reports generate without errors. This improves the reliability of account reporting features.
Original PR description
When doing a groupby on a non-relational field (e.g. a char), if the field contains NULL values in DB, they appear as `None` in the keys of the `group_lines_by_keys` dict. If the comparison operator is not implemented between the field type and `NoneType`, `sorted` will fail with a traceback. Solution: sort on keys `(k is None, k)`. if k is None, then `k is None = True`. Because `True > False`, these values are pushed to the end by the sorting. task-none Forward-Port-Of: odoo/enterprise#72008
This update ensures that the Documents field in projects displays a consistent label across all installations. Previously, the label would vary depending on which modules were installed, which could cause confusion. Now it will always show "Documents" for clarity and consistency.
Original PR description
Before this commit, when documents_project module is installed on a fresh DB the label of `Use Documents` and when documents_fsm module is installed the label is updated to be `Documents`. This commit makes sure the label of that field will always be `Documents` in all cases. task-4250848 Forward-Port-Of: odoo/enterprise#71741
This fix resolves an issue where Avatax taxes were being created in subsidiary companies instead of the parent company, causing duplicate tax name errors when processing invoices in the main company. The change ensures taxes are consistently created at the parent company level, allowing seamless tax calculations across all company branches.
Original PR description
Set up Avatax on a company Create Branch and switch to it Create an invoice with fiscal position Avatax Compute taxes > Taxes will be created in branch company Switch to main company Create an invoice with fiscal position Avatax again. Compute taxes > Error Error will block the action ``` Validation Error Tax names must be unique! - CA STATE TAX [06] (6.0000 %) in test ``` This occurs because we first created the taxes in the branch company. Then when retrieving taxes from the main company those taxes are not found and will be created again but we have a constraint that tax name must be unique opw-3962212
This update corrects and cleans up translations in German localization modules for account follow-up and field service management. These improvements ensure that German-speaking users see accurate and consistent text throughout the application, enhancing the overall user experience.
Original PR description
*l10n_din5008_account_followup, l10n_din5008_industry_fsm Related to: https://github.com/odoo/odoo/pull/183268 Forward-Port-Of: odoo/enterprise#71710
Norway is updating its SAF-T financial reporting standard to version 1.30 starting in 2025. This update ensures Odoo's Norwegian accounting module complies with the new requirements. The changes also fix two data accuracy issues in the financial reporting: using correct account codes instead of database IDs, and using accounting dates instead of invoice dates for transaction values.
Original PR description
Norway will soon (beginning of 2025) only accept their 1.30 version of the SAF-T. This commit adapts the current behaviour to be in line with the change to that new version. This also correct two…
Norway will soon (beginning of 2025) only accept their 1.30 version of the SAF-T. This commit adapts the current behaviour to be in line with the change to that new version. This also correct two errors that were used in the generic SAF-T module: - The accounts codes should be used for AccountID instead of the account database ids - The ValueDate should be the accounting date and not the invoice date. Based on the info from: - Previous version SAF-T description: https://www.skatteetaten.no/globalassets/bedrift-og-organisasjon/starte-og-drive/rutiner-regnskap-og-kassasystem/saf-t-regnskap/oppdateringer-desember-2020/norwegian-saf-t-financial-data---technical-description.pdf - New version: https://www.skatteetaten.no/globalassets/bedrift-og-organisasjon/starte-og-drive/rutiner-regnskap-og-kassasystem/saf-t-regnskap/oppdateringer-mars-2024/norwegian-saf-t-financial-data---technical-description.pdf task-3975794 Forward-Port-Of: odoo/enterprise#70938 Forward-Port-Of: odoo/enterprise#65221
This fix prevents discount lines from sales orders from being incorrectly available for selection when creating billable helpdesk tickets. Previously, when a customer had a sales order with applied discounts (like coupon codes), those discount lines could be selected as billable items, which is incorrect. The fix restricts the available options to only legitimate service lines that should be billed.
Original PR description
Issue ----- - install helpdesk_sale_timesheet - activate loyalty feature - create a SO for a customer A for a service product, apply for example a coupon code on this SO - in a helpdesk project with Time Billing enabled, create a task for customer A - ** the discount SO line is available to select as a SOL item ** This commit improves the SOL domain in continuation of https://github.com/odoo/odoo/commit/d840a3b62627392e72ab4667922bc1cfca45815d opw-4212956 Forward-Port-Of: odoo/enterprise#71640
The rental scheduling system was showing incorrect warning messages to users. When a rental product was out of stock, the system incorrectly displayed "Other rental(s) in conflict" instead of clearly stating the product was unavailable. This fix clarifies the messages so users see the actual reason why a rental cannot be fulfilled—either because the product is not available or because of scheduling conflicts with other rentals.
Original PR description
Problem: The `is_available` flag was used to check both product availability and conflicts with other rentals. However, the UI message was misleading, stating "Other rental(s) in conflict" even when the product was simply not available. Steps to reproduce: - Create a rental product with a quantity of 0. - Add a rental order for that product. - In the Schedule Gantt view, hover over the order. - A warning appears stating "Other rental(s) in conflict," even though no other rentals exist on the same date; the actual issue is that the product is not available. opw-4085496 Forward-Port-Of: odoo/enterprise#69783
Fixed an issue where customer statement PDF reports now correctly print in the customer's preferred language when all customers in the report share the same language setting. This ensures better communication with customers by delivering statements in their native language.
Original PR description
When all the customers to print in the report share the same language, we need to print the report in that language. opw-4144771
This update removes unnecessary data that was being sent to the spreadsheet when inserting pivot views. The unused data could cause errors when it was too large to fit in the browser's storage. By removing this data, the system now works more reliably without affecting functionality.
Original PR description
Before this commit, the data given to the spreadsheet init callback in the case of inserting a pivot view was not used. This could lead to an error if the data was too big to be stored in the browser's session storage. This commit removes the useless data given to the spreadsheet init. Note that it's not necessary to write a new test for this, as the existing tests already cover this case. Task: 4255049 Forward-Port-Of: odoo/enterprise#71847