Esempio n. 1
0
def tournaments_join(tournament_id):

    tournament = Tournament.query.get(tournament_id)

    user = User.query.get(current_user.id)
    tournament.players.append(user)

    if len(tournament.players) == tournament.playerCount:
        value = 0

        while value != tournament.playerCount:
            playersInRound = []
            game = Game(tournament.name)
            game.playerCount = 4
            game.done = False
            game.account_id = current_user.id
            playerCountValue = 0
            while playerCountValue != 4:
                randomPlayer = random.choice(tournament.players)
                if randomPlayer not in playersInRound and randomPlayer not in game.players:
                    game.players.append(randomPlayer)
                    playersInRound.append(randomPlayer)
                    playerCountValue += 1
            tournament.games.append(game)

            db.session().add(game)
            value += 1

    db.session().add(tournament)
    db.session().commit()

    return redirect(url_for("tournaments_index"))
Esempio n. 2
0
def index():
    unreviewed_games = []
    if current_user.is_authenticated:
        unreviewed_games = Game.find_all_unreviewed_games(current_user.id)

    top_games = Game.find_top_five_games()
    general_details = Game.find_general_details()
    
    return render_template("index.html", unreviewed_games = unreviewed_games, general_details = general_details,  top_games = top_games)
Esempio n. 3
0
def games_create():
    form = GameForm(request.form)

    if not form.validate():
        return render_template('games/new.html', form=form)

    new_game = Game(form.name.data)
    new_game.bgg = form.bgg.data

    db.session().add(new_game)
    db.session().commit()

    return redirect(url_for('games_index'))
Esempio n. 4
0
def games_create():
    game_form = GameForm(request.form)
    genre_form = GenreSelectionForm(request.form)

    if not (game_form.validate() and genre_form.validate()):
        return render_template("/games/new.html",
                               game_form=game_form,
                               genre_form=genre_form)

    game = Game(game_form.name.data, game_form.developer.data,
                game_form.description.data, game_form.year.data)
    db.session.add(game)
    db.session.commit()

    game.add_genres(genre_form.genre_ids.data)
    return redirect(url_for("games_index"))
Esempio n. 5
0
def games_index(page_number=1, sort_column=0, sort_direction="ASC"):
    columns = [
        "Game.id", "Game.name", "Game.developer", "Game.year",
        "COUNT(Review.points)", "AVG(Review.points)"
    ]
    possible_sort_column = request.args.get("sort_column")
    possible_sort_direction = request.args.get("sort_direction")

    if possible_sort_column:
        sort_column = possible_sort_column
    if possible_sort_direction:
        sort_direction = possible_sort_direction

    sort_column = parse_to_int(sort_column)
    page_number = parse_to_int(page_number)
    if page_number is None or sort_column is None or sort_direction not in [
            "ASC", "DESC"
    ]:
        return render_template("error.html",
                               error="Yrität antaa vääränlaisia parametreja")

    games_info = Game.find_all_info(page_number=page_number,
                                    order_column=columns[sort_column],
                                    order_direction=sort_direction)

    base_url = "/games/page"

    return render_template("games/list.html",
                           games_info=games_info,
                           title="Kaikki pelit",
                           page_number=page_number,
                           last_page=len(games_info) < GAME_RESULTS_PER_PAGE,
                           base_url=base_url,
                           sort_column=sort_column,
                           sort_direction=sort_direction)
def games_create():
    error = None
    form = GameForm()
    if form.validate_on_submit():
        try:
            g = Game(date=form.date.data,
                     opponent=form.opponent.data,
                     our_goals=form.our_goals.data,
                     opponent_goals=form.opponent_goals.data)
            g.team_id = current_user.team_id
            db.session.add(g)
            db.session.commit()
            flash("game added")
        except Exception as e:
            error = e
        # siirrytään pelin tilastojen syöttämiseen
        return redirect(url_for("stats_add", game_id=g.id))
    return render_template("/games/new.html", form=form, error=error)
Esempio n. 7
0
def games_createOrUpdate():
    if ('create' in request.form):
        form = GameForm(request.form)

        if not form.validate():
            return render_template("games/new.html", form=form)
        name = form.name.data
        tag = form.tag.data
        year, month, day = map(int, form.publication.data.split('-'))
        publication = datetime.date(year, month, day)
        game = Game(name, tag, publication)
        db.session().add(game)
        db.session().commit()
    elif ('edit' in request.form):
        form = GameEditForm(request.form)

        if not form.validate():
            return render_template("games/edit.html", form=form)
        oldName = form.oldName.data
        game = Game.query.filter_by(name=oldName).first()

        year, month, day = map(int, form.publication.data.split('-'))
        publication = datetime.date(year, month, day)
        game.name = form.name.data
        game.tag = form.tag.data
        game.flag = False
        game.publication = publication
        db.session().commit()

    return redirect(url_for("games_index"))
