[IMP] ponctual goal type
bzr revid: mat@openerp.com-20130411092103-5sowdvkm09wbvhtv
This commit is contained in:
@@ -93,7 +93,7 @@
|
||||
<field name="rule_auth_user_ids" attrs="{'invisible': [('rule_auth','!=','users')]}" widget="many2many_tags" />
|
||||
<field name="rule_auth_badge_ids" attrs="{'invisible': [('rule_auth','!=','having')]}" widget="many2many_tags" />
|
||||
<field name="rule_max" attrs="{'invisible': [('rule_auth','=','nobody')]}" />
|
||||
<field name="rule_max_number" attrs="{'invisible': ['!',('rule_max','=',False),('rule_auth','=','nobody')]}"/>
|
||||
<field name="rule_max_number" attrs="{'invisible': ['|',('rule_max','=',False),('rule_auth','=','nobody')]}"/>
|
||||
</group>
|
||||
<group string="Automatic Rules">
|
||||
<field name="rule_automatic"/>
|
||||
|
||||
@@ -73,6 +73,8 @@ class gamification_goal_type(osv.Model):
|
||||
],
|
||||
string="Computation Mode",
|
||||
required=True),
|
||||
'ponctual': fields.boolean("Ponctual Goal",
|
||||
help="A non-numerical goal is displayed with only two states: TODO or Done."),
|
||||
'model_id': fields.many2one('ir.model',
|
||||
string='Model',
|
||||
help='The model object for the field to evaluate'),
|
||||
@@ -110,6 +112,7 @@ class gamification_goal_type(osv.Model):
|
||||
'computation_mode': 'manually',
|
||||
'domain': "[]",
|
||||
'monetary': False,
|
||||
'ponctual': False,
|
||||
}
|
||||
|
||||
|
||||
@@ -194,6 +197,8 @@ class gamification_goal(osv.Model):
|
||||
type='char', string='Type Condition'),
|
||||
'type_suffix': fields.related('type_id', 'full_suffix',
|
||||
type="char", string="Suffix"),
|
||||
'type_ponctual': fields.related('type_id', 'ponctual',
|
||||
type="boolean", string="Ponctual Goal"),
|
||||
}
|
||||
|
||||
_defaults = {
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
<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" />
|
||||
<field name="state" widget="statusbar" statusbar_visible="draft,inprogress,reached" />
|
||||
</header>
|
||||
<sheet>
|
||||
<group>
|
||||
@@ -138,17 +138,37 @@
|
||||
<field name="target_goal"/>
|
||||
<field name="type_condition"/>
|
||||
<field name="type_suffix"/>
|
||||
<field name="type_ponctual"/>
|
||||
<field name="start_date"/>
|
||||
<field name="end_date"/>
|
||||
<templates>
|
||||
<t t-name="kanban-box">
|
||||
<div t-attf-class="oe_kanban_card oe_kanban_global_click oe_kanban_goal">
|
||||
<div t-attf-class="oe_kanban_card oe_gamification_goal oe_kanban_goal">
|
||||
<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>
|
||||
<div class="oe_goal_gauge"></div>
|
||||
<div>
|
||||
<h4 class="oe_goal_name"><field name="type_id"/></h4>
|
||||
</div>
|
||||
<div class="oe_goal_state_block">
|
||||
<t t-if="!record.type_ponctual.value">
|
||||
<div class="oe_goal_gauge"></div>
|
||||
</t>
|
||||
<t t-if="record.type_ponctual.value">
|
||||
<p class="oe_e">
|
||||
<t t-if="record.state.raw_value=='reached'">
|
||||
W
|
||||
</t>
|
||||
<t t-if="record.state.raw_value=='inprogress' || record.state.raw_value=='inprogress_update'">
|
||||
N
|
||||
</t>
|
||||
<t t-if="record.state.raw_value=='failed'">
|
||||
X
|
||||
</t>
|
||||
</p>
|
||||
</t>
|
||||
</div>
|
||||
<p>
|
||||
<t t-if="record.type_description.value">
|
||||
<em><field name="type_description"/></em>
|
||||
@@ -227,6 +247,7 @@
|
||||
<field name="domain" attrs="{'invisible':[('computation_mode','=','manually')], 'required':[('computation_mode','!=','manually')]}" class="oe_inline"/>
|
||||
|
||||
<field name="condition" widget="radio"/>
|
||||
<field name="ponctual" />
|
||||
</group>
|
||||
<group string="Formating Options">
|
||||
<field name="unit" class="oe_inline"/>
|
||||
|
||||
@@ -165,10 +165,10 @@ class gamification_goal_plan(osv.Model):
|
||||
string='Next Report Date'),
|
||||
|
||||
'category': fields.selection([
|
||||
('hr', 'Human Ressources'),
|
||||
('hr', 'Human Ressources / Appraisals'),
|
||||
('other', 'Other'),
|
||||
],
|
||||
string="Category", help="Only HR plans can be accessed by managers", required=True)
|
||||
string="Appears in", help="Only HR plans can be accessed by managers", required=True)
|
||||
}
|
||||
|
||||
_defaults = {
|
||||
|
||||
@@ -112,7 +112,7 @@
|
||||
</div>
|
||||
</group>
|
||||
<group string="Category" groups="base.group_no_one">
|
||||
<field name="category" />
|
||||
<field name="category" widget="radio" />
|
||||
</group>
|
||||
</page>
|
||||
</notebook>
|
||||
|
||||
@@ -19,14 +19,21 @@
|
||||
border-radius: 2px;
|
||||
-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
.oe_goal_gauge {
|
||||
.oe_kanban_goal .oe_goal_state_block {
|
||||
width:200px;
|
||||
height:130px;
|
||||
margin: auto;
|
||||
margin-bottom: -30px;
|
||||
margin-bottom: -20px;
|
||||
}
|
||||
.oe_goal_gauge svg {
|
||||
margin-top: -30px;
|
||||
.oe_kanban_goal .oe_goal_state_block p {
|
||||
line-height: 70px;
|
||||
font-size: 3em;
|
||||
}
|
||||
.openerp .oe_kanban_view .oe_kanban_content .oe_goal_gauge:first-child {
|
||||
margin: auto; /* avoid margin-right: 16px; */
|
||||
}
|
||||
.oe_kanban_goal .oe_kanban_content .oe_goal_gauge svg {
|
||||
margin-top: -20px;
|
||||
}
|
||||
|
||||
|
||||
@@ -47,18 +54,17 @@
|
||||
border: solid 1px rgba(0,0,0,0.03);
|
||||
}
|
||||
|
||||
.openerp .oe_mail_wall_aside .oe_gamification_goal .oe_goal_reached:before {
|
||||
.openerp .oe_gamification_goal .oe_goal_reached:before {
|
||||
content: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3QMSCREbCamR5gAAAXhJREFUOMuV0z9rlEEQBvDf7htFFIwQBCvRQuFAJSJooY29VrH0E1hcCqNign8SYzAxRfTA0nyAg3wBK1GCKSwTK8G7j6AgiHl3LbLmwOQu8Wl2mZ15Zp6ZnWC/GMcrjBvBdTRkX4P/QdNZrGKkWN7sn+CuE5IvsqOyKFnRMhb3DJwsZ2VV5ZgoCt5qGdsyD8ITzGJSW3BVkAUdlZsu++0T/SU8xxQeuyj7LKEWJKcs6Px16y9harv0NVEQBZWmBR33e26Dm/hMW3BLLUvW/XJBlM31XIZMlNsi7pWa5jGjIbiBXBLd8UL+N0e0WIInvMNp8+Wltqx2SBJk06Z98HRnkUHTOZWPomEVojOiUZV26foP2XkHdD3aSRBxXDIsSRKyddmyGklQa5vRtbl7myprvrnisOBa0TuEgyBhziXwfneCrTG+9kDSkgQJSbaJ2ix42H9QYXvTakdEG4KThfanoKHS9XIvgt7KjspW8F2wIbhtSRr0Vf4AD6Nod0TaN4kAAAAASUVORK5CYII=);
|
||||
margin-left:-40px;
|
||||
margin-left:-20px;
|
||||
}
|
||||
.openerp .oe_mail_wall_aside .oe_gamification_goal .oe_goal_failed:before {
|
||||
.openerp .oe_gamification_goal .oe_goal_failed:before {
|
||||
content: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3QMVECkXmaDBcAAAAUxJREFUKM+N0jFrVEEUhuFnV1KICS7ExcLCSgiCYJXCxt5C8B+ohYVgYeUfMJBCUIydkCpRLG3EThSxU0ypxMZKYQkSzd7cO3dmLJxNNhckGTgMfHPe+c6ZOZ7Sb7gauOIIq+V2wwVjFjNtYhS4dgh0L1EnvhtzKbGdyQW+8R/ofmJc8r64Ra/hYuJHEbda7nSgB1PQRsVpc2j+xfnEZjncjtz9zLHIw0SdyZH3uwx/wmDq5oaFyKeJc2QzsVOgVzXDveRBp5fAucjbTJ5E5EWYhtDvPkJiC1878rdEdUAZHHQ7FVkrpdaJ35lQXJ8EZveST5a9Zr7lZYFS5HHF2cjztF/ys11OgDP0auYjbwrURFZGzMAvjkfW077z6z/MGjGMfCxQFXnU7fsdvcjq5FsSH1RcnkAty4eM3EqiyTTW6AeuB5aOOOTLgZt/AfLdvLh74DfrAAAAAElFTkSuQmCC);
|
||||
margin-left:-40px;
|
||||
margin-left:-20px;
|
||||
}
|
||||
.openerp .oe_mail_wall_aside .oe_gamification_goal .oe_goal_reached,
|
||||
.openerp .oe_mail_wall_aside .oe_gamification_goal .oe_goal_failed {
|
||||
text-decoration: line-through;
|
||||
padding-left: 20px;
|
||||
}
|
||||
|
||||
.openerp .oe_mail_wall .oe_mail_wall_aside ul {
|
||||
|
||||
Reference in New Issue
Block a user