Exemplo n.º 1
0
def ajouter_ou_supprimer_compte(contenu):
    menu_choix_ajouter_supprimer = {}
    menu_choix_ajouter_supprimer["individu"] = contenu["individu"]

    if menu_choix_ajouter_supprimer["individu"].est_connecte:

        menu_choix_ajouter_supprimer[
            "question"] = "Voulez vous créer ou supprimer un compte ?"
        menu_choix_ajouter_supprimer["options"] = [
            "Créer", "Supprimer", "RETOUR", "QUITTER"
        ]
        menu_choix_ajouter_supprimer["chemin de la recherche"] = contenu[
            "chemin de la recherche"]
        menu_choix_ajouter_supprimer["actions"] = [
            (lambda contenu: contenu["individu"].creer_compte(contenu)),
            (lambda contenu: contenu["individu"].supprimer_compte(contenu)),
            (lambda var: Ouvert(contenu)),
            Individu().quitter
        ]
        return Ouvert(menu_choix_ajouter_supprimer)

    else:
        print("\nVEUILLEZ D'ABORD VOUS CONNECTER.")
        input("Appuyez sur entrer pour continuer.")
        return Ouvert(contenu)
Exemplo n.º 2
0
    def supprimer_pays(self, contenu, contenu_precedent):
        if not self.est_connecte:
            input(
                "\nVEUILLEZ D'ABORD VOUS CONNECTER.\nAppuyez sur entrer pour continuer."
            )
            return Ouvert(contenu_precedent)
        pays_a_supprimer = input(
            "\nVeuillez entrer le nom du pays à supprimer : ")

        if pays_a_supprimer == "none":
            input(
                "\nCe pays n'est pas dans la liste.\nAppuyez sur entrer pour continuer."
            )
            return Ouvert(contenu_precedent)

        with open(directory_data + filename) as json_file:
            donnees = json.load(json_file)

        with open("../files/liste_pays_sans_nom.txt", "r") as liste:
            liste_pays_sans_nom0 = liste.readlines()
        liste_pays_sans_nom = []
        for elm in liste_pays_sans_nom0:
            liste_pays_sans_nom.append(int(elm[:-1]))

        for num_pays in range(len(donnees)):
            if num_pays not in liste_pays_sans_nom:
                if pays_a_supprimer == donnees[num_pays]['Government'][
                        'Country name']['conventional short form']['text'] or (
                            donnees[num_pays]['Government']['Country name']
                            ['conventional short form']['text'] == "none"
                            and pays_a_supprimer
                            == donnees[num_pays]['Government']['Country name']
                            ['conventional long form']['text']):
                    confirmation = input(
                        "\nConfirmation de la suppression du pays (O/N) ? #Cela est irréverssible#\n> "
                    )
                    if confirmation in ["o", "O"]:
                        donnees[num_pays] = {}
                        with open(directory_data + filename, "w") as json_file:
                            json.dump(donnees, json_file)
                        with open("../files/liste_pays_sans_nom.txt",
                                  "a") as liste:
                            liste.write("{}\n".format(num_pays))
                        input(
                            "\nLe pays a bien été supprimée.\nAppuyez sur entrer pour continuer."
                        )
                        return self.afficher_pays(contenu)
                    else:
                        input(
                            "\nVotre tentative de suppression n'a pas abouti.\nAppuyez sur entrer pour continuer."
                        )
                        return Ouvert(contenu_precedent)
        input(
            "\nCe pays n'est pas dans la liste.\nAppuyez sur entrer pour continuer."
        )
        return Ouvert(contenu_precedent)
Exemplo n.º 3
0
def connexion(contenu):

    menu_acteur = contenu

    if menu_acteur["individu"].se_connecter():
        del menu_acteur["options"][0]
        del menu_acteur["actions"][0]
        return Ouvert(menu_acteur)
    else:
        return Ouvert(contenu)
