Tuesday, May 19, 2020
5 changes · master
Enhancements to existing features
The website editor’s snippet options now load and respond faster by optimizing how page elements are selected behind the scenes. This reduces slowdowns in complex editor layouts and removes an unused legacy option with no expected user-facing loss.
Original PR description
Because of cross-browser compatibility concerns, jQuery's selector engine makes using :has selector relatively slow. This is usually acceptable, but in the case of snippet options, some options also need to use :has in their data-target selector, and nested :has selectors' performance degrade exponentially with the level of nesting. Additionaly, jQuery evaluates complex selectors right-to-left, which makes the :not operator quite inefficient. Because of that, this commit removes :has and :not from the conditions that were added at the end of the data-selector, and speeds up the selector by a factor of ~15-40 Lastly, the addDropSelector options was actually unused, and a leftover from the editor revert, as such it has been removed.
Bar and line charts in reporting views can now sort their x-axis categories by the selected measure, either ascending or descending. This makes it easier for users to spot top or bottom performers directly in visual reports without manually interpreting alphabetic or sequence-based ordering.
Original PR description
PURPOSE
Currently, reporting views such as the bar and line charts have their x-axis
sorted either alphabetically or according to a sequence. When reporting, the
user would be interested in sorting the x-axis values by their measure.
SPECIFICATIONS
added 'ascending' and 'descending' options in graph view for bar and line chart
options are separated from the graph switcher by thin vertical line for clarity.
LINKS
PR https://github.com/odoo/odoo/pull/49970
Task 2070103
--
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-prWhen someone replies to a marketing email through an alias that creates a lead or similar record, the original campaign tracking details are now copied to the new record. This helps teams keep accurate campaign attribution for opportunities generated from mailing replies.
Original PR description
In order to set utm informations during lead/opportunity creation, "message_new" has been overridden. The campaign is extracted from the trace associated to the message. Source is set to Mailing Campaing and Medium is set to Email. Task Id : 2210334 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 change helps preserve invoice records by preventing users from deleting PDF attachments once an invoice has been posted. It reduces the risk of losing digitized invoice documents and supports better accounting record retention.
Original PR description
**Description of the issue/feature this PR addresses:** With Odoo is now easy to add PDF on invoice (`account.move`). The issue is an employee can delete the PDF linked to the `account.move` by mistake. It is especially an issue if you have digitalized all invoices in Odoo. This PR prevent to unlink PDF if the `account.move` is posted. @odony @qdp-odoo @alexis-via -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Code cleanup and technical improvements
Odoo’s automated cleanup process has been reorganized so each cleanup task runs independently, reducing the chance that one failure stops all maintenance work. This improves system reliability for background housekeeping across areas such as messaging, events, live chat, point of sale payments, coupons, and wishlists.
Original PR description
The ir.autovacuum model purpose is to run several garbage collecting operations like removing files from the filestore when no attachment references them anymore. The precedent strategy to register new garbage collection tasks was to override the `power_on` method and to imperatively execute a vacuum cleaning method on a given model. All calls were executed in a single SQL transaction without any error handling, meaning a single fail during any call resulted in a complete failure of the entire vacuum cleaning chain. We introduce a new `@autovacuum` api decorator, its purpose it to register garbage collecting methods that will be safely executed in their own transaction by the vacuum cleaner. In order to ensure this new strategy is used, we deprecate `power_on` extensions. Task: 2154079