Salome HOME
This commit was generated by cvs2git to track changes on a CVS vendor
[tools/eficas.git] / Extensions / commentaire.py
1 #            CONFIGURATION MANAGEMENT OF EDF VERSION
2 # ======================================================================
3 # COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
4 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
5 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
6 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
7 # (AT YOUR OPTION) ANY LATER VERSION.
8 #
9 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
10 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
11 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
12 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
13 #
14 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
15 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
16 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
17 #
18 #
19 # ======================================================================
20 """
21    Ce module contient la classe COMMENTAIRE qui sert dans EFICAS
22    pour gérer les commentaires dans un JDC
23 """
24
25 from Noyau.N_CR import CR
26
27 class COMMENTAIRE :
28   """ 
29       Cette classe permet de créer des objets de type COMMENTAIRE 
30   """
31   nature = 'COMMENTAIRE'
32   idracine = '_comm'
33
34   def __init__(self,valeur,parent=None):
35     # parent est un objet de type OBJECT (ETAPE ou MC ou JDC...)
36     self.valeur=valeur
37     if not parent :
38       self.jdc = self.parent = CONTEXT.get_current_step()
39     else:
40       self.jdc = self.parent = parent
41     # La classe COMMENTAIRE n'a pas de définition. On utilise self
42     # pour complétude
43     self.definition=self
44     self.nom=''
45     self.niveau = self.parent.niveau
46     self.actif=1
47     self.state="unchanged"
48     self.register()
49
50   def register(self):
51     """ 
52         Enregistre le commentaire dans la liste des étapes de son parent
53         lorsque celui-ci est un JDC 
54     """
55     if self.parent.nature == 'JDC':
56       # le commentaire est entre deux commandes:
57       # il faut l'enregistrer dans la liste des étapes
58       self.parent.register(self)
59
60   def isvalid(self):
61     """
62     Retourne 1 si self est valide, 0 sinon
63     Retourne toujours 1 car un commentaire est toujours valide
64     """
65     return 1
66
67   def isoblig(self):
68     """ Indique si self est obligatoire ou non : retourne toujours 0 """
69     return 0
70
71   def isrepetable(self):
72     """ Indique si self est répétable ou non : retourne toujours 1 """
73     return 1
74
75   def active(self):
76       """
77       Rend l'etape courante active
78       """
79       self.actif = 1
80
81   def inactive(self):
82       """
83       Rend l'etape courante inactive
84       NB : un commentaire est toujours actif !
85       """
86       self.actif = 1
87
88   def isactif(self):
89       """
90       Booléenne qui retourne 1 si self est valide, 0 sinon
91       """
92       return self.actif
93
94   def supprime(self):
95       """
96       Méthode qui supprime toutes les boucles de références afin que 
97       l'objet puisse être correctement détruit par le garbage collector
98       """
99       self.parent=None
100       self.jdc=None
101       self.definition = None
102       self.niveau = None
103
104   def liste_mc_presents(self):
105       return []
106
107   def get_valeur(self) :
108     """ Retourne la valeur de self, cad le contenu du commentaire """
109     try :
110       return self.valeur
111     except:
112       return None
113
114   def set_valeur(self,new_valeur):
115     """ 
116         Remplace la valeur de self(si elle existe) par new_valeur
117     """
118     self.valeur = new_valeur
119     self.init_modif()
120
121   def init_modif(self):
122     self.state = 'modified'
123     if self.parent:
124       self.parent.init_modif()
125
126   def supprime_sdprods(self):
127     pass
128
129   def update_context(self,d):
130     """
131         Update le dictionnaire d avec les concepts ou objets produits par self
132         --> ne fait rien pour un commentaire
133     """
134     pass
135
136   def report(self):
137     """ Génère l'objet rapport (classe CR) """
138     self.cr=CR()
139     if not self.isvalid(): self.cr.warn("Objet commentaire non valorisé")
140     return self.cr
141
142   def ident(self):
143     """ Retourne le nom interne associé à self
144         Ce nom n'est jamais vu par l'utilisateur dans EFICAS
145     """
146     return self.nom
147
148   def delete_concept(self,sd):
149     pass
150
151   def verif_condition_bloc(self):
152     """
153         Evalue les conditions de tous les blocs fils possibles
154         (en fonction du catalogue donc de la définition) de self et
155         retourne deux listes :
156         - la première contient les noms des blocs à rajouter
157         - la seconde contient les noms des blocs à supprimer
158     """
159     return [],[]
160
161   def verif_condition_regles(self,liste_presents):
162     """
163         Retourne la liste des mots-clés à rajouter pour satisfaire les règles
164         en fonction de la liste des mots-clés présents
165     """
166     return []
167
168   def get_sdprods(self,nom_sd):
169      """
170          Retourne les concepts produits par la commande
171      """
172      return None
173
174   def verif_existence_sd(self):
175      pass
176
177   def get_fr(self):
178     """
179     Retourne le commentaire lui meme tronque a la 1ere ligne
180     """
181     return self.valeur.split('\n',1)[0]
182
183   def control_sdprods(self,d):
184       """sans objet """
185       pass
186