Exemplo n.º 1
0
def submit_scores(game_stage, post_id):
    game_labels = Tournament.helper_game_labels(game_stage)

    if game_stage == "group":
        form = GroupStageForm()
    elif game_stage == "R16":
        form = R16StageForm()
    elif game_stage == "QF":
        form = QFStageForm()
    elif game_stage == "SF":
        form = SFStageForm()
    elif game_stage == "F":
        form = FStageForm()

    labels_and_form_items = zip(game_labels, form.games)

    # Retrieve CL tournament
    tournaments = Tournament.query.all()
    if len(tournaments) != 0:
        cl = tournaments[0]
    else:
        cl = Tournament()
        db.session.add(cl)
    cl.calculate_points()
    db.session.commit()

    games_info = {}
    teams_dict = cl.get_teams(game_stage)
    if teams_dict:
        for game_label in game_labels:
            temp = Tournament.helper_parse_game_label(game_label)
            games_info[game_label] = {
                "home_team": teams_dict[temp["home_team"]],
                "away_team": teams_dict[temp["away_team"]]
            }

    if form.validate_on_submit():
        if post_id:
            post = Post.query.filter_by(id=post_id).all()[0]
        else:
            post = Post(user_id=current_user.id, points=0)
        games_guess_dict = {}
        for game_guess in labels_and_form_items:
            games_guess_dict[game_guess[0]] = str(
                game_guess[1].data["home_result"]) + "vs" + str(
                    game_guess[1].data["away_result"])
            games_guess_dict[game_guess[0]] = {
                "result":
                str(game_guess[1].data["home_result"]) + "vs" +
                str(game_guess[1].data["away_result"]),
                "points":
                0
            }
        post.set_guess(game_stage, games_guess_dict)
        post.make_valid()
        cl.calculate_points_specific(post)
        db.session.add(post)
        db.session.commit()
        flash('Congratulations you submitted a bracket')
        app.logger.info('Congratulations you submitted a bracket')
        return redirect(
            url_for('submit_scores', game_stage=game_stage, post_id=post.id))

    return render_template('submit_scores.html',
                           title='Submit Group Stage',
                           form=form,
                           labels_and_form_items=labels_and_form_items,
                           games_info=games_info)
Exemplo n.º 2
0
def admin_submit_scores(game_stage):
    game_labels = Tournament.helper_game_labels(game_stage)

    if game_stage == "group":
        form = AdminGroupStageForm()
    elif game_stage == "R16":
        form = AdminR16StageForm()
    elif game_stage == "QF":
        form = AdminQFStageForm()
    elif game_stage == "SF":
        form = AdminSFStageForm()
    elif game_stage == "F":
        form = AdminFStageForm()

    labels_and_form_items = zip(game_labels, form.games)

    # Retrieve CL tournament
    tournaments = Tournament.query.all()
    if len(tournaments) != 0:
        cl = tournaments[0]
    else:
        cl = Tournament()
        db.session.add(cl)
    cl.calculate_points()
    db.session.commit()

    games_info = {}
    teams_dict = cl.get_teams(game_stage)

    if teams_dict:
        for game_label in game_labels:
            temp = Tournament.helper_parse_game_label(game_label)
            games_info[game_label] = {
                "home_team": teams_dict[temp["home_team"]],
                "away_team": teams_dict[temp["away_team"]]
            }

    if form.validate_on_submit():
        games_dict = {}
        for game in labels_and_form_items:
            games_dict[game[0]] = {
                "result":
                str(game[1].data["home_result"]) + "vs" +
                str(game[1].data["away_result"]),
                "played": (game[1].data["home_result"] != None
                           and game[1].data["home_result"] != None)
            }
        print(games_dict)
        cl.set_games(game_stage, games_dict)
        db.session.commit()
        app.logger.info('Updated Tournament')
        return redirect(url_for('admin_submit_scores', game_stage=game_stage))
    else:
        print("form not valid")
    posts = Post.query.order_by(desc('points')).all()
    return render_template('admin_submit_scores.html',
                           title='Admin',
                           form=form,
                           tournament=cl,
                           labels_and_form_items=labels_and_form_items,
                           games_info=games_info,
                           game_stage=game_stage)