Example #1
0
def save_athlete(athlete, request):
    df = athlete.drop_duplicates("ID", keep='first')
    df[['Name', 'Sex']].fillna(value=" ", inplace=True)
    df['Height'].fillna(value=df['Height'].mean(), inplace=True)
    df['Weight'].fillna(value=df['Weight'].mean(), inplace=True)

    registered_country = Country.get_registered_regions()
    registered_sport = Sport.get_registered_sports()
    registered_athlete = Athlete.get_registered_athlete()

    message_except = "Erro ao cadastrar o atleta "
    for item in df.iterrows():
        if not region_not_exist(item[1]["NOC"], registered_country):
            if not sport_not_exist(item[1]["Sport"], registered_sport):

                sport_id = get_in_dataframe(item[1]["Sport"], "name",
                                            registered_sport)
                team_id = get_in_dataframe(item[1]["NOC"], "noc",
                                           registered_country)

                if athlete_not_exist(item[1]["Name"], item[1]["Sex"],
                                     item[1]["Height"], item[1]["Weight"],
                                     team_id, sport_id, registered_athlete):
                    try:
                        Athlete.create(item[1]["Name"], item[1]["Height"],
                                       item[1]["Weight"], item[1]["Sex"],
                                       team_id, sport_id)

                        registered_athlete = update_registered_athlete(
                            registered_athlete, item[1]["Name"],
                            item[1]["Sex"], item[1]["Height"],
                            item[1]["Weight"], team_id, sport_id)
                    except:
                        register_message(item[1]["ID"] + " " + item[1]["Name"],
                                         message_except, request)
Example #2
0
def update_registered_athlete(registered, name, sex, height, weight, team_id,
                              sport_id):
    if len(registered) == 0:
        return Athlete.get_registered_athlete()
    else:
        df = pd.DataFrame(
            [[0, name, height, weight, sex, team_id, sport_id]], [0],
            ["id", "name", "height", "weight", "sex", "team_id", "sport_id"])
        return pd.concat([registered, df])
Example #3
0
def save_event_participants(athlete, request):
    athlete[['Name', 'Sex', 'Medal']].fillna(value="", inplace=True)
    athlete['Height'].fillna(value=athlete['Height'].mean(), inplace=True)
    athlete['Weight'].fillna(value=athlete['Weight'].mean(), inplace=True)
    athlete['Age'].fillna(value=athlete['Age'].mean(), inplace=True)
    athlete.sort_values("Name", inplace=True)

    registered_country = Country.get_registered_regions()
    registered_sport = Sport.get_registered_sports()
    registered_athlete = Athlete.get_registered_athlete()
    registered_season = Season.get_registered_season()
    registered_city = City.get_registered_city()
    registered_events = Event.get_registered_events()
    registered_games = Game.get_registered_games()
    registered_game_event = GameEvent.get_registered_games_event()
    registered_participant = EventParticipants.get_registered_game_event_participant(
    )

    message_except = "Erro ao cadastrar o atleta no evento"
    for item in athlete.iterrows():
        if not region_not_exist(item[1]["NOC"], registered_country):
            if not sport_not_exist(item[1]["Sport"], registered_sport):

                season_id = get_in_dataframe(item[1]["Season"], "name",
                                             registered_season)
                city_id = get_in_dataframe(item[1]["City"], "name",
                                           registered_city)
                event_id = get_in_dataframe(item[1]["Event"], "name",
                                            registered_events)
                game_id = get_game_by_data(item[1]["Year"], season_id, city_id,
                                           registered_games)

                if not game_event_not_exist(game_id, event_id,
                                            registered_game_event):

                    sport_id = get_in_dataframe(item[1]["Sport"], "name",
                                                registered_sport)
                    team_id = get_in_dataframe(item[1]["NOC"], "noc",
                                               registered_country)

                    if not athlete_not_exist(
                            item[1]["Name"], item[1]["Sex"], item[1]["Height"],
                            item[1]["Weight"], team_id, sport_id,
                            registered_athlete):

                        athlete_id = get_athlete_id_in_dataframe(
                            item[1]["Name"], item[1]["Sex"], item[1]["Height"],
                            item[1]["Weight"], team_id, sport_id,
                            registered_athlete)
                        game_event_id = get_game_event_in_dataframe(
                            game_id, event_id, registered_game_event)

                        if event_participant_not_exist(athlete_id,
                                                       item[1]["Age"],
                                                       game_event_id,
                                                       registered_participant):
                            try:
                                game_event = GameEvent.get_game_event_by_id(
                                    game_event_id)
                                athlete = Athlete.get_by_id(athlete_id)
                                medal = Medal.get_medal(item[1]["Medal"])
                                EventParticipants.create(
                                    athlete, item[1]["Age"], game_event, medal)
                                registered_participant = update_registered_participant(
                                    registered_athlete, athlete_id,
                                    item[1]["Age"], game_event_id)
                            except:
                                register_message(
                                    item[1]["Name"] + " " + item[1]["Event"],
                                    message_except, request)