Exemplo n.º 4
0
 def supprimer_section(
     self, contenu, contenu_precedent
 ):  # Il doit y avoir un moyen plus simple de faire cette fonction
     if not self.est_connecte:
         input(
             "\nVEUILLEZ D'ABORD VOUS CONNECTER.\nAppuyez sur entrer pour continuer."
         )
         return Ouvert(contenu)
     section_a_supprimer = input(
         "\nVeuillez entrer le nom de la section à supprimer : ")
     with open(directory_data + filename) as json_file:
         donnees = json.load(json_file)
     chemin = contenu["chemin de la recherche"][1:]
     contenu_section = donnees[chemin[0]]
     for section in chemin[1:]:
         contenu_section = contenu_section[section]
     if section_a_supprimer in contenu_section.keys():
         suppression_possible = not (
             (section_a_supprimer == "Government") or
             (section_a_supprimer == "Country name") or
             (section_a_supprimer == "conventional short form") or
             (section_a_supprimer == "conventional long form"))
         if suppression_possible:
             confirmation = input(
                 "\nConfirmation de la suppression de la section (O/N) ? #Cela supprimera aussi toutes ses sous-sections#\n> "
             )
             if confirmation in ["o", "O"]:
                 del contenu_section[section_a_supprimer]
                 with open(directory_data + filename, "w") as json_file:
                     json.dump(donnees, json_file)
                 input(
                     "\nLa section a bien été supprimée.\nAppuyez sur entrer pour continuer."
                 )
             else:
                 input(
                     "\nVotre tentative de suppression n'a pas abouti.\nAppuyez sur entrer pour continuer."
                 )
                 return Ouvert(contenu)
         else:
             input(
                 "\nVous ne pouvez pas supprimer cette section car elle est suceptible de contenir le nom du pays.\nAppuyez sur entrer pour continuer."
             )
             return Ouvert(contenu)
     else:
         input(
             "\nCette section n'existe pas.\nAppuyez sur entrer pour continuer."
         )
         return Ouvert(contenu)
     tampon = contenu["chemin de la recherche"].pop()
     if len(contenu["chemin de la recherche"]) == 1:
         contenu["chemin de la recherche"].pop()
     return self.afficher_section(tampon, contenu_precedent)
Exemplo n.º 5
0
    def afficher_pays(self, contenu):

        if self.contenu_du_menu_initial == {}:
            self.contenu_du_menu_initial = contenu
        self.contenu_du_menu_initial["chemin de la recherche"] = []
        with open(directory_data + filename) as json_file:
            donnees = json.load(json_file)

            choix_pays = {}
            choix_pays["question"] = "Choisissez un pays."
            choix_pays["individu"] = contenu["individu"]
            choix_pays["options"] = []
            choix_pays["actions"] = []
            choix_pays["chemin de la recherche"] = []

            with open("../files/liste_pays_sans_nom.txt", "r") as liste:
                liste_pays_sans_nom0 = liste.readlines()
            liste_pays_sans_nom = []
            for elm in liste_pays_sans_nom0:
                liste_pays_sans_nom.append(int(elm[:-1]))

            for num_pays in range(len(donnees)):
                if num_pays not in liste_pays_sans_nom:
                    nom_pays = donnees[num_pays]['Government']['Country name'][
                        'conventional short form']['text']
                    if nom_pays == "none":
                        nom_pays = donnees[num_pays]['Government'][
                            'Country name']['conventional long form']['text']
                    choix_pays["options"].append(nom_pays)
                    tampon1 = num_pays
                    choix_pays["actions"].append(
                        lambda var, tampon1=tampon1: self.afficher_section(
                            tampon1, contenu))

            if self.statut == "g" or self.statut == "a":
                choix_pays["options"].append("AJOUTER UN PAYS")
                choix_pays["actions"].append(
                    lambda var: self.ajout_pays(contenu, var))
            if self.statut == "a":
                choix_pays["options"].append("SUPPRIMER UN PAYS")
                choix_pays["actions"].append(
                    lambda var: self.supprimer_pays(contenu, var))
            choix_pays["options"].append("RETOUR AU MENU DE L'ACTEUR")
            choix_pays["actions"].append(
                lambda var: Ouvert(self.contenu_du_menu_initial))
            choix_pays["options"].append("QUITTER")
            choix_pays["actions"].append(Individu().quitter)

        return Ouvert(choix_pays)
