Wednesday, September 2, 2026
27 changes · master
Enhancements to existing features
The timesheet timer now uses only the user's recent timesheet activity from the past month when suggesting a task for a selected project. This avoids filling in old, irrelevant tasks and keeps time entry suggestions aligned with current work.
Original PR description
When selecting a project in the timesheet timer, the prefilled task could be one the user last logged time on years ago, which is no longer relevant. The prefill now only considers timesheets from the past month and follows the user's most recent one: if that timesheet has no task, none is prefilled rather than reaching further back. task-6485260 Forward-Port-Of: odoo/enterprise#128738
Lead creation from live chat and messaging channels is now easier to customize across Odoo. This helps future integrations like WhatsApp or social messaging set the right tracking information without extra dependency work, while keeping live chat defaults unchanged.
Original PR description
Extract lead creation values from _convert_visitor_to_lead into a _prepare_lead_create_values hook method on discuss.channel in the base crm module. This allows other modules (e.g. whatsapp_crm) to override lead values without depending on crm_livechat. The livechat UTM values (source=Livechat, medium=Website) are kept as defaults in the base method since livechat is considered the primary use case, avoiding the need for a whatsapp_crm_livechat bridge module. Task-3964124
The Knowledge app receives visual refinements that make screens, comments, dialogs, and article helpers feel more consistent and easier to read. These updates improve day-to-day usability for teams working with knowledge articles, templates, and related website or AI-assisted features.
Original PR description
*: accountant_knowledge, ai_knowledge, website_knowledge Prior to this commit, parts of the Knowledge module felt uneven and visually inconsistent, with some spacing, alignment, and readability issues. This commit refines the UI to make the module cleaner, more coherent, and easier to read where possible. requires: https://github.com/odoo/odoo/pull/278079 task-4496371
The appointment calendar now shows all bookings for the selected appointment type, even when no internal user was assigned. This prevents bookings from being hidden and makes it easier for staff to review and manage appointments in the calendar view.
Original PR description
If you add a booking but forget to specify an internal user, you won't find it at all unless you know the customer's name, go to list view or gantt view and look for a while. The calendar view's only applied filter should be the appointment type. All bookings should be visible in it. Task-6499578
Leads created from WhatsApp conversations are now automatically tagged with WhatsApp as the source, Messaging as the medium, and the related WhatsApp account as the reference. This improves campaign attribution and helps teams better understand which WhatsApp channels generate sales opportunities.
Original PR description
When a discuss channel has a WhatsApp account configured, leads created via /lead should use WhatsApp as source, Social Media as medium, and reference the WhatsApp account as utm_reference. Add WhatsApp UTM source record in whatsapp module and override the new _prepare_lead_create_values hook in whatsapp_crm. Task-3964124
The timesheet assistant now makes better suggestions for Gmail activities by prioritizing learned subject-based matches before falling back to email matching. When an email is shared by multiple contacts, it also prefers the contact tied to a matching user, reducing incorrect or inconsistent timesheet suggestions.
Original PR description
Forward-Port-Of: odoo/enterprise#128879 Forward-Port-Of: odoo/enterprise#127850
Visitor records now show more meaningful website activity, including visits to blog posts, events, courses, and products instead of only generic page URLs. This gives teams clearer insight into what content visitors engage with, while the visitor language field is made read-only to avoid confusion.
Original PR description
*: website_blog, website_event, website_profile, website_sale, website_slides This PR improves the visitor page tracking system and fixes several inconsistencies in the visitor interface. Key changes: - Make the visitor language field read-only to avoid misleading UI, as changing the dropdown does not trigger a real language switch. - Display the related product name alongside product URLs to allow proper grouping and filtering by product. - Extend visitor page tracking to non-product content so that interactions with blogs, events, and other pages are properly recorded. This provides better visibility into visitor activity across different website modules. task-4850073
Duplicated records with a Name field will now automatically get a clear copy label by default. This reduces repetitive setup across many Odoo apps and helps users distinguish originals from copies, including for fields created with Studio.
Original PR description
Make char fields named "name" use `mark_as_copy` by default for the `copy` attribute. This is a very common use case and it will also work for studio fields. https://github.com/odoo/enterprise/pull/129451 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Duplicated records across many Odoo apps will now get clearer default names, making copied items easier to identify and manage. This improves day-to-day usability and consistency when users duplicate templates, rules, tickets, assets, and similar business records.
Original PR description
https://github.com/odoo/odoo/pull/284881
Appointment schedules now show unavailable times more consistently in both Gantt and calendar views. This helps staff quickly see when users or resources cannot be booked, including when slots are limited to specific people or resources.
Original PR description
Commit 1: Gantt View ------------- In the gantt view of the appointment, when the user/resource is unavailable, related area is greyed out for the better visual feedback. Though when the slot is…
Commit 1: Gantt View ------------- In the gantt view of the appointment, when the user/resource is unavailable, related area is greyed out for the better visual feedback. Though when the slot is restricted to some users/resources, gantt view didn't grey out to show others unavailable. This commit makes the gantt view consider slot restrictions to grey out slots for the users/resources not in the slot's restricted users/resources. Commit 2: Calendar View ------------- Before this commit, slot unavailabilities were visible in the gantt view of the appointment events but not shown in the calendar view. This commit adds the slots unavailabilities in the calendar view of appointment events. The related area in the calendar is greyed out when the appointment has no slot available at that time. ### Technical We're using the background events to highlight unavailability in the region except the slots. Also, slots are added as background events with display as `inverse-background`. As the name implies, the display `inverse-background` paints the region except the event For more information: See https://fullcalendar.io/docs/background-events Task-5416962
Turkish payroll now distinguishes self-employed workers from regular employees for social security treatment. This allows salary calculations and payroll structures to better reflect the different insurance rules that apply to 4b self-employed Turkish citizens.
Original PR description
In order to cater for the different insurance policies for different employee types (self-employed vs normal employees), social security status is a needed field for salary computation. Moreover, different salary structure was added specific for the 4b (self-employed) turkish citizens. Task: 6438815
Marketing automation jobs now process campaigns individually and record progress, so one failing campaign is less likely to stop automation for all campaigns. Campaign managers also get clearer failure information and logs to help identify and resolve synchronization or execution issues.
Original PR description
Rationale Current crons of marketing automation are not really managed. Campaign may fail due to various errors either during activity execution (mail server issue, whatsapp issue, ...) or when…
Rationale Current crons of marketing automation are not really managed. Campaign may fail due to various errors either during activity execution (mail server issue, whatsapp issue, ...) or when enrolling new participants (notably MemoryError or TimingError due to current implementation). This leads to cron logging errors regularly on some campaigns (typically Memory or Timing errors) then deactivating the cron. This is extremely annoying as it impacts all campaigns. Specifications Define specific cron methods for crons, doing a search and looping on campaigns to execute. Each campaign therefore runs individually. Use basic cron progress commit, trying to log remaining and done campaigns, without specific error management currently. Logging progress in crons allows to tag it as "alive" and avoid the cron to be put in error and deactivated if a campaign fails too much time in a row. Improve cron management, in order to better warn from synchronize or execution issues. We move towards model-based management, which means considering a failure as "managed". It is now the role of marketing managers to keep an eye on their campaign, helped by failure fields and logs. Specifications * add error fields on campaign model; * manually commit progress and/or rollback; * log errors on campaigns; * be sure failing campaigns do not retry in loops; Task-6425785
Appointment pages are now tracked as appointment types rather than only plain web addresses. This helps teams see which appointment offerings visitors viewed and how often, making visitor interest easier to understand and filter.
Original PR description
This PR extends the visitor page tracking system to ensure that appointment pages accessed through `/appointment` are properly recorded in the visitor page views list. Key changes: - Enable visitor page tracking for `/appointment` appointment pages. - Ensure appointment page visits appear in the visitor page views list. task-4850073
Quotation and invoice buttons now show more accurate totals, including taxes, currencies, and exchange-rate conversion where needed. Related list views are cleaner and more consistent, with cancelled quotations hidden by default so sales teams focus on active opportunities.
Original PR description
Messaging and live chat now use more efficient internal data storage for lists, selections, and record lookups. This should make mail-related screens and large message datasets respond faster without changing user-facing behavior.
Original PR description
Owl tracked a signal collection through its own atom: any write notified every reader, and a collection mutated in place cannot afford that, so mail uses proxies instead. Owl now tracks a signal…
Owl tracked a signal collection through its own atom: any write notified every reader, and a collection mutated in place cannot afford that, so mail uses proxies instead. Owl now tracks a signal collection per key, and unlike a proxy it hands its values back raw. The first commit converts three collections: a record list, which builds the pair by hand as a signal read through a proxy, the Set of message ids `useMessageSelection` holds inside a proxied class, and the active columns of the activity view, a proxied object that turns the activity type ids into strings. The second one is the records of a model, kept by local id in a proxied object. Reading one walks the value to decide whether it can be made reactive, which calls `Object.prototype.toString` on a record proxy and so goes through `proxyGet`, only to hand back the very same object: records are `markRaw`. That walk is most of what `Model.get()` costs, and `preinsert` calls it for every record entering the store. Over a store of 20000 records a lookup drops from 2.0us to 0.45us. `Model.records` becomes a `signal.Map` behind an accessor, so it stays a property and the call sites only change API: ```js Model.records[localId] -> Model.records.get(localId) delete Model.records[localId] -> Model.records.delete(localId) Object.values(Model.records) -> [...Model.records.values()] ``` `.find`, `.some` and `.reduce` take the iterator, so they short-circuit without building an array. The `asProxy` fields keep their proxy: observing the nested content is what the option is for. Enterprise counterpart: `[PERF] sign, voip: adapt to the record map`, same branch name. https://github.com/odoo/enterprise/pull/129723
The update makes campaign, social post, and rental CRM sales buttons clearer and more consistent, including better icons, button styling, and visible currency symbols. Invoice totals are now more accurate because they include taxes and correctly convert amounts from different currencies before showing totals.
Original PR description
\* = sale_commission, sale_renting_crm, social, social_push_notification, social_sale This PR improves the UI related to the quotations and the invoices stat buttons. Multiple commits have been created for that: - Commit 1 remove a view specifying only CrmTeam.invoiced_target which has been deleted as it is not used. - Commit 2 converts the prices of the moves into the current company currency before calculating their sum. - Commit 3 displays the currencies of the total amounts shown in the invoices stat buttons. - Commit 4 displays amounts including tax in the stat buttons redirecting to the invoices list views. - Commit 5 moves the rounded corners of campaign stat buttons at the right places. - Commit 6 improves the display of the UI related to the stat buttons to get more consistency across screens. Community PR: https://github.com/odoo/odoo/pull/236080 Task-5258611
When a sales order is confirmed, product descriptions from sales order lines are now carried over into the related planning slot notes. This helps teams see important service or product details directly in planning without re-entering information.
Original PR description
Previously, when we added a description to the SOL, it was not directly added as a note in planning_slot. From this commit, the product description will be added whenever a Sales Order gets confirmed. Also, some test cases are added to ensure the feature works correctly Task-6285798
Gantt schedules now consistently show a leading group for items that do not have a value in the selected grouping field, instead of hiding them. This helps teams spot unassigned or incomplete scheduling records across apps such as Planning, Projects, Attendance, Appointments, Time Off, and Manufacturing, while also standardizing behavior across those views.
Original PR description
*: appointment, hr_attendance_gantt, mrp_workorder, planning, project_enterprise Gantt views grouped by a field now always show a leading "Undefined <Field>" group for records with no value on that field, instead of silently omitting them (only applies if the groupBy field is not required). Rows with no records are also skipped by GanttRenderer's column-folding computation when grouped. This is now handled once in the base GanttModel/GanttRenderer, replacing duplicated, inconsistent per-addon logic in planning (the "Open Shifts" whitelist/rename, alphabetical row sorting) and project_enterprise (the user_id-only fake group, alphabetical row sorting). The "Open Shifts" rename is now handled model-wise instead (through falsy_value_label). task-6279702
This change makes Odoo's live messaging checks more efficient by reusing session information when it has not changed. It reduces server CPU work during high websocket traffic, improving capacity and responsiveness for busy deployments.
Original PR description
Each outgoing websocket message has to validate the session. That validation currently goes through a chain of expensive operations: json.dumps, json.loads, MutableMapping.update, in the middle of…
Each outgoing websocket message has to validate the session. That validation currently goes through a chain of expensive operations: json.dumps, json.loads, MutableMapping.update, in the middle of the bus dispatcher's hot path. This runs several times per second under load. A load test with 1k sockets and 400 messages/sec, profiled with py-spy over a 50s window, showed ~46% of active CPU time (103 of 222 samples) spent in `_kick_invalid_sessions`. The gevent server runs on a single thread, so wasted CPU work here directly caps its throughput. To solve this issue, we can keep a small sid -> (mtime, inode) LRU. Use the in-memory session when the file is unchanged since we last checked it. `open`+`fstat` is used instead of `stat` to force NFS clients to revalidate their attribute cache instead of trusting a possibly stale one. The inode is tracked alongside the mtime as a tie-breaker for filesystems whose mtime clock resolution can make two close rewrites collide. Memory overhead is negligible (~2MB for the whole cache). With this fix, the same load test and profiling setup shows `_kick_invalid_sessions` down to ~20% of active CPU time (35 of 175 samples), more than halving the CPU share spent validating sessions. follow-up of task-5449503
Cart cleanup now keeps appointment booking fee lines even when their products are not visible for regular shop purchase. This prevents customers' calendar bookings from being accidentally removed during checkout cart maintenance.
Original PR description
website_sale now drops cart lines whose product cannot be bought on the shop. Booking fee products are unpublished and removing such a line would unlink the customer's calendar bookings. See : - https://github.com/odoo/odoo/pull/286261
The HTML editor now keeps the table menu out of the way when cells are selected and provides a clearer compact toolbar for table editing. This makes table formatting, alignment, and cell merging easier to find and reduces overlapping controls while editing content.
Original PR description
## Commit 1: [REF] html_editor: move merge/unmerge cell from table menu to toolbar Related commit: https://github.com/odoo/odoo/commit/c5080ae0fec749ca9b95674bea4f99129b17983d Before this commit: the…
## Commit 1: [REF] html_editor: move merge/unmerge cell from table menu to toolbar Related commit: https://github.com/odoo/odoo/commit/c5080ae0fec749ca9b95674bea4f99129b17983d Before this commit: the table cell merge and unmerge options are inside table menu. After this commit: now the merge/unmerge are toolbar items. The related tests are moved to the misc.test.js. Also added tests related to the merge/unmerge buttons' visibility, e.g. when the single row/column selection includes a merged cell and a unmerge cell, both buttons should be shown. Note that: the general table menu item visibility logic in the template is kept. Because it's not specifically related to the table cell merging. ## Commit 2: [FIX] html_editor: close table menu when one or more cells are selected Before this commit: the table menu is shown when one or more cells are selected, which is overlapping with the toolbar. After this commit: the table menu is only shown when there's no selected cell. ## Commit 3: [IMP] html_editor: add compact table toolbar and improve its grouping Before this commit: we have the normal compact toolbar when selecting table cells, the table related buttons are grouped in a single group in the toolbar. After this commit: 1. We now have 3 table button groups based on their usage, e.g. group 1: style or border; group 2: vertical alignment: group 3: cell merge 2. We introduced a new toolbar namespace: table, as a compact expandable table toolbar when selecting table cells. The table toolbar includes basic text formatting and the table related buttons. 3. We removed the unmerge cell button. Now we only use the merge cell button to control merge/unmerge cell. The merge button is only activated when only selecting a merged cell, and clicking it will unmerge the cell. Note that the logic of merge and unmerge cell are still kept separate, the functionality is done in a toolbar tweaking way instead of merging these two use cases. By doing this, we keep the functionality modular and easier to maintain. Also will be easier to adapt the merge button logic in the future if needed. The tests are adjusted accordingly. task-5973036 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Subscriptions with delivery-based products now show a warning when delivered items still need to be invoiced. This helps users create the next invoice manually and avoid automatic billing that could reuse an existing payment and charge the customer twice.
Original PR description
Before this commit: When a subscription mixes an order based invoice policy product with a delivery based invoice policy product (or has only delivery based invoice policy products), paying through the portal only invoices the order based product, because the delivery based product is only invoiced after it is delivered. Once the delivered quantity is set and the recurring invoice cron creates the next invoice on the next invoice date, the automatic payment flow can charge the delivered based product's payment a second time on that invoice by reusing the existing payment transaction, applying the payment twice. After this commit: A `has_pending_delivery_invoice` field is computed on the subscription and a warning banner is shown on the form when a delivery based invoice policy line has been delivered but not yet invoiced, telling the user to create the next invoice manually instead of letting the cron invoice and pay it automatically. taskid-4250892
Subscriptions aligned to calendar periods now show and charge the prorated amount upfront when customers start mid-period. This makes checkout, invoices, and portal information clearer and more accurate for customers buying prorated plans.
Original PR description
Before this commit, the billing logic for subscriptions set to "Align to calendar period" was unclear. If a customer started a subscription mid-month (e.g., Nov 12 ), the system would adjust the prorated amount for the initial partial period on the second invoice rather than the first. After this commit, now subscriptions starting mid-month generate an initial invoice for only the prorated amount (e.g., for Nov 20–30), providing customers with an accurate and transparent cost at checkout and in their portal. and E-commerce checkout page display correct prorated amount and charge according Impact: Enhanced user experience on the checkout and portal pages for prorated plans. Technical notes: - On quotation confirmation, a prorated adjustment line is added for the initial partial billing period. taskid-5066496
Managers now get a dedicated Time Off calendar experience that shows the relevant employee when reviewing or creating time-off entries. This reduces confusion, removes manager-specific balance information from the management view, and makes employee-based time-off type selection work consistently.
Original PR description
Purpose: - At the moment, the calendar view under Management > Time Off is the same as My Time > Days Off for a manager. The only difference is the 'Waiting for me' filter applied by default. A…
Purpose: - At the moment, the calendar view under Management > Time Off is the same as My Time > Days Off for a manager. The only difference is the 'Waiting for me' filter applied by default. A manager can thus not see when clicking on an entry who the time-off is related to without opening it. This PR includes: - Removed the banner showing the manager's own time-off saldo from the Management > Time Off calendar view. - Added the Employee field to the approval popup opened when clicking an existing time-off entry from this calendar. - Added the Employee field to the New Time Off popup opened when clicking a dat on this calendar, and stopped defaulting the employee to the logged-in manager. - Added a dedicated full-page 'New Time Off' action for the manager view, reusing the existing manager form, so the employee field behaves consistently. - Fixed the Time Off Type selection not updating correctly when a manager picks a different employee, by aligning the domain with the one already used on the manager form. - Hid the 'New Allocation Request' option from the New button dropdown on this view, since allocations are not managed from this tab, and switched to a plain button when only one action remains. task-6343922
This change improves pivot reports by allowing grouped data to be expanded directly, making it easier for users to drill into summarized information. It helps business users explore report details faster without switching views or changing report setup.
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
Ecuadorian electronic invoices and delivery guides can now include the third-party billing software provider's RUC, as required by SRI regulations. Businesses can enter this value in invoicing settings, and it will be sent electronically and shown on printed documents automatically.
Original PR description
Purpose: SRI Resolution requires taxpayers using 3rd-party billing software in Ecuador to report the software provider's RUC on all electronic documents and printed representations (RIDE). A new system parameter is introduced and displayed in Invoicing > Setting > Ecuadorian Localization > Electronic Invoicing, so users can add their software provider's RUC. This value will be automatically sent to the EDI and displayed on the report. task-6432810 Forward-Port-Of: odoo/enterprise#129456
This update brings Odoo's spreadsheet engine up to the latest version, improving stability, chart behavior, dashboards, exports, and dark mode display. It also includes internal cleanup that helps keep spreadsheet features more reliable and easier to maintain.
Original PR description
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/23c00bb8b0 [REL] 19.5.0-alpha.15 [Task: 0](https://www.odoo.com/odoo/2328/tasks/0)…
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/23c00bb8b0 [REL] 19.5.0-alpha.15 [Task: 0](https://www.odoo.com/odoo/2328/tasks/0) https://github.com/odoo/o-spreadsheet/commit/281339d378 [REF] plugins: clarify the separation of concerns between plugin types [Task: 6428159](https://www.odoo.com/odoo/2328/tasks/6428159) https://github.com/odoo/o-spreadsheet/commit/294ff95a2a [MOV] doc: move store engine doc outside of src [Task: 6428159](https://www.odoo.com/odoo/2328/tasks/6428159) https://github.com/odoo/o-spreadsheet/commit/236bd370ac [IMP] documentation: update documentation about plugin differences [Task: 6428159](https://www.odoo.com/odoo/2328/tasks/6428159) https://github.com/odoo/o-spreadsheet/commit/f22a7ae092 [IMP] plugins: evaluation plugins cannot handle UI commands [Task: 6428159](https://www.odoo.com/odoo/2328/tasks/6428159) https://github.com/odoo/o-spreadsheet/commit/bf27f07708 [IMP] commands: rename isEvaluationCommand to isDispatcheableEvaluationCommand and related types [Task: 6428159](https://www.odoo.com/odoo/2328/tasks/6428159) https://github.com/odoo/o-spreadsheet/commit/cdcc389680 [IMP] tests: add a test to ensure UI getter are not accessible [Task: 6428159](https://www.odoo.com/odoo/2328/tasks/6428159) https://github.com/odoo/o-spreadsheet/commit/b98be4ee92 [FIX] plugins: export PluginRegistry for type generation [Task: 0](https://www.odoo.com/odoo/2328/tasks/0) https://github.com/odoo/o-spreadsheet/commit/26f312224d [IMP] plugins: remove evaluationUIPluginRegistry [Task: 6428159](https://www.odoo.com/odoo/2328/tasks/6428159) https://github.com/odoo/o-spreadsheet/commit/cc6932828a [REF] plugins: SubtotalEvaluation is now an evaluation plugin [Task: 6428159](https://www.odoo.com/odoo/2328/tasks/6428159) https://github.com/odoo/o-spreadsheet/commit/7ac1a5adcb [REF] plugins: FilterEvaluation is now an EvaluationPlugin [Task: 6428159](https://www.odoo.com/odoo/2328/tasks/6428159) https://github.com/odoo/o-spreadsheet/commit/ffa0759e3b [REF] plugins: Cell and table computed styles should be evaluation plugins [Task: 6428159](https://www.odoo.com/odoo/2328/tasks/6428159) https://github.com/odoo/o-spreadsheet/commit/14d6529e53 [IMP] model: enforce plugin type checking in registries [Task: 6428159](https://www.odoo.com/odoo/2328/tasks/6428159) https://github.com/odoo/o-spreadsheet/commit/7ba9c44037 [REF] plugins: HeaderVisibilityUI is now an evaluation one [Task: 6428159](https://www.odoo.com/odoo/2328/tasks/6428159) https://github.com/odoo/o-spreadsheet/commit/cfe91d0b79 [FIX] plugins: remove useless plugin registrations [Task: 6428159](https://www.odoo.com/odoo/2328/tasks/6428159) https://github.com/odoo/o-spreadsheet/commit/2dfd07c25f [FIX] module_math_test: correctly restore mock [Task: 6428159](https://www.odoo.com/odoo/2328/tasks/6428159) https://github.com/odoo/o-spreadsheet/commit/321b8c3ccc [IMP] model: cannot dispatch non-evaluation commands while handling evaluation commands [Task: 6428159](https://www.odoo.com/odoo/2328/tasks/6428159) https://github.com/odoo/o-spreadsheet/commit/b048c4ec57 [REF] plugins: split geo chart data in two [Task: 6428159](https://www.odoo.com/odoo/2328/tasks/6428159) https://github.com/odoo/o-spreadsheet/commit/76823227e2 [IMP] model: EvaluationPlugin can dispatch evaluation commands [Task: 6428159](https://www.odoo.com/odoo/2328/tasks/6428159) https://github.com/odoo/o-spreadsheet/commit/369d1dbdc2 [REF] plugins: CellIconPlugin is now a UI plugin [Task: 6428159](https://www.odoo.com/odoo/2328/tasks/6428159) https://github.com/odoo/o-spreadsheet/commit/309e941aff [REF] plugins: DynamicTranslate is now an evaluation plugin [Task: 6428159](https://www.odoo.com/odoo/2328/tasks/6428159) https://github.com/odoo/o-spreadsheet/commit/017bbd4ed1 [REF] plugins: evaluation does not depends on GridSelection anymore [Task: 6428159](https://www.odoo.com/odoo/2328/tasks/6428159) https://github.com/odoo/o-spreadsheet/commit/2605f043f6 [REF] plugins: PivotPresencePlugin is now an evaluation plugin [Task: 6428159](https://www.odoo.com/odoo/2328/tasks/6428159) https://github.com/odoo/o-spreadsheet/commit/ddb56fa69f [REF] model: introduce EvaluationGetters [Task: 6428159](https://www.odoo.com/odoo/2328/tasks/6428159) https://github.com/odoo/o-spreadsheet/commit/d5d47c5849 [REF] plugins: rename core view plugins to evaluation plugins [Task: 6428159](https://www.odoo.com/odoo/2328/tasks/6428159) https://github.com/odoo/o-spreadsheet/commit/54a7d3f27e [REF] getters: move core getters to getters file [Task: 6428159](https://www.odoo.com/odoo/2328/tasks/6428159) https://github.com/odoo/o-spreadsheet/commit/1e05bf468b [FIX] dashboard: fix carousel size in full screen charts [Task: 6498191](https://www.odoo.com/odoo/2328/tasks/6498191) https://github.com/odoo/o-spreadsheet/commit/4b793dc261 [IMP] Table side panel : added highlights to the table range [Task: 6008091](https://www.odoo.com/odoo/2328/tasks/6008091) https://github.com/odoo/o-spreadsheet/commit/ed86eee5ed [FIX] Table side panel: fix closing [Task: 6008091](https://www.odoo.com/odoo/2328/tasks/6008091) https://github.com/odoo/o-spreadsheet/commit/63d28e8776 [REF] owl3: remove env in arguments of some helpers [Task: 6522279](https://www.odoo.com/odoo/2328/tasks/6522279) https://github.com/odoo/o-spreadsheet/commit/4163cf9f5c [REF] zoom: move `withZoom` to the `ZoomStore` [Task: 6522279](https://www.odoo.com/odoo/2328/tasks/6522279) https://github.com/odoo/o-spreadsheet/commit/8ed60255f8 [FIX] figure: color of snap lines in dark mode [Task: 6515587](https://www.odoo.com/odoo/2328/tasks/6515587) https://github.com/odoo/o-spreadsheet/commit/54f3a5937e [FIX] pivot: unbounded ranges in the pivot side panel [Task: 6478220](https://www.odoo.com/odoo/2328/tasks/6478220) https://github.com/odoo/o-spreadsheet/commit/8e185c21ce [FIX] chart_menu: align chart menu items tag and style [Task: 6469005](https://www.odoo.com/odoo/2328/tasks/6469005) https://github.com/odoo/o-spreadsheet/commit/b4d373a724 [FIX] print: figure border wrong render [Task: 6458624](https://www.odoo.com/odoo/2328/tasks/6458624) https://github.com/odoo/o-spreadsheet/commit/4bc0222027 [FIX] chart: consistency in the background color for xlsx export [Task: 6507087](https://www.odoo.com/odoo/2328/tasks/6507087) https://github.com/odoo/o-spreadsheet/commit/bba2c34f66 [FIX] composer: crash when hovering a composer token [Task: 5153319](https://www.odoo.com/odoo/2328/tasks/5153319) https://github.com/odoo/o-spreadsheet/commit/48ac2d8d10 [FIX] evaluation: wrong dependencies invalidation with spread formulas [Task: 5103328](https://www.odoo.com/odoo/2328/tasks/5103328) https://github.com/odoo/o-spreadsheet/commit/d72cc0bc38 [FIX] chart_suggestion_engine: Update title if no header [Task: 6498667](https://www.odoo.com/odoo/2328/tasks/6498667) https://github.com/odoo/o-spreadsheet/commit/77d865f3c5 [FIX] chart suggestions: fix header for category and label [Task: 6498667](https://www.odoo.com/odoo/2328/tasks/6498667) https://github.com/odoo/o-spreadsheet/commit/4bc6b50d1b [IMP] chart_suggestion: reduces number of points for preview [Task: 6498667](https://www.odoo.com/odoo/2328/tasks/6498667) https://github.com/odoo/o-spreadsheet/commit/77ce125f23 [FIX] data_analysis_panel: help message for no chart suggestions [Task: 6498667](https://www.odoo.com/odoo/2328/tasks/6498667) https://github.com/odoo/o-spreadsheet/commit/f7b350e615 [FIX] session: fix part of the command squisher [Task: 6462247](https://www.odoo.com/odoo/2328/tasks/6462247) Co-authored-by: Florian Damhaut (flda) <flda@odoo.com> Co-authored-by: Anthony Hendrickx (anhe) <anhe@odoo.com> Co-authored-by: Alexis Lacroix (laa) <laa@odoo.com> Co-authored-by: Lucas Lefèvre (lul) <lul@odoo.com> Co-authored-by: Adrien Minne (adrm) <adrm@odoo.com> Co-authored-by: Ronak Mukeshbhai Bharadiya (rmbh) <rmbh@odoo.com> Co-authored-by: Dhrutik Patel (dhrp) <dhrp@odoo.com> Co-authored-by: Rémi Rahir (rar) <rar@odoo.com> Co-authored-by: Pierre Rousseau (pro) <pro@odoo.com> Co-authored-by: Vincent Schippefilt (vsc) <vsc@odoo.com> Co-authored-by: Marceline Thomas (matho) <matho@odoo.com>
\* = account, crm, event_booth_sale, event_sale, link_tracker, mass_mailing, mass_mailing_sale, mass_mailing_sms, pos_event, sale, sale_crm, sale_projet This PR improves the UI related to the…
\* = account, crm, event_booth_sale, event_sale, link_tracker, mass_mailing, mass_mailing_sale, mass_mailing_sms, pos_event, sale, sale_crm, sale_projet This PR improves the UI related to the quotations and the invoices stat buttons. Multiple commits have been created for that: - Commit 1 removes the CrmTeam.invoiced and CrmTeam.invoiced_target as they are not longer used by the progress bar inside the sale team kanban which has been previously deleted. As the progress bar is not being used, the "sales_team_progressbar" has also been removed. - Commit 2 excludes the account moves with "entry" as move_type to get the total invoiced amount due to a mailing as those account moves are journal entries and are not yet invoiced. - Commit 3 converts the amounts of the moves into the current company currency before calculating their sum. - Commit 4 displays the currencies of the total amounts shown in the invoices stat buttons. - Commit 5 displays the amounts including the tax in the stat buttons redirecting to the invoices list views. - Commit 6 moves the rounded corners of campaign stat buttons at the right places. - Commit 7 improves the display of the UI related to the stat buttons to get more consistency across screens. - Commit 8 hides cancelled quotations in list views using a new default filter. Then, it also adapts the counts displayed in the stat buttons redirecting to those views. Those quotations must be hidden as they will not lead to anything. Enterprise PR: https://github.com/odoo/enterprise/pull/99697 Upgrade PR: https://github.com/odoo/upgrade/pull/8989 Task-5258611