[MIG] kpi to v11

pull/267/head
Adrià Gil Sorribes 2018-11-12 11:25:13 +01:00
parent e16dbd3d3d
commit 09bc90889f
17 changed files with 313 additions and 345 deletions

View File

@ -1,4 +1,3 @@
# -*- coding: utf-8 -*-
# Copyright 2012 - Now Savoir-faire Linux <https://www.savoirfairelinux.com/> # Copyright 2012 - Now Savoir-faire Linux <https://www.savoirfairelinux.com/>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).

View File

@ -1,10 +1,9 @@
# -*- coding: utf-8 -*-
# Copyright 2012 - Now Savoir-faire Linux <https://www.savoirfairelinux.com/> # Copyright 2012 - Now Savoir-faire Linux <https://www.savoirfairelinux.com/>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
{ {
"name": "Key Performance Indicator", "name": "Key Performance Indicator",
"version": "9.0.1.1.0", "version": "11.0.1.1.0",
"author": "Savoir-faire Linux,Odoo Community Association (OCA)", "author": "Savoir-faire Linux,Odoo Community Association (OCA)",
"website": "http://www.savoirfairelinux.com", "website": "http://www.savoirfairelinux.com",
"license": "AGPL-3", "license": "AGPL-3",

View File

@ -1,18 +1,16 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2012 - Now Savoir-faire Linux <https://www.savoirfairelinux.com/> <!-- Copyright 2012 - Now Savoir-faire Linux <https://www.savoirfairelinux.com/>
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). --> License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -->
<odoo> <odoo noupdate="1">
<data noupdate="1"> <record forcecreate="True" id="ir_cron_kpi_action" model="ir.cron">
<record forcecreate="True" id="ir_cron_kpi_action" model="ir.cron"> <field name="name">Update KPI values</field>
<field name="name">Update KPI values</field> <field name="user_id" ref="base.user_root"/>
<field name="user_id" ref="base.user_root"/> <field name="interval_number">1</field>
<field name="interval_number">1</field> <field name="interval_type">hours</field>
<field name="interval_type">hours</field> <field name="numbercall">-1</field>
<field name="numbercall">-1</field> <field name="doall" eval="False"/>
<field eval="False" name="doall"/> <field name="model_id" ref="model_kpi"/>
<field eval="'kpi'" name="model"/> <field name="state">code</field>
<field eval="'update_kpi_value'" name="function"/> <field name="code">model.update_kpi_value()</field>
<field eval="'()'" name="args"/> </record>
</record>
</data>
</odoo> </odoo>

View File

@ -1,4 +1,3 @@
# -*- coding: utf-8 -*-
# Copyright 2012 - Now Savoir-faire Linux <https://www.savoirfairelinux.com/> # Copyright 2012 - Now Savoir-faire Linux <https://www.savoirfairelinux.com/>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).

View File

@ -1,11 +1,10 @@
# -*- coding: utf-8 -*-
# Copyright 2012 - Now Savoir-faire Linux <https://www.savoirfairelinux.com/> # Copyright 2012 - Now Savoir-faire Linux <https://www.savoirfairelinux.com/>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from datetime import datetime, timedelta from datetime import datetime, timedelta
from openerp import fields, models, api from odoo import fields, models, api
from openerp.tools.safe_eval import safe_eval from odoo.tools.safe_eval import safe_eval
from openerp.tools import ( from odoo.tools import (
DEFAULT_SERVER_DATETIME_FORMAT as DATETIME_FORMAT, DEFAULT_SERVER_DATETIME_FORMAT as DATETIME_FORMAT,
) )
import re import re

View File

@ -1,8 +1,7 @@
# -*- coding: utf-8 -*-
# Copyright 2012 - Now Savoir-faire Linux <https://www.savoirfairelinux.com/> # Copyright 2012 - Now Savoir-faire Linux <https://www.savoirfairelinux.com/>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from openerp import fields, models from odoo import fields, models
class KPICategory(models.Model): class KPICategory(models.Model):

View File

@ -1,8 +1,7 @@
# -*- coding: utf-8 -*-
# Copyright 2012 - Now Savoir-faire Linux <https://www.savoirfairelinux.com/> # Copyright 2012 - Now Savoir-faire Linux <https://www.savoirfairelinux.com/>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from openerp import fields, models from odoo import fields, models
class KPIHistory(models.Model): class KPIHistory(models.Model):

View File

@ -1,8 +1,7 @@
# -*- coding: utf-8 -*-
# Copyright 2012 - Now Savoir-faire Linux <https://www.savoirfairelinux.com/> # Copyright 2012 - Now Savoir-faire Linux <https://www.savoirfairelinux.com/>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from openerp import fields, models, api, exceptions, _ from odoo import fields, models, api, exceptions, _
class KPIThreshold(models.Model): class KPIThreshold(models.Model):

View File

@ -1,9 +1,8 @@
# -*- coding: utf-8 -*-
# Copyright 2012 - Now Savoir-faire Linux <https://www.savoirfairelinux.com/> # Copyright 2012 - Now Savoir-faire Linux <https://www.savoirfairelinux.com/>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from openerp import fields, models, api from odoo import fields, models, api
from openerp.tools.safe_eval import safe_eval from odoo.tools.safe_eval import safe_eval
import re import re

View File

@ -1,4 +1,3 @@
# -*- coding: utf-8 -*-
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from . import test_kpi from . import test_kpi

View File

@ -1,7 +1,6 @@
# -*- coding: utf-8 -*-
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from openerp.tests.common import TransactionCase from odoo.tests.common import TransactionCase
class TestKPI(TransactionCase): class TestKPI(TransactionCase):

View File

@ -2,98 +2,97 @@
<!-- Copyright 2012 - Now Savoir-faire Linux <https://www.savoirfairelinux.com/> <!-- Copyright 2012 - Now Savoir-faire Linux <https://www.savoirfairelinux.com/>
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). --> License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -->
<odoo> <odoo>
<data> <!-- KPI -->
<!-- KPI --> <record id="view_kpi_tree" model="ir.ui.view">
<record id="view_kpi_tree" model="ir.ui.view"> <field name="name">kpi.tree</field>
<field name="name">kpi.tree</field> <field name="model">kpi</field>
<field name="model">kpi</field> <field name="arch" type="xml">
<field name="arch" type="xml"> <tree string="Key Performance Indicators">
<tree string="Key Performance Indicators"> <field name="name"/>
<field name="value" widget="progressbar"/>
<field name="category_id"/>
<field name="kpi_type"/>
<field name="company_id" groups="base.group_multi_company"/>
</tree>
</field>
</record>
<record id="view_kpi_filter" model="ir.ui.view">
<field name="name">kpi.filter</field>
<field name="model">kpi</field>
<field name="arch" type="xml">
<search string="KPI">
<group>
<filter name="active"
icon="terp-document-new"
domain="[('active','=',True)]"
string="Active"
help="Only active KPIs are computed by the scheduler based on the periodicity configuration."/>
<separator orientation="vertical"/>
<field name="name"/> <field name="name"/>
<field name="value" widget="progressbar"/>
<field name="category_id"/> <field name="category_id"/>
<field name="kpi_type"/> <field name="company_id" group="base.group_multi_company"/>
<field name="company_id" groups="base.group_multi_company"/> </group>
</tree> <newline/>
</field> <group expand="0" name="Group By...">
</record> <filter string="Category" context="{'group_by':'category_id'}"/>
<filter string="Type" context="{'group_by':'kpi_type'}"/>
</group>
</search>
</field>
</record>
<record id="view_kpi_filter" model="ir.ui.view"> <record id="view_kpi_form" model="ir.ui.view">
<field name="name">kpi.filter</field> <field name="name">kpi.form</field>
<field name="model">kpi</field> <field name="model">kpi</field>
<field name="arch" type="xml"> <field name="arch" type="xml">
<search string="KPI"> <form string="Key Performance Indicator">
<sheet>
<group> <group>
<filter name="active" <group>
icon="terp-document-new" <field name="name" />
domain="[('active','=',True)]" <field name="threshold_id" />
string="Active" <field name="category_id" />
help="Only active KPIs are computed by the scheduler based on the periodicity configuration."/> </group>
<separator orientation="vertical"/> <group>
<field name="name"/>
<field name="category_id"/>
<field name="company_id" group="base.group_multi_company"/>
</group>
<newline/>
<group expand="0" string="Group By...">
<filter string="Category" context="{'group_by':'category_id'}"/>
<filter string="Type" context="{'group_by':'kpi_type'}"/>
</group>
</search>
</field>
</record>
<record id="view_kpi_form" model="ir.ui.view">
<field name="name">kpi.form</field>
<field name="model">kpi</field>
<field name="arch" type="xml">
<form string="Key Performance Indicator">
<sheet>
<group col="6" colspan="6">
<field name="name" colspan="2"/>
<field name="threshold_id" colspan="2"/>
<field name="category_id" colspan="2"/>
<newline/>
<field name="value" colspan="2"/> <field name="value" colspan="2"/>
<button name="compute_kpi_value" string="Compute KPI Now" colspan="2" type="object"/>
<field name="active" colspan="2"/> <field name="active" colspan="2"/>
<field name="company_id" groups="base.group_multi_company"/> <field name="company_id" groups="base.group_multi_company"/>
<button name="compute_kpi_value" string="Compute KPI Now" colspan="2" type="object"/>
</group> </group>
<notebook colspan="6"> </group>
<page string="History"> <notebook colspan="6">
<field name="history_ids" readonly="1" nolabel="1"/> <page string="History">
</page> <field name="history_ids" readonly="1" nolabel="1"/>
<page string="Computation"> </page>
<group col="6"> <page string="Computation">
<field name="periodicity" colspan="2"/> <group col="6">
<field name="periodicity_uom" colspan="2"/> <field name="periodicity" colspan="3"/>
<field name="next_execution_date" colspan="2"/> <field name="periodicity_uom" colspan="3"/>
<separator string="KPI Computation" colspan="6"/> <field name="next_execution_date" colspan="3"/>
<newline/> <separator string="KPI Computation" colspan="6"/>
<field name="kpi_type" colspan="2"/> <newline/>
<field name="dbsource_id" colspan="2" attrs="{'invisible' : [('kpi_type', '!=', 'external')]}"/> <field name="kpi_type" colspan="2"/>
<newline/> <field name="dbsource_id" colspan="2" attrs="{'invisible' : [('kpi_type', '!=', 'external')]}"/>
<field name="kpi_code" colspan="6"/> <newline/>
</group> <field name="kpi_code" colspan="6"/>
</page> </group>
<page string="Description"> </page>
<field name="description" nolabel="1"/> <page string="Description">
</page> <field name="description" nolabel="1"/>
</notebook> </page>
</sheet> </notebook>
</form> </sheet>
</field> </form>
</record> </field>
</record>
<record model="ir.actions.act_window" id="open_kpi_list"> <record model="ir.actions.act_window" id="open_kpi_list">
<field name="name">Key Performance Indicators</field> <field name="name">Key Performance Indicators</field>
<field name="res_model">kpi</field> <field name="res_model">kpi</field>
<field name="view_type">form</field> <field name="view_type">form</field>
<field name="view_mode">tree,form</field> <field name="view_mode">tree,form</field>
<field name="view_id" ref="view_kpi_tree"/> <field name="view_id" ref="view_kpi_tree"/>
<field name="search_view_id" ref="view_kpi_filter"/> <field name="search_view_id" ref="view_kpi_filter"/>
</record> </record>
</data>
</odoo> </odoo>

