Esempio n. 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)
Esempio n. 2
0
def athlete_filter_submit(request):
    if request.POST:
        name = request.POST.get("name")
        age = request.POST.get("age")
        height = request.POST.get("height")
        weight = request.POST.get("weight")
        sex = request.POST.get("sex")
        team_id = request.POST.get("team_id")
        game_id = request.POST.get("game_id")
        event_id = request.POST.get("event_id")
        sport_id = request.POST.get("sport_id")
        city_id = request.POST.get("city_id")
        season_id = request.POST.get("season_id")
        gold = request.POST.get("gold")
        silver = request.POST.get("silver")
        bronze = request.POST.get("bronze")

        if filter_validate(name, age, height, weight, sex, team_id, game_id,
                           event_id, sport_id, city_id, season_id, gold,
                           silver, bronze):

            data = {
                'title':
                "Lista de atletas",
                'athletes':
                Athlete.filter(name, age, height, weight, sex, team_id,
                               game_id, event_id, sport_id, city_id, season_id,
                               gold, silver, bronze)
            }

            return render(request, 'athlete/list.html', data)
        else:
            messages.error(request, "Nenhum um filtro selecionado")

    return redirect('/athlete/filter')
Esempio n. 3
0
def update_athlete_submit(request):
    if request.POST and request.POST.get("id"):
        id = request.POST.get("id")
        name = request.POST.get("name")
        height = request.POST.get("height")
        weight = request.POST.get("weight")
        sex = request.POST.get("sex")
        team_id = request.POST.get("team_id")
        sport_id = request.POST.get("sport_id")

        if create_athlete_validate(name, height, weight):
            athlete = Athlete.update(id, name, height, weight, sex, team_id,
                                     sport_id)

            if athlete is None:
                messages.error(request, "Erro na atualização")
            else:
                return redirect("/athlete/view/?id={}".format(id))
        else:
            message_error(name, height, weight, request)

        return redirect('/athlete/update/{}'.format(id))
    else:
        messages.error(request, "Erro no post")

    return redirect('/athlete/filter')
Esempio n. 4
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])
Esempio n. 5
0
def athlete_delete(request, id):
    if id:
        if Athlete.delete(id) is False:
            messages.error(request, "Erro durante a exclusão")
        else:
            return redirect("/athlete/list/")
    else:
        messages.error(request, "Atleta nao encontrado")
    return redirect("/athlete/view/?id={}".format(id))
Esempio n. 6
0
def update_athlete(request, id):
    if id:
        data = {
            'title': "Alterar atleta",
            'title_h': "Atualização",
            'athlete': Athlete.get_by_id(id),
            'team': Country.list_all(),
            'sport': Sport.list_all(),
        }

    return render(request, 'athlete/create.html', data)
Esempio n. 7
0
def athlete_view(request):
    if request.GET and request.GET.get("id"):
        id = request.GET.get("id")

        data = {
            'title': "Visualizar atleta",
            'athlete': Athlete.get_all_info_by_id(id)
        }

        return render(request, 'athlete/view.html', data)

    return redirect('/athlete/filter')
Esempio n. 8
0
def filter(name, age, height, weight, sex, team_id, game_id, event_id, sport_id, city_id, season_id, gold, silver, bronze):
    athletes = []
    athletes_medal = []
    athletes_team = []
    athletes_sport = []
    athletes_age = []
    athletes_sex = []
    athletes_event = []
    athletes_games = []
    athletes_city= []
    athletes_season = []

    if team_id != "0":
        athletes_team = filter_by_team_id(team_id)

    if sport_id != "0":
        athletes_sport = filter_by_sport_id(sport_id)

    if age != "":
        athletes_age = EventParticipants.filter_get_athlete_age(age)

    if sex != "A":
        athletes_sex = filter_by_sex(sex)

    if gold is not None or silver is not None or bronze is not None:
        medals = Medal.filter(gold, silver, bronze)
        athletes_medal = EventParticipants.filter_get_athlete_medals(medals)

    if event_id != "0":
        game_events = GameEvent.filter_by_event(event_id)
        athletes_event = EventParticipants.filter_get_athlete_game_event(game_events)

    if game_id != "0":
        game_events = GameEvent.filter_by_game_id(game_id)
        athletes_games = EventParticipants.filter_get_athlete_game_event(game_events)

    if city_id != "0":
        games = Game.filter_by_city(city_id)
        if len(games) > 0:
            game_events = GameEvent.filter_by_game(games)
            athletes_city = EventParticipants.filter_get_athlete_game_event(game_events)

    if season_id != "0":
        games = Game.filter_by_season(season_id)
        if len(games) > 0:
            game_events = GameEvent.filter_by_game(games)
            athletes_season = EventParticipants.filter_get_athlete_game_event(game_events)

    if name != "" or age != "" or height != "" or weight != "":
        athletes = Athlete.filter_athletes(name, age, height, weight)

    return intersection(athletes, athletes_medal, athletes_team, athletes_sport, athletes_age, athletes_sex, athletes_event, athletes_games, athletes_city, athletes_season )
Esempio n. 9
0
def add_participation(request, id):
    if id:

        athlete = Athlete.get_by_id(id)
        participants = EventParticipants.filter_by_athlete(athlete)
        games_events = GameEvent.get_did_not_participate(participants)

        data = {
            'title': "Adicionar participacao em evento",
            'athlete': athlete,
            'games_events': games_events
        }

        return render(request, 'athlete/participation.html', data)

    return redirect("/athlete/filter/")
Esempio n. 10
0
def participation_athlete_submit(request):
    if request.POST and request.POST.get("id"):
        id = request.POST.get("id")
        age = request.POST.get("age")
        game_event_id = request.POST.get("game_event_id")
        medal_id = request.POST.get("medal_id")

        if age != "":
            athlete = Athlete.get_by_id(id)
            game_event = GameEvent.get_by_id(game_event_id)
            medal = Medal.get_by_id(medal_id)

            EventParticipants.create(athlete, age, game_event, medal)
            return redirect("/athlete/view/?id={}".format(id))
        else:
            messages.error(request, "* Idade não pode estar vazia")

    return redirect("/athlete/filter/")
Esempio n. 11
0
def create_athlete_submit(request):
    if request.POST:
        name = request.POST.get("name")
        height = request.POST.get("height")
        weight = request.POST.get("weight")
        sex = request.POST.get("sex")
        team_id = request.POST.get("team_id")
        sport_id = request.POST.get("sport_id")

        if create_athlete_validate(name, height, weight):
            athlete = Athlete.create(name, height, weight, sex, team_id,
                                     sport_id)

            if athlete is None:
                messages.error(request, "Erro no cadastro")
            else:
                return redirect("/athlete/view/?id={}".format(athlete.id))
        else:
            message_error(name, height, weight, request)

        return redirect('/athlete/create')
    else:
        messages.error(request, "Erro no post")
Esempio n. 12
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)
Esempio n. 13
0
def athlete_list(request):
    data = {'title': "Lista de atletas", 'athletes': Athlete.list_all()}

    return render(request, 'athlete/list.html', data)