From 6c89a847920979be39dcde8032254118c8c1901e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Bidoul=20=28ACSONE=29?= Date: Tue, 11 Oct 2016 09:04:19 +0200 Subject: [PATCH] [FIX] mis_builder: fix comparison when there are no subkpis (#237) [FIX] mis_builder: fix comparison when there are no subkpis --- mis_builder/models/mis_report.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/mis_builder/models/mis_report.py b/mis_builder/models/mis_report.py index 8e9c3f5c..c6ecc64a 100644 --- a/mis_builder/models/mis_report.py +++ b/mis_builder/models/mis_report.py @@ -280,7 +280,7 @@ class KpiMatrix(object): col = self._cols[col_key] base_col = self._cols[base_col_key] common_subkpis = set(col.subkpis) & set(base_col.subkpis) - if not common_subkpis: + if (col.subkpis or base_col.subkpis) and not common_subkpis: raise UserError('Columns {} and {} are not comparable'. format(col.description, base_col.description)) @@ -295,15 +295,19 @@ class KpiMatrix(object): if cell_tuple is None and base_cell_tuple is None: continue if cell_tuple is None: - vals = [AccountingNone] * len(common_subkpis) + vals = [AccountingNone] * \ + (len(common_subkpis) or 1) else: vals = [cell.val for cell in cell_tuple - if cell.subcol.subkpi in common_subkpis] + if not common_subkpis or + cell.subcol.subkpi in common_subkpis] if base_cell_tuple is None: - base_vals = [AccountingNone] * len(common_subkpis) + base_vals = [AccountingNone] * \ + (len(common_subkpis) or 1) else: base_vals = [cell.val for cell in base_cell_tuple - if cell.subcol.subkpi in common_subkpis] + if not common_subkpis or + cell.subcol.subkpi in common_subkpis] comparison_cell_tuple = [] for val, base_val, comparison_subcol in \ izip(vals,