diff options
-rw-r--r-- | ishtar_common/models.py | 15 |
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] |