1 # -*- coding: utf-8 -*-
2 # CONFIGURATION MANAGEMENT OF EDF VERSION
3 # ======================================================================
4 # COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
5 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
6 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
7 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
8 # (AT YOUR OPTION) ANY LATER VERSION.
10 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
11 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
12 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
13 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
15 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
16 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
17 # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
20 # ======================================================================
22 Ce module contient la classe COMMENTAIRE qui sert dans EFICAS
23 pour gérer les commentaires dans un JDC
26 from Noyau.N_CR import CR
27 from Noyau import N_OBJECT
28 from Ihm import I_OBJECT
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)
65 Retourne 1 si self est valide, 0 sinon
66 Retourne toujours 1 car un commentaire est toujours valide
71 """ Indique si self est obligatoire ou non : retourne toujours 0 """
74 def isrepetable(self):
75 """ Indique si self est répétable ou non : retourne toujours 1 """
80 Rend l'etape courante active
86 Rend l'etape courante inactive
87 NB : un commentaire est toujours actif !
93 Booléenne qui retourne 1 si self est valide, 0 sinon
99 Méthode qui supprime toutes les boucles de références afin que
100 l'objet puisse être correctement détruit par le garbage collector
104 self.definition = None
107 def liste_mc_presents(self):
110 def get_valeur(self) :
111 """ Retourne la valeur de self, cad le contenu du commentaire """
117 def set_valeur(self,new_valeur):
119 Remplace la valeur de self(si elle existe) par new_valeur
121 self.valeur = new_valeur
124 def init_modif(self):
125 self.state = 'modified'
127 self.parent.init_modif()
129 def supprime_sdprods(self):
132 def update_context(self,d):
134 Update le dictionnaire d avec les concepts ou objets produits par self
135 --> ne fait rien pour un commentaire
140 """ Génère l'objet rapport (classe CR) """
142 if not self.isvalid(): self.cr.warn("Objet commentaire non valorisé")
146 """ Retourne le nom interne associé à self
147 Ce nom n'est jamais vu par l'utilisateur dans EFICAS
151 def delete_concept(self,sd):
154 def replace_concept (self,old_sd,sd):
157 def verif_condition_bloc(self):
159 Evalue les conditions de tous les blocs fils possibles
160 (en fonction du catalogue donc de la définition) de self et
161 retourne deux listes :
162 - la première contient les noms des blocs à rajouter
163 - la seconde contient les noms des blocs à supprimer
167 def verif_condition_regles(self,liste_presents):
169 Retourne la liste des mots-clés à rajouter pour satisfaire les règles
170 en fonction de la liste des mots-clés présents
174 def get_sdprods(self,nom_sd):
176 Retourne les concepts produits par la commande
180 def verif_existence_sd(self):
185 Retourne le commentaire lui meme tronque a la 1ere ligne
187 return self.valeur.split('\n',1)[0]
189 def control_sdprods(self,d):