def test_interval_list_between_dates(self): from_date = DateTime('2008/10/23') to_date = DateTime('2008/11/03') aggregation_level = 'day' interval_list_dict = getIntervalListBetweenDates(from_date=from_date, to_date=to_date, keys={aggregation_level:True}) date_list = interval_list_dict.get(aggregation_level) self.assertEqual(len(date_list), 12) for index, date in enumerate(date_list): if index == 0: self.assertEqual(date, '2008-10-23') elif index == 1: self.assertEqual(date, '2008-10-24') elif index == 2: self.assertEqual(date, '2008-10-25') elif index == 3: self.assertEqual(date, '2008-10-26') elif index == 4: self.assertEqual(date, '2008-10-27') elif index == 5: self.assertEqual(date, '2008-10-28') elif index == 6: self.assertEqual(date, '2008-10-29') elif index == 7: self.assertEqual(date, '2008-10-30') elif index == 8: self.assertEqual(date, '2008-10-31') elif index == 9: self.assertEqual(date, '2008-11-01') elif index == 10: self.assertEqual(date, '2008-11-02') elif index == 11: self.assertEqual(date, '2008-11-03')
selection_columns = [('document_type', "Document Type")] if from_date is None: # get the minimum creation date in catalog select_expression = "MIN(creation_date)" group_by = "creation_date" from_date = DateTime( context.portal_catalog(select_expression=select_expression, group_by_expression=group_by, limit=1)[0][2]) # get period list between given date interval_list_dict = getIntervalListBetweenDates( from_date=from_date, to_date=to_date, keys={ 'year': aggregation_level == "year", 'month': aggregation_level == "month", 'week': aggregation_level == "week", 'day': aggregation_level == "day" }) interval_list = interval_list_dict[aggregation_level] # list columns of the listbox selection_columns.extend([(x, x) for x in interval_list]) selection_columns.append(('total', 'Total')) params = dict(period_list=interval_list) # stat columns of the listbox stat_columns = [ ('document_type', 'document_type'), ] + [(x, x) for x in interval_list] + [ ('total', 'total'),
aggregation_level = context.REQUEST.get('aggregation_level') from_date = context.REQUEST.get('from_date') to_date = context.REQUEST.get('at_date') selection_columns = [('document_type', "Document Type")] if from_date is None: # get the minimum creation date in catalog select_expression = "MIN(creation_date)" group_by = "creation_date" from_date = DateTime(context.portal_catalog(select_expression=select_expression, group_by_expression=group_by, limit=1)[0][2]) # get period list between given date interval_list_dict = getIntervalListBetweenDates(from_date=from_date, to_date=to_date, keys={'year':aggregation_level=="year", 'month':aggregation_level=="month", 'week' : aggregation_level=="week", 'day':aggregation_level=="day"}) interval_list = interval_list_dict[aggregation_level] # list columns of the listbox selection_columns.extend([(x,x) for x in interval_list]) selection_columns.append(('total', 'Total')) params=dict(period_list=interval_list) # stat columns of the listbox stat_columns = [('document_type','document_type'),]+[(x,x) for x in interval_list]+[('total', 'total'),] context.REQUEST.set('stat_columns', stat_columns) result.append(ReportSection( path=context.getPhysicalPath(), selection_columns=selection_columns,