def getlabeltext(self):
"""
Retourne le label de self
- utilisé pour l'affichage dans l'arbre
+ utilise pour l'affichage dans l'arbre
"""
return self.nom
def get_liste_mc_ordonnee(self,liste,dico):
"""
- Retourne la liste ordonnée (suivant le catalogue) des mots-clés
- d'une entité composée dont le chemin complet est donné sous forme
+ Retourne la liste ordonnee (suivant le catalogue) des mots-cles
+ d'une entite composee dont le chemin complet est donne sous forme
d'une liste du type :ETAPE + MCFACT ou MCBLOC + ...
- il faut encore réarranger cette liste (certains mots-clés déjà
- présents ne doivent plus être proposés, règles ...)
+ il faut encore rearranger cette liste (certains mots-cles deja
+ presents ne doivent plus etre proposes, regles ...)
"""
return self.filtre_liste_mc(self.get_liste_mc_ordonnee_brute(liste,dico))
def get_liste_mc_ordonnee_brute(self,liste,dico):
"""
- Retourne la liste ordonnée (suivant le catalogue) BRUTE des mots-clés
- d'une entité composée dont le chemin complet est donné sous forme
+ Retourne la liste ordonnee (suivant le catalogue) BRUTE des mots-cles
+ d'une entite composee dont le chemin complet est donne sous forme
d'une liste du type :ETAPE + MCFACT ou MCBLOC + ...
"""
for arg in liste:
def filtre_liste_mc(self,liste_brute):
"""
- Cette méthode est appelée par EFICAS afin de présenter à
- l'utilisateur la liste des enfants possibles de self actualisée
- en fonction du contexte de self. En clair, sont supprimés de la
- liste des possibles (fournie par la définition), les mots-clés
- exclus par les règles de self et les mots-clés ne pouvant plus
- être répétés
+ Cette methode est appelee par EFICAS afin de presenter a
+ l'utilisateur la liste des enfants possibles de self actualisee
+ en fonction du contexte de self. En clair, sont supprimes de la
+ liste des possibles (fournie par la definition), les mots-cles
+ exclus par les regles de self et les mots-cles ne pouvant plus
+ etre repetes
"""
liste = copy(liste_brute)
liste_mc_presents = self.liste_mc_presents()
- # on enlève les mots-clés non permis par les règles
+ # on enleve les mots-cles non permis par les regles
for regle in self.definition.regles:
- # la méthode purge_liste est à développer pour chaque règle qui
- # influe sur la liste de choix à proposer à l'utilisateur
+ # la methode purge_liste est a developper pour chaque regle qui
+ # influe sur la liste de choix a proposer a l'utilisateur
# --> EXCLUS,UN_PARMI,PRESENT_ABSENT
liste = regle.purge_liste(liste,liste_mc_presents)
- # on enlève les mots-clés dont l'occurrence est déjà atteinte
+ # on enleve les mots-cles dont l'occurrence est deja atteinte
liste_copy = copy(liste)
for k in liste_copy:
objet = self.get_child(k,restreint = 'oui')
if objet != None :
- # l'objet est déjà présent : il faut distinguer plusieurs cas
+ # l'objet est deja present : il faut distinguer plusieurs cas
if isinstance(objet,MCSIMP):
- # un mot-clé simple ne peut pas être répété
+ # un mot-cle simple ne peut pas etre repete
liste.remove(k)
elif isinstance(objet,MCBLOC):
- # un bloc conditionnel ne doit pas apparaître dans la liste de choix
+ # un bloc conditionnel ne doit pas apparaitre dans la liste de choix
liste.remove(k)
elif isinstance(objet,MCFACT):
- # un mot-clé facteur ne peut pas être répété plus de self.max fois
+ # un mot-cle facteur ne peut pas etre repete plus de self.max fois
if objet.definition.max == 1:
liste.remove(k)
elif isinstance(objet,MCList):
except:
pass
else :
- #XXX CCAR : les MCNUPLET ne sont pas traités
+ #XXX CCAR : les MCNUPLET ne sont pas traites
if CONTEXT.debug : print ' ',k,' est un objet de type inconnu :',type(objet)
else :
- # l'objet est absent : on enlève de la liste les blocs
+ # l'objet est absent : on enleve de la liste les blocs
if self.definition.entites[k].statut=='c' :
liste.remove(k)
if self.definition.entites[k].label=='BLOC':
if k in liste:continue
objet = self.get_child(k,restreint = 'oui')
if isinstance(objet,MCFACT):
- # un mot-clé facteur ne peut pas être répété plus de self.max fois
+ # un mot-cle facteur ne peut pas etre repete plus de self.max fois
if objet.definition.max > 1:
liste.append(k)
elif isinstance(objet,MCList):
def liste_mc_presents(self):
"""
- Retourne la liste des noms des mots-clés fils de self présents construite
- à partir de self.mc_liste
+ Retourne la liste des noms des mots-cles fils de self presents construite
+ a partir de self.mc_liste
"""
l=[]
for v in self.mc_liste:
def get_index_child(self,nom_fils):
"""
Retourne l'index dans la liste des fils de self du nouveau fils de nom nom_fils
- Permet de savoir à quelle position il faut ajouter un nouveau mot-clé
+ Permet de savoir a quelle position il faut ajouter un nouveau mot-cle
"""
cata_ordonne = self.jdc.cata_ordonne_dico
liste_noms_mc_ordonnee = self.get_liste_mc_ordonnee_brute(self.get_genealogie(),cata_ordonne)
def ordonne_liste_mc(self,liste_mc_a_ordonner,liste_noms_mc_ordonnee):
"""
- Retourne liste_mc_a_ordonner ordonnée suivant l'ordre
- donné par liste_noms_mc_ordonnee
+ Retourne liste_mc_a_ordonner ordonnee suivant l'ordre
+ donne par liste_noms_mc_ordonnee
"""
liste = []
- # on transforme liste_a_ordonner en un dictionnaire (plus facile à consulter)
+ # on transforme liste_a_ordonner en un dictionnaire (plus facile a consulter)
d_mc = {}
for mc in liste_mc_a_ordonner:
d_mc[mc.nom]=mc
- # on construit la liste des objets ordonnés
+ # on construit la liste des objets ordonnes
for nom_mc in liste_noms_mc_ordonnee:
if d_mc.has_key(nom_mc):
liste.append(d_mc.get(nom_mc))
def suppentite(self,objet) :
"""
Supprime le fils 'objet' de self :
- Retourne 1 si la suppression a pu être effectuée,
+ Retourne 1 si la suppression a pu etre effectuee,
Retourne 0 dans le cas contraire
"""
if not objet in self.mc_liste:
def addentite(self,name,pos=None):
"""
- Ajoute le mot-cle name à la liste des mots-cles de
+ Ajoute le mot-cle name a la liste des mots-cles de
l'objet MCCOMPOSE
"""
self.init_modif()
if type(name)==types.StringType :
- # on est en mode création d'un motcle
+ # on est en mode creation d'un motcle
if self.ispermis(name) == 0 : return 0
objet=self.definition.entites[name](val=None,nom=name,parent=self)
else :
# On verifie que l'ajout d'objet est autorise
if self.ispermis(objet) == 0:
- self.jdc.appli.affiche_alerte("Erreur","L'objet %s ne peut être un fils de %s" %(objet.nom,
+ self.jdc.appli.affiche_alerte("Erreur","L'objet %s ne peut etre un fils de %s" %(objet.nom,
self.nom))
self.fin_modif()
return 0
# on cree une liste d'objets. Dans le cas contraire,
# on emet un message d'erreur.
if not old_obj.isrepetable():
- self.jdc.appli.affiche_alerte("Erreur","L'objet %s ne peut pas être répété" %objet.nom)
+ self.jdc.appli.affiche_alerte("Erreur","L'objet %s ne peut pas etre repete" %objet.nom)
self.fin_modif()
return 0
else:
- # une liste d'objets de même type existe déjà
+ # une liste d'objets de meme type existe deja
old_obj.addentite(objet)
self.fin_modif()
return old_obj
def ispermis(self,fils):
"""
Retourne 1 si l'objet de nom nom_fils
- est bien permis, cad peut bien être un fils de self,
+ est bien permis, cad peut bien etre un fils de self,
Retourne 0 sinon
"""
if type(fils) == types.StringType :
elif type(fils) == types.InstanceType:
# fils est un objet (commande,mcf,mclist)
# on est dans le cas d'une tentative de copie de l'objet
- # on veut savoir si l'objet peut bien être un fils de self :
- # la vérification du nom de suffit pas (plusieurs commandes
- # ont le même mot-clé facteur AFFE ... et c'est l'utilisateur
- # qui choisit le père d'où un risque d'erreur)
+ # on veut savoir si l'objet peut bien etre un fils de self :
+ # la verification du nom de suffit pas (plusieurs commandes
+ # ont le meme mot-cle facteur AFFE ... et c'est l'utilisateur
+ # qui choisit le pere d'ou un risque d'erreur)
if not self.definition.entites.has_key(fils.nom):
return 0
else:
Inputs :
- sd=concept detruit
Fonction :
- Mettre a jour les fils de l objet suite à la disparition du
+ Mettre a jour les fils de l objet suite a la disparition du
concept sd
Seuls les mots cles simples MCSIMP font un traitement autre que
de transmettre aux fils
def get_liste_mc_inconnus(self):
"""
- Retourne la liste des mots-clés inconnus dans self
+ Retourne la liste des mots-cles inconnus dans self
"""
l_mc = []
if self.reste_val != {}:
bloc=self.get_child(k,restreint = 'oui')
presence=v.verif_presence(dict,globs)
if presence and not bloc:
- # le bloc doit être présent
- # mais le bloc n'est pas présent et il doit être créé
+ # le bloc doit etre present
+ # mais le bloc n'est pas present et il doit etre cree
#print "AJOUT BLOC",k
pos=self.get_index_child(k)
self.addentite(k,pos)
if not presence and bloc:
- # le bloc devrait être absent
- # le bloc est présent : il faut l'enlever
+ # le bloc devrait etre absent
+ # le bloc est present : il faut l'enlever
#print "SUPPRESSION BLOC",k,bloc
self.suppentite(bloc)
def verif_condition_bloc(self):
"""
Evalue les conditions de tous les blocs fils possibles
- (en fonction du catalogue donc de la définition) de self
+ (en fonction du catalogue donc de la definition) de self
et retourne deux listes :
- - la première contient les noms des blocs à rajouter
- - la seconde contient les noms des blocs à supprimer
+ - la premiere contient les noms des blocs a rajouter
+ - la seconde contient les noms des blocs a supprimer
"""
liste_ajouts = []
liste_retraits = []
if v.label=='BLOC' :
globs= self.jdc and self.jdc.condition_context or {}
if v.verif_presence(dict,globs):
- # le bloc doit être présent
+ # le bloc doit etre present
if not self.get_child(k,restreint = 'oui'):
- # le bloc n'est pas présent et il doit être créé
+ # le bloc n'est pas present et il doit etre cree
liste_ajouts.append(k)
else :
- # le bloc doit être absent
+ # le bloc doit etre absent
if self.get_child(k,restreint = 'oui'):
- # le bloc est présent : il faut l'enlever
+ # le bloc est present : il faut l'enlever
liste_retraits.append(k)
return liste_ajouts,liste_retraits
def verif_existence_sd(self):
"""
- Vérifie que les structures de données utilisées dans self existent bien dans le contexte
- avant étape, sinon enlève la référence à ces concepts
+ Verifie que les structures de donnees utilisees dans self existent bien dans le contexte
+ avant etape, sinon enleve la reference a ces concepts
"""
for motcle in self.mc_liste :
motcle.verif_existence_sd()
def update_mc_global(self):
"""
- Met a jour les mots cles globaux enregistrés dans l'étape parente
+ Met a jour les mots cles globaux enregistres dans l'etape parente
et dans le jdc parent.
Un mot cle compose ne peut pas etre global. Il se contente de passer
la requete a ses fils.