Exemplo n.º 6
0
def temporaire_function(contenu):  #
    if not contenu["individu"].est_connecte:  #
        print("\nVEUILLEZ D'ABORD VOUS CONNECTER.")  #
        input("Appuyez sur entrer pour continuer.")  #
    else:  #
        print("\nCette fonctionnalité n'a pas encore été codée...")  #
        input("Appuyez sur entrer pour continuer.")  #
    return Ouvert(contenu)  #
Exemplo n.º 7
0
    def supprimer_compte(self, contenu):
        print(
            "\nATTENTION : Si vous supprimez votre propre compte, vous ne pourrez plus vous connecter après avoir rejoint le menu de choix du statut ou après avoir quitté l'application."
        )
        pseudo_a_supprimer = input(
            "\nEntrez le pseudo du compte à supprimer : ")
        with open("../files/comptes.txt", "r") as comptes:
            liste_des_comptes = []
            tampon = comptes.readlines()
        for s in tampon:
            liste_des_comptes.append(
                s[:-1]
            )  #Supprime le caractère responsable du retour à la ligne
        n = len(liste_des_comptes)
        liste_des_pseudos = [liste_des_comptes[i] for i in range(1, n, 3)]

        if pseudo_a_supprimer not in liste_des_pseudos:
            input(
                "\nCe compte n'existe pas.\nAppuyez sur entrer pour continuer.\n"
            )
            return Ouvert(contenu)

        confirmation = input(
            "\nConfirmation de la suppression du compte (O/N) ?\n> ")

        if confirmation in ["o", "O"]:
            nouvelle_liste_des_comptes = []
            indice = None
            for line in liste_des_comptes:
                if line == pseudo_a_supprimer:
                    indice = liste_des_comptes.index(line)
            for i in range(len(liste_des_comptes)):
                if i not in [indice - 1, indice, indice + 1]:
                    nouvelle_liste_des_comptes.append(liste_des_comptes[i])
            with open("../files/comptes.txt", "w") as comptes:
                for line in nouvelle_liste_des_comptes:
                    comptes.write(line + "\n")
            input(
                "\nLe compte de {} a bien été supprimé.\nAppuyez sur entrer pour continuer."
                .format(pseudo_a_supprimer))
        else:
            input(
                "\nLa tentative de suppression de compte n'a pas abouti\nAppuyez sur entrer pour continuer.\n"
            )
        return Ouvert(contenu)
Exemplo n.º 8
0
 def gestion_corrections(self, contenu):
     if not self.est_connecte:
         input("\nVEUILLEZ D'ABORD VOUS CONNECTER.\nAppuyez sur entrer pour continuer.")
         return Ouvert(contenu)
     
     if self.contenu_du_menu_initial == {}:
         self.contenu_du_menu_initial = contenu
     
     with open("../files/prop_corrections.txt","r") as fichier:
         tampon1 = fichier.readlines()
     props_et_chemins = []
     for elm in tampon1:
         props_et_chemins.append(elm[:-1])
     n = len(props_et_chemins)
     propositions = [props_et_chemins[i] for i in range(0,n,2)]
     chemins = [props_et_chemins[i].split("//") for i in range(1,n,2)]
     options = []
     for chemin in chemins:
         tampon2 = ""
         for i in range(len(chemin)):
             if i != 1:
                 tampon2 += chemin[i] + "/"
         options.append(tampon2)
     
     choix_prop = {}
     
     if len(options) == 0:
         choix_prop["question"] = "Il n'y a pas de propositions à examiner."
     else:
         choix_prop["question"] = "Choisissez une proposition de correction.\nLe chemin indiqué est celui de l'emplacement du texte suceptible d'être modifié."
     choix_prop["individu"] = contenu["individu"]
     choix_prop["chemin de la recherche"] = []
     choix_prop["options"] = options
     choix_prop["actions"] = []
     
     for i in range(len(options)):
         choix_prop["actions"].append(lambda var, i=i : self.decider_correction(contenu, propositions[i], chemins[i], props_et_chemins, i))
     
     choix_prop["options"].append("RETOUR AU MENU DE L'ACTEUR")
     choix_prop["actions"].append(lambda var : Ouvert(self.contenu_du_menu_initial))
     choix_prop["options"].append("QUITTER")
     choix_prop["actions"].append(Individu().quitter)
     
     return Ouvert(choix_prop)
