[12.0][ADD] kpi_dashboard

This commit is contained in:
Enric Tobella
2020-04-14 09:16:25 +02:00
parent f6845422ac
commit 4a02b825e8
37 changed files with 2250 additions and 0 deletions

View File

@@ -0,0 +1,111 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2020 Creu Blanca
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -->
<odoo>
<record model="ir.ui.view" id="kpi_dashboard_form_view">
<field name="name">kpi.dashboard.form (in kpi_dashboard)</field>
<field name="model">kpi.dashboard</field>
<field name="arch" type="xml">
<form>
<header/>
<sheet>
<div name="button_box" class="oe_button_box">
<button name="%(kpi_dashboard.kpi_dashboard_menu_act_window)d"
type="action"
string="Generate menu"
icon="fa-folder-open-o"
context="{'default_dashboard_id': active_id}"
attrs="{'invisible': [('menu_id', '!=', False)]}"
/>
</div>
<group>
<field name="name"/>
<field name="menu_id" attrs="{'invisible': [('menu_id', '=', False)]}"/>
</group>
<notebook>
<page name="item" string="KPIs">
<field name="item_ids">
<tree editable="bottom">
<field name="name"/>
<field name="kpi_id"/>
<field name="column"/>
<field name="row"/>
<field name="size_x"/>
<field name="size_y"/>
<field name="color" widget="color"/>
<field name="font_color" widget="color"/>
</tree>
</field>
</page>
<page name="widget" string="Widget configuration">
<group>
<group name="margin">
<field name="margin_x"/>
<field name="margin_y"/>
</group>
<group name="dimension">
<field name="widget_dimension_x"/>
<field name="widget_dimension_y"/>
<field name="number_of_columns"/>
<field name="width"/>
</group>
<group name="color">
<field name="background_color" widget="color"/>
</group>
</group>
</page>
<page name="group" string="Groups">
<field name="group_ids"/>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<record model="ir.ui.view" id="kpi_dashboard_search_view">
<field name="name">kpi.dashboard.search (in kpi_dashboard)</field>
<field name="model">kpi.dashboard</field>
<field name="arch" type="xml">
<search>
<field name="name"/>
</search>
</field>
</record>
<record model="ir.ui.view" id="kpi_dashboard_tree_view">
<field name="name">kpi.dashboard.tree (in kpi_dashboard)</field>
<field name="model">kpi.dashboard</field>
<field name="arch" type="xml">
<tree>
<field name="name"/>
</tree>
</field>
</record>
<record model="ir.ui.view" id="kpi_dashboard_dashboard_view">
<field name="name">kpi.dashboard.dashboard (in kpi_dashboard)</field>
<field name="model">kpi.dashboard</field>
<field name="arch" type="xml">
<dashboard/>
</field>
</record>
<record model="ir.actions.act_window" id="kpi_dashboard_act_window">
<field name="name">Kpi Dashboard</field> <!-- TODO -->
<field name="res_model">kpi.dashboard</field>
<field name="view_mode">tree,form,dashboard</field>
<field name="domain">[]</field>
<field name="context">{}</field>
</record>
<record model="ir.ui.menu" id="kpi_dashboard_menu">
<field name="name">Configure Dashboard</field>
<field name="parent_id" ref="menu_configuration_kpi_dashboards"/> <!-- TODO -->
<field name="action" ref="kpi_dashboard_act_window"/>
<field name="sequence" eval="16"/> <!-- TODO -->
</record>
</odoo>

View File

