ci-dessous un script python qui fonctionne. Comment le faire passer dans mon application zope3 ? Que ce soit avec une requète pour visualiser son fonctionnement ou commme un event aprés la création d'un objet de la classe. J'ai essayé mille choses, j'ai lu des centaines de pages mais rien me donne la réponse même si cela semble évident théoriquement. Je compte sur vous. Avec mes remerciements anticipés. Albert ci dessous mon script import zope from zope.interface import Interface, implements, Attribute from zope.interface.adapter import AdapterRegistry
registry=AdapterRegistry() class ICompte (Interface): pass class IEcriture(Interface): pass class IEcritAj(Interface): compte=Attribute("Compte") ecriture=Attribute("Ecriture") """ """ def update(EcritAj): """update""" class Compte(object): implements(ICompte) class Ecriture(object): implements(IEcriture) caisse=Compte() caisse.solde=10 loyer=Compte() loyer.solde=25 Ec1=Ecriture() Ec1.cptdeb='caisse' Ec1.montant=22 class EcritAj(object): implements(IEcritAj) def __init__(self,compte,ecriture): self.compte, self.ecriture=compte,ecriture def update(self): mt=self.ecriture.montant self.compte.solde=self.compte.solde+mt return self.compte registry.register([ICompte,IEcriture],IEcritAj,'Bob',EcritAj) m=registry.queryMultiAdapter((caisse,Ec1), IEcritAj,'Bob') Ec2=Ecriture() Ec2.cptdeb='caisse' Ec2.montant=22 registry.register([ICompte,IEcriture],IEcritAj,'Bob',EcritAj) m2=registry.queryMultiAdapter((caisse,Ec2), IEcritAj,'Bob') adapters=list(registry.lookupAll([ICompte,IEcriture], IEcritAj)) adapters.sort() adapter2=list(registry.lookupAll([ICompte,IEcriture], IEcritAj)) adapter2.sort Ec3=Ecriture() Ec3.cptdeb='loyer' Ec3.montant=22 registry.register([ICompte,IEcriture],IEcritAj,'Bob',EcritAj) m3=registry.queryMultiAdapter((loyer,Ec3), IEcritAj,'Bob') if __name__ == '__main__': print m.__class__.__name__ print m.compte is caisse and m.ecriture is Ec1 print "m",m.compte.solde, m.ecriture.cptdeb print "a",adapters print "m_upd",m.update() print "m2",m2.compte.solde, m2.ecriture.cptdeb print "a2",adapter2 m2.update() print "m2_upd",m2.update() m3.update() print "m3",m3.compte.solde,m3.ecriture.cptdeb,m3.ecriture.montant m3.update() print "m3",m3.compte.solde,m3.ecriture.cptdeb,m3.ecriture.montant _______________________________________________ zope3-french-user mailing list zope3-french-user@lists.afpy.org http://lists.afpy.org/mailman/listinfo/zope3-french-user