From 3816f8172af8b9e717634f3f85f64ce45e8bf287 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lucas=20Lef=C3=A8vre?= Date: Tue, 13 Sep 2022 13:45:07 +0000 Subject: [PATCH] [ADD] spreadsheet_dashboard_im_livechat: add live chat dashboard Part-of: odoo/odoo#100101 --- .../__init__.py | 1 + .../__manifest__.py | 18 + .../data/dashboards.xml | 12 + .../data/files/livechat_dashboard.json | 832 ++++++++++++++++++ 4 files changed, 863 insertions(+) create mode 100644 addons/spreadsheet_dashboard_im_livechat/__init__.py create mode 100644 addons/spreadsheet_dashboard_im_livechat/__manifest__.py create mode 100644 addons/spreadsheet_dashboard_im_livechat/data/dashboards.xml create mode 100644 addons/spreadsheet_dashboard_im_livechat/data/files/livechat_dashboard.json diff --git a/addons/spreadsheet_dashboard_im_livechat/__init__.py b/addons/spreadsheet_dashboard_im_livechat/__init__.py new file mode 100644 index 00000000000..a449448a63f --- /dev/null +++ b/addons/spreadsheet_dashboard_im_livechat/__init__.py @@ -0,0 +1 @@ +# Part of Odoo. See LICENSE file for full copyright and licensing details. diff --git a/addons/spreadsheet_dashboard_im_livechat/__manifest__.py b/addons/spreadsheet_dashboard_im_livechat/__manifest__.py new file mode 100644 index 00000000000..0eab24caa94 --- /dev/null +++ b/addons/spreadsheet_dashboard_im_livechat/__manifest__.py @@ -0,0 +1,18 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. +{ + 'name': "Spreadsheet dashboard for live chat", + 'version': '1.0', + 'category': 'Hidden', + 'summary': 'Spreadsheet', + 'description': 'Spreadsheet', + 'depends': ['spreadsheet_dashboard', 'im_livechat'], + 'data': [ + "data/dashboards.xml", + ], + 'demo': [], + 'installable': True, + 'auto_install': ['im_livechat'], + 'license': 'LGPL-3', + 'assets': {} +} diff --git a/addons/spreadsheet_dashboard_im_livechat/data/dashboards.xml b/addons/spreadsheet_dashboard_im_livechat/data/dashboards.xml new file mode 100644 index 00000000000..7371bd660ed --- /dev/null +++ b/addons/spreadsheet_dashboard_im_livechat/data/dashboards.xml @@ -0,0 +1,12 @@ + + + + + Live chat + + + + 70 + + + diff --git a/addons/spreadsheet_dashboard_im_livechat/data/files/livechat_dashboard.json b/addons/spreadsheet_dashboard_im_livechat/data/files/livechat_dashboard.json new file mode 100644 index 00000000000..163bea2cc92 --- /dev/null +++ b/addons/spreadsheet_dashboard_im_livechat/data/files/livechat_dashboard.json @@ -0,0 +1,832 @@ +{ + "version": 12, + "sheets": [ + { + "id": "sheet1", + "name": "Dashboard", + "colNumber": 9, + "rowNumber": 31, + "rows": { + "6": { + "size": 40 + }, + "18": { + "size": 40 + } + }, + "cols": { + "0": { + "size": 175 + }, + "1": { + "size": 100 + }, + "2": { + "size": 100 + }, + "3": { + "size": 100 + }, + "4": { + "size": 50 + }, + "5": { + "size": 175 + }, + "6": { + "size": 100 + }, + "7": { + "size": 100 + }, + "8": { + "size": 100 + } + }, + "merges": [], + "cells": { + "A7": { + "style": 1, + "content": "[Daily Sessions](odoo://view/{\"viewType\":\"graph\",\"action\":{\"domain\":[],\"context\":{\"group_by\":[\"start_date:day\"],\"graph_measure\":\"__count\",\"graph_mode\":\"bar\",\"graph_groupbys\":[\"start_date:day\"]},\"modelName\":\"im_livechat.report.channel\",\"views\":[[false,\"graph\"],[false,\"pivot\"],[false,\"search\"]]},\"threshold\":0,\"name\":\"Session per Day\"})", + "border": 1 + }, + "A19": { + "style": 1, + "content": "[Operator Analysis](odoo://view/{\"viewType\":\"pivot\",\"action\":{\"domain\":[],\"context\":{\"group_by\":[],\"pivot_measures\":[\"nbr_channel\",\"time_to_answer\",\"duration\"],\"pivot_column_groupby\":[],\"pivot_row_groupby\":[\"partner_id\"]},\"modelName\":\"im_livechat.report.operator\",\"views\":[[false,\"graph\"],[false,\"pivot\"],[false,\"search\"]]},\"threshold\":0,\"name\":\"Operator Analysis\"})", + "border": 1 + }, + "A20": { + "style": 2, + "content": "Operator", + "border": 2 + }, + "A21": { + "style": 3, + "content": "=ODOO.PIVOT.HEADER(3,\"#partner_id\",1)" + }, + "A22": { + "style": 4, + "content": "=ODOO.PIVOT.HEADER(3,\"#partner_id\",2)" + }, + "A23": { + "style": 3, + "content": "=ODOO.PIVOT.HEADER(3,\"#partner_id\",3)" + }, + "A24": { + "style": 4, + "content": "=ODOO.PIVOT.HEADER(3,\"#partner_id\",4)" + }, + "A25": { + "style": 3, + "content": "=ODOO.PIVOT.HEADER(3,\"#partner_id\",5)" + }, + "A26": { + "style": 4, + "content": "=ODOO.PIVOT.HEADER(3,\"#partner_id\",6)" + }, + "A27": { + "style": 3, + "content": "=ODOO.PIVOT.HEADER(3,\"#partner_id\",7)" + }, + "A28": { + "style": 4, + "content": "=ODOO.PIVOT.HEADER(3,\"#partner_id\",8)" + }, + "A29": { + "style": 3, + "content": "=ODOO.PIVOT.HEADER(3,\"#partner_id\",9)" + }, + "A30": { + "style": 4, + "content": "=ODOO.PIVOT.HEADER(3,\"#partner_id\",10)" + }, + "B7": { + "style": 5, + "border": 1 + }, + "B20": { + "style": 6, + "content": "Sessions", + "border": 2 + }, + "B21": { + "style": 7, + "content": "=ODOO.PIVOT(3,\"nbr_channel\",\"#partner_id\",1)" + }, + "B22": { + "content": "=ODOO.PIVOT(3,\"nbr_channel\",\"#partner_id\",2)" + }, + "B23": { + "style": 7, + "content": "=ODOO.PIVOT(3,\"nbr_channel\",\"#partner_id\",3)" + }, + "B24": { + "content": "=ODOO.PIVOT(3,\"nbr_channel\",\"#partner_id\",4)" + }, + "B25": { + "style": 7, + "content": "=ODOO.PIVOT(3,\"nbr_channel\",\"#partner_id\",5)" + }, + "B26": { + "content": "=ODOO.PIVOT(3,\"nbr_channel\",\"#partner_id\",6)" + }, + "B27": { + "style": 7, + "content": "=ODOO.PIVOT(3,\"nbr_channel\",\"#partner_id\",7)" + }, + "B28": { + "content": "=ODOO.PIVOT(3,\"nbr_channel\",\"#partner_id\",8)" + }, + "B29": { + "style": 7, + "content": "=ODOO.PIVOT(3,\"nbr_channel\",\"#partner_id\",9)" + }, + "B30": { + "content": "=ODOO.PIVOT(3,\"nbr_channel\",\"#partner_id\",10)" + }, + "C7": { + "style": 5, + "border": 1 + }, + "C20": { + "style": 6, + "content": "Time to answer", + "border": 2 + }, + "C21": { + "style": 7, + "format": 1, + "content": "=-ODOO.PIVOT(3,\"time_to_answer\",\"#partner_id\",1)" + }, + "C22": { + "format": 1, + "content": "=-ODOO.PIVOT(3,\"time_to_answer\",\"#partner_id\",2)" + }, + "C23": { + "style": 7, + "format": 1, + "content": "=-ODOO.PIVOT(3,\"time_to_answer\",\"#partner_id\",3)" + }, + "C24": { + "format": 1, + "content": "=-ODOO.PIVOT(3,\"time_to_answer\",\"#partner_id\",4)" + }, + "C25": { + "style": 7, + "format": 1, + "content": "=-ODOO.PIVOT(3,\"time_to_answer\",\"#partner_id\",5)" + }, + "C26": { + "format": 1, + "content": "=-ODOO.PIVOT(3,\"time_to_answer\",\"#partner_id\",6)" + }, + "C27": { + "style": 7, + "format": 1, + "content": "=-ODOO.PIVOT(3,\"time_to_answer\",\"#partner_id\",7)" + }, + "C28": { + "format": 1, + "content": "=-ODOO.PIVOT(3,\"time_to_answer\",\"#partner_id\",8)" + }, + "C29": { + "style": 7, + "format": 1, + "content": "=-ODOO.PIVOT(3,\"time_to_answer\",\"#partner_id\",9)" + }, + "C30": { + "format": 1, + "content": "=-ODOO.PIVOT(3,\"time_to_answer\",\"#partner_id\",10)" + }, + "D20": { + "style": 6, + "content": "Average session (sec)", + "border": 2 + }, + "D21": { + "style": 7, + "format": 1, + "content": "=ODOO.PIVOT(3,\"duration\",\"#partner_id\",1)" + }, + "D22": { + "format": 1, + "content": "=ODOO.PIVOT(3,\"duration\",\"#partner_id\",2)" + }, + "D23": { + "style": 7, + "format": 1, + "content": "=ODOO.PIVOT(3,\"duration\",\"#partner_id\",3)" + }, + "D24": { + "format": 1, + "content": "=ODOO.PIVOT(3,\"duration\",\"#partner_id\",4)" + }, + "D25": { + "style": 7, + "format": 1, + "content": "=ODOO.PIVOT(3,\"duration\",\"#partner_id\",5)" + }, + "D26": { + "format": 1, + "content": "=ODOO.PIVOT(3,\"duration\",\"#partner_id\",6)" + }, + "D27": { + "style": 7, + "format": 1, + "content": "=ODOO.PIVOT(3,\"duration\",\"#partner_id\",7)" + }, + "D28": { + "format": 1, + "content": "=ODOO.PIVOT(3,\"duration\",\"#partner_id\",8)" + }, + "D29": { + "style": 7, + "format": 1, + "content": "=ODOO.PIVOT(3,\"duration\",\"#partner_id\",9)" + }, + "D30": { + "format": 1, + "content": "=ODOO.PIVOT(3,\"duration\",\"#partner_id\",10)" + }, + "E7": { + "style": 1, + "content": "[Sessions by Operator](odoo://view/{\"viewType\":\"graph\",\"action\":{\"domain\":[],\"context\":{\"group_by\":[\"partner_id\"],\"graph_measure\":\"nbr_channel\",\"graph_mode\":\"bar\",\"graph_groupbys\":[\"partner_id\"]},\"modelName\":\"im_livechat.report.operator\",\"views\":[[false,\"graph\"],[false,\"pivot\"],[false,\"search\"]]},\"threshold\":0,\"name\":\"Operator Analysis\"})", + "border": 1 + }, + "F7": { + "style": 5, + "border": 1 + }, + "G7": { + "style": 5, + "border": 1 + }, + "A8": { + "border": 2 + }, + "B8": { + "border": 2 + }, + "B19": { + "border": 1 + }, + "C8": { + "border": 2 + }, + "C19": { + "border": 1 + }, + "D19": { + "border": 1 + }, + "E8": { + "border": 2 + }, + "F8": { + "border": 2 + }, + "G8": { + "border": 2 + } + }, + "conditionalFormats": [], + "figures": [ + { + "id": "082454d7-d797-48a6-8db5-9182050a8c55", + "x": 0, + "y": 0, + "width": 200, + "height": 120, + "tag": "chart", + "data": { + "baselineColorDown": "#DC6965", + "baselineColorUp": "#00A04A", + "baselineMode": "percentage", + "title": "Sessions", + "type": "scorecard", + "background": "", + "baseline": "Data!E2", + "baselineDescr": "since last period", + "keyValue": "Data!D2" + } + }, + { + "id": "57b7bb2f-2b24-435a-83de-d56a0452ac10", + "x": 0, + "y": 178, + "width": 475, + "height": 230, + "tag": "chart", + "data": { + "title": "", + "id": "57b7bb2f-2b24-435a-83de-d56a0452ac10", + "background": "#FFFFFF", + "legendPosition": "none", + "metaData": { + "groupBy": [ + "start_date:day" + ], + "measure": "__count", + "order": null, + "resModel": "im_livechat.report.channel" + }, + "searchParams": { + "comparison": null, + "context": {}, + "domain": [], + "groupBy": [ + "start_date:day" + ], + "orderBy": [] + }, + "type": "odoo_bar", + "verticalAxisPosition": "left", + "stacked": true + } + }, + { + "id": "876d7cf5-21ea-441e-b4fd-08556365cb8a", + "x": 525, + "y": 178, + "width": 475, + "height": 230, + "tag": "chart", + "data": { + "title": "", + "id": "876d7cf5-21ea-441e-b4fd-08556365cb8a", + "background": "#FFFFFF", + "legendPosition": "none", + "metaData": { + "groupBy": [ + "partner_id" + ], + "measure": "nbr_channel", + "order": "DESC", + "resModel": "im_livechat.report.operator" + }, + "searchParams": { + "comparison": null, + "context": {}, + "domain": [], + "groupBy": [ + "partner_id" + ], + "orderBy": [] + }, + "type": "odoo_bar", + "verticalAxisPosition": "left", + "stacked": true + } + }, + { + "id": "ced6ca85-c9d2-4804-9100-e1ca5fd290d1", + "x": 210, + "y": 0, + "width": 200, + "height": 120, + "tag": "chart", + "data": { + "baselineColorDown": "#DC6965", + "baselineColorUp": "#00A04A", + "baselineMode": "percentage", + "title": "Avg. Time to Answer", + "type": "scorecard", + "background": "", + "baseline": "Data!E3", + "baselineDescr": "last period", + "keyValue": "Data!D3" + } + }, + { + "id": "e0b92164-4451-4c0b-bd28-3bab46fd88de", + "x": 420, + "y": 0, + "width": 200, + "height": 120, + "tag": "chart", + "data": { + "baselineColorDown": "#DC6965", + "baselineColorUp": "#00A04A", + "baselineMode": "percentage", + "title": "Avg. Session Duration", + "type": "scorecard", + "background": "", + "baseline": "Data!E4", + "baselineDescr": "last period", + "keyValue": "Data!D4" + } + }, + { + "id": "5b8972f1-db5f-48dd-aeca-c0bc87c7155d", + "x": 630, + "y": 0, + "width": 200, + "height": 120, + "tag": "chart", + "data": { + "background": "", + "sectionRule": { + "colors": { + "lowerColor": "#cc0000", + "middleColor": "#f1c232", + "upperColor": "#6aa84f" + }, + "rangeMin": "0", + "rangeMax": "5", + "lowerInflectionPoint": { + "type": "number", + "value": "1" + }, + "upperInflectionPoint": { + "type": "number", + "value": "3" + } + }, + "title": "Average Rating", + "type": "gauge", + "dataRange": "Data!D5" + } + } + ], + "areGridLinesVisible": true, + "isVisible": true + }, + { + "id": "16705d67-20c0-466d-ac72-3b955432e0ba", + "name": "Data", + "colNumber": 26, + "rowNumber": 95, + "rows": {}, + "cols": { + "0": { + "size": 135.8818359375 + }, + "1": { + "size": 109.58251953125 + }, + "2": { + "size": 109.58251953125 + }, + "3": { + "size": 109.58251953125 + }, + "4": { + "size": 109.58251953125 + } + }, + "merges": [], + "cells": { + "A1": { + "style": 2, + "content": "KPI" + }, + "A2": { + "content": "Sessions" + }, + "A3": { + "content": "Avg. time to answer" + }, + "A4": { + "content": "Avg. session duration" + }, + "A5": { + "content": "Rating" + }, + "B1": { + "style": 2, + "content": "Current" + }, + "B2": { + "content": "=ODOO.PIVOT(4,\"__count\")" + }, + "B3": { + "content": "=ODOO.PIVOT(1,\"time_to_answer\")" + }, + "B4": { + "content": "=ODOO.PIVOT(1,\"duration\")" + }, + "B5": { + "content": "=ODOO.PIVOT(1,\"rating\")" + }, + "C1": { + "style": 2, + "content": "Previous" + }, + "C2": { + "content": "=ODOO.PIVOT(5,\"__count\")" + }, + "C3": { + "content": "=ODOO.PIVOT(2,\"time_to_answer\")" + }, + "C4": { + "content": "=ODOO.PIVOT(2,\"duration\")" + }, + "D1": { + "style": 2, + "content": "Current" + }, + "D2": { + "style": 7, + "content": "=FORMAT.LARGE.NUMBER(B2)" + }, + "D3": { + "style": 7, + "format": 1, + "content": "=CONCATENATE(-ROUND(B3/60),\"min\")" + }, + "D4": { + "style": 7, + "format": 1, + "content": "=CONCATENATE(ROUND(B4/60),\"min\")" + }, + "D5": { + "style": 7, + "content": "=B5" + }, + "E1": { + "style": 2, + "content": "Previous" + }, + "E2": { + "style": 7, + "content": "=FORMAT.LARGE.NUMBER(C2)" + }, + "E3": { + "style": 7, + "format": 1, + "content": "=CONCATENATE(-ROUND(C3/60),\"min\")" + }, + "E4": { + "style": 7, + "format": 1, + "content": "=CONCATENATE(ROUND(C4/60),\"min\")" + }, + "E5": { + "style": 8 + } + }, + "conditionalFormats": [], + "figures": [], + "areGridLinesVisible": true, + "isVisible": true + } + ], + "entities": {}, + "styles": { + "1": { + "textColor": "#01666b", + "bold": true, + "fontSize": 16 + }, + "2": { + "bold": true + }, + "3": { + "fillColor": "#f2f2f2", + "textColor": "#741b47" + }, + "4": { + "textColor": "#741b47" + }, + "5": { + "bold": true, + "fontSize": 16 + }, + "6": { + "align": "right", + "bold": true + }, + "7": { + "fillColor": "#f2f2f2" + }, + "8": { + "fillColor": "" + } + }, + "formats": { + "1": "#,##0" + }, + "borders": { + "1": { + "bottom": [ + "thin", + "#000" + ] + }, + "2": { + "top": [ + "thin", + "#000" + ] + } + }, + "revisionId": "START_REVISION", + "chartOdooMenusReferences": { + "57b7bb2f-2b24-435a-83de-d56a0452ac10": "im_livechat.menu_livechat_root", + "876d7cf5-21ea-441e-b4fd-08556365cb8a": "im_livechat.menu_livechat_root" + }, + "odooVersion": 3, + "pivots": { + "1": { + "colGroupBys": [], + "context": {}, + "domain": [], + "id": "1", + "measures": [ + { + "field": "duration" + }, + { + "field": "time_to_answer" + }, + { + "field": "rating" + } + ], + "model": "im_livechat.report.channel", + "rowGroupBys": [], + "name": "stats 2 - current", + "sortedColumn": null + }, + "2": { + "colGroupBys": [], + "context": {}, + "domain": [], + "id": "2", + "measures": [ + { + "field": "duration" + }, + { + "field": "time_to_answer" + }, + { + "field": "rating" + } + ], + "model": "im_livechat.report.channel", + "rowGroupBys": [], + "name": "stats 2 - previous", + "sortedColumn": null + }, + "3": { + "colGroupBys": [], + "context": {}, + "domain": [], + "id": "3", + "measures": [ + { + "field": "nbr_channel" + }, + { + "field": "time_to_answer" + }, + { + "field": "duration" + } + ], + "model": "im_livechat.report.operator", + "rowGroupBys": [ + "partner_id" + ], + "name": "Livechat Support Statistics by Operator", + "sortedColumn": { + "groupId": [ + [], + [] + ], + "measure": "nbr_channel", + "order": "desc", + "originIndexes": [ + 0 + ] + } + }, + "4": { + "colGroupBys": [], + "context": {}, + "domain": [], + "id": "4", + "measures": [ + { + "field": "__count" + } + ], + "model": "im_livechat.report.channel", + "rowGroupBys": [], + "name": "sessions count - current", + "sortedColumn": null + }, + "5": { + "colGroupBys": [], + "context": {}, + "domain": [], + "id": "5", + "measures": [ + { + "field": "__count" + } + ], + "model": "im_livechat.report.channel", + "rowGroupBys": [], + "name": "sessions count - previous", + "sortedColumn": null + } + }, + "pivotNextId": 6, + "lists": {}, + "listNextId": 1, + "globalFilters": [ + { + "id": "4db3e2d2-5471-44a4-80ca-7c2fa4f1a5ac", + "type": "date", + "label": "Period", + "defaultValue": "last_month", + "rangeType": "relative", + "defaultsToCurrentPeriod": false, + "pivotFields": { + "1": { + "field": "start_date", + "type": "datetime", + "offset": 0 + }, + "2": { + "field": "start_date", + "type": "datetime", + "offset": -1 + }, + "3": { + "field": "start_date", + "type": "datetime", + "offset": 0 + }, + "4": { + "field": "start_date", + "type": "datetime", + "offset": 0 + }, + "5": { + "field": "start_date", + "type": "datetime", + "offset": -1 + } + }, + "listFields": {}, + "graphFields": { + "876d7cf5-21ea-441e-b4fd-08556365cb8a": { + "field": "start_date", + "type": "datetime", + "offset": 0 + }, + "57b7bb2f-2b24-435a-83de-d56a0452ac10": { + "field": "start_date", + "type": "datetime", + "offset": 0 + } + } + }, + { + "id": "5124b7b1-aa17-46cc-b574-2309708de75b", + "type": "relation", + "label": "Operator", + "modelName": "res.partner", + "defaultValue": [], + "defaultValueDisplayNames": [], + "rangeType": "year", + "defaultsToCurrentPeriod": false, + "pivotFields": { + "1": { + "field": "partner_id", + "type": "many2one" + }, + "2": { + "field": "partner_id", + "type": "many2one" + }, + "3": { + "field": "partner_id", + "type": "many2one" + }, + "4": { + "field": "partner_id", + "type": "many2one" + }, + "5": { + "field": "partner_id", + "type": "many2one" + } + }, + "listFields": {}, + "graphFields": { + "57b7bb2f-2b24-435a-83de-d56a0452ac10": { + "field": "partner_id", + "type": "many2one" + }, + "876d7cf5-21ea-441e-b4fd-08556365cb8a": { + "field": "partner_id", + "type": "many2one" + } + } + } + ] +} \ No newline at end of file