Thursday, February 15, 2024
36 changes · master
Enhancements to existing features
The web interface now avoids automatically opening the on-screen keyboard when users select values from certain menus on touch devices. This makes mobile and tablet interactions smoother and reduces interruptions during everyday navigation.
Original PR description
This commit brings back the use of this hook, that was lost during the dropdown refactor [1]. The hook is safer to use, since it does not focus the input when a touch device is being used. This prevents having the virtual keyboard popping up on the screen too often when simply selecting a value in a list. [1]: 28c366746ddf144313a508159d6a22d2726159fb
This update removes recently added internal Odoo annotations from the web interface code and related tests. It helps keep the codebase cleaner and more consistent without changing visible functionality for users.
Original PR description
This commit removes odoo annotations added after this [PR]. [PR]: https://github.com/odoo/odoo/pull/142858
Invoices and credit notes sent through Send & Print now display a clear Sent stage, making it easier for users to distinguish items that are only posted from those already sent to customers. This improves visibility in the invoice workflow without changing the underlying accounting status.
Original PR description
New stage 'Sent' for invoices/Credit notes sent with Send & Print. Users can see difference between Posted and Sent more easily. - Add state 'sent' to account move. - Add this state to the widget bar, but only visible for invoices and credit notes. For those, only visible if move is sent. - Change invisibility criteria for buttons, so they still show in sent moves. Still to do by updating the commit once I have olma's perspective: add decoration to the sent stage, add 'sent' to posted filter. task-3639958
Website editors can now choose whether dynamic product carousels show every product variant or only the main product. This gives businesses cleaner merchandising options while still letting shoppers configure variants when needed.
Original PR description
**Version** - master Before this PR, the dynamic product carousel displayed the products including their variants. After this, users can decide whether they want to show the variants or not. With this PR, - Introduced a toggle button in the editor panel for a dynamic product carousel to switch between `products with variants` and `products without variants`. 1. Added `show variant` toggle option:  2. Product carousel with show variant = False. It will display only the main product.  3. Product carousel with show variant = True. It will display all product variants.  task-3266832 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update streamlines how message threads are loaded and shared in Expenses and Mail. It is an internal cleanup that should make the related communication features easier to maintain without changing day-to-day user workflows.
Original PR description
This change provides the thread with `Thread.insert()` instead of `getThread()`and omits `getThread()` from `threadService` [Related Enterprise PR](https://github.com/odoo/enterprise/pull/56492)
This update improves Odoo's internal HOOT testing tools with clearer filtering, better debugging screens, and more reliable error handling. These changes help developers find and fix issues faster, supporting better product quality with limited direct impact on end users.
Original PR description
Part 1: https://github.com/odoo/odoo/pull/152930 Part 2: https://github.com/odoo/odoo/pull/153018 Part 3: https://github.com/odoo/odoo/pull/153023 Part 4: https://github.com/odoo/odoo/pull/153203 Part 5: https://github.com/odoo/odoo/pull/153425 This pull request: - fixes some more linting issues - rearranges the inclusion system in HOOT - crashes calls to getFixture outside of tests - filters counts on HOOT sidebar based on current filters - allows to unselect suites in the sidebar - renames "dispatch" to discourage its use - adds a "queryFirst" helper - adds a diff section to "toHaveStyle" - fixes timing issues allowing errors to be contained within tests - makes toThrow and toMatch accept constructor and matches against instances --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update modernizes internal tests for the web expression editor dialog, helping ensure the feature remains reliable as the product evolves. There is no direct change to everyday user workflows, but it supports better quality assurance for future releases.
Original PR description
task-id: 3705027
Inventory operation settings now determine whether serial-numbered products should be treated as tracked or untracked during stock moves. This makes warehouse workflows more consistent when both options to create new serials or use existing ones are disabled.
Original PR description
Before this commit: =================== There is no relationship between the 'create new' and 'use existing one' fields and serial-tracked products. If both fields are disabled, there is no effect on serial-tracked products. After this commit: ================== - If both 'create new' and 'use existing one' fields are disabled in the inventory operation type, then the serial-tracked product lines will be considered as non-tracked product. - Test cases are update because both fields 'create new' and 'use existing one' will be access through picking_id in stock_barcode. Task: 3443228
Invoice, bill, credit note, and refund lists now include Accounting Date as a grouping option. This makes it easier for finance teams to organize and review documents by the date used for accounting records.
Original PR description
- Add 'Accounting Date' as a group by option under Invoice and Due date, in the list view of invoices/bills/credit notes/refunds. task: 3642367 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
Invoice and credit note lists now show whether each document has been sent using Send & Print. Users can also filter documents by sent or not sent status, making follow-up and tracking easier.
Original PR description
This commit adds information about the sent state to the outgoing moves views, making it easier to see if an invoice/CN was sent via Send & Print or not. A new Selection computed field was created to display whether move was 'Sent' or 'Not Sent' as a badge. This commit: - Creates a computed selection field, not stored, that changes according to is_move_sent value - Adds column Sent in list view, displaying a bagde - Adds filters Sent and Not Sent to invoices and credit notes task:3689248
Barcode delivery flows now treat serial-tracked items like regular product lines when creating or using serial numbers is disabled for the operation type. This makes the number pad available and provides a more consistent, simpler interface for warehouse staff.
Original PR description
Before this commit: =================== There is no relationship between the 'create new' and 'use existing one' fields and serial-tracked products. If both fields are disabled, there is no effect on serial-tracked products in barcode. After this commit ============= - If both 'create new' and 'use existing one' fields are disabled in the inventory operation type, then in the barcode, the serial-tracked product lines will be considered as one line, like non-tracked product line. - The 'Digi pad (Number pad)' in the barcode will be visible when both fields are disabled. - The UI view for serial-tracked products will be the same as for non-tracked products when both fields are disabled in the barcode." Task: 3443228
This update changes how message threads are prepared in recruitment extraction, Knowledge comments, and WhatsApp chatter. It streamlines the underlying messaging code without introducing visible workflow changes for users.
Original PR description
\* : hr_recruitment, knowledge, whatsapp This change provides the thread with `Thread.insert()` instead of `getThread()` and omits `getThread()` from `threadService` [Related Odoo PR](https://github.com/odoo/odoo/pull/153817)
Resolved issues and error corrections
This fixes an unstable automated test related to contact availability status in the mail app. The change helps keep internal quality checks reliable, reducing false failures during development and release validation.
Original PR description
Recently, the `change icon on change partner im_status` test was sometimes failing. This is due to the `advanceTime` helper not being awaited. Indeed, if the `contains` helper resolves before the end of the `advanceTime` one, the state is broken and the test breaks. This PR solves this issue by properly awaiting the calls made to `advanceTime`. fixes runbot-57474
Features or functions removed from Odoo
Event exhibitor and track pages no longer show a placeholder link inviting editors to add a description when none exists. This avoids a confusing editing experience because the link did not work reliably inside the website editor.
Original PR description
When an exhibitor or track has an empty description, the website editor displays a plaholder and a link to edit the page. The link does not work consistently as the link refreshes the iframe of the editor. As the editor has no way to support this we remove the feature in master. In stable we leave it broken as it's not that important. task-3607615 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Code cleanup and technical improvements
This update refreshes Odoo's automated tour testing tools by replacing older jQuery-based selectors with the newer HOOT testing framework. It improves maintainability and debugging for future quality assurance work, with little direct impact on day-to-day users.
Original PR description
Miscellaneous changes
Steps to reproduce: - Switch to a language where removal strategy name is translated (FR in 17.0) - Edit product category and set a translated removal strategy - Update on hand quantity Bug: User error removal strategy not implemented the removal strategy name is used in the code to identify them when changing the name through translation it is not recognized anymore Fix: use the untranslated term when checking the strategy type opw-3697462 Forward-Port-Of: odoo/odoo#152928
Original PR description
Steps to reproduce: - Switch to a language where removal strategy name is translated (FR in 17.0) - Edit product category and set a translated removal strategy - Update on hand quantity Bug: User error removal strategy not implemented the removal strategy name is used in the code to identify them when changing the name through translation it is not recognized anymore Fix: use the untranslated term when checking the strategy type opw-3697462 Forward-Port-Of: odoo/odoo#152928
Sales report entries linked to completed point of sale orders no longer trigger an error when opened. This ensures users can review paid POS orders from sales reporting without interruption.
Original PR description
Current behavior: When clicking on a line of sale report concerning a pos done order, you get an error because the "done" status is not in the selection options. Steps to reproduce: - Go to POS - Create a new order - Pay the order - Go to backend - Go to Sales > Reporting > Sales - Swap the graph to "Bar Grap" - Click on the bar representing the order you just created - Click on the Order you just made - You get an error opw-3686171 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Invitation emails now respect the custom button color chosen in email template settings. This keeps user invitations visually consistent with the company's configured email branding.
Original PR description
Currently, when setting a custom color for the buttons in email templates, the invitation email uses the default color. Steps to reproduce: ------------------- * Go to **Settings** * Change the button color under **Email templates** * Select **User & Companies** -> Users * Select any user and send the invitation email opw-3691194
The appointment kanban card action menu has been moved back to the right side of each card. This fixes a visual issue that made the menu appear in the middle of appointment cards, improving usability and keeping the interface consistent.
Original PR description
A recent change to the kanban view placed the action cog in the middle of the kanban cards in appointment. We restore it to the right-hand side. task-3741116
An outdated email campaign form layout that was already deprecated has been removed from the Mass Mailing app. This cleanup reduces maintenance of unused code without changing current user workflows.
Original PR description
Cleaning `mailing_mailing_view_form_full_width` which was deprecated with the milk theme in 16.3. Task-3571161
The website settings no longer show the obsolete button for publishing the sitemap. This reduces confusion for website administrators because the action is no longer needed.
Original PR description
[This previous commit] added a notification on the publish sitemap button to inform the user that it's now useless. In master we can just remove the button. [This previous commit]: https://github.com/odoo/odoo/commit/b93f2346a535f0936c120c25a9769265d6877e02 task-3323849
In this commit : - Tour Compiler uses now Hoot selectors instead of jQuery selectors. - jQuery selectors from tours trigger (extra_trigger and others) have been so adapted to be compatible with Hoot selectors. - Most of uses of jQuery in step.run() has been replaced by native or hoot-dom helpers. - A new option has been added in start_tour() (debug=True) to make it easier to debug tours. This opens a full screen browser with opened devtools and a breakpoint at tour initialization. - In debug=True mode, step.freeze allows you to pause de tour at this step. Use thaw() to continue it. task~3600484 Enterprise : https://github.com/odoo/enterprise/pull/53915
The web module's internal tests for integer fields were converted to a newer testing framework. This helps keep quality checks maintainable and reliable without changing how users interact with the product.
Original PR description
task 3705027 Note for reviewer: the test "with disable formatting option" is gone as it was testing an option that no longer exist. Or more specifically, is still there but called `enable_formatting`. The test was working cause the localization was unpatched by default in the qunit suite, so the grouping was inexistant and it ended up unformatted. Just by chance. Since the hoot suite has a localization patch by default, the test no longer passed and couldn't never as the option `format` no longer exist.
This update modernizes the way Odoo’s guided tour tests identify and interact with screens, replacing older jQuery-based logic with the newer Hoot approach. It also adds better debugging support for tour tests, helping developers diagnose issues faster while keeping the change largely internal to quality assurance.
Original PR description
In this commit : Tour Compiler uses now Hoot selectors instead of jQuery selectors. jQuery selectors from tours trigger (extra_trigger and others) have been so adapted to be compatible with Hoot selectors. Most of uses of jQuery in step.run() has been replaced by native or hoot-dom helpers. A new option has been added in start_tour() (debug=True) to make it easier to debug tours. This opens a full screen browser with opened devtools and a breakpoint at tour initialization. In debug=True mode, step.freeze allows you to pause de tour at this step. Use thaw() to continue it. task~3600484 Community : https://github.com/odoo/odoo/pull/148639
The string value of an empty array is `""` which is falsy. Prior to this commit, if all optional columns headers were disabled in a list view, it would result in a reset of those when the view is mounted the next time, instead of keeping them disabled like in prior versions. task-3692178 Forward-Port-Of: odoo/odoo#153831 Forward-Port-Of: odoo/odoo#153407
Original PR description
The string value of an empty array is `""` which is falsy. Prior to this commit, if all optional columns headers were disabled in a list view, it would result in a reset of those when the view is mounted the next time, instead of keeping them disabled like in prior versions. task-3692178 Forward-Port-Of: odoo/odoo#153831 Forward-Port-Of: odoo/odoo#153407
Reproduction: 1. Install Sales, Email Marketing 2. Go to Email template by searching 3. Click the Sales: Send Quotation template and make a duplicate 4. Add empty lines in the template, till it almost reaches the end of the page 5. Use slash command to add a Dynamic holder, and it’ll be positioned below the page Fix: compute the position by consider the height of the popover to make sure it’ll be always in the page opw-3373403 task-3442559 --- I confirm I have signed the CLA an
Original PR description
Reproduction: 1. Install Sales, Email Marketing 2. Go to Email template by searching 3. Click the Sales: Send Quotation template and make a duplicate 4. Add empty lines in the template, till it almost reaches the end of the page 5. Use slash command to add a Dynamic holder, and it’ll be positioned below the page Fix: compute the position by consider the height of the popover to make sure it’ll be always in the page opw-3373403 task-3442559 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#129883
Steps: - Install `mrp` - Install `web_studio` - Open `Inventory` - Click on `Toggle Studio` button - Click on `Reports` tab - Remove default filter - Try to open `MO Overview` report via reports view - Traceback When loading the `MO Overview` report, `_get_report_qweb` is called and builds the context rendering here https://github.com/odoo/enterprise/blob/b7d0d3034d53cdab831f42f8b37a14cf50f3720e/web_studio/controllers/report.py#L549 We therefore call _get_rendering_conte
Original PR description
Steps: - Install `mrp` - Install `web_studio` - Open `Inventory` - Click on `Toggle Studio` button - Click on `Reports` tab - Remove default filter - Try to open `MO Overview` report via reports view…
Steps: - Install `mrp` - Install `web_studio` - Open `Inventory` - Click on `Toggle Studio` button - Click on `Reports` tab - Remove default filter - Try to open `MO Overview` report via reports view - Traceback When loading the `MO Overview` report, `_get_report_qweb` is called and builds the context rendering here https://github.com/odoo/enterprise/blob/b7d0d3034d53cdab831f42f8b37a14cf50f3720e/web_studio/controllers/report.py#L549 We therefore call _get_rendering_context with `[0]` in `docids`, which will call `_get_report_values` in `mrp/report/mrp_report_mo_overview`. https://github.com/odoo/odoo/blob/6e8e62db1fa2010c3e6696baacaedf997fd8fa89/addons/mrp/report/mrp_report_mo_overview.py#L29-L30 https://github.com/odoo/odoo/blob/6e8e62db1fa2010c3e6696baacaedf997fd8fa89/addons/mrp/report/mrp_report_mo_overview.py#L53-L54 `_get_report_data` performs a `browse(0)` on `mrp.production`. BaseModels::browse replaces falsy values with empty tuples `()`. https://github.com/odoo/odoo/blob/5d726c933b591468bcef85a4e14b183278a00e5b/odoo/models.py#L5441-L5442 This implies the return of an empty model record. `mrp_report_mo_overview` will therefore use a record containing null values in its operations, for example division, which causes a division by 0 error, or a log10(0) in `_get_uom_precision` because `product_uom.rounding` is 0. https://github.com/odoo/odoo/blob/6e8e62db1fa2010c3e6696baacaedf997fd8fa89/addons/mrp/report/mrp_report_mo_overview.py#L105-L106 This commit corrects these incorrect defaults with fallbacks opw-[3725827](https://www.odoo.com/web#id=3725827&view_type=form&model=project.task) Forward-Port-Of: odoo/odoo#153919 Forward-Port-Of: odoo/odoo#153594
Steps to reproduce: - Install `event_crm` module - Create an Event with a company - Go to `Events > Configuration > Event Lead Rules` - Create a new rule and set no company - Try to set the event created above for Event field Issue: Event created not displayed as possible value for the Event field. Cause: Because we have `check_company=True` set on `event_id` field, the field will be filtered based on the `company_id` field, and since no company is set on t
Original PR description
Steps to reproduce: - Install `event_crm` module - Create an Event with a company - Go to `Events > Configuration > Event Lead Rules` - Create a new rule and set no company - Try to set the event created above for Event field Issue: Event created not displayed as possible value for the Event field. Cause: Because we have `check_company=True` set on `event_id` field, the field will be filtered based on the `company_id` field, and since no company is set on the rule, events with company will not be listed. Commit that introduced the issue: https://github.com/odoo/odoo/commit/0479b2b59466ae1d6d74165345aa3a7dc5de24ed Solution: Revert to the previous behavior (remove `check_company=True` from `event_id` field and use a domain instead). opw-3715864 Forward-Port-Of: odoo/odoo#153906
In this PR: ## [IMP] web: remove obsolete comment "_lt" was removed in https://github.com/odoo/odoo/pull/130179. This commit updates the doc accordingly. ## [IMP] tools: don't try to extract _lt in JS code "_lt" was removed from the JS code in https://github.com/odoo/odoo/pull/130179, but the source terms extractor (used to generate .pot files) still looks for its occurrences. This commit removes "_lt" from the list of the keywords whose content is extracted in the context of JS
Original PR description
In this PR: ## [IMP] web: remove obsolete comment "_lt" was removed in https://github.com/odoo/odoo/pull/130179. This commit updates the doc accordingly. ## [IMP] tools: don't try to extract _lt in JS code "_lt" was removed from the JS code in https://github.com/odoo/odoo/pull/130179, but the source terms extractor (used to generate .pot files) still looks for its occurrences. This commit removes "_lt" from the list of the keywords whose content is extracted in the context of JS files. ## [IMP] test_lint: adapt tests to the removal of (JS) _lt "_lt" was removed in https://github.com/odoo/odoo/pull/130179, but is still mentioned in linting tests. This commit adapts the tests to remove all mentiones of _lt. (Note: it deliberately ignores the part about lodash, even though this is also obsolete, as it is outside the scope of this commit). Forward-Port-Of: odoo/odoo#153871
When invoicing public administrations, they expect the facturae electronic invoice to contain the optional `<PaymentDetails>` node that contains e.g. the bank account number to which they need to issue the payment. We didn't provide these details. This commit adds the necessary `<Installment>` nodes in the `<PaymentDetails>` node for each installment in Odoo according to the payment terms of the invoice. Since we are fixing this in stable, we only add the payment details for inbound paymen
Original PR description
When invoicing public administrations, they expect the facturae electronic invoice to contain the optional `<PaymentDetails>` node that contains e.g. the bank account number to which they need to…
When invoicing public administrations, they expect the facturae electronic invoice to contain the optional `<PaymentDetails>` node that contains e.g. the bank account number to which they need to issue the payment. We didn't provide these details. This commit adds the necessary `<Installment>` nodes in the `<PaymentDetails>` node for each installment in Odoo according to the payment terms of the invoice. Since we are fixing this in stable, we only add the payment details for inbound payments and fix the `<PaymentMeans>` to `04` (Credit Transfer). We also removed the stripping of whitespace for the signature, since it turned out not necessary after introduced in [1] [1] e5d69a73e2e781d00f67c0590a8fc13b09a06ebf [task-3734341](https://www.odoo.com/web#id=3734341&cids=1&menu_id=4720&action=333&active_id=967&model=project.task&view_type=form) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#153931 Forward-Port-Of: odoo/odoo#153692
Steps to reproduce: 1) Create product P for $1000, with 15% Tax, publish to website. 1-bis) make sure the 15% tax is "included" 2) Settings -> search 'price' -> Tax Excluded. 3) Go to website /shop page, and edit to place the Products block, and search for Issue: The price displayed on the product in "86.96" (correct) but the price on the product in the carousel displays "100.00" Cause: The price for the carousel is not fetched the same way https://github.com/odoo/odoo/blob/e829b345f0
Original PR description
Steps to reproduce: 1) Create product P for $1000, with 15% Tax, publish to website. 1-bis) make sure the 15% tax is "included" 2) Settings -> search 'price' -> Tax Excluded. 3) Go to website /shop page, and edit to place the Products block, and search for Issue: The price displayed on the product in "86.96" (correct) but the price on the product in the carousel displays "100.00" Cause: The price for the carousel is not fetched the same way https://github.com/odoo/odoo/blob/e829b345f0f5e5346be416b8354c29fa9acb74a7/addons/website_sale/data/product_snippet_template_data.xml#L388 And the method does not take into account this fourth scenario. That is: - a tax with price_include set to True - a show_line_subtotals_tax_selection config parameter set to "tax_excluded" opw-3370999 Forward-Port-Of: odoo/odoo#136091 Forward-Port-Of: odoo/odoo#133501
Final goal of this PR is to add in a first pass full auto-translation of Odoo into Russian. Steps taken to do so: 1. Re-export all pot files to ensure correct terms to translate + clean them up in general due to human error 2. Add missing pot files for modules that were added after the last cleaning/freeze and therefore were also missing from the .tx config file (later PR to follow to add in modules missing from config file, but already have a pot file) 3. 1 large master po file of all the
Original PR description
Final goal of this PR is to add in a first pass full auto-translation of Odoo into Russian. Steps taken to do so: 1. Re-export all pot files to ensure correct terms to translate + clean them up in…
Final goal of this PR is to add in a first pass full auto-translation of Odoo into Russian. Steps taken to do so: 1. Re-export all pot files to ensure correct terms to translate + clean them up in general due to human error 2. Add missing pot files for modules that were added after the last cleaning/freeze and therefore were also missing from the .tx config file (later PR to follow to add in modules missing from config file, but already have a pot file) 3. 1 large master po file of all the modules exported in steps 1 + 2 were feed into an auto-translator 4. Master po file was split back into respective module's ru.po files (missing ones due to module not being in config file were auto-generated, these modules will be added into the config in a later PR). Note that because msgmerge would not auto-update the existing po files with the new translations for some reason, the metadata of the previous translators was discarded for the sake of automating the splitting of the master po translation file into the individual module ones in a simple way 5. Manual fixes of incorrect translating (i.e. of code terms) were done where noticed, additional bugs may pop up in the future as users use db in Russian more Same process was done for Enterprise. ENT PR: https://github.com/odoo/enterprise/pull/55637 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#152958 Forward-Port-Of: odoo/odoo#152285
While fixing a non deterministic test failing on nightly l10n builds, slight incoherences between sale & website_sale tax computation have been noticed in the computation of the contextual price (used in some snippets). This commit fixes the test, making sure it doesn't fail on l10n builds, but also uses the same tax util in website_sale than in sale, to make sure the displayed amounts are coherent (and supposedly correct). runbot error: 52831 (& a bunch of others) --- I confirm I h
Original PR description
While fixing a non deterministic test failing on nightly l10n builds, slight incoherences between sale & website_sale tax computation have been noticed in the computation of the contextual price (used in some snippets). This commit fixes the test, making sure it doesn't fail on l10n builds, but also uses the same tax util in website_sale than in sale, to make sure the displayed amounts are coherent (and supposedly correct). runbot error: 52831 (& a bunch of others) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#153299 Forward-Port-Of: odoo/odoo#152832
The previous implementation returned data based on record computation order, and not the actual model `_order`. This is confusing for the user, and inconsistent with the`_order` defined on the model. Moreover the `product.product` model isn't ordered by `sequence`, but rather by [priority, default_code, name, etc](https://github.com/odoo/odoo/blob/99bcda76fbffe804eeb974cc225daa5324fb9418/addons/product/models/product.py#L80). In any case, by ordering by product_id the actual order will be ta
Original PR description
The previous implementation returned data based on record computation order, and not the actual model `_order`. This is confusing for the user, and inconsistent with the`_order` defined on the model. Moreover the `product.product` model isn't ordered by `sequence`, but rather by [priority, default_code, name, etc](https://github.com/odoo/odoo/blob/99bcda76fbffe804eeb974cc225daa5324fb9418/addons/product/models/product.py#L80). In any case, by ordering by product_id the actual order will be taken from the related model, which makes more sense that an incorrect hardcoded one. ping @amoyaux Forward-Port-Of: odoo/enterprise#30093
This commit removes wrong _description overrides on analytic line models. Closes odoo/enterprise#54492 Forward-Port-Of: odoo/enterprise#55392 Forward-Port-Of: odoo/enterprise#54492
Original PR description
This commit removes wrong _description overrides on analytic line models. Closes odoo/enterprise#54492 Forward-Port-Of: odoo/enterprise#55392 Forward-Port-Of: odoo/enterprise#54492
When making a cross_report aggregation expression, its date_scope is going to be enforced on all expressions used in its computation. Because of that, if an expression of the current report is referenced by such an aggregation, and if this forced date_scope is different from that expression's, this expression will be computed twice, once for each date_scope. However, the modelling of the report makes it so that the second of these computations will overwrite the result of the first one (because
Original PR description
When making a cross_report aggregation expression, its date_scope is going to be enforced on all expressions used in its computation. Because of that, if an expression of the current report is…
When making a cross_report aggregation expression, its date_scope is going to be enforced on all expressions used in its computation. Because of that, if an expression of the current report is referenced by such an aggregation, and if this forced date_scope is different from that expression's, this expression will be computed twice, once for each date_scope. However, the modelling of the report makes it so that the second of these computations will overwrite the result of the first one (because the expression totals dict uses expressions directly as its keys). For now, this case is considered unsupported, as its is not common at all, and an easy workaround exist (just use multiple aggregation expressions, and only reference other reports in cross_report expressions). We hence add an exception in the report computation to crash when it occurs instead of displaying potentially wrong amounts. We also fix the NDays expression of the Executive Summary, as they were facing this situation, and hence raised the new exception we introduce here when the report was tested. Though it was a bit useless to compute them twice like that, their custom engine was made in such a way that the result of the computation was unchanged, so we can safely change the date_scope here so that it matches the one used on the aggregations calling them. Forward-Port-Of: odoo/enterprise#55560 Forward-Port-Of: odoo/enterprise#55212
Enterprise side of what was done in COM PR: https://github.com/odoo/odoo/pull/152285 Forward-Port-Of: odoo/enterprise#56005 Forward-Port-Of: odoo/enterprise#55637
Original PR description
Enterprise side of what was done in COM PR: https://github.com/odoo/odoo/pull/152285 Forward-Port-Of: odoo/enterprise#56005 Forward-Port-Of: odoo/enterprise#55637