Esempio n. 1
0
def games_players(id):
	game = model.Model().selectById(gameModel.Game, id)
	teamPlayers = getTeamPlayersByGameId(game.id)
	teams = model.Model().select(teamModel.Team).filter_by(gameId = game.id)
	players = model.Model().select(playerModel.Player).order_by(playerModel.Player.name)

	return render_template("games/players.html", game = game, teams = teams, players = players, teamPlayers = teamPlayers)
Esempio n. 2
0
def games_score(gameId, teamId, playerId, game, round, mark):

	model.Model().update(gameModel.Game, gameId, { "round": round })

	newMark = markModel.Mark()
	newMark.gameId = gameId
	newMark.teamId = teamId
	newMark.playerId = playerId
	newMark.game = game
	newMark.round = round
	newMark.createdAt = datetime.now()

	points = int(mark)

	if points == 20:
		newMark.twenty = 1
	elif points == 19:
		newMark.nineteen = 1
	elif points == 18:
		newMark.eighteen = 1
	elif points == 17:
		newMark.seventeen = 1
	elif points == 16:
		newMark.sixteen = 1
	elif points == 15:
		newMark.fifteen = 1
	elif points == 25:
		newMark.bullseye = 1

	model.Model().create(newMark)

	return Response(json.dumps({ "id": int(newMark.id) }), status = 200, mimetype = "application/json")
Esempio n. 3
0
def games_undo(gameId):
	marks = model.Model().select(markModel.Mark).filter_by(gameId = gameId).order_by(markModel.Mark.id.desc())

	if marks.count() > 0:
		mark = marks.first()
		model.Model().update(gameModel.Game, gameId, { "turn": mark.playerId })
		model.Model().delete(markModel.Mark, mark.id)

	return redirect("/games/%d/" % gameId)
Esempio n. 4
0
def getTeamPlayersByGameId(gameId):
	teams = model.Model().select(teamModel.Team).filter_by(gameId = gameId)

	teamIds = []
	for team in teams:
		teamIds.append(team.id)

	teamPlayers = model.Model().select(teamPlayerModel.TeamPlayer).filter(teamPlayerModel.TeamPlayer.teamId.in_(teamIds)).order_by("id")

	return teamPlayers
Esempio n. 5
0
def games_create():
	newGame = gameModel.Game(request.form["players"], 1, 1, False, 0, datetime.now())
	model.Model().create(newGame)

	teams = 2

	if newGame.players == 3:
		teams = 3

	for i in range(0, teams):
		newTeam = teamModel.Team(newGame.id)
		model.Model().create(newTeam)

	return redirect("/games/%d/players/" % newGame.id)
Esempio n. 6
0
def games_players_redo(id):
	teamPlayers = getTeamPlayersByGameId(id)

	for teamPlayer in teamPlayers:
		model.Model().delete(teamPlayerModel.TeamPlayer, teamPlayer.id)

	return redirect("/games/%d/players/" % id)
Esempio n. 7
0
def games_start(id):
	game = model.Model().selectById(gameModel.Game, id)

	team1Player1 = teamPlayerModel.TeamPlayer(newTeam1.id, request.form["team-1-player-1-id"])
	model.Model().create(team1Player1)

	team2Player1 = teamPlayerModel.TeamPlayer(newTeam2.id, request.form["team-2-player-1-id"])
	model.Model().create(team2Player1)

	if game.players == 4:
		team1Player2 = teamPlayerModel.TeamPlayer(newTeam1.id, request.form["team-1-player-2-id"])
		model.Model().create(team1Player2)

		team2Player2 = teamPlayerModel.TeamPlayer(newTeam2.id, request.form["team-2-player-2-id"])
		model.Model().create(team2Player2)

	return redirect("/games/%d/" % id)
Esempio n. 8
0
def players_create():
    newPlayer = playerModel.Player(request.form["name"])
    model.Model().create(newPlayer)

    gameId = request.form["gameId"]

    if gameId == "0":
        return redirect("/players/")
    else:
        return redirect("/games/" + str(gameId) + "/players/")
