Christophe Combelles a écrit :
jnmrclg...@free.fr a écrit :
Bonjour.

Mettons l'application suivante.

Une interface IClient qui définit le contenu de Client : nom, prénom, homme ou femme. Je souhaite obtenir un n° de téléphone s'il s'agit d'une femme (désolé pour le machisme du propos...). Ce qui donnerait, aux imports près :

class IClient(Persistent):

class IClient(Interface):


(Persistent, c'est pour les classes qui implémentent cette interface) :

class Client(Persistent):
   implements(IClient)
   ...etc...


Au temps pour moi : je me suis mélangé les pinceaux...
    '''renseignement sur un client'''
    nom=TextLine(
        title="Nom",
        description="Nom du client",
        required=True,
        )

    prenom=TextLine(
        title="Prénom",
        description="Prénom du client",
        required=True,
        )

    genre=Choice(
        title="Genre",
        description="Genre du client",
        values=[u'Femme',u'Homme'],
        required=True,
        )

    telephone=TextLine(
        title="Téléphone",
        description="Numéro de téléphone s'il s'agit d'une femme",
required=True if genre=Femme <------ est-ce ici qu'il faut rajouter une condition ?

Ça doit pouvoir se faire avec un invariant.
http://svn.zope.org/zope.schema/trunk/src/zope/schema/validation.txt?rev=96012&view=markup



Ah tiens, oui, j'ai vu passer ça quelque part... je vais creuser.
        )

Ou alors est-ce qu'il faut que je fasse mumuse avec des conteneurs à contraintes ? Auquel cas je limite le schéma IClient aux trois premiers champs (nom/prénom/genre) et j'enchaîne avec une interface ITelephone que je déclenche si besoin... brrr pas simple tout ça...
Merci d'avance pour votre aide !

JMarc

PS : en fait, je cherche une solution pour demander une adresse aux clients en fonction de leur pays d'origine (formats différents)...

Et comme je suis en train de continuer la lecture de Philip W., je suis tombé sur la notion d'event... peut-être puis-je créer un event qui fait un truc du genre : if genre==u'Femme', déclencher un adapter de la classe Client qui demande un n° de téléphone. Je dis ça, mais c'est encore très conceptuel...

Et pour mon appli Eticoto, je me dis que la sélection du pays peut déclencher un event qui orientera la suite de l'instanciation vers l'adapter correspondant au format d'adresse du pays... A creuser (je passe chez Jardiland ce soir pour acheter des pelles et des pioches)

Merci pour cette réponse, Christophe ! J'espère arriver au terme de ma quête pour ces histoires d'étiquettes : je promets à la liste un petit vade mecum de la construction de l'appli en question, ainsi qu'une doc de pro !

JMarc
_______________________________________________
zope3-french-user mailing list
zope3-french-user@lists.afpy.org
http://lists.afpy.org/mailman/listinfo/zope3-french-user



_______________________________________________
zope3-french-user mailing list
zope3-french-user@lists.afpy.org
http://lists.afpy.org/mailman/listinfo/zope3-french-user


_______________________________________________
zope3-french-user mailing list
zope3-french-user@lists.afpy.org
http://lists.afpy.org/mailman/listinfo/zope3-french-user

Répondre à