+ def valid_child(self):
+ """ Cette methode teste la validite des mots cles de l'etape """
+ for child in self.mc_liste :
+ if not child.isvalid():
+ return 0
+ return 1
+
+ def valid_regles(self,cr):
+ """ Cette methode teste la validite des regles de l'etape """
+ text_erreurs,test_regles = self.verif_regles()
+ if not test_regles :
+ if cr == 'oui' : self.cr.fatal(string.join(("Règle(s) non respectée(s) :", text_erreurs)))
+ return 0
+ return 1
+
+ def valid_sdnom(self,cr):
+ """ Cette methode teste la validite du nom du concept produit par l'etape """
+ valid=1
+ if self.sd.nom != None :
+ if self.jdc and self.jdc.definition.code == 'ASTER' and len(self.sd.nom) > 8 :
+ # le nom de la sd doit avoir une longueur <= 8 caractères pour ASTER
+ if cr == 'oui' :
+ self.cr.fatal("Le nom de concept %s est trop long (8 caractères maxi)" %self.sd.nom)
+ valid = 0
+ if string.find(self.sd.nom,'sansnom') != -1 :
+ # la SD est 'sansnom' : --> erreur
+ if cr == 'oui' :
+ self.cr.fatal("Pas de nom pour le concept retourné")
+ valid = 0
+ elif string.find(self.sd.nom,'SD_') != -1 :
+ # la SD est 'SD_' cad son nom = son id donc pas de nom donné par utilisateur : --> erreur
+ if cr == 'oui' :
+ self.cr.fatal("Pas de nom pour le concept retourné")
+ valid = 0
+ return valid
+
+ def get_valid(self):
+ if hasattr(self,'valid'):
+ return self.valid
+ else:
+ self.valid=None
+ return None
+
+ def set_valid(self,valid):
+ old_valid=self.get_valid()
+ self.valid = valid
+ self.state = 'unchanged'
+ if not old_valid or old_valid != self.valid :
+ self.init_modif_up()
+