@@ -0,0 +1,89 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2020 Creu Blanca
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -->
<odoo>
<record model="ir.ui.view" id="kpi_kpi_form_view">
<field name="name">kpi.kpi.form (in kpi_dashboard)</field>
<field name="model">kpi.kpi</field>
<field name="arch" type="xml">
<form>
<header>
<button name="generate_cron" string="Generate cron" type="object"
attrs="{'invisible': [('cron_id', '!=',False)]}"/>
<button name="compute" string="Compute now" type="object"/>
</header>
<sheet>
<div class="oe_button_box" name="button_box"/>
<h2>
<field name="name"/>
</h2>
<group>
<group>
<field name="computation_method"/>
<field name="widget"/>
<field name="model_id" attrs="{'invisible': [('computation_method', '!=', 'function')]}"/>
<field name="function" attrs="{'required': [('computation_method', '=', 'function')], 'invisible': [('computation_method', '!=', 'function')]}"/>
<field name="args" attrs="{'invisible': [('computation_method', '!=', 'function')]}"/>
<field name="kwargs" attrs="{'invisible': [('computation_method', '!=', 'function')]}"/>
</group>
<group>
<field name="cron_id" attrs="{'invisible': [('cron_id', '=',False)]}" readonly="True"/>
</group>
<group>
<field name="suffix"/>
<field name="prefix"/>
</group>
</group>
<notebook>
<page name="action" string="Actions">
<field name="action_ids">
<tree editable="bottom">
<field name="action"/>
</tree>
</field>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<record model="ir.ui.view" id="kpi_kpi_search_view">
<field name="name">kpi.kpi.search (in kpi_dashboard)</field>
<field name="model">kpi.kpi</field>
<field name="arch" type="xml">
<search>
<field name="name"/>
</search>
</field>
</record>
<record model="ir.ui.view" id="kpi_kpi_tree_view">
<field name="name">kpi.kpi.tree (in kpi_dashboard)</field>
<field name="model">kpi.kpi</field>
<field name="arch" type="xml">
<tree>
<field name="name"/>
</tree>
</field>
</record>
<record model="ir.actions.act_window" id="kpi_kpi_act_window">
<field name="name">Kpi</field>
<field name="res_model">kpi.kpi</field>
<field name="view_mode">tree,form</field>
<field name="domain">[]</field>
<field name="context">{}</field>
</record>
<record model="ir.ui.menu" id="kpi_kpi_menu">
<field name="name">Configure Kpi</field>
<field name="parent_id" ref="menu_configuration_kpi_dashboards"/>
<field name="action" ref="kpi_kpi_act_window"/>
<field name="sequence" eval="20"/>
</record>
</odoo>

View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2020 Creu Blanca
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -->
<odoo>
<!-- CONFIGURATION -->
<menuitem id="menu_configuration_kpi_dashboards"
name="KPI Dashboards"
parent="base.menu_reporting_config"
groups="kpi_dashboard.group_kpi_dashboard_manager"
sequence="10"/>
</odoo>

View File

@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<template id="assets_backend"
name="Backend Assets (used in backend interface)"
inherit_id="web.assets_backend">
<xpath expr="." position="inside">
<script type="text/javascript" src="/kpi_dashboard/static/src/js/widget_registry.js"/>
<script type="text/javascript" src="/kpi_dashboard/static/src/js/widget/abstract_widget.js"/>
<script type="text/javascript" src="/kpi_dashboard/static/src/js/dashboard_renderer.js"/>
<script type="text/javascript" src="/kpi_dashboard/static/src/js/dashboard_model.js"/>
<script type="text/javascript" src="/kpi_dashboard/static/src/js/dashboard_controller.js"/>
<script type="text/javascript" src="/kpi_dashboard/static/src/js/dashboard_view.js"/>
<script type="text/javascript" src="/kpi_dashboard/static/src/js/widget/number_widget.js"/>
<script type="text/javascript" src="/kpi_dashboard/static/src/js/widget/meter_widget.js"/>
<script type="text/javascript" src="/kpi_dashboard/static/src/js/widget/graph_widget.js"/>
<script type="text/javascript" src="/kpi_dashboard/static/src/js/widget/text_widget.js"/>
<link rel="stylesheet" type="text/scss" href="/kpi_dashboard/static/src/scss/kpi_dashboard.scss"/>
</xpath>
</template>
</odoo>