Ejemplo n.º 1
0
    def _populate_with_sprint_and_viewer_timezone(self, sprint_name, viewer_timezone):
        sprint = self._load_sprint(sprint_name, native=True)
        if sprint is None:
            return
        
        days_to_remove = self._days_to_remove_from_burndown(sprint, viewer_timezone)
        container = ValueObject(
            remaining_times = self._get_remaining_time_series(sprint_name),
            capacity_data = self._get_capacity(sprint, viewer_timezone, self._is_filtered_backlog(), self._is_point_burndown()),
            ticks = self._calculate_ticks(sprint, viewer_timezone, days_to_remove),
            weekend_data = self._get_weekend_starts(sprint.start, sprint.end, viewer_timezone),
            today_data = self._get_today_data(sprint.start, sprint.end, viewer_timezone),
        )
        self._compact_values_by_removing_days(container, days_to_remove)

        days_without_capacity_to_hide = ValuesPerTimeCompactor.final_shift(days_to_remove)
        container.trend_data = self._trend_line(container.remaining_times, sprint.end - days_without_capacity_to_hide)

        # REFACT: put container directly into data and then unsmart the values in the utc shifting method
        utc_remaining_times = self._smart_to_tuple_series(container.remaining_times)
        utc_capacity_data = self._smart_to_tuple_series(container.capacity_data)
        # need that in non utc form too to compact
        first_remaining_time = self._first_remaining_time(container.remaining_times)
        utc_ideal_data = self._calculate_ideal_burndown(utc_capacity_data, first_remaining_time, sprint)
        utc_trend_data = self._smart_to_tuple_series(container.trend_data)
        utc_ticks = self._smart_to_tuple_series(container.ticks)
        utc_weekend_data = self._smart_to_tuple_series(container.weekend_data)
        utc_today_data = self._smart_to_tuple_series(container.today_data)
        
        self.data.update(dict(
            utc_remaining_times=utc_remaining_times,
            utc_ideal_data=utc_ideal_data,
            utc_capacity_data=utc_capacity_data,
            utc_trend_data=utc_trend_data,
            utc_ticks=utc_ticks,
            utc_weekend_data=utc_weekend_data,
            utc_today_data=utc_today_data,
        ))
        self.burndown_data.update(dict(
            today_color=self._today_color(sprint, container.remaining_times, utc_ideal_data),
        ))