Example #1
0
	def afficher_section(self, section, contenu):
		donnees = Data_Base().donnees
		num_pays = section.num_pays
		chemin = section.chemin
		
		choix_section = {}
		
		chemin_a_afficher = Pays(section.num_pays, donnees).get_name()
		for partie in chemin:
			chemin_a_afficher += ' -> {}'.format(partie)
		
		if section.is_section_de_texte():
			print('\n{} :\n'.format(chemin_a_afficher))
			print(section.contenu['text'])

			self.correction(choix_section, section)
			
			return self.afficher_section(Section(num_pays, donnees, chemin[:-1]), contenu)
		
		sous_sections = section.get_noms_sous_sections()
		
		if len(sous_sections) == 0:
			choix_section['question'] = '{}\n\nCette section est vide.'.format(chemin_a_afficher)
		else :
			choix_section['question'] = '{}\n\nChoisissez une option.'.format(chemin_a_afficher)
			
		choix_section['individu'] = contenu['individu']
		choix_section['options'] = sous_sections
		choix_section['options basiques'] = []
		choix_section['actions'] = []
		
		for partie in sous_sections:
			nouveau_chemin = chemin + [partie]
			choix_section['actions'].append((lambda contenu, nouveau_chemin=nouveau_chemin : self.afficher_section(Section(num_pays, donnees, nouveau_chemin), contenu)))
			
		if self.statut == 'g' or self.statut == 'a':
			if len(sous_sections) == 0:
				choix_section['options basiques'].append(['AJOUTER UN TEXTE', 'AT'])
				choix_section['actions'].append(lambda var : self.ajout_texte(contenu, section))
			choix_section['options basiques'].append(['AJOUTER UNE SECTION', 'AS'])
			choix_section['actions'].append(lambda var : self.ajout_section(contenu, section))
		if self.statut == 'a' and len(sous_sections) != 0:
			choix_section['options basiques'].append(['SUPPRIMER UNE SECTION', 'S'])
			choix_section['actions'].append(lambda var : self.supprimer_section(contenu, section))
				
		choix_section['options basiques'].append(['RETOUR', 'R'])
		if len(chemin) == 0:
			choix_section['actions'].append(lambda var : self.afficher_pays(contenu))
		else:
			choix_section['actions'].append(lambda var : self.afficher_section(Section(num_pays, donnees, chemin[:-1]), contenu))
		choix_section['options basiques'].append(["RETOUR AU MENU DE L'ACTEUR", 'RMA'])
		choix_section['actions'].append(lambda contenu : Menu_Ouvert(self.contenu_initial))
		choix_section['options basiques'].append(['QUITTER', 'Q'])
		choix_section['actions'].append(self.quitter)
		
		return Menu_Ouvert(choix_section)
Example #2
0
    def test_is_section_de_texte(self):
        #Assume
        donnees = self.data_base

        #Action
        section = Section(0, donnees, ['Introduction', 'Background'])
        is_section_de_texte = section.is_section_de_texte()
        expected_results = True

        #Assert
        self.assertEqual(is_section_de_texte, expected_results)
Example #3
0
    def test_get_noms_sous_sections(self):
        #Assume
        donnees = self.data_base

        #Action
        section = Section(0, donnees)
        liste_des_sous_sections = section.get_noms_sous_sections()
        expected_results = ['Introduction', 'Government']

        #Assert
        self.assertEqual(liste_des_sous_sections, expected_results)