View File

@ -3,45 +3,39 @@
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). --> License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -->
<odoo> <odoo>
<data> <!-- Categories -->
<record id="view_kpi_category_tree" model="ir.ui.view">
<field name="name">kpi.category.tree</field>
<field name="model">kpi.category</field>
<field name="arch" type="xml">
<tree string="Categories">
<field name="name"/>
</tree>
</field>
</record>
<!-- Categories --> <record id="view_kpi_category_form" model="ir.ui.view">
<field name="name">kpi.category.form</field>
<field name="model">kpi.category</field>
<field name="arch" type="xml">
<form string="Category">
<sheet>
<group col="2" colspan="2">
<field name="name" colspan="2"/>
<newline/>
<field name="description" colspan="2"/>
</group>
</sheet>
</form>
</field>
</record>
<record id="view_kpi_category_tree" model="ir.ui.view"> <record model="ir.actions.act_window" id="open_category_list">
<field name="name">kpi.category.tree</field> <field name="name">Categories</field>
<field name="model">kpi.category</field> <field name="res_model">kpi.category</field>
<field name="arch" type="xml"> <field name="view_type">form</field>
<tree string="Categories"> <field name="view_mode">tree,form</field>
<field name="name"/> <field name="view_id" ref="view_kpi_category_tree"/>
</tree> </record>
</field>
</record>
<record id="view_kpi_category_form" model="ir.ui.view">
<field name="name">kpi.category.form</field>
<field name="model">kpi.category</field>
<field name="arch" type="xml">
<form string="Category">
<sheet>
<group col="2" colspan="2">
<field name="name" colspan="2"/>
<newline/>
<field name="description" colspan="2"/>
</group>
</sheet>
</form>
</field>
</record>
<record model="ir.actions.act_window" id="open_category_list">
<field name="name">Categories</field>
<field name="res_model">kpi.category</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="view_id" ref="view_kpi_category_tree"/>
</record>
</data>
</odoo> </odoo>