Exemplo n.º 9
0
def indices_taches_permises(indices_taches, individu):

    menu_acteur = {}
    menu_acteur["individu"] = individu
    menu_acteur["question"] = menus[1]["question"]
    menu_acteur["options"] = [menus[1]["options"][i] for i in indices_taches]
    menu_acteur["actions"] = [menus[1]["actions"][i] for i in indices_taches]
    menu_acteur["chemin de la recherche"] = []

    return Ouvert(menu_acteur)
Exemplo n.º 10
0
    def creer_compte(self, contenu):

        with open("../files/comptes.txt", "r") as comptes:
            liste_des_comptes = []
            tampon = comptes.readlines()
        for s in tampon:
            liste_des_comptes.append(
                s[:-1]
            )  #Supprime le caractère responsable du retour à la ligne
        n = len(liste_des_comptes)
        liste_des_pseudos = [liste_des_comptes[i] for i in range(1, n, 3)]

        while True:
            type_de_compte = input(
                "\nVous voulez créer un compte Administrateur, Géographe ou Data Scientist (a/g/d) ? : "
            )
            if type_de_compte in ["a", "g", "d"]:
                break
            print(
                "\nLa réponse attendue doit être : a pour Admin, g pour Géographe ou d pour Data Scientist."
            )
        while True:
            pseudo = input("Entrez le pseudo : ")
            if len(pseudo) >= 2:
                if pseudo not in liste_des_pseudos:
                    break
                else:
                    print(
                        "\nCe pseudo est déjà attribué à quelqu'un, veuillez en choisir un autre.\n"
                    )
            else:
                print("\nVotre pseudo doit contenir au moins 2 caractères.\n")
        while True:
            while True:  # On peut faire ça sans mettre deux while True, faire ça plus proprement si on a le temps.
                mot_de_passe = input("Entrez le mot de passe : ")
                if len(mot_de_passe) >= 4:
                    break
                print(
                    "\nVotre mot de passe doit contenir au moins 4 caractères.\n"
                )
            mot_de_passe_confirmation = input("Confirmez le mot de passe : ")
            if mot_de_passe == mot_de_passe_confirmation:
                break
            print(
                "\nLa confirmation ne correspond pas au mot de passe initial.\n"
            )
        with open("../files/comptes.txt", "a") as comptes:
            comptes.write("{}\n".format(type_de_compte))
            comptes.write("{}\n".format(pseudo))
            comptes.write("{}\n".format(mot_de_passe))
            input(
                "\nLe compte a bien été enregistré.\nAppuyez sur entrer pour continuer.\n"
            )
        return Ouvert(contenu)
