L'outil portal_types

Dans la ZMI, à la base du site ERP5, il existe une série d'objets représentés par une icône en forme de clé à molette : ce sont des portal tools. Il s'agit d'une interface pour piloter une fonctionnalité de Zope. Par exemple pour utiliser et configurer depuis la ZMI le produit ERP5SyncML de synchronisation, il existe un outil portal_synchronizations.

Nous allons nous intéresser à l'outil portal_types, appartenant à CMF, un framework Zope de gestion de contenu que ERP5 utilise allégrement. L'outil portal_types permet de créer des types génériques de document sur la base de nos classes définies dans la partie précédente. Nous ferons la distinction par la suite de portal_types (l'outil) et des portal types (ce que contient l'outil portal_types).

Pour créer un nouveau portal type depuis les script pythons implémentant nos classes, il faut choisir Factory-based Type Information :

Nous sélectionnons ensuite la classe sur laquelle notre nouveau portal type va s'appuyer et nous lui donnons un nom explicite :

On peut remarquer ici que la description de notre portal type est celle du fichier Document/PaySheetTransaction.py que l'on à édité tout à l'heure. En réalité la variable factory_type_information de ce fichier est récupéré par l'outil portal_types pour déterminer les propriétés de notre nouveau portal type.

On fabriquera un portal type pour chacune des quatre classes relatives à la description de notre feuille de paie :

--flo Style : Je, nous, on... à voir

--flo Style: portal pourra avantageusement se traduire par portail

Pour résumer on peut dire que tous nos portal types du genre PaySheet* sont des images dans Zope de nos classes définies par nos scripts python.

La réalité est plus subtile car ils peut y avoir deux portal types différents qui se basent sur la même classe, car leur rôle premier est de créer des types documentaires. Par exemple depuis une même classe DocumentEcrit nous pouvons créer deux portal types différents : Article et CommuniquéDePresse. Les deux se décrivent par la même structure de données et les mêmes propriétés. L'intérêt de créer deux types de documents est que nous pouvons appliquer à chaque type un workflow différent ou une mise en page adaptée.

page 2/3

Page 2

Page 2 / 3

2004-03-22T23:23:13