View File

@ -3,38 +3,36 @@
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). --> License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -->
<odoo> <odoo>
<data> <!-- KPI history -->
<!-- KPI history --> <record id="view_kpi_history_tree" model="ir.ui.view">
<record id="view_kpi_history_tree" model="ir.ui.view"> <field name="name">kpi.history.tree</field>
<field name="name">kpi.history.tree</field> <field name="model">kpi.history</field>
<field name="model">kpi.history</field> <field name="arch" type="xml">
<field name="arch" type="xml"> <tree string="KPI History">
<tree string="KPI History"> <field name="name"/>
<field name="name"/> <field name="date"/>
<field name="date"/> <field name="value"/>
<field name="value"/> <field name="color" widget="color"/>
<field name="color" widget="color"/> <field name="company_id" groups="base.group_multi_company"/>
<field name="company_id" groups="base.group_multi_company"/> </tree>
</tree> </field>
</field> </record>
</record> <record id="view_kpi_history_form" model="ir.ui.view">
<record id="view_kpi_history_form" model="ir.ui.view"> <field name="name">kpi.history.form</field>
<field name="name">kpi.history.form</field> <field name="model">kpi.history</field>
<field name="model">kpi.history</field> <field name="arch" type="xml">
<field name="arch" type="xml"> <form string="KPI History">
<form string="KPI History"> <sheet>
<sheet> <group col="4" colspan="4">
<group col="4" colspan="4"> <field name="kpi_id"/>
<field name="kpi_id"/> <field name="name"/>
<field name="name"/> <field name="date"/>
<field name="date"/> <field name="value"/>
<field name="value"/> <field name="color" widget="color"/>
<field name="color" widget="color"/> <field name="company_id" groups="base.group_multi_company"/>
<field name="company_id" groups="base.group_multi_company"/> </group>
</group> </sheet>
</sheet> </form>
</form> </field>
</field> </record>
</record>
</data>
</odoo> </odoo>

