- def expand_macro(self, formatter, name, content):
-
- # prepare options
- req = formatter.req
- options, query_args = parse_options(self.env.get_db_cnx(), content, copy.copy(DEFAULT_OPTIONS))
-
- if not options['startdate']:
- raise TracError("No start date specified!")
-
- # minimum time frame is one day
- if (options['startdate'] >= options['enddate']):
- options['enddate'] = options['startdate'] + timedelta(days=1)
-
- # consider user conditions
- original_query_args = copy.deepcopy(query_args)
- if options['condfield'] and options['cond']:
- query_args[options['condfield']] = options['cond']
-
- # calculate data
- timetable = self._calculate_timetable(options, query_args, req, self.estimation_field, 0)
- timetable_2 = {}
-
- # remove weekends
- if not options['weekends']:
- for date in timetable.keys():
- if date.weekday() >= 5:
- del timetable[date]
-
- if (options['graph2_field']):
- # consider user conditions
- query_args = original_query_args
- if options['graph2_condfield'] and options['graph2_cond']:
- query_args[options['graph2_condfield']] = options['graph2_cond']
-
- # the estimation field will not be accumulated for the days when the ticket has been closed
- always_consider_value = 1
- if options['graph2_field'] == self.estimation_field:
- always_consider_value = 0
-
- # calculate data
- timetable_2 = self._calculate_timetable(options, query_args, req, options['graph2_field'], always_consider_value)
- # remove weekends
- if not options['weekends']:
- for date in timetable_2.keys():
- if date.weekday() >= 5:
- del timetable_2[date]
-
- ...snip...