summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ishtar_common/models.py15
1 files changed, 8 insertions, 7 deletions
diff --git a/ishtar_common/models.py b/ishtar_common/models.py
index 8d96e0894..3df557806 100644
--- a/ishtar_common/models.py
+++ b/ishtar_common/models.py
@@ -25,6 +25,7 @@ import datetime
from PIL import Image
import os
import tempfile
+import copy
from django.conf import settings
from django.core.exceptions import ObjectDoesNotExist, ValidationError
@@ -582,7 +583,7 @@ class DashboardFormItem(object):
q = cls.objects.filter(**{date_var+'__isnull':False})
if fltr:
q = q.filter(**fltr)
- return q.filter(**{date_var+'__year':year})
+ return q.filter(**{date_var+'__year':year}).distinct('pk')
@classmethod
def get_by_month(cls, year, month, fltr={}, date_source='creation'):
@@ -591,14 +592,14 @@ class DashboardFormItem(object):
if fltr:
q = q.filter(**fltr)
q = q.filter(**{date_var+'__year':year, date_var+'__month':month})
- return q
+ return q.distinct('pk')
@classmethod
def get_total_number(cls, fltr={}):
q = cls.objects
if fltr:
q = q.filter(**fltr)
- return q.count()
+ return q.distinct('pk').count()
class Dashboard:
def __init__(self, model, slice='year', date_source=None, show_detail=None,
@@ -632,14 +633,14 @@ class Dashboard:
base_kwargs = {'fltr':fltr.copy()}
if date_source:
base_kwargs['date_source'] = date_source
- periods_kwargs = base_kwargs.copy()
+ periods_kwargs = copy.deepcopy(base_kwargs)
periods_kwargs['slice'] = slice
self.periods = model.get_periods(**periods_kwargs)
self.periods = list(set(self.periods))
self.periods.sort()
if not self.total_number or not self.periods:
return
- kwargs_num = base_kwargs.copy()
+ kwargs_num = copy.deepcopy(base_kwargs)
self.serie_labels = [_(u"Total")]
# numbers
if slice == 'year':
@@ -659,8 +660,8 @@ class Dashboard:
for dpt in settings.ISHTAR_DPTS:
self.serie_labels.append(unicode(dpt))
idx = 'number_' + unicode(dpt)
- kwargs_num['fltr'] = {"towns__numero_insee__startswith":\
- unicode(dpt)}
+ kwargs_num['fltr']["towns__numero_insee__startswith"] = \
+ unicode(dpt)
numbers = [model.get_by_month(*p.split('-')[:2],
**kwargs_num).count()
for p in self.periods]