On Apr 19, 2006, at 4:45 PM, HERVE Patrick wrote:
Bonjour,
j'ai construit un type de document à partir de CPS Flexible Type
Information dans portal_type,
j'ai mis dans portal_layouts et portal_schemas les widgets dont
j'ai besoin.
Ce type de document marche très bien.
Toutefois je voudrais changer l'attributs is_required à False d'un
des widgets de ce type de document.
Je vais donc dans portal_layout/mon_type_de_doc/mon_widget et je
mets is_required à False au lieu de True.
Je m'aperçois que seul mes nouveaux documents ont cet attribut de
désactivé, les anciens documents ont toujours ce widgets à
is_required=True .
Il semblerait que dans un document de type CPS Flexible Type
Information regarde les informations des widgets soit stocké sur le
document lui même et non dans portal_layout.
Normalement, c'est le cas uniquement si le layout comporte des
widgets flexibles: le layout est recopié depuis portal_layouts dans
le document au moment de la création du premier widget flexible
Questions 1: comment faire pour que les anciens documents soit
affectés lors d'un reparamétrage de widget ? existe il du code
python/CPS pour faire cela ?
J'ai fait un truc comme cela il y a longtemps dans un cas particulier
de ce genre
Questions 2 : au cas ou la questions 1 soit sans solution, est-il
possible de parcourir la liste des documents dont je veux changer
l'attribut is_required d'un des widgets et de changer la valeur de
cet attribut, quel code python/CPS doit on écrire pour faire cela ?
Ça ressemblerait à ça:
- appel au catalogue pour trouver tous les proxies du portal_type
concerné *dans les workspaces*
- aller chercher le CPSDocument correspondant
- regarder s'il y a le container de layout, si oui récupérer le
widget, changer la propriété. Voir
CPSDocument.FlexibleTypeInformation.getLayout (de mémoire) pour voir
comment ça marche.
Le tout dans une méthode externe.
Avec cette méthode, vous ne touchez pas aux versions archivées, mais
c'est tant mieux. Vous risquez à la marge de passer plusieurs fois
sur quelques documents et d'avoir des problèmes si certains sont
verrouillés par 'créer une version'.
Inutile de rappeler qu'il faut faire un backup avant :-)
Merci.
_______________________________________________
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
_______________________________________________
cps-users-fr
Adresse de la liste : [email protected]
Gestion de l'abonnement : <http://lists.nuxeo.com/mailman/listinfo/cps-users-fr>