Browse Source

add a css style expression on kpi

pull/90/head
laetitia.gangloff@acsone.eu 10 years ago
committed by Stéphane Bidoul
parent
commit
58e07b1731
  1. 10
      mis_builder/models/mis_builder.py
  2. 12
      mis_builder/static/src/xml/mis_widget.xml
  3. 1
      mis_builder/views/mis_builder.xml

10
mis_builder/models/mis_builder.py

@ -84,6 +84,7 @@ class mis_report_kpi(orm.Model):
translate=True),
'expression': fields.char(required=True,
string='Expression'),
'css_style': fields.char(string='CSS style'),
'type': fields.selection([('num', _('Numeric')),
('pct', _('Percentage')),
('str', _('String'))],
@ -183,7 +184,7 @@ class mis_report_kpi(orm.Model):
def _render_num(self, value, divider, dp, suffix, sign='-'):
divider_label = _get_selection_label(
self._columns['divider'].selection, divider)
fmt = '{:%s,.%df}%s%s' % (sign, dp, divider_label, suffix or '')
fmt = '{:%s,.%df}%s %s' % (sign, dp, divider_label, suffix or '')
value = round(value / float(divider or 1), dp) or 0
return fmt.format(value)
@ -469,11 +470,18 @@ class mis_report_instance_period(orm.Model):
kpi_val_comment = None
localdict[kpi.name] = kpi_val
try:
kpi_style = None
if kpi.css_style:
kpi_style = safe_eval(kpi.css_style, localdict)
except:
kpi_style = None
res[kpi.name] = {
'val': kpi_val,
'val_r': kpi_val_rendered,
'val_c': kpi_val_comment,
'style': kpi_style,
}
return res

12
mis_builder/static/src/xml/mis_widget.xml

@ -24,11 +24,13 @@
<t t-esc="c_value.kpi_name"/>
</div>
</th>
<td t-foreach="c_value.cols" t-as="value" class="rallign">
<label t-att="{'title': value_value.val_c}" class=" oe_form_label_help oe_align_right">
<t t-esc="value_value.val_r"/>
</label>
</td>
<t t-foreach="c_value.cols" t-as="value">
<td class="rallign" t-att="{'style': value_value.style}">
<label t-att="{'title': value_value.val_c}" class=" oe_form_label_help oe_align_right">
<t t-esc="value_value.val_r"/>
</label>
</td>
</t>
</tr>
</tbody>
<tfoot>

1
mis_builder/views/mis_builder.xml

@ -43,6 +43,7 @@
<field name="divider" attrs="{'invisible': [('type', '=', 'str')]}"/>
<field name="suffix"/>
<field name="compare_method" attrs="{'invisible': [('type', '=', 'str')]}"/>
<field name="css_style"/>
</tree>
</field>
</group>

Loading…
Cancel
Save