From 578058947e04a832de2c3fbaad40acc063c283d5 Mon Sep 17 00:00:00 2001 From: eficas <> Date: Wed, 6 Nov 2002 17:29:35 +0000 Subject: [PATCH] =?utf8?q?CCAR:=20Modified=20Files:=20CCAR:=20=09commande?= =?utf8?q?=5Fcomm.py=20commentaire.py=20etape=5Fniveau.py=20parametre.py?= =?utf8?q?=20CCAR:=20=09parametre=5Feval.py=20CCAR:=20Added=20Files:=20CCA?= =?utf8?q?R:=20=09jdc=5Finclude.py=20CCAR:=20-----------------------------?= =?utf8?q?-----------------------------------------=20CCAR=20:=20developpe?= =?utf8?q?ment=20pour=20traiter=20correctement=20l'insertion=20et=20la=20d?= =?utf8?q?estruction=20des=20macros=20avec=20etapes=20et=20concepts=20incl?= =?utf8?q?us.=20Ces=20INCLUDEs=20sont=20evalu=C3=A9s=20dans=20un=20JDC=20a?= =?utf8?q?uxiliaire=20avant=20d'etre=20ins=C3=A9r=C3=A9es=20d=C3=A9finitiv?= =?utf8?q?ement=20dans=20la=20macro=20apres=20verification.?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- Extensions/commande_comm.py | 4 ++ Extensions/commentaire.py | 5 +++ Extensions/etape_niveau.py | 1 + Extensions/jdc_include.py | 85 ++++++++++++++++++++++++++++++++++++ Extensions/parametre.py | 5 +++ Extensions/parametre_eval.py | 1 + 6 files changed, 101 insertions(+) create mode 100644 Extensions/jdc_include.py diff --git a/Extensions/commande_comm.py b/Extensions/commande_comm.py index 28b91a3b..ae97d951 100644 --- a/Extensions/commande_comm.py +++ b/Extensions/commande_comm.py @@ -43,6 +43,7 @@ class COMMANDE_COMM: self.nom = '' self.niveau = self.parent.niveau self.actif=1 + self.state="unchanged" #self.appel = N_utils.callee_where(niveau=2) if reg=='oui' : self.register() @@ -245,3 +246,6 @@ class COMMANDE_COMM: """ pass + def control_sdprods(self,d): + """sans objet pour les commandes commentarisées""" + pass diff --git a/Extensions/commentaire.py b/Extensions/commentaire.py index 993fda43..d36328c6 100644 --- a/Extensions/commentaire.py +++ b/Extensions/commentaire.py @@ -44,6 +44,7 @@ class COMMENTAIRE : self.nom='' self.niveau = self.parent.niveau self.actif=1 + self.state="unchanged" self.register() def register(self): @@ -179,3 +180,7 @@ class COMMENTAIRE : """ return self.valeur.split('\n',1)[0] + def control_sdprods(self,d): + """sans objet """ + pass + diff --git a/Extensions/etape_niveau.py b/Extensions/etape_niveau.py index 675fb6b8..fb109ec0 100644 --- a/Extensions/etape_niveau.py +++ b/Extensions/etape_niveau.py @@ -37,6 +37,7 @@ class ETAPE_NIVEAU(N_OBJECT.OBJECT): self.etapes_niveaux = [] self.dict_niveaux={} self.editmode = 0 + self.state="undetermined" self.build_niveaux() def build_niveaux(self): diff --git a/Extensions/jdc_include.py b/Extensions/jdc_include.py new file mode 100644 index 00000000..b2406937 --- /dev/null +++ b/Extensions/jdc_include.py @@ -0,0 +1,85 @@ +""" + Ce module contient la classe JDC_INCLUDE qui sert a inclure + dans un jeu de commandes une partie de jeu de commandes + au moyen de la fonctionnalite INCLUDE ou INCLUDE_MATERIAU + Quand l'utilisateur veut inclure un fichier il faut versifier + que le jeu de commandes inclus est valide et compatible + avec le contexte avant et apres l'insertion +""" +from Accas import JDC,ASSD,AsException,JDC_CATA + + +class JDC_POURSUITE(JDC): + def __init__(self,definition=None,procedure=None,cata=None, + cata_ord_dico=None,parent=None, + nom='SansNom',appli=None,context_ini=None, + jdc_pere=None,etape_include=None,prefix_include=None,**args): + + JDC.__init__(self, definition=definition, + procedure=procedure, + cata=cata, + cata_ord_dico=cata_ord_dico, + parent=parent, + nom=nom, + appli=appli, + context_ini=context_ini, + **args + ) + self.jdc_pere=jdc_pere + self.etape_include=etape_include + self.prefix_include=prefix_include + + def NommerSdprod(self,sd,sdnom,restrict='non'): + """ + Nomme la SD apres avoir verifie que le nommage est possible : nom + non utilise + Ajoute un prefixe s'il est specifie (INCLUDE_MATERIAU) + Si le nom est deja utilise, leve une exception + Met le concept créé dans le concept global g_context + """ + if self.prefix_include: + if sdnom != self.prefix_include:sdnom=self.prefix_include+sdnom + o=self.sds_dict.get(sdnom,None) + if isinstance(o,ASSD): + raise AsException("Nom de concept deja defini : %s" % sdnom) + # Il faut verifier en plus que le jdc_pere apres l'etape etape_include + # ne contient pas deja un concept de ce nom + + mysd= self.jdc_pere.get_sd_apres_etape(sdnom,etape=self.etape_include) + if mysd: + #if self.jdc_pere.get_sd_apres_etape(sdnom,etape=self.etape_include): + # Il existe un concept apres self => impossible d'inserer + raise AsException("Nom de concept deja defini : %s" % sdnom) + + # ATTENTION : Il ne faut pas ajouter sd dans sds car il s y trouve deja. + # Ajoute a la creation (appel de reg_sd). + self.sds_dict[sdnom]=sd + sd.nom=sdnom + + # En plus si restrict vaut 'non', on insere le concept dans le contexte du JDC + if restrict == 'non': + self.g_context[sdnom]=sd + +class JDC_INCLUDE(JDC_POURSUITE): + def active_etapes(self): + for e in self.etapes: + e.active() + +class JDC_CATA_INCLUDE(JDC_CATA): + class_instance=JDC_INCLUDE + +class JDC_CATA_POURSUITE(JDC_CATA): + class_instance=JDC_POURSUITE + +from Accas import AU_MOINS_UN,A_CLASSER + +JdC_include=JDC_CATA_INCLUDE(code='ASTER', execmodul=None) + +JdC_poursuite=JDC_CATA_POURSUITE(code='ASTER', execmodul=None, + regles = (AU_MOINS_UN('DEBUT','POURSUITE'), + AU_MOINS_UN('FIN'), + A_CLASSER(('DEBUT','POURSUITE'),'FIN') + ) + ) + + diff --git a/Extensions/parametre.py b/Extensions/parametre.py index 20455bfe..3eff619c 100644 --- a/Extensions/parametre.py +++ b/Extensions/parametre.py @@ -53,6 +53,7 @@ class PARAMETRE : self.jdc = self.parent = CONTEXT.get_current_step() self.niveau=self.parent.niveau self.actif=1 + self.state='undetermined' self.register() def interprete_valeur(self,val): @@ -272,6 +273,10 @@ class PARAMETRE : def verif_existence_sd(self): pass + def control_sdprods(self,d): + """sans objet """ + pass + diff --git a/Extensions/parametre_eval.py b/Extensions/parametre_eval.py index b45546d9..73228bee 100644 --- a/Extensions/parametre_eval.py +++ b/Extensions/parametre_eval.py @@ -56,6 +56,7 @@ class PARAMETRE_EVAL(parametre.PARAMETRE) : self.definition=self self.niveau = self.parent.niveau self.actif=1 + self.state='undetermined' # Ceci est-il indispensable ??? #self.appel = N_utils.callee_where(niveau=2) self.register() -- 2.39.2