289 lines
16 KiB
XML
289 lines
16 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<openerp>
|
|
<data>
|
|
|
|
<!-- Goal views -->
|
|
<record id="goal_list_action" model="ir.actions.act_window">
|
|
<field name="name">Goals</field>
|
|
<field name="res_model">gamification.goal</field>
|
|
<field name="view_mode">tree,form,calendar,kanban</field>
|
|
<field name="help" type="html">
|
|
<p class="oe_view_nocontent_create">
|
|
Click to create a goal.
|
|
</p>
|
|
<p>
|
|
A goal is defined by a user and a goal type.
|
|
Goals can be created automatically by using goal plans.
|
|
</p>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="goal_list_view" model="ir.ui.view">
|
|
<field name="name">Goal List</field>
|
|
<field name="model">gamification.goal</field>
|
|
<field name="arch" type="xml">
|
|
<tree string="Goal List" colors="red:state == 'failed';green:state == 'reached';grey:state == 'canceled'">
|
|
<field name="type_id" invisible="1" />
|
|
<field name="user_id" invisible="1" />
|
|
<field name="start_date"/>
|
|
<field name="end_date"/>
|
|
<field name="current"/>
|
|
<field name="target_goal"/>
|
|
<field name="completeness" widget="progressbar"/>
|
|
<field name="state" invisible="1"/>
|
|
<field name="planline_id" invisible="1"/>
|
|
</tree>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="goal_form_view" model="ir.ui.view">
|
|
<field name="name">Goal Form</field>
|
|
<field name="model">gamification.goal</field>
|
|
<field name="arch" type="xml">
|
|
<form string="Goal" version="7.0">
|
|
<header>
|
|
<button string="Start goal" type="object" name="action_start" states="draft" class="oe_highlight"/>
|
|
|
|
<button string="Goal Reached" type="object" name="action_reach" states="inprogress,inprogress_update" />
|
|
<button string="Goal Failed" type="object" name="action_fail" states="inprogress,inprogress_update"/>
|
|
<button string="Reset Completion" type="object" name="action_cancel" states="failed,reached" groups="base.group_no_one" />
|
|
<field name="state" widget="statusbar" statusbar_visible="inprogress" />
|
|
</header>
|
|
<sheet>
|
|
<group>
|
|
<group string="Reference">
|
|
<field name="type_id" on_change="on_change_type_id(type_id)" attrs="{'readonly':[('state','!=','draft')]}"/>
|
|
<field name="user_id" attrs="{'readonly':[('state','!=','draft')]}"/>
|
|
<field name="planline_id" groups="base.group_no_one" attrs="{'readonly':[('state','!=','draft')]}"/>
|
|
</group>
|
|
<group string="Schedule">
|
|
<field name="start_date" attrs="{'readonly':[('state','!=','draft')]}"/>
|
|
<field name="end_date" />
|
|
<field name="computation_mode" invisible="1"/>
|
|
|
|
<label for="remind_update_delay" attrs="{'invisible':[('computation_mode','!=', 'manually')]}"/>
|
|
<div attrs="{'invisible':[('computation_mode','!=', 'manually')]}">
|
|
<field name="remind_update_delay" class="oe_inline"/>
|
|
days
|
|
</div>
|
|
<field name="last_update" groups="base.group_no_one"/>
|
|
</group>
|
|
<group string="Data" colspan="4">
|
|
<field name="target_goal" attrs="{'readonly':[('state','!=','draft')]}"/>
|
|
<label for="current" />
|
|
<div>
|
|
<field name="current" attrs="{'readonly':[('computation_mode','!=','manually')]}" class="oe_inline"/>
|
|
<button string="Refresh state" type="object" name="update" class="oe_highlight oe_inline" attrs="{'invisible':['|',('computation_mode', '=', 'manually'),('state', '=', 'draft')]}"/>
|
|
<button name="write" type="object" string="The current value is up to date" help="Indicate that the current value of the manual goal is still correct and avoid reminders" attrs="{'invisible':['|',('computation_mode','!=', 'manually'),('state','=','draft')]}"/>
|
|
</div>
|
|
</group>
|
|
</group>
|
|
</sheet>
|
|
<div class="oe_chatter">
|
|
<field name="message_follower_ids" widget="mail_followers"/>
|
|
<field name="message_ids" widget="mail_thread"/>
|
|
</div>
|
|
</form>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="goal_calendar_view" model="ir.ui.view">
|
|
<field name="name">Goal Calendar</field>
|
|
<field name="model">gamification.goal</field>
|
|
<field name="arch" type="xml">
|
|
<calendar string="Goal"
|
|
date_start="start_date"
|
|
date_stop="end_date"
|
|
color="type_id">
|
|
<field name="type_id"/>
|
|
</calendar>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="goal_search_view" model="ir.ui.view">
|
|
<field name="name">Goal Search</field>
|
|
<field name="model">gamification.goal</field>
|
|
<field name="arch" type="xml">
|
|
<search string="Search Goals">
|
|
<filter name="my" string="My Goals" domain="[('user_id', '=', uid)]"/>
|
|
<separator/>
|
|
<filter name="draft" string="Draft" domain="[('state', '=', 'draft')]"/>
|
|
<filter name="inprogress" string="In Progress" domain="[('state', 'in', ('inprogress', 'inprogress_update'))]"/>
|
|
<filter name="closed" string="Closed" domain="[('state', 'in', ('reached', 'failed'))]"/>
|
|
<separator/>
|
|
|
|
<field name="user_id"/>
|
|
<field name="type_id"/>
|
|
<field name="plan_id"/>
|
|
<group expand="0" string="Group By...">
|
|
<filter name="group_by_user" string="User" domain="[]" context="{'group_by':'user_id'}"/>
|
|
<filter name="group_by_type" string="Goal Type" domain="[]" context="{'group_by':'type_id'}"/>
|
|
<filter string="State" domain="[]" context="{'group_by':'state'}"/>
|
|
<filter string="End Date" domain="[]" context="{'group_by':'end_date'}"/>
|
|
</group>
|
|
</search>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="goal_kanban_view" model="ir.ui.view" >
|
|
<field name="name">Goal Kanban View</field>
|
|
<field name="model">gamification.goal</field>
|
|
<field name="arch" type="xml">
|
|
<kanban version="7.0" class="oe_background_grey">
|
|
<field name="type_id"/>
|
|
<field name="user_id"/>
|
|
<field name="current"/>
|
|
<field name="completeness"/>
|
|
<field name="state"/>
|
|
<field name="target_goal"/>
|
|
<field name="type_condition"/>
|
|
<templates>
|
|
<t t-name="kanban-box">
|
|
<div t-attf-class="oe_kanban_card oe_kanban_global_click oe_kanban_goal oe_kanban_color_#{record.state.raw_value}">
|
|
<div class="oe_kanban_content">
|
|
<div class="oe_kanban_left">
|
|
<img t-att-src="kanban_image('res.users', 'image_small', record.user_id.raw_value)" t-att-title="record.user_id.value" width="24" height="24" />
|
|
</div>
|
|
<h4 class="oe_goal_name"><field name="type_id"/></h4>
|
|
<t t-if="record.type_description.value">
|
|
<em><field name="type_description"/></em>
|
|
</t>
|
|
<div class="oe_goal_gauge">
|
|
<!-- <p>
|
|
<span class="oe_goal_current"><t t-esc="Math.round(record.current.raw_value)"/></span>/<span class="oe_goal_target"><t t-esc="Math.round(record.target_goal.raw_value)"/></span>
|
|
<t t-if="record.type_unit.value"><field name="type_unit"/></t>
|
|
<t t-if="record.type_condition.raw_value == 'higher'">
|
|
⟨<t t-esc="Math.round(record.completeness.raw_value)"/>%%⟩
|
|
</t>
|
|
<br/>
|
|
<span class="oe_goal_id"><t t-esc="record.id.raw_value"/></span>
|
|
|
|
<small>End: <field name="end_date" /></small>
|
|
</p> -->
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</t>
|
|
</templates>
|
|
</kanban>
|
|
</field>
|
|
</record>
|
|
|
|
|
|
<!-- Goal types view -->
|
|
|
|
<record id="goal_type_list_action" model="ir.actions.act_window">
|
|
<field name="name">Goal Types</field>
|
|
<field name="res_model">gamification.goal.type</field>
|
|
<field name="view_mode">tree,form</field>
|
|
<field name="help" type="html">
|
|
<p class="oe_view_nocontent_create">
|
|
Click to create a goal type.
|
|
</p>
|
|
<p>
|
|
A goal type is a technical model of goal defining a condition to reach.
|
|
The dates, values to reach or users are defined in goal instance.
|
|
</p>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="goal_type_list_view" model="ir.ui.view">
|
|
<field name="name">Goal Types List</field>
|
|
<field name="model">gamification.goal.type</field>
|
|
<field name="arch" type="xml">
|
|
<tree string="Goal types">
|
|
<field name="sequence" widget="handle"/>
|
|
<field name="name"/>
|
|
<field name="computation_mode"/>
|
|
</tree>
|
|
</field>
|
|
</record>
|
|
|
|
|
|
<record id="goal_type_form_view" model="ir.ui.view">
|
|
<field name="name">Goal Types Form</field>
|
|
<field name="model">gamification.goal.type</field>
|
|
<field name="arch" type="xml">
|
|
<form string="Goal types" version="7.0">
|
|
<sheet>
|
|
<label for="name" class="oe_edit_only"/>
|
|
<h1>
|
|
<field name="name" class="oe_inline"/>
|
|
</h1>
|
|
<label for="description" class="oe_edit_only"/>
|
|
<div>
|
|
<field name="description" class="oe_inline"/>
|
|
</div>
|
|
|
|
<group string="How to compute the goal?">
|
|
|
|
<field widget="radio" name="computation_mode"/>
|
|
|
|
<!-- Hide the fields below if manually -->
|
|
<field name="model_id" attrs="{'invisible':[('computation_mode','=','manually')], 'required':[('computation_mode','!=','manually')]}" class="oe_inline"/>
|
|
<field name="field_id" attrs="{'invisible':[('computation_mode','!=','sum')], 'required':[('computation_mode','=','sum')]}" domain="[('model_id','=',model_id)]" class="oe_inline"/>
|
|
<field name="field_date_id" attrs="{'invisible':[('computation_mode','=','manually')]}" domain="[('ttype', 'in', ('date', 'datetime')), ('model_id','=',model_id)]" class="oe_inline"/>
|
|
<field name="domain" attrs="{'invisible':[('computation_mode','=','manually')], 'required':[('computation_mode','!=','manually')]}" class="oe_inline"/>
|
|
|
|
<field name="condition" widget="radio"/>
|
|
</group>
|
|
<group string="Formating Options">
|
|
<field name="unit" class="oe_inline"/>
|
|
<field name="monetary" class="oe_inline"/>
|
|
</group>
|
|
<group string="Clickable Goals">
|
|
<field name="action_id" class="oe_inline"/>
|
|
<field name="res_id_field" attrs="{'invisible': [('action_id', '=', False)]}" class="oe_inline"/>
|
|
</group>
|
|
|
|
</sheet>
|
|
</form>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="goal_type_search_view" model="ir.ui.view">
|
|
<field name="name">Goal Type Search</field>
|
|
<field name="model">gamification.goal.type</field>
|
|
<field name="arch" type="xml">
|
|
<search string="Search Goal Types">
|
|
<field name="name"/>
|
|
<field name="model_id"/>
|
|
<field name="field_id"/>
|
|
<group expand="0" string="Group By...">
|
|
<filter string="Model" domain="[]" context="{'group_by':'model_id'}"/>
|
|
<filter string="Computation Mode" domain="[]" context="{'group_by':'computation_mode'}"/>
|
|
</group>
|
|
</search>
|
|
</field>
|
|
</record>
|
|
|
|
|
|
<record id="view_goal_wizard_update_current" model="ir.ui.view">
|
|
<field name="name">Update the current value of the Goal</field>
|
|
<field name="model">gamification.goal.wizard</field>
|
|
<field name="arch" type="xml">
|
|
<form string="Grant Badge To" version="7.0">
|
|
Set the current value you have reached for this goal
|
|
<group>
|
|
<field name="goal_id" invisible="1"/>
|
|
<field name="current" />
|
|
</group>
|
|
<footer>
|
|
<button string="Update" type="object" name="action_update_current" class="oe_highlight" /> or
|
|
<button string="Cancel" special="cancel" class="oe_link"/>
|
|
</footer>
|
|
</form>
|
|
</field>
|
|
</record>
|
|
|
|
|
|
<!-- menus in settings - technical feature required -->
|
|
<menuitem id="gamification_menu" name="Gamification Tools" parent="base.menu_administration" groups="base.group_no_one" />
|
|
<menuitem id="gamification_goal_menu" parent="gamification_menu" action="goal_list_action" sequence="0"/>
|
|
<menuitem id="gamification_plan_menu" parent="gamification_menu" action="goal_plan_list_action" sequence="10"/>
|
|
<menuitem id="gamification_type_menu" parent="gamification_menu" action="goal_type_list_action" sequence="20"/>
|
|
<menuitem id="gamification_badge_menu" parent="gamification_menu" action="badge_list_action" sequence="30"/>
|
|
|
|
</data>
|
|
</openerp>
|