[MOV] gamification: reorder and rename view files
Purpose of this commit is to rename and reorder views by main model. It allows to better understand module organization and find views one may have to update. Task-2678295 Part-of: odoo/odoo#79599
This commit is contained in:
@@ -22,9 +22,15 @@ Both goals and badges are flexibles and can be adapted to a large range of modul
|
||||
'data': [
|
||||
'wizard/update_goal.xml',
|
||||
'wizard/grant_badge.xml',
|
||||
'views/badge.xml',
|
||||
'views/challenge.xml',
|
||||
'views/goal.xml',
|
||||
'views/res_users_views.xml',
|
||||
'views/gamification_karma_rank_views.xml',
|
||||
'views/gamification_karma_tracking_views.xml',
|
||||
'views/gamification_badge_views.xml',
|
||||
'views/gamification_badge_user_views.xml',
|
||||
'views/gamification_goal_views.xml',
|
||||
'views/gamification_goal_definition_views.xml',
|
||||
'views/gamification_challenge_views.xml',
|
||||
'views/gamification_challenge_line_views.xml',
|
||||
'data/cron.xml',
|
||||
'security/gamification_security.xml',
|
||||
'security/ir.model.access.csv',
|
||||
@@ -32,9 +38,6 @@ Both goals and badges are flexibles and can be adapted to a large range of modul
|
||||
'data/goal_base.xml',
|
||||
'data/badge.xml',
|
||||
'data/gamification_karma_rank_data.xml',
|
||||
'views/gamification_karma_rank_views.xml',
|
||||
'views/gamification_karma_tracking_views.xml',
|
||||
'views/res_users_views.xml',
|
||||
],
|
||||
'demo': [
|
||||
'data/gamification_karma_rank_demo.xml',
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo><data>
|
||||
|
||||
<record id="badge_user_kanban_view" model="ir.ui.view" >
|
||||
<field name="name">Badge User Kanban View</field>
|
||||
<field name="model">gamification.badge.user</field>
|
||||
<field name="arch" type="xml">
|
||||
<kanban class="oe_background_grey">
|
||||
<field name="badge_name"/>
|
||||
<field name="badge_id"/>
|
||||
<field name="user_id"/>
|
||||
<field name="comment"/>
|
||||
<field name="create_date"/>
|
||||
<templates>
|
||||
<t t-name="kanban-box">
|
||||
<div class="oe_kanban_card oe_kanban_global_click oe_kanban_badge oe_kanban_color_white o_kanban_gamification">
|
||||
<div class="o_kanban_content">
|
||||
<div class="o_kanban_image">
|
||||
<a type="open"><img t-att-src="kanban_image('gamification.badge', 'image_1024', record.badge_id.raw_value)" t-att-title="record.badge_name.value" t-att-alt="record.badge_name.value" /></a>
|
||||
</div>
|
||||
<div class="oe_kanban_details">
|
||||
<h4 class="mt0 mb0">
|
||||
<a class="o_kanban_record_title" type="open"><t t-esc="record.badge_name.raw_value" /></a>
|
||||
</h4>
|
||||
<t t-if="record.comment.raw_value">
|
||||
<p class="o_kanban_record_subtitle"><em><field name="comment"/></em></p>
|
||||
</t>
|
||||
<p>Granted by <a type="open"><field name="create_uid" /></a> the <t t-esc="moment(record.create_date.raw_value).format('L')" /></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</t>
|
||||
</templates>
|
||||
</kanban>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</data></odoo>
|
||||
+1
-37
@@ -1,3 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<!-- Badge views -->
|
||||
<record id="gamification_badge_view_search" model="ir.ui.view">
|
||||
@@ -162,41 +163,4 @@
|
||||
</kanban>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
<!-- Badge user viewss -->
|
||||
|
||||
<record id="badge_user_kanban_view" model="ir.ui.view" >
|
||||
<field name="name">Badge User Kanban View</field>
|
||||
<field name="model">gamification.badge.user</field>
|
||||
<field name="arch" type="xml">
|
||||
<kanban class="oe_background_grey">
|
||||
<field name="badge_name"/>
|
||||
<field name="badge_id"/>
|
||||
<field name="user_id"/>
|
||||
<field name="comment"/>
|
||||
<field name="create_date"/>
|
||||
<templates>
|
||||
<t t-name="kanban-box">
|
||||
<div class="oe_kanban_card oe_kanban_global_click oe_kanban_badge oe_kanban_color_white o_kanban_gamification">
|
||||
<div class="o_kanban_content">
|
||||
<div class="o_kanban_image">
|
||||
<a type="open"><img t-att-src="kanban_image('gamification.badge', 'image_1024', record.badge_id.raw_value)" t-att-title="record.badge_name.value" t-att-alt="record.badge_name.value" /></a>
|
||||
</div>
|
||||
<div class="oe_kanban_details">
|
||||
<h4 class="mt0 mb0">
|
||||
<a class="o_kanban_record_title" type="open"><t t-esc="record.badge_name.raw_value" /></a>
|
||||
</h4>
|
||||
<t t-if="record.comment.raw_value">
|
||||
<p class="o_kanban_record_subtitle"><em><field name="comment"/></em></p>
|
||||
</t>
|
||||
<p>Granted by <a type="open"><field name="create_uid" /></a> the <t t-esc="moment(record.create_date.raw_value).format('L')" /></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</t>
|
||||
</templates>
|
||||
</kanban>
|
||||
</field>
|
||||
</record>
|
||||
</odoo>
|
||||
@@ -0,0 +1,15 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo><data>
|
||||
|
||||
<record id="challenge_line_list_view" model="ir.ui.view">
|
||||
<field name="name">Challenge line list</field>
|
||||
<field name="model">gamification.challenge.line</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Challenge Lines" >
|
||||
<field name="definition_id"/>
|
||||
<field name="target_goal" string="Target"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</data></odoo>
|
||||
+3
-30
@@ -1,9 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<record id="challenge_list_view" model="ir.ui.view">
|
||||
<field name="name">Challenges List</field>
|
||||
<field name="model">gamification.challenge</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Goal definitions" decoration-info="state == 'draft'" decoration-muted="state == 'done'">
|
||||
<tree string="Challenges" decoration-info="state == 'draft'" decoration-muted="state == 'done'">
|
||||
<field name="name"/>
|
||||
<field name="period"/>
|
||||
<field name="manager_id"/>
|
||||
@@ -12,26 +13,11 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="goals_from_challenge_act" model="ir.actions.act_window">
|
||||
<field name="res_model">gamification.goal</field>
|
||||
<field name="name">Related Goals</field>
|
||||
<field name="view_mode">kanban,tree,form</field>
|
||||
<field name="context">{'search_default_group_by_definition': True, 'search_default_inprogress': True, 'search_default_challenge_id': active_id, 'default_challenge_id': active_id}</field>
|
||||
<field name="help" type="html">
|
||||
<p class="o_view_nocontent_empty_folder">
|
||||
No goal found
|
||||
</p><p>
|
||||
There is no goal associated to this challenge matching your search.
|
||||
Make sure that your challenge is active and assigned to at least one user.
|
||||
</p>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="challenge_form_view" model="ir.ui.view">
|
||||
<field name="name">Challenge Form</field>
|
||||
<field name="model">gamification.challenge</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Goal definitions">
|
||||
<form string="Challenge">
|
||||
<header>
|
||||
<button string="Start Challenge" type="object" name="action_start" states="draft" class="oe_highlight"/>
|
||||
<button string="Refresh Challenge" type="object" name="action_check" states="inprogress"/>
|
||||
@@ -195,19 +181,6 @@
|
||||
<field name="view_id" ref="challenge_form_view"/>
|
||||
</record>
|
||||
|
||||
<!-- Line -->
|
||||
<record id="challenge_line_list_view" model="ir.ui.view">
|
||||
<field name="name">Challenge line list</field>
|
||||
<field name="model">gamification.challenge.line</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Challenge Lines" >
|
||||
<field name="definition_id"/>
|
||||
<field name="target_goal" string="Target"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="challenge_search_view" model="ir.ui.view">
|
||||
<field name="name">Challenge Search</field>
|
||||
<field name="model">gamification.challenge</field>
|
||||
@@ -0,0 +1,97 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<record id="goal_definition_list_action" model="ir.actions.act_window">
|
||||
<field name="name">Goal Definitions</field>
|
||||
<field name="res_model">gamification.goal.definition</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="help" type="html">
|
||||
<p class="o_view_nocontent_smiling_face">
|
||||
Create a new goal definition
|
||||
</p><p>
|
||||
A goal definition is a technical specification of a condition to reach.
|
||||
The dates, values to reach or users are defined in goal instance.
|
||||
</p>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="goal_definition_list_view" model="ir.ui.view">
|
||||
<field name="name">Goal Definitions List</field>
|
||||
<field name="model">gamification.goal.definition</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Goal Definitions">
|
||||
<field name="name"/>
|
||||
<field name="computation_mode"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="goal_definition_form_view" model="ir.ui.view">
|
||||
<field name="name">Goal Definitions Form</field>
|
||||
<field name="model">gamification.goal.definition</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Goal definitions">
|
||||
<sheet>
|
||||
<label for="name"/>
|
||||
<h1>
|
||||
<field name="name" placeholder="e.g. Get started"/>
|
||||
</h1>
|
||||
<label for="description"/>
|
||||
<div>
|
||||
<field name="description" placeholder="e.g. Register to the platform" class="oe_inline"/>
|
||||
</div>
|
||||
|
||||
<group string="How is the goal computed?" name="compute_details">
|
||||
|
||||
<field widget="radio" name="computation_mode"/>
|
||||
|
||||
<!-- Hide the fields below if manually -->
|
||||
<field name="model_id" class="oe_inline"
|
||||
attrs="{'invisible':[('computation_mode','not in',('sum', 'count'))], 'required':[('computation_mode','in',('sum', 'count'))]}"/>
|
||||
<field name="model_inherited_ids" invisible="1"/>
|
||||
<field name="field_id" class="oe_inline"
|
||||
attrs="{'invisible':[('computation_mode','!=','sum')], 'required':[('computation_mode','=','sum')]}"/>
|
||||
<field name="field_date_id" class="oe_inline" attrs="{'invisible':[('computation_mode','not in',('sum', 'count'))]}"/>
|
||||
<field name="domain" attrs="{'invisible':[('computation_mode','not in',('sum', 'count'))], 'required':[('computation_mode','in',('sum', 'count'))]}" class="oe_inline"/>
|
||||
<field name="compute_code" attrs="{'invisible':[('computation_mode','!=','python')], 'required':[('computation_mode','=','python')]}"/>
|
||||
<field name="condition" widget="radio"/>
|
||||
</group>
|
||||
<group string="Optimisation" name="optimisation" attrs="{'invisible': [('computation_mode', 'not in', ('sum', 'count'))]}">
|
||||
<field name="batch_mode" />
|
||||
<div colspan="2">In batch mode, the domain is evaluated globally. If enabled, do not use keyword 'user' in above filter domain.</div>
|
||||
<field name="batch_distinctive_field" attrs="{'invisible': [('batch_mode', '=', False)], 'required': [('batch_mode', '=', True)]}"
|
||||
domain="[('model_id', '=', model_id)]" class="oe_inline" />
|
||||
<field name="batch_user_expression" attrs="{'invisible': [('batch_mode', '=', False)], 'required': [('batch_mode', '=', True)]}" class="oe_inline"
|
||||
placeholder="e.g. user.partner_id.id"/>
|
||||
</group>
|
||||
<group string="Formatting Options" name="format_options">
|
||||
<field name="display_mode" widget="radio" />
|
||||
<field name="suffix" placeholder="e.g. days" class="oe_inline"/>
|
||||
<field name="monetary"/>
|
||||
</group>
|
||||
<group string="Clickable Goals" name="clickable_goals" attrs="{'invisible': [('computation_mode', '=', 'manually')]}">
|
||||
<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_definition_search_view" model="ir.ui.view">
|
||||
<field name="name">Goal Definition Search</field>
|
||||
<field name="model">gamification.goal.definition</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Search Goal Definitions">
|
||||
<field name="name"/>
|
||||
<field name="model_id"/>
|
||||
<field name="field_id"/>
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Model" name="model" domain="[]" context="{'group_by':'model_id'}"/>
|
||||
<filter string="Computation Mode" name="computationmode" domain="[]" context="{'group_by':'computation_mode'}"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
</odoo>
|
||||
+17
-98
@@ -1,4 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
|
||||
<!-- Goal views -->
|
||||
<record id="goal_list_action" model="ir.actions.act_window">
|
||||
<field name="name">Goals</field>
|
||||
@@ -15,6 +17,21 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="goals_from_challenge_act" model="ir.actions.act_window">
|
||||
<field name="res_model">gamification.goal</field>
|
||||
<field name="name">Related Goals</field>
|
||||
<field name="view_mode">kanban,tree,form</field>
|
||||
<field name="context">{'search_default_group_by_definition': True, 'search_default_inprogress': True, 'search_default_challenge_id': active_id, 'default_challenge_id': active_id}</field>
|
||||
<field name="help" type="html">
|
||||
<p class="o_view_nocontent_empty_folder">
|
||||
No goal found
|
||||
</p><p>
|
||||
There is no goal associated to this challenge matching your search.
|
||||
Make sure that your challenge is active and assigned to at least one user.
|
||||
</p>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="goal_list_view" model="ir.ui.view">
|
||||
<field name="name">Goal List</field>
|
||||
<field name="model">gamification.goal</field>
|
||||
@@ -193,104 +210,6 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
<!-- Goal definitions view -->
|
||||
|
||||
<record id="goal_definition_list_action" model="ir.actions.act_window">
|
||||
<field name="name">Goal Definitions</field>
|
||||
<field name="res_model">gamification.goal.definition</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="help" type="html">
|
||||
<p class="o_view_nocontent_smiling_face">
|
||||
Create a new goal definition
|
||||
</p><p>
|
||||
A goal definition is a technical specification of a condition to reach.
|
||||
The dates, values to reach or users are defined in goal instance.
|
||||
</p>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="goal_definition_list_view" model="ir.ui.view">
|
||||
<field name="name">Goal Definitions List</field>
|
||||
<field name="model">gamification.goal.definition</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Goal Definitions">
|
||||
<field name="name"/>
|
||||
<field name="computation_mode"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="goal_definition_form_view" model="ir.ui.view">
|
||||
<field name="name">Goal Definitions Form</field>
|
||||
<field name="model">gamification.goal.definition</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Goal definitions">
|
||||
<sheet>
|
||||
<label for="name"/>
|
||||
<h1>
|
||||
<field name="name" placeholder="e.g. Get started"/>
|
||||
</h1>
|
||||
<label for="description"/>
|
||||
<div>
|
||||
<field name="description" placeholder="e.g. Register to the platform" class="oe_inline"/>
|
||||
</div>
|
||||
|
||||
<group string="How is the goal computed?" name="compute_details">
|
||||
|
||||
<field widget="radio" name="computation_mode"/>
|
||||
|
||||
<!-- Hide the fields below if manually -->
|
||||
<field name="model_id" class="oe_inline"
|
||||
attrs="{'invisible':[('computation_mode','not in',('sum', 'count'))], 'required':[('computation_mode','in',('sum', 'count'))]}"/>
|
||||
<field name="model_inherited_ids" invisible="1"/>
|
||||
<field name="field_id" class="oe_inline"
|
||||
attrs="{'invisible':[('computation_mode','!=','sum')], 'required':[('computation_mode','=','sum')]}"/>
|
||||
<field name="field_date_id" class="oe_inline" attrs="{'invisible':[('computation_mode','not in',('sum', 'count'))]}"/>
|
||||
<field name="domain" attrs="{'invisible':[('computation_mode','not in',('sum', 'count'))], 'required':[('computation_mode','in',('sum', 'count'))]}" class="oe_inline"/>
|
||||
<field name="compute_code" attrs="{'invisible':[('computation_mode','!=','python')], 'required':[('computation_mode','=','python')]}"/>
|
||||
<field name="condition" widget="radio"/>
|
||||
</group>
|
||||
<group string="Optimisation" name="optimisation" attrs="{'invisible': [('computation_mode', 'not in', ('sum', 'count'))]}">
|
||||
<field name="batch_mode" />
|
||||
<div colspan="2">In batch mode, the domain is evaluated globally. If enabled, do not use keyword 'user' in above filter domain.</div>
|
||||
<field name="batch_distinctive_field" attrs="{'invisible': [('batch_mode', '=', False)], 'required': [('batch_mode', '=', True)]}"
|
||||
domain="[('model_id', '=', model_id)]" class="oe_inline" />
|
||||
<field name="batch_user_expression" attrs="{'invisible': [('batch_mode', '=', False)], 'required': [('batch_mode', '=', True)]}" class="oe_inline"
|
||||
placeholder="e.g. user.partner_id.id"/>
|
||||
</group>
|
||||
<group string="Formatting Options" name="format_options">
|
||||
<field name="display_mode" widget="radio" />
|
||||
<field name="suffix" placeholder="e.g. days" class="oe_inline"/>
|
||||
<field name="monetary"/>
|
||||
</group>
|
||||
<group string="Clickable Goals" name="clickable_goals" attrs="{'invisible': [('computation_mode', '=', 'manually')]}">
|
||||
<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_definition_search_view" model="ir.ui.view">
|
||||
<field name="name">Goal Definition Search</field>
|
||||
<field name="model">gamification.goal.definition</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Search Goal Definitions">
|
||||
<field name="name"/>
|
||||
<field name="model_id"/>
|
||||
<field name="field_id"/>
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Model" name="model" domain="[]" context="{'group_by':'model_id'}"/>
|
||||
<filter string="Computation Mode" name="computationmode" domain="[]" context="{'group_by':'computation_mode'}"/>
|
||||
</group>
|
||||
</search>
|
||||
</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_challenge_menu" parent="gamification_menu" action="challenge_list_action" sequence="0"/>
|
||||
@@ -1,13 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<data>
|
||||
<!-- ACTIONS -->
|
||||
<record id="action_current_rank_users" model="ir.actions.act_window">
|
||||
<field name="name">Users</field>
|
||||
<field name="res_model">res.users</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="domain">[('rank_id', '=', active_id)]</field>
|
||||
</record>
|
||||
|
||||
<!-- Ranks views -->
|
||||
<record id="gamification_karma_ranks_action" model="ir.actions.act_window">
|
||||
|
||||
@@ -13,5 +13,13 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- ACTIONS -->
|
||||
<record id="action_current_rank_users" model="ir.actions.act_window">
|
||||
<field name="name">Users</field>
|
||||
<field name="res_model">res.users</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="domain">[('rank_id', '=', active_id)]</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</odoo>
|
||||
|
||||
Reference in New Issue
Block a user