View File

@ -3,55 +3,51 @@
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). --> License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -->
<odoo> <odoo>
<data> <!-- Thresholds -->
<!-- Thresholds --> <record id="view_kpi_threshold_tree" model="ir.ui.view">
<record id="view_kpi_threshold_tree" model="ir.ui.view"> <field name="name">kpi.threshold.tree</field>
<field name="name">kpi.threshold.tree</field> <field name="model">kpi.threshold</field>
<field name="model">kpi.threshold</field> <field name="arch" type="xml">
<field name="arch" type="xml"> <tree string="Thresholds" decoration-danger="invalid_message">
<tree string="Thresholds" decoration-danger="invalid_message"> <field name="name"/>
<field name="name"/> <field name="invalid_message"/>
<field name="invalid_message"/> <field name="company_id" groups="base.group_multi_company"/>
<field name="company_id" groups="base.group_multi_company"/> </tree>
</tree> </field>
</field> </record>
</record>
<record id="view_kpi_threshold_form" model="ir.ui.view"> <record id="view_kpi_threshold_form" model="ir.ui.view">
<field name="name">kpi.threshold.form</field> <field name="name">kpi.threshold.form</field>
<field name="model">kpi.threshold</field> <field name="model">kpi.threshold</field>
<field name="arch" type="xml"> <field name="arch" type="xml">
<form string="Threshold"> <form string="Threshold">
<sheet> <sheet>
<group col="6" colspan="6"> <group col="6" colspan="6">
<field name="name" colspan="2"/> <field name="name" colspan="2"/>
<field name="company_id" groups="base.group_multi_company" colspan="2"/> <field name="company_id" groups="base.group_multi_company" colspan="2"/>
<newline/> <newline/>
<separator string="Ranges" colspan="6"/> <separator string="Ranges" colspan="6"/>
<newline/> <newline/>
<field name="range_ids" nolabel="1" colspan="6"/> <field name="range_ids" nolabel="1" colspan="6"/>
<newline/> <newline/>
<separator string="KPIs" colspan="6"/> <separator string="KPIs" colspan="6"/>
<newline/> <newline/>
<field name="kpi_ids" nolabel="1" colspan="6"/> <field name="kpi_ids" nolabel="1" colspan="6"/>
<newline/> <newline/>
<separator string="Errors" attrs="{'invisible' : [('invalid_message', '=', False)]}" colspan="4"/> <separator string="Errors" attrs="{'invisible' : [('invalid_message', '=', False)]}" colspan="4"/>
<field name="invalid_message" nolabel="1" attrs="{'invisible' : [('invalid_message', '=', False)]}" colspan="4"/> <field name="invalid_message" nolabel="1" attrs="{'invisible' : [('invalid_message', '=', False)]}" colspan="4"/>
<newline/> <newline/>
</group> </group>
</sheet> </sheet>
</form> </form>
</field> </field>
</record> </record>
<record model="ir.actions.act_window" id="open_threshold_list"> <record model="ir.actions.act_window" id="open_threshold_list">
<field name="name">Thresholds</field> <field name="name">Thresholds</field>
<field name="res_model">kpi.threshold</field> <field name="res_model">kpi.threshold</field>
<field name="view_type">form</field> <field name="view_type">form</field>
<field name="view_mode">tree,form</field> <field name="view_mode">tree,form</field>
<field name="view_id" ref="view_kpi_threshold_tree"/> <field name="view_id" ref="view_kpi_threshold_tree"/>
</record> </record>
</data>
</odoo> </odoo>

