[FIX] do not insert in localdict if there is error
parent
07d788006e
commit
454eacbadc
|
@ -530,6 +530,7 @@ class MisReport(models.Model):
|
||||||
while True:
|
while True:
|
||||||
for kpi in compute_queue:
|
for kpi in compute_queue:
|
||||||
vals = []
|
vals = []
|
||||||
|
has_error = False
|
||||||
for expression in kpi.expression_ids:
|
for expression in kpi.expression_ids:
|
||||||
if expression.subkpi_id \
|
if expression.subkpi_id \
|
||||||
and expression.subkpi_id not in period.subkpi_ids:
|
and expression.subkpi_id not in period.subkpi_ids:
|
||||||
|
@ -538,15 +539,18 @@ class MisReport(models.Model):
|
||||||
kpi_eval_expression = aep.replace_expr(expression.name)
|
kpi_eval_expression = aep.replace_expr(expression.name)
|
||||||
vals.append(safe_eval(kpi_eval_expression, localdict))
|
vals.append(safe_eval(kpi_eval_expression, localdict))
|
||||||
except ZeroDivisionError:
|
except ZeroDivisionError:
|
||||||
|
has_error = True
|
||||||
vals.append(DataError(
|
vals.append(DataError(
|
||||||
'#DIV/0',
|
'#DIV/0',
|
||||||
'\n\n%s' % (traceback.format_exc(),)))
|
'\n\n%s' % (traceback.format_exc(),)))
|
||||||
except (NameError, ValueError):
|
except (NameError, ValueError):
|
||||||
|
has_error = True
|
||||||
recompute_queue.append(kpi)
|
recompute_queue.append(kpi)
|
||||||
vals.append(DataError(
|
vals.append(DataError(
|
||||||
'#ERR',
|
'#ERR',
|
||||||
'\n\n%s' % (traceback.format_exc(),)))
|
'\n\n%s' % (traceback.format_exc(),)))
|
||||||
except:
|
except:
|
||||||
|
has_error = True
|
||||||
vals.append(DataError(
|
vals.append(DataError(
|
||||||
'#ERR',
|
'#ERR',
|
||||||
'\n\n%s' % (traceback.format_exc(),)))
|
'\n\n%s' % (traceback.format_exc(),)))
|
||||||
|
@ -558,7 +562,8 @@ class MisReport(models.Model):
|
||||||
else:
|
else:
|
||||||
vals = SimpleArray(vals[0])
|
vals = SimpleArray(vals[0])
|
||||||
|
|
||||||
localdict[kpi.name] = vals
|
if not has_error:
|
||||||
|
localdict[kpi.name] = vals
|
||||||
res[kpi] = vals
|
res[kpi] = vals
|
||||||
|
|
||||||
if len(recompute_queue) == 0:
|
if len(recompute_queue) == 0:
|
||||||
|
|
Loading…
Reference in New Issue