Esempio n. 9
0
def games_index():

	data = []

	games = model.Model().select(gameModel.Game).filter_by(ready = True).order_by(desc("createdAt"))

	for game in games:

		gameData = {
			"id": game.id,
			"date": "{:%b %d, %Y} ".format(game.createdAt),
			"time": "{:%I:%M %p}".format(game.createdAt).lower(),
			"teams": []
		}

		teams = model.Model().select(teamModel.Team).filter_by(gameId = game.id)

		for team in teams:

			teamData = {
				"id": team.id,
				"mark": 0,
				"players": [],
				"points": 0
			}

			players = model.Model().select(teamPlayerModel.TeamPlayer).filter_by(teamId = team.id)

			for player in players:
				user = model.Model().selectById(playerModel.Player, player.playerId)
				teamData["players"].append(user.name)

			gameData["teams"].append(teamData)

		data.append(gameData)

		gameData["teams"].sort(key = operator.itemgetter("mark"), reverse = True)

	return render_template("games/index.html", games = data)
Esempio n. 10
0
def games_next(id):
	game = model.Model().selectById(gameModel.Game, id)

	gameNum = game.game + 1

	if game.complete:
		return redirect("/")

	teamPlayers = getTeamPlayersByGameId(game.id)

	if game.players == 4:
		if gameNum == 2:
			turn = teamPlayers[2].playerId
		else:
			turn = teamPlayers[1].playerId
	else:
		if gameNum == 2:
			turn = teamPlayers[1].playerId
		else:
			turn = teamPlayers[0].playerId

	model.Model().update(gameModel.Game, game.id, { "game": gameNum, "round": 1, "turn": turn })

	return redirect("/games/%d/" % game.id)
Esempio n. 11
0
def players_delete(id):
    model.Model().delete(playerModel.Player, id)
    return redirect("/players/")
Esempio n. 12
0
def players_update(id):
    model.Model().update(playerModel.Player, id, request.form)
    return redirect("/players/")
Esempio n. 13
0
def players_edit(id):
    players = model.Model().selectById(playerModel.Player, id)
    return render_template("players/edit.html", player=players)
Esempio n. 14
0
def players_index():
    players = model.Model().select(playerModel.Player).order_by(
        playerModel.Player.name)
    return render_template("players/index.html", players=players)
Esempio n. 15
0
def games_board(id):
	game = model.Model().selectById(gameModel.Game, id)
	results = model.Model().select(resultModel.Result).filter_by(gameId = game.id)
	teams = model.Model().select(teamModel.Team).filter_by(gameId = game.id)


	data = {
		"id": int(game.id),
		"game": game.game,
		"round": game.round,
		"players": game.players,
		"turn": game.turn,
		"teams": [],
		"results": results
	}

	for team in teams:

		teamData = {
			"id": team.id,
			"players": [],
			"marks": {
				20: 0,
				19: 0,
				18: 0,
				17: 0,
				16: 0,
				15: 0,
				25: 0,
				"points": 0
			},
			"results": []
		}

		for i in range(1, 4):
			results = model.Model().select(resultModel.Result).filter_by(gameId = game.id, teamId = team.id, game = i)
			resultSet = {
				"score": 0,
				"win": 0,
				"loss": 0
			}

			if results.count() > 0:
				result = results.first()
				resultSet["score"] = result.score
				resultSet["win"] = result.win
				resultSet["loss"] = result.loss

			teamData["results"].append(resultSet)

		players = model.Model().select(teamPlayerModel.TeamPlayer).filter_by(teamId = team.id)

		for player in players:

			user = model.Model().selectById(playerModel.Player, player.playerId)

			teamData["players"].append({
				"id": user.id,
				"name": user.name
			})

		scored = {
			"twenty": 0,
			"nineteen": 0,
			"eighteen": 0,
			"seventeen": 0,
			"sixteen": 0,
			"fifteen": 0,
			"bullseye": 0
		}
		pointsScored = 0

		marks = model.Model().select(markModel.Mark).filter_by(gameId = game.id, teamId = team.id, game = game.game)

		for mark in marks:
			if mark.twenty:
				teamData["marks"][20] += 1
				scored["twenty"] += 1
				if scored["twenty"] > 3:
					pointsScored += 20
			elif mark.nineteen:
				teamData["marks"][19] += 1
				scored["nineteen"] += 1
				if scored["nineteen"] > 3:
					pointsScored += 19
			elif mark.eighteen:
				teamData["marks"][18] += 1
				scored["eighteen"] += 1
				if scored["eighteen"] > 3:
					pointsScored += 18
			elif mark.seventeen:
				teamData["marks"][17] += 1
				scored["seventeen"] += 1
				if scored["seventeen"] > 3:
					pointsScored += 17
			elif mark.sixteen:
				teamData["marks"][16] += 1
				scored["sixteen"] += 1
				if scored["sixteen"] > 3:
					pointsScored += 16
			elif mark.fifteen:
				teamData["marks"][15] += 1
				scored["fifteen"] += 1
				if scored["fifteen"] > 3:
					pointsScored += 15
			elif mark.bullseye:
				teamData["marks"][25] += 1
				scored["bullseye"] += 1
				if scored["bullseye"] > 3:
					pointsScored += 25

		teamData["marks"]["points"] = pointsScored

		data["teams"].append(teamData)

	return render_template("games/board.html", game = data)
