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 gerer les commentaires dans un JDC
25 from __future__ import absolute_import
26 from Noyau.N_CR import CR
27 from Noyau import N_OBJECT
28 from Ihm import I_OBJECT
29 from Extensions.i18n import tr
31 class COMMENTAIRE(N_OBJECT.OBJECT,I_OBJECT.OBJECT) :
33 Cette classe permet de creer des objets de type COMMENTAIRE
35 nature = 'COMMENTAIRE'
38 def __init__(self,valeur,parent=None):
39 # parent est un objet de type OBJECT (ETAPE ou MC ou JDC...)
42 self.jdc = self.parent = CONTEXT.get_current_step()
44 self.jdc = self.parent = parent
45 # La classe COMMENTAIRE n'a pas de definition. On utilise self
49 self.niveau = self.parent.niveau
51 self.state="unchanged"
56 Enregistre le commentaire dans la liste des etapes de son parent
57 lorsque celui-ci est un JDC
59 if self.parent.nature == 'JDC':
60 # le commentaire est entre deux commandes:
61 # il faut l'enregistrer dans la liste des etapes
62 self.parent.register(self)
65 c=COMMENTAIRE(valeur=self.valeur,parent=self.jdc)
70 Retourne 1 si self est valide, 0 sinon
71 Retourne toujours 1 car un commentaire est toujours valide
76 """ Indique si self est obligatoire ou non : retourne toujours 0 """
79 def isrepetable(self):
80 """ Indique si self est repetable ou non : retourne toujours 1 """
85 Rend l'etape courante active
91 Rend l'etape courante inactive
92 NB : un commentaire est toujours actif !
98 Booleenne qui retourne 1 si self est valide, 0 sinon
104 Methode qui supprime toutes les boucles de references afin que
105 l'objet puisse etre correctement detruit par le garbage collector
109 self.definition = None
112 def liste_mc_presents(self):
115 def get_valeur(self) :
116 """ Retourne la valeur de self, cad le contenu du commentaire """
122 def set_valeur(self,new_valeur):
124 Remplace la valeur de self(si elle existe) par new_valeur
126 self.valeur = new_valeur
129 def init_modif(self):
130 self.state = 'modified'
132 self.parent.init_modif()
134 def supprime_sdprods(self):
137 def update_context(self,d):
139 Update le dictionnaire d avec les concepts ou objets produits par self
140 --> ne fait rien pour un commentaire
145 """ Genere l'objet rapport (classe CR) """
147 if not self.isvalid(): self.cr.warn(tr("Objet commentaire non valorise"))
151 """ Retourne le nom interne associe a self
152 Ce nom n'est jamais vu par l'utilisateur dans EFICAS
156 def delete_concept(self,sd):
159 def replace_concept (self,old_sd,sd):
162 def verif_condition_bloc(self):
164 Evalue les conditions de tous les blocs fils possibles
165 (en fonction du catalogue donc de la definition) de self et
166 retourne deux listes :
167 - la premiere contient les noms des blocs a rajouter
168 - la seconde contient les noms des blocs a supprimer
172 def verif_condition_regles(self,liste_presents):
174 Retourne la liste des mots-cles a rajouter pour satisfaire les regles
175 en fonction de la liste des mots-cles presents
179 def get_sdprods(self,nom_sd):
181 Retourne les concepts produits par la commande
185 def verif_existence_sd(self):
190 Retourne le commentaire lui meme tronque a la 1ere ligne
192 return self.valeur.split('\n',1)[0]
194 def control_sdprods(self,d):
201 def reset_context(self):