View File

@ -3,74 +3,69 @@
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). --> License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -->
<odoo> <odoo>
<data> <!-- Ranges -->
<!-- Ranges --> <record id="view_kpi_threshold_range_tree" model="ir.ui.view">
<record id="view_kpi_threshold_range_tree" model="ir.ui.view"> <field name="name">kpi.threshold.range.tree</field>
<field name="name">kpi.threshold.range.tree</field> <field name="model">kpi.threshold.range</field>
<field name="model">kpi.threshold.range</field> <field name="arch" type="xml">
<field name="arch" type="xml"> <tree string="Ranges" decoration-danger="invalid_message">
<tree string="Ranges" decoration-danger="invalid_message"> <field name="name"/>
<field name="name"/> <field name="min_value"/>
<field name="min_value"/> <field name="max_value"/>
<field name="max_value"/> <field name="color" widget="color"/>
<field name="color" widget="color"/> <field name="invalid_message"/>
<field name="invalid_message"/> <field name="company_id" groups="base.group_multi_company"/>
<field name="company_id" groups="base.group_multi_company"/> </tree>
</tree> </field>
</field> </record>
</record>
<record id="view_kpi_threshold_range_form" model="ir.ui.view"> <record id="view_kpi_threshold_range_form" model="ir.ui.view">
<field name="name">kpi.threshold.range.form</field> <field name="name">kpi.threshold.range.form</field>
<field name="model">kpi.threshold.range</field> <field name="model">kpi.threshold.range</field>
<field name="arch" type="xml"> <field name="arch" type="xml">
<form string="Range"> <form string="Range">
<sheet> <sheet>
<group col="6" colspan="6"> <group col="6" colspan="6">
<field name="name"/> <field name="name" colspan="2"/>
<field name="color"/> <field name="color" colspan="2"/>
<field name="company_id" groups="base.group_multi_company"/> <field name="company_id" groups="base.group_multi_company" colspan="2" />
<newline/> </group>
<group col="6">
<separator string="Minimum"/>
<newline/>
<field name="min_type" colspan="3"/>
<field name="min_fixed_value" colspan="3" attrs="{'invisible' : [('min_type', '!=', 'static')]}"/>
<field name="min_dbsource_id" colspan="3" attrs="{'invisible' : [('min_type', '!=', 'external')]}"/>
<field name="min_code" colspan="6" attrs="{'invisible' : [('min_type', 'not in', ('local','external','python'))]}"/>
<field name="min_error" colspan="6" attrs="{'invisible': [('min_error', '=', False)]}" />
<newline/>
<separator string="Maximum"/>
<newline/>
<field name="max_type" colspan="3"/>
<field name="max_fixed_value" colspan="3" attrs="{'invisible' : [('max_type', '!=', 'static')]}"/>
<field name="max_dbsource_id" colspan="3" attrs="{'invisible' : [('max_type', '!=', 'external')]}"/>
<newline/>
<field name="max_code" colspan="6" attrs="{'invisible' : [('max_type', 'not in', ('local','external','python'))]}"/>
<newline/>
<field name="max_error" colspan="6" attrs="{'invisible': [('max_error', '=', False)]}" />
<newline/>
</group>
<group col="6" colspan="6">
<separator string="Thresholds" colspan="4"/>
<field name="threshold_ids" nolabel="1" colspan="4"/>
<separator string="Errors" attrs="{'invisible' : [('invalid_message', '=', False)]}" colspan="4"/>
<field name="invalid_message" nolabel="1" attrs="{'invisible' : [('invalid_message', '=', False)]}" colspan="4"/>
</group>
</sheet>
</form>
</field>
</record>
<separator string="Minimum" colspan="4"/> <record model="ir.actions.act_window" id="open_threshold_range_list">
<newline/> <field name="name">Ranges</field>
<field name="min_type" colspan="2"/> <field name="res_model">kpi.threshold.range</field>
<field name="min_fixed_value" colspan="2" attrs="{'invisible' : [('min_type', '!=', 'static')]}"/> <field name="view_type">form</field>
<field name="min_dbsource_id" colspan="2" attrs="{'invisible' : [('min_type', '!=', 'external')]}"/> <field name="view_mode">tree,form</field>
<newline/> <field name="view_id" ref="view_kpi_threshold_range_tree"/>
<field name="min_code" colspan="6" attrs="{'invisible' : [('min_type', 'NOT IN', ('local','external','python'))]}"/> </record>
<newline/>
<field name="min_error" colspan="6" attrs="{'invisible': [('min_error', '=', False)]}" />
<newline/>
<separator string="Maximum" colspan="4"/>
<newline/>
<field name="max_type"/>
<field name="max_fixed_value" attrs="{'invisible' : [('max_type', '!=', 'static')]}"/>
<field name="max_dbsource_id" attrs="{'invisible' : [('max_type', '!=', 'external')]}"/>
<newline/>
<field name="max_code" colspan="6" attrs="{'invisible' : [('max_type', 'NOT IN', ('local','external','python'))]}"/>
<newline/>
<field name="max_error" colspan="6" attrs="{'invisible': [('max_error', '=', False)]}" />
<newline/>
<separator string="Thresholds" colspan="4"/>
<field name="threshold_ids" nolabel="1" colspan="4"/>
<separator string="Errors" attrs="{'invisible' : [('invalid_message', '=', False)]}" colspan="4"/>
<field name="invalid_message" nolabel="1" attrs="{'invisible' : [('invalid_message', '=', False)]}" colspan="4"/>
</group>
</sheet>
</form>
</field>
</record>
<record model="ir.actions.act_window" id="open_threshold_range_list">
<field name="name">Ranges</field>
<field name="res_model">kpi.threshold.range</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="view_id" ref="view_kpi_threshold_range_tree"/>
</record>
</data>
</odoo> </odoo>

