2 Ce module contient la classe mixin PROC_ETAPE qui porte les méthodes
3 nécessaires pour réaliser la validation d'un objet de type PROC_ETAPE
6 Une classe mixin porte principalement des traitements et est
7 utilisée par héritage multiple pour composer les traitements.
14 from Noyau.N_Exception import AsException
15 from Noyau.N_utils import AsType
17 class PROC_ETAPE(V_ETAPE.ETAPE):
19 On réutilise les méthodes report,verif_regles
20 de ETAPE par héritage.
23 def isvalid(self,sd='oui',cr='non'):
25 Methode pour verifier la validité de l'objet PROC_ETAPE. Cette méthode
26 peut etre appelée selon plusieurs modes en fonction de la valeur
27 de sd et de cr (sd n'est pas utilisé).
29 Si cr vaut oui elle crée en plus un compte-rendu.
31 Cette méthode a plusieurs fonctions :
33 - retourner un indicateur de validité 0=non, 1=oui
35 - produire un compte-rendu : self.cr
37 - propager l'éventuel changement d'état au parent
40 if CONTEXT.debug : print "ETAPE.isvalid ",self.nom
41 if self.state == 'unchanged' :
45 if hasattr(self,'valid'):
46 old_valid = self.valid
49 # on teste les enfants
50 for child in self.mc_liste :
51 if not child.isvalid():
54 # on teste les règles de self
55 text_erreurs,test_regles = self.verif_regles()
57 if cr == 'oui' : self.cr.fatal(string.join(("Règle(s) non respectée(s) :", text_erreurs)))
59 if self.reste_val != {}:
61 self.cr.fatal("Mots cles inconnus :" + string.join(self.reste_val.keys(),','))
64 self.state = 'unchanged'
66 if old_valid != self.valid : self.init_modif_up()