Esempio n. 16
0
def games_play(id):
	team = model.Model().select(teamModel.Team).filter_by(gameId = id).first()
	teamPlayer = model.Model().select(teamPlayerModel.TeamPlayer).filter_by(teamId = team.id).first()
	game = model.Model().selectById(gameModel.Game, id)
	model.Model().update(gameModel.Game, game.id, { "ready": True, "turn": teamPlayer.playerId })
	return redirect("/games/%d/" % id)
Esempio n. 17
0
def gameResult(gameId, teamId, win, loss):
	model.Model().update(teamModel.Team, teamId, { "win": win, "loss": loss })
	if win == 1:
		model.Model().update(gameModel.Game, gameId, { "complete": 1 })
	return Response(json.dumps({ "id": teamId }), status = 200, mimetype = "application/json")
Esempio n. 18
0
def result(gameId, teamId, game, score, win, loss):
	newResult = resultModel.Result(gameId, teamId, game, score, win, loss, datetime.now())
	model.Model().create(newResult)
	return Response(json.dumps({ "id": gameId }), status = 200, mimetype = "application/json")
Esempio n. 19
0
def games_players_create(id):
	teamPlayer = teamPlayerModel.TeamPlayer(request.form["teamId"], request.form["playerId"])
	model.Model().create(teamPlayer)
	return Response(json.dumps({ "id": int(teamPlayer.id) }), status = 200, mimetype = "application/json")
Esempio n. 20
0
def players_details(id):
    player = model.Model().selectById(playerModel.Player, id)
    teamPlayers = model.Model().select(
        teamPlayerModel.TeamPlayer).filter_by(playerId=id)
    marks = model.Model().select(markModel.Mark).filter_by(playerId=id)

    session = model.Model().getSession()
    query = session.query(
        markModel.Mark.gameId, markModel.Mark.teamId,
        markModel.Mark.round).distinct(markModel.Mark.gameId).distinct(
            markModel.Mark.teamId).distinct(
                markModel.Mark.round).filter_by(playerId=id)
    rounds = len(query.all())

    teamIds = []
    for teamPlayer in teamPlayers:
        teamIds.append(teamPlayer.teamId)

    teams = model.Model().select(teamModel.Team).filter(
        teamModel.Team.id.in_(teamIds))

    wins = teams.filter_by(win=1).count()
    losses = teams.filter_by(loss=1).count()

    points = 0

    game = 0
    round = 0
    for mark in marks:
        if game != mark.gameId and round != mark.round:
            scored = {
                "twenty": 0,
                "nineteen": 0,
                "eighteen": 0,
                "seventeen": 0,
                "sixteen": 0,
                "fifteen": 0,
                "bullseye": 0
            }
            game = mark.gameId
            round = mark.round

        if mark.twenty:
            scored["twenty"] += 1
            if scored["twenty"] > 3:
                points += 20
        elif mark.nineteen:
            scored["nineteen"] += 1
            if scored["nineteen"] > 3:
                points += 19
        elif mark.eighteen:
            scored["eighteen"] += 1
            if scored["eighteen"] > 3:
                points += 18
        elif mark.seventeen:
            scored["seventeen"] += 1
            if scored["seventeen"] > 3:
                points += 17
        elif mark.sixteen:
            scored["sixteen"] += 1
            if scored["sixteen"] > 3:
                points += 16
        elif mark.fifteen:
            scored["fifteen"] += 1
            if scored["fifteen"] > 3:
                points += 15
        elif mark.bullseye:
            scored["bullseye"] += 1
            if scored["bullseye"] > 3:
                points += 25

    return render_template("players/details.html",
                           player=player,
                           teamPlayers=teamPlayers,
                           marks=marks,
                           wins=wins,
                           losses=losses,
                           points=points,
                           rounds=rounds)
Esempio n. 21
0
def games_turn(gameId, playerId):
	model.Model().update(gameModel.Game, gameId, { "turn": playerId })
	return Response(json.dumps({ "id": gameId }), status = 200, mimetype = "application/json")