def current(cls): iter_ids = redis.lrange( Iteration.STATE_KEY.format(state='current'), 0, -1) for iter_id_ in iter_ids: ids = redis.smembers(Iteration.STORIES_LIST.format(pk=iter_id_)) for id_ in ids: yield cls.get(id_)
def iter_icebox(cls): ids = redis.smembers( cls.STATE_KEY.format( state='unscheduled' ) ) for id_ in ids: yield cls.get(id_)
def get_velocity_for_iteration(cls, iteration_id, with_team_strength=False): if iteration_id <= 0: return 0 elif iteration_id == 1: return cls.INITIAL_VELOCITY stories_ids = redis.smembers(cls.STORIES_LIST.format(pk=iteration_id)) team_strength = float(json.loads( redis.get(cls.ENTRY_KEY.format(pk=iteration_id)))['team_strength']) iteration_velocity = sum([ json.loads( redis.get(cls.STORY_KEY.format(pk=pk)) ).get('estimate', 0) for pk in stories_ids ]) if with_team_strength: return int(iteration_velocity / team_strength) else: return iteration_velocity