Esempio n. 1
0
def create():

    player_1 = User.get_or_none(User.username == current_user.username)
    p2_name = request.form["p2_name"]

    habit_a_name = request.form.get('habit_1_name')
    habit_a_frequency = request.form.get('habit_1_value')
    habit_b_name = request.form.get('habit_2_name')
    habit_b_frequency = request.form.get('habit_2_value')
    habit_c_name = request.form.get('habit_3_name')
    habit_c_frequency = request.form.get('habit_3_value')

    #error handle
    if p2_name == "":
        flash("Please enter a player username!", "danger")
        return redirect(url_for('games.new'))
    elif p2_name == player_1.username:
        flash(
            "You can not invite yourself for a game. Please choose another user.",
            "danger")
        return redirect(url_for('games.new'))
    else:
        player_2 = User.get_or_none(User.username == p2_name)
        if player_2 == None:
            flash("User doesn't exist. Please enter a valid username!",
                  "danger")
            return redirect(url_for('games.new'))
        else:
            new_game = Game(player_1_id=player_1.id, player_2_id=player_2.id)

    if (not habit_a_name) and (not habit_b_name) and (not habit_c_name):
        flash('Enter at least one habit!', "danger")
        return redirect(url_for('games.new'))

    if habit_a_name:
        if not habit_a_frequency:
            flash(
                'Select how many times per week you wish to complete habit for habit 1',
                "danger")
            return redirect(url_for('games.new'))
        else:
            habit_a = Habit(game=new_game,
                            user=player_1,
                            name=habit_a_name,
                            frequency=habit_a_frequency)
            new_game.save()
            habit_a.save()

    if habit_b_name:
        if not habit_b_frequency:
            flash(
                'Select how many times per week you wish to complete habit for habit 2',
                "danger")
            return redirect(url_for('games.'))
        else:
            habit_b = Habit(game=new_game,
                            user=player_1,
                            name=habit_b_name,
                            frequency=habit_b_frequency)
            new_game.save()
            habit_b.save()

    if habit_c_name:
        if not habit_c_frequency:
            flash(
                'Select how many times per week you wish to complete habit for habit 3',
                "danger")
            return redirect(url_for('games.new'))
        else:
            habit_c = Habit(game=new_game,
                            user=player_1,
                            name=habit_c_name,
                            frequency=habit_c_frequency)
            new_game.save()
            habit_c.save()

    return redirect(
        url_for('games.show', game_id=new_game.id, username=player_1.username))
Esempio n. 2
0
def create(username, game_id):
    
    # get current game for the page
    game = Game.get_or_none(Game.id == game_id)

    # get the user
    user = User.get_or_none(User.username == username)

    # get response for challenge - Accept or Decline
    challenge_response = request.form.get('challenge-response')

    # save habits if user clicker Accept
    if challenge_response == 'Accept':

        # get form inputs
        habit_1_value = request.form.get('habit-1-value')
        habit_2_value = request.form.get('habit-2-value')
        habit_3_value = request.form.get('habit-3-value')

        habit_1_frequency = request.form.get('habit-1-frequency')
        habit_2_frequency = request.form.get('habit-2-frequency')
        habit_3_frequency = request.form.get('habit-3-frequency')

        # save habit only if field populated
        if habit_1_value:
            if not habit_1_frequency:
                print('error')
            else:
                habit_1 = Habit(game=game,
                                user=user,
                                name=habit_1_value,
                                frequency=habit_1_frequency)
                habit_1.save()
        
        # save habit only if field populated
        if habit_2_value:
            if not habit_2_frequency:
                print('error')
            else:
                habit_2 = Habit(game=game,
                                user=user,
                                name=habit_2_value,
                                frequency=habit_2_frequency)
                habit_2.save()
        
        # save habit only if field populated
        if habit_3_value:
            if not habit_3_frequency:
                print('error')
            else:
                habit_3 = Habit(game=game,
                                user=user,
                                name=habit_3_value,
                                frequency=habit_3_frequency)
                habit_3.save()

        # set game.accepted to True
        game.accepted = True
        game.save()

        # start asynchronus loop for rounds - first call beginning immediately
        async_create_round.delay(game_id)

        return redirect( url_for('games.show', game_id=game_id, username=username))

    else:
        # destroy game
        game.delete_instance(recursive=True)
        return redirect( url_for('games.index', username=username))