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))
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))