Exemplo n.º 11
0
 def ajout_section(self, contenu, contenu_precedent): # Il doit y avoir un moyen plus simple de faire cette fonction
     if not self.est_connecte:
         input("\nVEUILLEZ D'ABORD VOUS CONNECTER.\nAppuyez sur entrer pour continuer.")
         return Ouvert(contenu)
     else:
         with open(directory_data + filename) as json_file:
             donnees = json.load(json_file)
         chemin = contenu["chemin de la recherche"][1:]
         contenu_section = donnees[chemin[0]]
         for section in chemin[1:]:
             contenu_section = contenu_section[section]
             
         if len(contenu_section) == 0:
             choix = input("\nVoulez vous ajouter une Section ou un Texte ? (S/T) ?\nAppuyez sur une autre touche si vous voulez ne rien modifier.\n> ")
             if choix in ["s", "S"]:
                 while True:
                     nouvelle_section = input("\nEntrez le nom de la nouvelle section :\n> ")
                     if len(nouvelle_section) <= 1 or len(nouvelle_section) > 50 or "//" in nouvelle_section:
                         print("\nLe nom de la section doit contenir entre 1 et 50 caractères.\nL'usage de // dans un nom de section est interdit")
                         continue
                     if (nouvelle_section == "Government") or (nouvelle_section == "Country name") or (nouvelle_section == "conventional short form") or (nouvelle_section == "conventional long form"):
                         print("\nLa section ne peut pas porter de nom tel que Government, Country name, conventional short form ou conventional long form.")
                         continue
                     break
                 if nouvelle_section in contenu_section.keys() or nouvelle_section in ["AJOUTER OU RENOMMER","RETOUR","QUITTER"]:
                     input("\nCette section existe déjà !\nAppuyez sur entrer pour continuer.")
                     return Ouvert(contenu)
                 confirmation = input("\nConfirmation de la création de la section (O/N) ?\n> ")
                 if confirmation in ["o","O"]:
                     contenu_section[nouvelle_section] = {}
                     with open(directory_data + filename, "w") as json_file:
                         json.dump(donnees, json_file)
                     input("\nVotre ajout a bien été enregistrée.\nAppuyez sur entrer pour continuer.")
                 else :
                     input("\nVotre tentative d'ajout n'a pas abouti.\nAppuyez sur entrer pour continuer.")
                     return Ouvert(contenu)
                 
                 tampon = contenu["chemin de la recherche"].pop()
                 if len(contenu["chemin de la recherche"]) == 1:
                     contenu["chemin de la recherche"].pop()
                 return self.afficher_section(tampon, contenu_precedent)
             
             elif choix in ["t", "T"]:
                 nouveau_texte = input("\nEntrez le texte à ajouter :\n> ")
                 confirmation = input("\nConfirmation de l'ajout du texte (O/N) ?\n> ")
                 if confirmation in ["o","O"]:
                     contenu_section["text"] = nouveau_texte
                     with open(directory_data + filename, "w") as json_file:
                         json.dump(donnees, json_file)
                     input("\nVotre ajout a bien été enregistrée.\nAppuyez sur entrer pour continuer.")
                     contenu["chemin de la recherche"].pop()
                 tampon = contenu["chemin de la recherche"].pop()
                 if len(contenu["chemin de la recherche"]) == 1:
                     contenu["chemin de la recherche"].pop()
                 return self.afficher_section(tampon, contenu_precedent)
             else:
                 return Ouvert(contenu)
         else:
             while True:
                 nouvelle_section = input("\nEntrez le nom de la nouvelle section :\n> ")
                 if len(nouvelle_section) <= 1 or len(nouvelle_section) > 50 or "//" in nouvelle_section:
                     print("\nLe nom de la section doit contenir entre 1 et 50 caractères.\nL'usage de // dans un nom de section est interdit")
                     continue
                 if (nouvelle_section == "Government") or (nouvelle_section == "Country name") or (nouvelle_section == "conventional short form") or (nouvelle_section == "conventional long form"):
                     print("\nLa section ne peut pas porter de nom tel que Government, Country name, conventional short form ou conventional long form.")
                     continue
                 break
             if nouvelle_section in contenu_section.keys() or nouvelle_section in ["AJOUTER OU RENOMMER","RETOUR","QUITTER"]:
                 input("\nCette section existe déjà !\nAppuyez sur entrer pour continuer.")
                 return Ouvert(contenu)
             confirmation = input("\nConfirmation de la création de la section (O/N) ?\n> ")
             if confirmation in ["o","O"]:
                 contenu_section[nouvelle_section] = {}
                 with open(directory_data + filename, "w") as json_file:
                     json.dump(donnees, json_file)
                 input("\nVotre ajout a bien été enregistrée.\nAppuyez sur entrer pour continuer.")
             else :
                 input("\nVotre tentative d'ajout n'a pas abouti.\nAppuyez sur entrer pour continuer.")
                 return Ouvert(contenu)
             
             tampon = contenu["chemin de la recherche"].pop()
             if len(contenu["chemin de la recherche"]) == 1:
                 contenu["chemin de la recherche"].pop()
             return self.afficher_section(tampon, contenu_precedent)
