def updateRotationArray(action, array): if action == 'add': if len(array) % 2 == 0: array.append(MiscFunctions.modAdd(array[-1]-1, 2, team_num)) else: array.append(array[len(array)-1]) return array elif action == 'delete': array.pop() return array
def updateIndividualRotation(individual_rotation): if action == AuthenticationActionType.ADD: if not len(individual_rotation) % 2: individual_rotation.append( MiscFunctions.modAdd(individual_rotation[-1] - 1, 2, self.event.event_team_number)) else: individual_rotation.append(individual_rotation[-1]) return individual_rotation elif action == AuthenticationActionType.DELETE: return individual_rotation[:-1]
def __rotationGenerator(self, tag_dict, team_dict, event_race_number, event_team_number): rand_array = random.sample(range(1, event_team_number + 1), event_team_number) result_dict = dict() for shift, tag in enumerate(tag_dict): team_sequence = dict() for team_num, team_id in enumerate(team_dict[tag]): team_sequence[team_id] = [ MiscFunctions.modAdd(rand_array[team_num] + shift, (race - race % 2), event_team_number) for race in range(event_race_number) ] result_dict[tag_dict[tag]] = team_sequence return result_dict
def regenerateRotation(self): rotation = dict() permutation = random.sample(range(1, self.event.event_team_number + 1), self.event.event_team_number) event_tags = EventTagAPI(self.request).verifySelf( legacy=False, event_tag_event_id=self.event.id) for boat_shift, tag in enumerate(event_tags): teams = TeamAPI(self.request).filterSelf(team_tag_id=tag.id) team_sequence = { team.id: [ MiscFunctions.modAdd(permutation[idx] + boat_shift, (race - race % 2), self.event.event_team_number) for race in range(self.event.event_race_number) ] for idx, team in enumerate(teams) } rotation[tag.id] = team_sequence return rotation