diff options
Diffstat (limited to 'ishtar_common/models.py')
-rw-r--r-- | ishtar_common/models.py | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/ishtar_common/models.py b/ishtar_common/models.py index 0280a8fd7..98f4addb7 100644 --- a/ishtar_common/models.py +++ b/ishtar_common/models.py @@ -561,7 +561,8 @@ class UserDashboard: .order_by('person__person_types') class Dashboard: - def __init__(self, model, slice='year', fltr={}): + def __init__(self, model, slice='year', date_source=None, fltr={}): + # don't provide date_source if it is not relevant self.model = model self.total_number = model.get_total_number(fltr) history_model = self.model.history.model @@ -586,7 +587,12 @@ class Dashboard: obj.history_date = idx['hd'] last_lst.append(obj) # years - self.periods = model.get_periods(slice=slice, fltr=fltr) + base_kwargs = {'fltr':fltr} + if date_source: + base_kwargs['date_source'] = date_source + periods_kwargs = base_kwargs.copy() + 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: @@ -594,11 +600,11 @@ class Dashboard: # numbers if slice == 'year': self.values = [('year', _(u"Year"), reversed(self.periods))] - self.numbers = [model.get_by_year(year, fltr=fltr).count() + self.numbers = [model.get_by_year(year, **base_kwargs).count() for year in self.periods] self.values += [('number', _(u"Number"), reversed(self.numbers))] if slice == 'month': - self.numbers = [model.get_by_month(*period, fltr=fltr).count() + self.numbers = [model.get_by_month(*period, **base_kwargs).count() for period in self.periods] periods = reversed(self.periods) self.periods = ["%d-%s-01" % (period[0], ('0'+str(period[1])) |