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

Répondre à