|
J'ai trouvé une autre solution.
J'ai ajouté une propriété "initialize_fields" à
mon directory. Lors de la méthode renderCreateEntryDetailed, je transfère ces
champs du datastructure au datamodel avant de lancer le computeLayoutStrutcure.
Ce qui évite de faire du spécifique et reste un tant soit peu
générique.
Cordialement
Cédric
Marfil Concepteur Réalisateur Intégrateur Confirmé Tél.
direct: 03.20.65.33.18 Mail: [EMAIL PROTECTED]
Capgemini 181
rue Jules Delcenserie 59700 Marcq en Baroeul
----- Original Message -----
Sent: Wednesday, September 13, 2006 8:15
PM
Subject: Re: [CPS-users-fr] Layout et
widgets hidden
On Sep 13, 2006, at 8:01 PM, Cedric Marfil
wrote:
> Merci Georges, > mais comment me baser sur le
datastructure dans la hidden_if_expr ? > ce n'est pas un objet
qui fait parti du contexte
Ah oui, en effet et d'ailleurs le fait de
déclarer un widget comme caché est fait sans datastructure
(Widget.getModeFromLayoutMode) Eh bien, c'est lourd, mais il ne te
reste plus qu'à lire la valeur directement dans REQUEST (la clef
doit être widget__<id du widget>)
>
<007201c6d75e$ab5aa560$9859440a> > Cédric Marfil >
Concepteur Réalisateur Intégrateur Confirmé > Tél. direct:
03.20.65.33.18 > Mail: [EMAIL PROTECTED] > >
Capgemini > 181 rue Jules Delcenserie > 59700 Marcq en
Baroeul > ----- Original Message ----- > From: Georges
Racinet > To: Cedric Marfil > Sent: Wednesday, September 13, 2006
7:59 PM > Subject: Re: [CPS-users-fr] Layout et widgets
hidden > > > On Sep 13, 2006, at 7:30 PM, Cedric Marfil
wrote: > > > Bonsoir, > > Suite à la création de 2
profils différents pour l'accès à > > l'application, j'ai un layout
avec certains widgets dont > > l'"hidden_if_expr" est
remplie: > > - Quand je visualise mon formulaire de création,
pas de problème. > > - Quand je saisis des données dans les
widgets dont la > > "hidden_if_expr" est remplie et que je valide le
formulaire, ces > > widget n'enregistrent pas leur
valeur > > On dirait que l'élimination des widgets cachés de la
layout_structure > se fait effectivement avant la validation. Mais après
préparation et > mise à jour par rapport à la requête de la
datastructure. Tu ferais > mieux de te baser sur le contenu de la
datastructure plutôt que sur > le datamodel. > > >
- Si en création, un widget n'est pas validé, alors le layout se > >
réaffiche sans les champs dont la "hidden_if_expr" est
remplie. > > A priori, 'typeMember' n'est plus dans la requête au
second clic donc > ton _expression_ donne datamodel['typeMember'], qui
vaut la > default_expr de ton champ (parce qu'on est en création), à vue
de nez > ça doit être '', ce qui cache le widget. > >
> - Quand je suis en modification, le formulaire s'affiche et
se > > comporte correctement. > > > > Voici à quoi
ressemble ma hidden_if_expr: > > python:
context.REQUEST.get('typeMember', datamodel['typeMember']) ! > > =
'professionnel' > > > > Je me doute que çà doit avoir un
rapport avec le fait qu'au moment > > de l'enregistrement des données
(méthode > > layout.validate_layout_structure), le widget doit
apparaître en > > hidden car le contexte d'évaluation de l'_expression_
ne correspond > > plus au formulaire initial, mais je n'ai pas d'idée
sur la façon de > > résoudre ce problème. > > Peut-être
suffit-il de changer mon _expression_, mais pour y mettre > > quoi
? > > > > Merci d'avance pour vos retours >
> > > Cordialement > > > >
<capLogo.gif> > > Cédric Marfil > > Concepteur
Réalisateur Intégrateur Confirmé > > Tél. direct:
03.20.65.33.18 > > Mail: [EMAIL PROTECTED] >
> > > Capgemini > > 181 rue Jules Delcenserie >
> 59700 Marcq en Baroeul > > This message contains information
that may be privileged or > > confidential and is the property of the
Capgemini Group. It is > > intended only for the person to whom it is
addressed. If you are > > not the intended recipient, you are not
authorized to read, print, > > retain, copy, disseminate, distribute,
or use this message or any > > part thereof. If you receive this
message in error, please notify > > the sender immediately and delete
all copies of this message. > > > >
<capLogo.gif> > >
_______________________________________________ > >
cps-users-fr > > Adresse de la liste : [email protected] >
> Gestion de l'abonnement : <http://lists.nuxeo.com/mailman/listinfo/ >
> cps-users-fr> > > --------- > Georges
Racinet
Nuxeo SAS > [EMAIL PROTECTED]
http://nuxeo.com > Tel: +33 (0) 1 40 33
71 73 > > This message contains information that may be privileged
or > confidential and is the property of the Capgemini Group. It
is > intended only for the person to whom it is addressed. If you
are > not the intended recipient, you are not authorized to read,
print, > retain, copy, disseminate, distribute, or use this
message or any > part thereof. If you receive this message in
error, please notify > the sender immediately and delete all
copies of this message. > >
--------- Georges
Racinet
Nuxeo SAS [EMAIL PROTECTED]
http://nuxeo.com Tel: +33 (0) 1 40 33 71
73
This message contains information that may be privileged or confidential and is the property of the Capgemini Group. It is intended only for the person to whom it is addressed. If you are not the intended recipient, you are not authorized to read, print, retain, copy, disseminate, distribute, or use this message or any part thereof. If you receive this message in error, please notify the sender immediately and delete all copies of this message.
|
|