Logo

Créer un document flexible manuellement 1/2

Last modified: 03/14/2006 10:37 AM
Il s'agit de créer un document constitué d'une partie fixe et d'une partie flexible (itérative). L'exemple pris est simplissime, et permet de bien comprendre le mécanisme.
L'on ne servira pas du (remarquable) outil CpsTypeMaker, afin de mieux apréhender ce mécanisme.

VERSIONS PRESENTES


* Zope : unreleased version, python 2.3.4, win32
* Python : Version 2.3.4 (#53, May 25 2004, 21:17:02)
* CPS : 3.2.4-1
* Environnement Windows XP

1°) L'exemple choisi


L'exemple choisi est pris dans la vie courante :  Une personne (prénom/nom) a un certain nombre d'enfants (prénom/nom). Rien de plus simple.

2°) Mécanisme


Le mécanisme à suivre est le suivant :

  • Enregistrement des Schémas dans Portal_Schemas
  • Enregistrement des Layouts  dans Portal_Layouts
  • Enregistrement du nouveau document dans Portal_Types
  • Prise en compte du nouveau document dans les Workflows
  • Tests


3°) Enregistrement des Schémas dans Portal_Schemas

Attention à bien respecter majuscule/minuscule à partir de maintenant.

Créer un "CPS Schema" nommé "Personne" et définir les deux fields "Nom" et "Prenom" en "CPS String Field"  (voir images ci-dessous).

De même, enregistrer le schéma "Enfants" : définir les deux champs "Nom_enfant" et "Prenom_enfant" en "CPS String Field".

Si vous souhaitez indexer un champ, cocher la case "Indexed by searchable text" (onglet "Properties" de chaque field).


Portal_schemas_Personne.PNG
Portal_schemas : Type Personne

Portal_schemas_Personne_Prenom.PNG
Portal_schemas : Type Personne : Field Prenom


3°) Enregistrement des Layouts dans Portal_Layouts



Remarques :
Les widgets une fois créés apparaissent avec "w_" en pré-fixe.

Respecter majuscule/minuscule.

Le Type "Personne"


Dans Portal_Layouts, créer le CPS Layout "Personne" composé de deux "String widget" : "Nom" et "Prenom".

Pour chaque widget (onglet "Properties") :

  • Dans le champ "Fields", indiquer le nom EXACT du field_id défini dans  Portal_Schemas.
  • Pour ce qui concerne les champs "Title" "Label in view layout mode" et "Label in edit layout mode" je les renseigne avec la valeur de "Fields" sauf quand il y a des noms composés "x_y" ou j'indique  "x y" afin de rendre l'affichage plus lisible.
  • Cochez la case "Required widget" pour rendre le champ obligatoire lors de la saisie,
  • renseigner  "Display width" et "Maximum input width" avec la taille requise du champ.

Dans l'onglet "Layout" de "Personne", ajouter les deux colonnes "Nom" et "Prenom" :  utiliser "Add Row" + sélection du widget.


Le Type "Enfants"

Dans Portal_Layouts, créer le CPS Layout "Enfants" composé de deux "String widget" : "Nom_enfant" et "Prenom_enfant".

Pour chaque widget (onglet "Properties") mêmes remarques que précédemment :

  • Dans le champ "Fields", indiquer le nom EXACT du field_id défini dans  Portal_Schemas.
  • Pour ce qui concerne les champs "Title" "Label in view layout mode" et "Label in edit layout mode" : idem
  • case "Required widget" : idem
  • "Display width" et "Maximum input width" : idem


Mais cette fois ajouter  un nouveau widget de type "Coumpound Widget"  et appeler-le "Line".
Dans le champ "Fields" du widget (onglet "Properties") on indiquera les deux widgets "Nom_enfant" et "Prenom_enfant". Voir image ci-dessous.

Si le type "Coumpound Widget" n'existe pas, créer-le dans "Portal_widget_types".

Dans l'onglet "Layout" de "Enfants" : ne faites rien.


A Suivre dans "Créer un document flexible manuellement 2/2"




This site is powered by CPS, which includes CPSSkins. CPS and its design are Copyright © 2002-2006 Nuxeo SAS.
CPSSkins is Copyright © 2003-2006 Jean-Marc Orliaguet.
powered_by_nuxeo.png