summaryrefslogtreecommitdiff
path: root/ishtar_common/models.py
diff options
context:
space:
mode:
Diffstat (limited to 'ishtar_common/models.py')
-rw-r--r--ishtar_common/models.py24
1 files changed, 19 insertions, 5 deletions
diff --git a/ishtar_common/models.py b/ishtar_common/models.py
index adad232d5..06d706cdd 100644
--- a/ishtar_common/models.py
+++ b/ishtar_common/models.py
@@ -2782,10 +2782,15 @@ class StatsCache(models.Model):
def update_stats(statscache, item, funcname):
if not settings.USE_BACKGROUND_TASK:
- statscache.values = getattr(item, funcname)()
+ raw_value = getattr(item, funcname)()
+ if not isinstance(raw_value, dict):
+ values = {"_raw_": raw_value}
+ else:
+ values = raw_value
+ statscache.values = values
statscache.updated = datetime.datetime.now()
statscache.save()
- return statscache.values
+ return values
now = datetime.datetime.now()
if statscache.update_requested and (
@@ -2810,7 +2815,12 @@ def _update_stats(app, model, model_pk, funcname):
item = model.objects.get(pk=model_pk)
except model.DoesNotExist:
return
- sc.values = getattr(item, funcname)()
+ raw_value = getattr(item, funcname)()
+ if not isinstance(raw_value, dict):
+ values = {"_raw_": raw_value}
+ else:
+ values = raw_value
+ sc.values = values
sc.update_requested = None
sc.updated = datetime.datetime.now()
sc.save()
@@ -2833,8 +2843,12 @@ class DashboardFormItem(object):
now = datetime.datetime.now()
if sc.values and (
sc.updated + datetime.timedelta(seconds=timeout)) > now:
- return sc.values
- return update_stats(sc, self, funcname)
+ values = sc.values
+ else:
+ values = update_stats(sc, self, funcname)
+ if "_raw_" in values:
+ return values["_raw_"]
+ return values
@classmethod
def get_periods(cls, slice='month', fltr={}, date_source='creation'):