예제 #1
0
    def add_player(self):
        """
        Display the add_player menu
        Loop for each information to retrieve
        Name (name), Firstname (firstname), Date of Birth (dob), Sex (_genre)
        Then create a new player and save the list.
        """
        title = "Bienvenue dans le gestionnaire de tournois d'échec.\nAjout d'un joueur"
        subtitle = "Saisir dans l'ordre :\n"

        menu = {
            1: ('', "Nom du joueur"),
            2: ('', "Prénom du joueur"),
            3: ('', "Date de naissance (Format dd/mm/aaaa)"),
            4: ('', "Sexe (H/F)")
        }

        self.view_menu.display_menu(title=title,
                                    subtitle=subtitle,
                                    question=menu)

        choice = ('name', 'first_name', 'dob', '_genre')
        response = []

        for i in range(4):
            if 0 <= i <= 1:  # pour les question nom et prénom

                valid = self.ask_and_store_text(menu[i + 1][1] + ' : ')
                while not valid[0]:
                    valid = self.ask_and_store_text(menu[i + 1][1] + ' : ')
                response.append(valid[1])

            elif i == 2:  # pour la date de naissance
                valid = self.view_menu.input(menu[i + 1][1] + ' : ')
                while not self._control_user_input("dob", valid):
                    valid = self.view_menu.input(menu[i + 1][1] + ' : ')
                response.append(valid)

            elif i == 3:  # pour la saisie du genre
                valid = self.view_menu.input(menu[i + 1][1] + ' : ')
                while not self._control_user_input("_genre", valid):
                    valid = self.view_menu.input(menu[i + 1][1] + ' : ')
                response.append(valid)

            res = dict(zip(choice, response))
        Player(**res)
        Player.save_all_players()
        self.menu_players()
예제 #2
0
    def remove_player_tournament(self):
        """
        Method to remove the active status from the tournament

        1° Request the name and firstname of the player
        2° Search for the player if he is not already inactive in the tournament
        3° Request validation of the inactive status for the tournament
        """
        player = self.found_specific_player()
        if player is not None:
            if not player.status:
                self.view_menu.stand_by_msg(
                    "Attention {} {} n'est pas inscrit au "
                    "tournoi".format(player.name, player.first_name))
            else:
                valid = self.ask_and_store_text(
                    "Confirmez vous que {} {} "
                    "ne participe plus au tournoi ? (O/N)".format(
                        player.name, player.first_name))
                if valid[0]:
                    player.switch_player_tournament()
                    Player.save_all_players()