1 # -*- coding: utf-8 -*-
2 # Copyright (C) 2007-2013 EDF R&D
4 # This library is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU Lesser General Public
6 # License as published by the Free Software Foundation; either
7 # version 2.1 of the License.
9 # This library is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 # Lesser General Public License for more details.
14 # You should have received a copy of the GNU Lesser General Public
15 # License along with this library; if not, write to the Free Software
16 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21 Ce module contient la classe COMMENTAIRE qui sert dans EFICAS
22 pour gérer les commentaires dans un JDC
25 from Noyau.N_CR import CR
26 from Noyau import N_OBJECT
27 from Ihm import I_OBJECT
28 from Extensions.i18n import tr
30 class COMMENTAIRE(N_OBJECT.OBJECT,I_OBJECT.OBJECT) :
32 Cette classe permet de créer des objets de type COMMENTAIRE
34 nature = 'COMMENTAIRE'
37 def __init__(self,valeur,parent=None):
38 # parent est un objet de type OBJECT (ETAPE ou MC ou JDC...)
41 self.jdc = self.parent = CONTEXT.get_current_step()
43 self.jdc = self.parent = parent
44 # La classe COMMENTAIRE n'a pas de définition. On utilise self
48 self.niveau = self.parent.niveau
50 self.state="unchanged"
55 Enregistre le commentaire dans la liste des étapes de son parent
56 lorsque celui-ci est un JDC
58 if self.parent.nature == 'JDC':
59 # le commentaire est entre deux commandes:
60 # il faut l'enregistrer dans la liste des étapes
61 self.parent.register(self)
64 c=COMMENTAIRE(valeur=self.valeur,parent=self.jdc)
69 Retourne 1 si self est valide, 0 sinon
70 Retourne toujours 1 car un commentaire est toujours valide
75 """ Indique si self est obligatoire ou non : retourne toujours 0 """
78 def isrepetable(self):
79 """ Indique si self est répétable ou non : retourne toujours 1 """
84 Rend l'etape courante active
90 Rend l'etape courante inactive
91 NB : un commentaire est toujours actif !
97 Booléenne qui retourne 1 si self est valide, 0 sinon
103 Méthode qui supprime toutes les boucles de références afin que
104 l'objet puisse être correctement détruit par le garbage collector
108 self.definition = None
111 def liste_mc_presents(self):
114 def get_valeur(self) :
115 """ Retourne la valeur de self, cad le contenu du commentaire """
121 def set_valeur(self,new_valeur):
123 Remplace la valeur de self(si elle existe) par new_valeur
125 self.valeur = new_valeur
128 def init_modif(self):
129 self.state = 'modified'
131 self.parent.init_modif()
133 def supprime_sdprods(self):
136 def update_context(self,d):
138 Update le dictionnaire d avec les concepts ou objets produits par self
139 --> ne fait rien pour un commentaire
144 """ Génère l'objet rapport (classe CR) """
146 if not self.isvalid(): self.cr.warn(tr("Objet commentaire non valorise"))
150 """ Retourne le nom interne associé à self
151 Ce nom n'est jamais vu par l'utilisateur dans EFICAS
155 def delete_concept(self,sd):
158 def replace_concept (self,old_sd,sd):
161 def verif_condition_bloc(self):
163 Evalue les conditions de tous les blocs fils possibles
164 (en fonction du catalogue donc de la définition) de self et
165 retourne deux listes :
166 - la première contient les noms des blocs à rajouter
167 - la seconde contient les noms des blocs à supprimer
171 def verif_condition_regles(self,liste_presents):
173 Retourne la liste des mots-clés à rajouter pour satisfaire les règles
174 en fonction de la liste des mots-clés présents
178 def get_sdprods(self,nom_sd):
180 Retourne les concepts produits par la commande
184 def verif_existence_sd(self):
189 Retourne le commentaire lui meme tronque a la 1ere ligne
191 return self.valeur.split('\n',1)[0]
193 def control_sdprods(self,d):
200 def reset_context(self):