+ if v.etape.sdnom != "sansnom" : l.append(k)
+ l.sort()
+ return l
+
+ def get_variables(self,etape):
+ etapeStop=etape
+ l=[]
+ for etapeTraitee in self.etapes :
+ if etapeTraitee==etapeStop:
+ break
+ if etapeTraitee.nom == 'VARIABLE' :
+ variable=etapeTraitee.get_mocle('ModelVariable')
+ if variable != None :
+ l.append(variable.nom)
+ return l
+
+ def get_distributions(self,etape):
+ etapeStop=etape
+ l=[]
+ for etapeTraitee in self.etapes :
+ if etapeTraitee==etapeStop: break
+ if etapeTraitee.nom == 'DISTRIBUTION' and etapeTraitee.sd !=None : l.append(etapeTraitee.sd.nom)
+ return l
+
+
+ #def set_Copules_recalcule_etat(self):
+ # for etapeTraitee in self.etapes :
+ # if etapeTraitee.nom == 'CORRELATION' :
+ #Matrix=etapeTraitee.get_child('Matrix')
+ #if Matrix !=None :
+ # Correlation=etapeTraitee.get_child('CorrelationMatrix')
+ # if Correlation !=None : Correlation.state='arecalculer'
+ # Matrix.state='arecalculer'
+
+ #def recalcule_etat_correlation(self):
+ # for etapeTraitee in self.etapes :
+ # if etapeTraitee.nom == 'CORRELATION' :
+ #Matrix=etapeTraitee.get_child('Matrix')
+ #if Matrix !=None :
+ # Matrix.state='arecalculer'
+ # Correlation=Matrix.get_child('CorrelationMatrix')
+ # if Correlation !=None : Correlation.state='arecalculer'
+ # Correlation.isvalid()
+ # Matrix.isvalid()
+ # etapeTraitee.state='arecalculer'
+ # if etapeTraitee.state=='arecalculer': etapeTraitee.isvalid()
+
+ def recalcule_etat_correlation(self):
+ for etapeTraitee in self.etapes :
+ if etapeTraitee.nom == 'CORRELATION' :
+ Correlation=etapeTraitee.get_child('CorrelationMatrix')
+ if Correlation !=None :
+ Correlation.state='arecalculer'
+ Correlation.isvalid()
+ etapeTraitee.isvalid()
+
+ def recalcule_validite_apres_changement_global_jdc(self):
+ #print "je passe dans recalcule_validite_apres_changement_global_jdc"
+ try :
+ liste=self.get_jdc_root().cata[0].liste_condition
+ except :
+ liste=()
+ for etapeTraitee in self.etapes :
+ if etapeTraitee.nom not in liste: continue
+ self.forceRecalculBloc(etapeTraitee)
+ etapeTraitee.state='arecalculer'
+ etapeTraitee.isvalid()
+
+
+ def forceRecalculBloc(self,objet):
+ # Attention : certains objets deviennent None quand on recalcule
+ # les conditions d existence des blocs
+ if objet != None: objet.state='arecalculer'
+ if hasattr(objet,'liste_mc_presents'):
+ for childNom in objet.liste_mc_presents():
+ child=objet.get_child(childNom)
+ if hasattr(objet,'_update_condition_bloc'):objet._update_condition_bloc()
+ self.forceRecalculBloc(child)
+
+
+ def get_sd_avant_du_bon_type_pour_type_de_base(self,etape,type):
+ """
+ Retourne la liste des concepts avant etape d'1 type de base acceptable
+ Attention different de la routine precedente : 1 seul type passe en parametre
+ Teste sur issubclass et par sur le type permis
+ """
+ d=self.get_contexte_avant(etape)
+ l=[]
+ try :
+ typeverif=self.cata[0].__dict__[type]
+ except :
+ return l
+ for k,v in d.items():
+ if issubclass(v.__class__,typeverif):