Daily updates from Odoo
Thursday, October 17, 2024
20 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-601491 change
Resolved issues and error corrections
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
9 changes
Resolved issues and error corrections
The 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 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 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
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
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-4247492The 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
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-42474927 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 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 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