From 800cfda277f2638b51b15e5b21a35e7b02358e2c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Bidoul?= Date: Sun, 1 May 2016 11:23:54 +0200 Subject: [PATCH] [IMP] mis_builder: give a description to sub kpis name is the python variable name, to be used (in the future) to reference sub-kpi values in expressions. description is the human-readable name to display in column headers. --- mis_builder/models/mis_builder.py | 31 +++++++++++++++++++++++++++++-- mis_builder/views/mis_builder.xml | 1 + 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/mis_builder/models/mis_builder.py b/mis_builder/models/mis_builder.py index 07f2be34..f7728623 100644 --- a/mis_builder/models/mis_builder.py +++ b/mis_builder/models/mis_builder.py @@ -398,9 +398,36 @@ class MisReportSubkpi(models.Model): sequence = fields.Integer() report_id = fields.Many2one('mis.report') - name = fields.Char(required=True) + name = fields.Char(size=32, required=True, + string='Name') + description = fields.Char(required=True, + string='Description', + translate=True) expression_ids = fields.One2many('mis.report.kpi.expression', 'subkpi_id') + @api.one + @api.constrains('name') + def _check_name(self): + if not _is_valid_python_var(self.name): + raise exceptions.Warning(_('The name must be a valid ' + 'python identifier')) + + @api.onchange('name') + def _onchange_name(self): + if self.name and not _is_valid_python_var(self.name): + return { + 'warning': { + 'title': 'Invalid name %s' % self.name, + 'message': 'The name must be a valid python identifier' + } + } + + @api.onchange('description') + def _onchange_description(self): + """ construct name from description """ + if self.description and not self.name: + self.name = _python_var(self.description) + @api.multi def unlink(self): for subkpi in self: @@ -1271,7 +1298,7 @@ class MisReportInstance(models.Model): if subkpis: for subkpi in subkpis: header[1]['cols'].append(dict( - name=subkpi.name, + name=subkpi.description, colspan=1, )) else: diff --git a/mis_builder/views/mis_builder.xml b/mis_builder/views/mis_builder.xml index 228e8c22..e5edf0b7 100644 --- a/mis_builder/views/mis_builder.xml +++ b/mis_builder/views/mis_builder.xml @@ -39,6 +39,7 @@ +