Example #4
0
	def _decider_correction(self, contenu, prop_cor):
		"""Cette méthode permet au géographe de choisir entre valider ou refuser
		une proposition de correction."""
		
		donnees = Data_Base().donnees
		gestionnaire = Gestionnaire()
		try :
			section_du_texte = Section(prop_cor.num_pays, donnees, prop_cor.chemin_prop)
		except :
			input('\nIl semble que la donnée initiale a été supprimée. Cette proposition va alors être supprimée.\nAppuyez sur entrer pour continuer')
			gestionnaire.suppr_elm(prop_cor)
			return self.gestion_corrections(contenu)	
		
		print("\nTexte actuel :\n")
		print(section_du_texte.contenu["text"] + "\n")
		print("Proposition de correction :\n")
		print(prop_cor.txt_prop + "\n")
		
		while True:
			validation = input("Voulez-vous valider cette proposition de correction (V : valider / R : refuser / P : aucune action) ?\n> ")
			if validation in ["v","V","r","R","p","P"]:
				break
			else :
				input("\nVotre réponse doit être V, R ou P.\nAppyez sur entrer pour continuer.\n")
				
		if validation in ['v', 'V']:
			self._valider_prop(prop_cor, section_du_texte)
		if validation in ['r', 'R']:
			self._refuser_prop(prop_cor)
			
		return self.gestion_corrections(contenu)
Example #5
0
    def ajout_texte(self, contenu, section):
        gestionnaire = Gestionnaire()
        section_mere = Section(section.num_pays, section.donnees,
                               section.chemin[:-1])

        if self.verification_connexion():
            while True:
                texte = input('\nEntrez le texte à ajouter :\n> ')
                if len(texte) <= 1:
                    input(
                        '\nLe nom de la section doit contenir au moins 1 caractère.\nAppuyez sur entrer pour continuer.'
                    )
                    continue
                break

            confirmation = input(
                "\nConfirmation de l'ajout du texte (O/N) ?\n> ")
            if confirmation in ['o', 'O']:
                section.contenu['text'] = texte
                gestionnaire.update(section.donnees)
                input(
                    '\nLe texte a bien été ajouté.\nAppuyez sur entrer pour continuer.'
                )
                return self.afficher_section(section_mere, contenu)
            else:
                input(
                    "\nVotre tentative d'ajout de texte n'a pas abouti.\nAppuyez sur entrer pour continuer."
                )

        return self.afficher_section(section, contenu)
Example #6
0
    def afficher_pays(self, contenu):
        """ Cette méthode permet au consultant d'afficher la liste des différents pays
		et d'en choisir un par le nombre correspondant au pays affiché dans le menu"""

        if self.contenu_initial == {}:
            self.contenu_initial = contenu

        donnees = Data_Base().donnees
        nb_pays = len(donnees)

        choix_pays = {}
        choix_pays['question'] = 'Choisissez un pays.'
        choix_pays['individu'] = contenu['individu']

        liste_des_pays = []
        for num_pays in range(nb_pays):
            nom_pays = Pays(num_pays, donnees).get_name()
            if nom_pays:
                liste_des_pays.append((nom_pays, num_pays))
        liste_des_pays.sort()

        liste_des_noms = [pays[0] for pays in liste_des_pays]
        liste_des_nums = [pays[1] for pays in liste_des_pays]

        choix_pays['options'] = liste_des_noms
        choix_pays['options basiques'] = []
        choix_pays['actions'] = [
            lambda var, num=num: self.afficher_section(Section(
                num, donnees), contenu) for num in liste_des_nums
        ]

        if self.statut == 'g' or self.statut == 'a':
            choix_pays['options basiques'].append(['AJOUTER UN PAYS', 'A'])
            choix_pays['actions'].append(lambda var: self.ajout_pays(contenu))
        if self.statut == 'a':
            choix_pays['options basiques'].append(['SUPPRIMER UN PAYS', 'S'])
            choix_pays['actions'].append(
                lambda var: self.supprimer_pays(contenu))
        choix_pays['options basiques'].append(
            ["RETOUR AU MENU DE L'ACTEUR", 'R'])
        choix_pays['actions'].append(
            lambda var: Menu_Ouvert(self.contenu_initial))
        choix_pays['options basiques'].append(['QUITTER', 'Q'])
        choix_pays['actions'].append(self.quitter)

        return Menu_Ouvert(choix_pays)