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)
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])
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)