View File

@ -3,46 +3,44 @@
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). --> License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -->
<odoo> <odoo>
<data> <menuitem id="menu_reporting_kpi"
<menuitem id="menu_reporting_kpi" name="KPI"
name="KPI" action="open_kpi_list"
action="open_kpi_list" sequence="15"
sequence="15" parent="base.menu_reporting_dashboard"
parent="base.menu_reporting_dashboard" groups="base.group_user"/>
groups="base.group_user"/>
<menuitem id="menu_configuration_kpi" <menuitem id="menu_configuration_kpi"
name="KPI" name="KPI"
parent="base.menu_reporting_config" parent="base.menu_reporting_config"
groups="base.group_user" groups="base.group_user"
sequence="20"/> sequence="20"/>
<menuitem id="menu_configuration_kpi_category" <menuitem id="menu_configuration_kpi_category"
name="Categories" name="Categories"
action="open_category_list" action="open_category_list"
parent="menu_configuration_kpi" parent="menu_configuration_kpi"
groups="base.group_user" groups="base.group_user"
sequence="10"/> sequence="10"/>
<menuitem id="menu_configuration_kpi_range" <menuitem id="menu_configuration_kpi_range"
name="Ranges" name="Ranges"
action="open_threshold_range_list" action="open_threshold_range_list"
parent="menu_configuration_kpi" parent="menu_configuration_kpi"
groups="base.group_user" groups="base.group_user"
sequence="20"/> sequence="20"/>
<menuitem id="menu_configuration_kpi_dbsource" <menuitem id="menu_configuration_kpi_dbsource"
name="Data Sources" name="Data Sources"
action="base_external_dbsource.action_dbsource" action="base_external_dbsource.action_dbsource"
parent="menu_configuration_kpi" parent="menu_configuration_kpi"
groups="base.group_user" groups="base.group_user"
sequence="20"/> sequence="20"/>
<menuitem id="menu_configuration_kpi_threshold" <menuitem id="menu_configuration_kpi_threshold"
name="Thresholds" name="Thresholds"
action="open_threshold_list" action="open_threshold_list"
parent="menu_configuration_kpi" parent="menu_configuration_kpi"
groups="base.group_user" groups="base.group_user"
sequence="10"/> sequence="10"/>
</data>
</odoo> </odoo>