Esempio n. 8
0
def tag_games(tag_id, page_number=1, sort_column=0, sort_direction="ASC"):

    tag = Tag.query.filter(Tag.id == tag_id).first()

    if not tag:
        return render_template("error.html", error="Tagia ei ole olemassa")

    columns = [
        "Game.id", "Game.name", "Game.developer", "Game.year",
        "COUNT(Review.points)", "AVG(Review.points)"
    ]
    possible_sort_column = request.args.get("sort_column")
    possible_sort_direction = request.args.get("sort_direction")

    if possible_sort_column:
        sort_column = possible_sort_column
    if possible_sort_direction:
        sort_direction = possible_sort_direction

    sort_column = parse_to_int(sort_column)
    page_number = parse_to_int(page_number)
    if not (page_number is not None and sort_column is not None
            and sort_direction in ["ASC", "DESC"]):
        return render_template("error.html",
                               error="Yrität antaa vääränlaisia parametreja")

    games_info = Game.find_all_info({"tags": [int(tag_id)]},
                                    page_number=page_number,
                                    order_column=columns[sort_column],
                                    order_direction=sort_direction)

    base_url = "/tags/" + tag_id + "/games/page"

    return render_template("games/list.html",
                           games_info=games_info,
                           base_url=base_url,
                           page_number=page_number,
                           last_page=len(games_info) < GAME_RESULTS_PER_PAGE,
                           title="Tag: " + tag.name,
                           sort_column=sort_column,
                           sort_direction=sort_direction)
Esempio n. 9
0
def genres_view(genre_id, page_number=1, sort_column=0, sort_direction="ASC"):
    genre = Genre.query.filter_by(id=genre_id).first()
    if genre is None:
        return render_template("error.html", error="Genreä ei ole olemassa")

    columns = [
        "Game.id", "Game.name", "Game.developer", "Game.year",
        "COUNT(Review.points)", "AVG(Review.points)"
    ]
    possible_sort_column = request.args.get("sort_column")
    possible_sort_direction = request.args.get("sort_direction")

    if possible_sort_column:
        sort_column = possible_sort_column
    if possible_sort_direction:
        sort_direction = possible_sort_direction

    sort_column = parse_to_int(sort_column)
    page_number = parse_to_int(page_number)
    if page_number is None or sort_column is None or sort_direction not in [
            "ASC", "DESC"
    ]:
        return render_template("error.html",
                               error="Yrität antaa vääränlaisia parametreja")

    games_info = Game.find_all_info({"genres": [genre.id]},
                                    page_number=page_number,
                                    order_column=columns[sort_column],
                                    order_direction=sort_direction)
    base_url = "/genres/" + str(genre_id) + "/page"

    return render_template("games/list.html",
                           games_info=games_info,
                           title=("Genre: " + genre.name),
                           page_number=page_number,
                           last_page=len(games_info) < GAME_RESULTS_PER_PAGE,
                           base_url=base_url,
                           sort_column=sort_column,
                           sort_direction=sort_direction)
Esempio n. 10
0
def search(page_number=1):

    if request.method == "GET":
        form = SearchForm()
        if current_user.is_authenticated:
            form.set_tags_info(current_user)
        return render_template("search/search.html", form=form)

    form = SearchForm(request.form)

    # uuden formin luomisen jälkeen tagivaihtoehdot on uudelleenasetettava, tai saadaan virhe kun tämä lomake yritetään näyttää sivulla
    if current_user.is_authenticated:
        form.set_tags_info(current_user)
    else:
        form.tags.choices = []

    if not form.validate():
        tag_values = form.tags.data
        if current_user.is_authenticated:
            form.set_tags_info(current_user)
            form.tags.data = tag_values
        return render_template("search/search.html", form=form)

    search_parameters = {}

    if form.name.data != "":
        search_parameters["name"] = form.name.data

    if form.min_year.data is not None:
        search_parameters["min_year"] = form.min_year.data

    if form.max_year.data is not None:
        search_parameters["max_year"] = form.max_year.data

    if form.developer.data != "":
        search_parameters["developer"] = form.developer.data

    if form.genres.data:
        search_parameters["genres"] = tuple(form.genres.data)

    if form.tags.data:
        search_parameters["tags"] = tuple(form.tags.data)

    if form.min_average.data is not None:
        search_parameters[
            "min_average"] = form.min_average.data if os.environ.get(
                "HEROKU") else float(form.min_average.data)
    if form.max_average.data is not None:
        search_parameters[
            "max_average"] = form.max_average.data if os.environ.get(
                "HEROKU") else float(form.max_average.data)
    if form.min_count.data is not None:
        search_parameters["min_count"] = form.min_count.data
    if form.max_count.data is not None:
        search_parameters["max_count"] = form.max_count.data

    games_info = Game.find_all_info(search_parameters,
                                    page_number=int(page_number))

    return render_template("search/search.html",
                           form=form,
                           games_info=games_info,
                           page_number=int(page_number),
                           scroll="result_table",
                           last_page=len(games_info) < GAME_RESULTS_PER_PAGE)
Esempio n. 11
0
def index():
    game = Game.find_highest_rated()
    return render_template('index.html', game=game)