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>