Re: developpement widget

Yves Bastide <[email protected]>
Newsgroups gmane.comp.web.zope.cps.general.french
Message-ID <[email protected]>
yengui firas a écrit :
> Bonjour,
> C'est encore concernant le développement de widget,
> Dans le widget CPSDateTime on a le champs date et dans la datastructure 
> on a ajouté date_hour et date_minute
> Je voulais savoir comment se fais la correspendance entre date_hour et 
> date_minute dans la DS et la valeur des select widget__date_hour et  
> widget__date _minute  pour que les modification de ces dernier affecte 
> la valeur des variable de correspendant dans la DS

Cf les méthodes prepare, render et validate d'un widget :

* prepare prend les données dans le datamodel, données identifiées par 
self.fields, et les met dans la datastructure. Par exemple :

         v = datamodel[self.fields[0]]
         ...
         v, date, hour, minute = self.getDateTimeInfo(v, mode=None)
         ...
         datastructure[widget_id + '_date'] = date

(self.fields[0] est le premier nom de champ saisi dans le layout)

* render renvoie de l'html en utilisant les données de la datastructure. En 
général il délègue la génération de l'html à un ZPT. Par exemple :

         render_method = 'widget_datetime_render'
         meth = getattr(self, render_method, None)
         ...
         return meth(mode=mode, datastructure=datastructure)

(les joies de l'acquisition : getattr va chercher dans portal_skins/ et le 
reste du site)

* validate fait l'inverse de prepare, mettant à jour le datamodel d'après la 
datastructure et faisant les contrôles d'erreur :

         date = datastructure[widget_id + '_date'].strip()
         ...
         y, m, d = date.split('-')
         ...
         v = DateTime(int(y), int(m), int(d), int(hour), int(minute))
         ...
         datamodel[field_id] = v
         return 1


Tu « ajoutes date_hour et date_minute » -- c'est quoi exactement ? Enfin, de 
toute façon, je suppose que t'as modifié prepare (et render) et le PT. Puis il 
faut les utiliser dans validate...

(Et j'espère que tu ne modifies pas directement ExtendedWidgets.py :-) )

> cordialement firas

yves

_______________________________________________
cps-users-fr 
Adresse de la liste : [email protected]
Gestion de l'abonnement : <http://lists.nuxeo.com/mailman/listinfo/cps-users-fr>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.