Salome HOME
Version initiale de EFICAS 1.2
[tools/eficas.git] / Extensions / commentaire.py
1 """
2    Ce module contient la classe COMMENTAIRE qui sert dans EFICAS
3    pour gérer les commentaires dans un JDC
4 """
5
6 from Noyau.N_CR import CR
7
8 class COMMENTAIRE :
9   """ 
10       Cette classe permet de créer des objets de type COMMENTAIRE 
11   """
12   nature = 'COMMENTAIRE'
13   idracine = '_comm'
14
15   def __init__(self,valeur,parent=None):
16     # parent est un objet de type OBJECT (ETAPE ou MC ou JDC...)
17     self.valeur=valeur
18     if not parent :
19       self.jdc = self.parent = CONTEXT.get_current_step()
20     else:
21       self.jdc = self.parent = parent
22     # La classe COMMENTAIRE n'a pas de définition. On utilise self
23     # pour complétude
24     self.definition=self
25     self.nom=''
26     self.niveau = self.parent.niveau
27     self.actif=1
28     self.register()
29
30   def register(self):
31     """ 
32         Enregistre le commentaire dans la liste des étapes de son parent
33         lorsque celui-ci est un JDC 
34     """
35     if self.parent.nature == 'JDC':
36       # le commentaire est entre deux commandes:
37       # il faut l'enregistrer dans la liste des étapes
38       self.parent.register(self)
39
40   def isvalid(self):
41     """
42     Retourne 1 si self est valide, 0 sinon
43     Retourne toujours 1 car un commentaire est toujours valide
44     """
45     return 1
46
47   def isoblig(self):
48     """ Indique si self est obligatoire ou non : retourne toujours 0 """
49     return 0
50
51   def isrepetable(self):
52     """ Indique si self est répétable ou non : retourne toujours 1 """
53     return 1
54
55   def active(self):
56       """
57       Rend l'etape courante active
58       """
59       self.actif = 1
60
61   def inactive(self):
62       """
63       Rend l'etape courante inactive
64       NB : un commentaire est toujours actif !
65       """
66       self.actif = 1
67
68   def isactif(self):
69       """
70       Booléenne qui retourne 1 si self est valide, 0 sinon
71       """
72       return self.actif
73
74   def supprime(self):
75       """
76       Méthode qui supprime toutes les boucles de références afin que 
77       l'objet puisse être correctement détruit par le garbage collector
78       """
79       self.parent=None
80       self.jdc=None
81       self.definition = None
82       self.niveau = None
83
84   def liste_mc_presents(self):
85       return []
86
87   def get_valeur(self) :
88     """ Retourne la valeur de self, cad le contenu du commentaire """
89     try :
90       return self.valeur
91     except:
92       return None
93
94   def set_valeur(self,new_valeur):
95     """ 
96         Remplace la valeur de self(si elle existe) par new_valeur
97     """
98     self.valeur = new_valeur
99     self.init_modif()
100
101   def init_modif(self):
102     self.state = 'modified'
103     if self.parent:
104       self.parent.init_modif()
105
106   def supprime_sdprods(self):
107     pass
108
109   def update_context(self,d):
110     """
111         Update le dictionnaire d avec les concepts ou objets produits par self
112         --> ne fait rien pour un commentaire
113     """
114     pass
115
116   def report(self):
117     """ Génère l'objet rapport (classe CR) """
118     self.cr=CR()
119     if not self.isvalid(): self.cr.warn("Objet commentaire non valorisé")
120     return self.cr
121
122   def ident(self):
123     """ Retourne le nom interne associé à self
124         Ce nom n'est jamais vu par l'utilisateur dans EFICAS
125     """
126     return self.nom
127
128   def delete_concept(self,sd):
129     pass
130
131   def verif_condition_bloc(self):
132     """
133         Evalue les conditions de tous les blocs fils possibles
134         (en fonction du catalogue donc de la définition) de self et
135         retourne deux listes :
136         - la première contient les noms des blocs à rajouter
137         - la seconde contient les noms des blocs à supprimer
138     """
139     return [],[]
140
141   def verif_condition_regles(self,liste_presents):
142     """
143         Retourne la liste des mots-clés à rajouter pour satisfaire les règles
144         en fonction de la liste des mots-clés présents
145     """
146     return []
147
148
149