<?xml version="1.0" encoding="utf-8"?>
<openerp>
    <data>

        <!-- KPI -->

        <record id="view_mgmtsystem_kpi_tree" model="ir.ui.view">
            <field name="name">mgmtsystem.kpi.tree</field>
            <field name="model">mgmtsystem.kpi</field>
            <field name="arch" type="xml">
                <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" group="base.group_multi_company"/>
                </tree>
            </field>
        </record>

        <record id="view_mgmtsystem_kpi_filter" model="ir.ui.view">
            <field name="name">mgmtsystem.kpi.filter</field>
            <field name="model">mgmtsystem.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="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_mgmtsystem_kpi_form" model="ir.ui.view">
            <field name="name">mgmtsystem.kpi.form</field>
            <field name="model">mgmtsystem.kpi</field>
            <field name="arch" type="xml">
                <form string="Key Performance Indicator">
                    <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"/>
                        <button name="compute_kpi_value" string="Compute KPI Now" colspan="2" type="object"/>
                        <field name="active" colspan="2"/>
	            	<field name="company_id" group="base.group_multi_company"/>
                    </group>
                    <notebook colspan="6">
                        <page string="History">
                            <field name="history_ids" readonly="1" nolabel="1"/>
                        </page>
                        <page string="Computation">
                            <group col="6">
                                <field name="periodicity" colspan="2"/>
                                <field name="periodicity_uom" colspan="2"/>
                                <field name="next_execution_date" colspan="2"/>
                                <separator string="KPI Computation" colspan="6"/>
                                <newline/>
                                <field name="kpi_type" colspan="2"/>
                                <field name="dbsource_id" colspan="2" attrs="{'invisible' : [('kpi_type', '!=', 'external')]}"/>
                                <newline/>
                                <field name="kpi_code" colspan="6"/>
                            </group>
                        </page>
                        <page string="Description">
                            <field name="description" nolabel="1"/>
                        </page>
                    </notebook>
                </form>
            </field>
        </record>

        <record model="ir.actions.act_window" id="open_mgmtsystem_kpi_list">
            <field name="name">Key Performance Indicators</field>
            <field name="res_model">mgmtsystem.kpi</field>
            <field name="view_type">form</field>
            <field name="view_mode">tree,form</field>
            <field name="view_id" ref="view_mgmtsystem_kpi_tree"/>
            <field name="search_view_id" ref="view_mgmtsystem_kpi_filter"/>
        </record>

        <menuitem id="menu_mgmtsystem_kpi" 
            name="KPI"
            action="open_mgmtsystem_kpi_list"
            sequence="15" 
            parent="mgmtsystem.menu_mgmtsystem_main" 
            groups="base.group_user"/>

        <!-- KPI history -->

        <record id="view_mgmtsystem_kpi_history_tree" model="ir.ui.view">
            <field name="name">mgmtsystem.kpi.history.tree</field>
            <field name="model">mgmtsystem.kpi.history</field>
            <field name="arch" type="xml">
                <tree string="KPI History">
                    <field name="name"/>
                    <field name="date"/>
                    <field name="value"/>
                    <field name="color" widget="color"/>
	            <field name="company_id" group="base.group_multi_company"/>
                </tree>
            </field>
        </record>

        <!-- Configuration menu -->

        <menuitem id="menu_mgmtsystem_configuration_kpi" 
            name="KPI" 
            parent="mgmtsystem.menu_mgmtsystem_configuration" 
            groups="mgmtsystem.group_mgmtsystem_manager" 
            sequence="20"/>

	<!-- Categories -->

        <record id="view_mgmtsystem_kpi_category_tree" model="ir.ui.view">
            <field name="name">mgmtsystem.kpi.category.tree</field>
            <field name="model">mgmtsystem.kpi.category</field>
            <field name="arch" type="xml">
                <tree string="Categories">
                    <field name="name"/>
                </tree>
            </field>
        </record>

        <record id="view_mgmtsystem_kpi_category_form" model="ir.ui.view">
            <field name="name">mgmtsystem.kpi.category.form</field>
            <field name="model">mgmtsystem.kpi.category</field>
            <field name="arch" type="xml">
                <form string="Category">
                    <field name="name"/>
                    <newline/>
                    <field name="description" colspan="4"/>
                </form>
            </field>
        </record>

        <record model="ir.actions.act_window" id="open_mgmtsystem_category_list">
            <field name="name">Categories</field>
            <field name="res_model">mgmtsystem.kpi.category</field>
            <field name="view_type">form</field>
            <field name="view_mode">tree,form</field>
            <field name="view_id" ref="view_mgmtsystem_kpi_category_tree"/>
        </record>

        <menuitem id="menu_mgmtsystem_configuration_kpi_category" 
            name="Categories"
            action="open_mgmtsystem_category_list"
            parent="menu_mgmtsystem_configuration_kpi" 
            groups="mgmtsystem.group_mgmtsystem_manager" 
            sequence="10"/>

	<!-- Thresholds -->

        <record id="view_mgmtsystem_kpi_threshold_tree" model="ir.ui.view">
            <field name="name">mgmtsystem.kpi.threshold.tree</field>
            <field name="model">mgmtsystem.kpi.threshold</field>
            <field name="arch" type="xml">
                <tree string="Thresholds">
                    <field name="name"/>
                    <field name="invalid_message"/>
	            <field name="company_id" group="base.group_multi_company"/>
                </tree>
            </field>
        </record>

        <record id="view_mgmtsystem_kpi_threshold_form" model="ir.ui.view">
            <field name="name">mgmtsystem.kpi.threshold.form</field>
            <field name="model">mgmtsystem.kpi.threshold</field>
            <field name="arch" type="xml">
                <form string="Threshold">
                    <field name="name"/>
                    <newline/>
                    <separator string="Ranges" colspan="2"/>
                    <newline/>
                    <field name="range_ids" nolabel="1" colspan="2"/>
                    <newline/>
                    <separator string="KPIs" colspan="2"/>
                    <newline/>
                    <field name="kpi_ids" nolabel="1" colspan="2"/>
                    <newline/>
                    <field name="invalid_message" nolabel="1" attrs="{'invisible' : [('invalid_message', '=', '')]}" colspan="2"/>
                    <newline/>
	            <field name="company_id" group="base.group_multi_company"/>
                </form>
            </field>
        </record>

        <record model="ir.actions.act_window" id="open_mgmtsystem_threshold_list">
            <field name="name">Thresholds</field>
            <field name="res_model">mgmtsystem.kpi.threshold</field>
            <field name="view_type">form</field>
            <field name="view_mode">tree,form</field>
            <field name="view_id" ref="view_mgmtsystem_kpi_threshold_tree"/>
        </record>

        <menuitem id="menu_mgmtsystem_configuration_kpi_threshold" 
            name="Thresholds"
            action="open_mgmtsystem_threshold_list"
            parent="menu_mgmtsystem_configuration_kpi" 
            groups="mgmtsystem.group_mgmtsystem_manager" 
            sequence="10"/>

	<!-- Ranges -->

        <record id="view_mgmtsystem_kpi_threshold_range_tree" model="ir.ui.view">
            <field name="name">mgmtsystem.kpi.threshold.range.tree</field>
            <field name="model">mgmtsystem.kpi.threshold.range</field>
            <field name="arch" type="xml">
                <tree string="Ranges">
                    <field name="name"/>
                    <field name="min_value"/>
                    <field name="max_value"/>
                    <field name="color" widget="color"/>
                    <field name="invalid_message"/>
	            <field name="company_id" group="base.group_multi_company"/>
                </tree>
            </field>
        </record>

        <record id="view_mgmtsystem_kpi_threshold_range_form" model="ir.ui.view">
            <field name="name">mgmtsystem.kpi.threshold.range.form</field>
            <field name="model">mgmtsystem.kpi.threshold.range</field>
            <field name="arch" type="xml">
                <form string="Range">
                    <field name="name"/>
                    <field name="color"/>
	            <field name="company_id" group="base.group_multi_company"/>
                    <newline/>
                    <separator string="Minimum" colspan="4"/>
                    <newline/>
                    <field name="min_type"/>
                    <field name="min_fixed_value" attrs="{'invisible' : [('min_type', '!=', 'static')]}"/>
                    <field name="min_dbsource_id" attrs="{'invisible' : [('min_type', '!=', 'external')]}"/>
                    <newline/>
                    <field name="min_code" colspan="4" attrs="{'invisible' : [('min_type', 'NOT IN', ('local','external','python'))]}"/>
                    <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="4" attrs="{'invisible' : [('max_type', 'NOT IN', ('local','external','python'))]}"/>
                    <newline/>
                    <separator string="Thresholds" colspan="4"/>
                    <field name="threshold_ids" nolabel="1" colspan="4"/>
                    <field name="invalid_message" nolabel="1" attrs="{'invisible' : [('invalid_message', '=', '')]}" colspan="4"/>
                </form>
            </field>
        </record>

        <record model="ir.actions.act_window" id="open_mgmtsystem_threshold_range_list">
            <field name="name">Ranges</field>
            <field name="res_model">mgmtsystem.kpi.threshold.range</field>
            <field name="view_type">form</field>
            <field name="view_mode">tree,form</field>
            <field name="view_id" ref="view_mgmtsystem_kpi_threshold_range_tree"/>
        </record>

        <menuitem id="menu_mgmtsystem_configuration_kpi_range"
            name="Ranges"
            action="open_mgmtsystem_threshold_range_list"
            parent="menu_mgmtsystem_configuration_kpi" 
            groups="mgmtsystem.group_mgmtsystem_manager" 
            sequence="20"/>

        <menuitem id="menu_mgmtsystem_configuration_kpi_dbsource"
            name="Data Sources"
            action="base_external_dbsource.action_dbsource"
            parent="menu_mgmtsystem_configuration_kpi" 
            groups="mgmtsystem.group_mgmtsystem_manager" 
            sequence="20"/>

    </data>

    <data noupdate="1">

        <record forcecreate="True" id="ir_cron_mgmtsystem_kpi_action" model="ir.cron">
            <field name="name">Update KPI values</field>
            <field name="user_id" ref="base.user_root"/>
            <field name="interval_number">1</field>
            <field name="interval_type">hours</field>
            <field name="numbercall">-1</field>
            <field eval="False" name="doall"/>
            <field eval="'mgmtsystem.kpi'" name="model"/>
            <field eval="'update_kpi_value'" name="function"/>
            <field eval="'()'" name="args"/>
        </record>

    </data>
</openerp>