Exemplo n.º 12
0
 def ajout_pays(self, contenu, contenu_precedent): # Il doit y avoir un moyen plus simple de faire cette fonction. / À Améliorer
     if not self.est_connecte:
         input("\nVEUILLEZ D'ABORD VOUS CONNECTER.\nAppuyez sur entrer pour continuer.")
         return Ouvert(contenu_precedent)
     else:
         nom_pays = input("\nEntrez le nom du pays à ajouter :\n> ")
         
         if nom_pays == 'none':
             input("\nVous ne pouvez pas nommer un pays 'none'.\nAppyez sur entrer pour continuer.")
             return Ouvert(contenu_precedent)
         
         with open(directory_data + filename) as json_file:
             donnees = json.load(json_file)
         liste_des_pays = []
         
         with open("../files/liste_pays_sans_nom.txt", "r") as liste:
             liste_pays_sans_nom0 = liste.readlines()
         liste_pays_sans_nom = []
         for elm in liste_pays_sans_nom0:
             liste_pays_sans_nom.append(int(elm[:-1]))
             
         for num_pays in range(len(donnees)):
             if num_pays not in liste_pays_sans_nom:
                 liste_des_pays.append(donnees[num_pays]['Government']['Country name']['conventional short form']['text'])
         if nom_pays not in liste_des_pays:
             confirmation = input("\nConfirmation de l'ajout du pays (O/N) ?\n> ")
             if confirmation in ["o","O"]:
                 donnees.append({'Government' : {'Country name' : {'conventional short form' : {'text' : nom_pays}, 'conventional long form' : {'text' : nom_pays}}}})
                 ajout_info = input("\nVoulez vous ajouter des informations de base sur le pays (O/N) ?\n> ")
                 if ajout_info in ["o","O"]:
                     superficie = input("\nEntrez la superficie (en sq km) du pays.\nVous pouvez taper 'pass' pour passer la question.\n> ")
                     if superficie != "pass":
                         donnees[-1]['Geography'] = {'Area' : {'total' : {'text' : superficie+' sq km'}}}
                         input("\nVotre réponse a bien été enregistrée")
                     population = input("\nEntrez la population du pays.\nVous pouvez taper 'pass' pour passer la question.\n> ")
                     if population != "pass":
                         donnees[-1]['People and Society'] = {'Population' : {'text' : population}}
                         input("\nVotre réponse a bien été enregistrée")
                     croissance_dem = input("\nEntrez le taux de croissance démographique (en %) du pays.\nVous pouvez taper 'pass' pour passer la question.\n> ")
                     if croissance_dem != "pass":
                         if 'People and Society' in donnees[-1]:
                             donnees[-1]['People and Society']['Population growth rate'] = {'text' : croissance_dem+'%'}
                         else:
                             donnees[-1]['People and Society'] = {'Population growth rate' : {'text' : croissance_dem+'%'}}
                         input("\nVotre réponse a bien été enregistrée")
                     inflation = input("\nEntrez le taux d'inflation (en %) du pays.\nVous pouvez taper 'pass' pour passer la question.\n> ")
                     if inflation != "pass":
                         donnees[-1]['Economy'] = {'Inflation rate (consumer prices)' : {'text' : inflation+'%'}}
                         input("\nVotre réponse a bien été enregistrée")
                     dette = input("\nEntrez la dette (en $) du pays.\nVous pouvez taper 'pass' pour passer la question.\n> ")
                     if dette != "pass":
                         if 'Economy' in donnees[-1]:
                             donnees[-1]['Economy']['Debt - external'] = {'text' : '$'+dette}
                         else:
                             donnees[-1]['Economy'] = {'Debt - external' : {'text' : '$'+dette}}
                         input("\nVotre réponse a bien été enregistrée")
                     chomage = input("\nEntrez le taux de chômage (en %) du pays.\nVous pouvez taper 'pass' pour passer la question.\n> ")
                     if chomage != "pass":
                         if 'Economy' in donnees[-1]:
                             donnees[-1]['Economy']['Unemployment rate'] = {'text' : chomage+'%'}
                         else:
                             donnees[-1]['Economy'] = {'Unemployment rate' : {'text' : chomage+'%'}}
                         input("\nVotre réponse a bien été enregistrée")
                     dep_sante = input("\nEntrez le taux de dépense en santé (en % of GDP) du pays.\nVous pouvez taper 'pass' pour passer la question.\n> ")
                     if dep_sante != "pass":
                         if 'People and Society' in donnees[-1]:
                             donnees[-1]['People and Society']['Health expenditures'] = {'text' : dep_sante+'% of GDP'}
                         else:
                             donnees[-1]['People and Society'] = {'Health expenditures' : {'text' : dep_sante+'% of GDP'}}
                         input("\nVotre réponse a bien été enregistrée")
                     dep_education = input("\nEntrez le taux de dépense en éducation (en % of GDP) du pays.\nVous pouvez taper 'pass' pour passer la question.\n> ")
                     if dep_education != "pass":
                         if 'People and Society' in donnees[-1]:
                             donnees[-1]['People and Society']['Education expenditures'] = {'text' : dep_education+'% of GDP'}
                         else:
                             donnees[-1]['People and Society'] = {'Education expenditures' : {'text' : dep_education+'% of GDP'}}
                         input("\nVotre réponse a bien été enregistrée")
                     dep_militaires = input("\nEntrez le taux de dépense militaires (en % of GDP) du pays.\nVous pouvez taper 'pass' pour passer la question.\n> ")
                     if dep_militaires != "pass":
                         donnees[-1]['Military and Security'] = {'Military expenditures' : {'text' : dep_militaires+'% of GDP'}}
                         input("\nVotre réponse a bien été enregistrée")
                    
                 with open(directory_data + filename, "w") as json_file:
                     json.dump(donnees, json_file)
                 input("\nVotre nouveau pays a bien été enregistrée.\nAppuyez sur entrer pour continuer.")
                 return self.afficher_pays(contenu)
             else:
                 input("\nVotre tentative d'ajout de pays n'a pas abouti.\nAppuyez sur entrer pour continuer.")
                 return Ouvert(contenu_precedent)
         else:
             input("\nCe pays existe déjà !\nAppuyez sur entrer pour continuer.")
             return Ouvert(contenu_precedent)
