Beispiel #1
0
def create_groups(season: str, week: int) -> None:
    if not (1 <= week <= 7):
        return
    group: Group = Group.objects.filter_by(season=season, week=week).first()
    if group:
        return
    players: List[Player] = Player.objects.filter_by(season=season).get()
    players_to_create: List[Group] = list()
    for region in Config.REGIONS:
        region_players = [player for player in players if player.region == region]
        if len(region_players) != 4 * 4:
            raise PlayerInRegionNot16(region_players)
        for group_index in range(0, 4):
            group_players = random.sample(region_players, k=4)
            region_players = [player for player in region_players if player not in group_players]
            for player in group_players:
                group_player = Group()
                group_player.player = player.name
                group_player.week = week
                group_player.season = season
                group_player.group = Config.GROUPS[group_index]
                group_player.region = player.region
                players_to_create.append(group_player)
    Group.objects.create_all(Group.objects.to_dicts(players_to_create))