Exemplo n.º 13
0
 def creer_menu(self, contenu):
     vue_actuelle = Ouvert(contenu)
     while vue_actuelle:
         self.bordure()
         vue_actuelle = vue_actuelle.run()
     return vue_actuelle
Exemplo n.º 14
0
    },
    {
        "question":
        "Que voulez vous faire ?",
        "options": [
            "Se connecter", "Afficher les données d'un pays",
            "Acceder aux résumés statistiques", "Représentations graphiques",
            "Recherche avancée",
            "Décider de valider ou de refuser une correction",
            "Créer ou supprimer un compte",
            "RETOUR AU MENU DE CHOIX DU STATUT", "QUITTER"
        ],
        "actions": [
            connexion,
            (lambda contenu: contenu["individu"].afficher_pays(contenu)
             ),  # C'est pour ça que le système de connexion marche ici.
            (lambda contenu: contenu["individu"].resume_stat(contenu)),
            (lambda contenu: contenu["individu"].representation_graphique(
                contenu)),
            temporaire_function,
            (lambda contenu: contenu["individu"].gestion_corrections(contenu)),
            ajouter_ou_supprimer_compte,
            (lambda contenu: Ouvert(menus[0])),
            Individu().quitter
        ],
        "individu":
        Individu(),
        "chemin de la recherche": []
    }
]
Exemplo n.º 15
0
    def afficher_section(self, section, contenu):

        self.contenu_du_menu_initial["chemin de la recherche"] = []

        with open(directory_data + filename) as json_file:
            donnees = json.load(json_file)

            choix_section = {}
            choix_section["chemin de la recherche"] = contenu[
                "chemin de la recherche"]

            if isinstance(section, int):
                nom_pays = donnees[section]['Government']['Country name'][
                    'conventional short form']['text']
                if nom_pays == "none":
                    nom_pays = donnees[section]['Government']['Country name'][
                        'conventional long form']['text']
                choix_section["chemin de la recherche"].append(nom_pays)

            choix_section["chemin de la recherche"].append(section)

            chemin = contenu["chemin de la recherche"][1:]
            sections_dispo = donnees[chemin[0]]
            for sec in chemin[1:]:
                sections_dispo = sections_dispo[sec]

            if "text" in list(sections_dispo):
                chemin_a_afficher = contenu["chemin de la recherche"][0]
                for section in chemin[1:]:
                    chemin_a_afficher += " -> {}".format(section)
                if self.statut == "g" or self.statut == "a":
                    print("\n")
                    print("{} :\n".format(chemin_a_afficher))
                    print(sections_dispo["text"])
                    rep = ""
                    if chemin[-1] == "conventional short form":
                        input(
                            "\nVous ne pouvez pas modifier le nom du pays.\nAppuyez sur entrer pour continuer."
                        )
                    else:
                        rep = input(
                            "\nVoulez vous modifier le texte (O/N) ?\n> ")
                    if rep in ["o", "O"]:
                        self.modifier_texte(choix_section)
                    choix_section["chemin de la recherche"].pop()
                    return Ouvert(contenu)
                else:
                    print("\n")
                    print("{} :\n".format(chemin_a_afficher))
                    print(sections_dispo["text"])
                    rep = ""
                    if chemin[-1] == "conventional short form":
                        input(
                            "\nVous ne pouvez pas proposer de correction pour le nom du pays.\nAppuyez sur entrer pour continuer."
                        )
                    else:
                        rep = input(
                            "\nVoulez vous proposer une correction (O/N) ?\n> "
                        )
                    if rep in ["o", "O"]:
                        self.proposer_correction(choix_section)
                    choix_section["chemin de la recherche"].pop()
                    return Ouvert(contenu)

            if len(list(sections_dispo)) == 0:
                choix_section["question"] = "Cette section est vide."
            else:
                choix_section["question"] = "Choisissez une option."
            choix_section["individu"] = contenu["individu"]
            choix_section["options"] = list(sections_dispo)
            choix_section["actions"] = []

            for sec in list(sections_dispo):
                tampon1 = sec
                choix_section["actions"].append(
                    (lambda contenu, tampon1=tampon1: self.afficher_section(
                        tampon1, contenu)))

            if self.statut == "g" or self.statut == "a":
                if len(list(sections_dispo)) == 0:
                    choix_section["options"].append(
                        "AJOUTER UNE SECTION OU UN TEXTE")
                else:
                    choix_section["options"].append("AJOUTER UNE SECTION")
                choix_section["actions"].append(
                    lambda var: self.ajout_section(var, contenu))
            if self.statut == "a":
                choix_section["options"].append("SUPPRIMER UNE SECTION")
                choix_section["actions"].append(
                    lambda var: self.supprimer_section(var, contenu))
            choix_section["options"].append("RETOUR")
            choix_section["actions"].append(
                lambda var: self.retour_section(contenu))
            choix_section["options"].append("RETOUR AU MENU DE L'ACTEUR")
            choix_section["actions"].append(
                lambda var: Ouvert(self.contenu_du_menu_initial))
            choix_section["options"].append("QUITTER")
            choix_section["actions"].append(Individu().quitter)

        return Ouvert(choix_section)
Exemplo n.º 16
0
 def quitter(self, contenu):
     confirmation = input("\nVoulez-vous vraiment quitter (O/N) ? ")
     if confirmation in ['o', 'O']:
         return Ferme()
     else:
         return Ouvert(contenu)