Cedric Marfil a écrit :
Bonjour,
Ayant le besoin de créer des workflows spécifiques, je me suis intéressé à la méthode 'verifyWorkflow' de l'installer. J'ai donc construit un skin qui me retourne les workflows à installer, mais pour pouvoir définir ces derniers, j'avais besoin d'accéder aux constantes stockées dans CPSWorkflow/constants.py. Quoi que je fasse, je n'avais jamais accès à ces constantes. Je me suis donc inspiré de ce qui était fait dans CPSCore/permissions.py puisque l'import de constantes de permissions fonctionnait.
J'ai donc ajouté au fichier constants.py le code suivant:
from AccessControl import ModuleSecurityInfo
security = ModuleSecurityInfo('Products.CPSWorkflow.constants')
security.declarePublic('TRANSITION_ALLOWSUB_CREATE')
TRANSITION_ALLOWSUB_CREATE = 10
security.declarePublic('TRANSITION_ALLOWSUB_DELETE')
TRANSITION_ALLOWSUB_DELETE = 11
security.declarePublic('TRANSITION_ALLOWSUB_MOVE')
TRANSITION_ALLOWSUB_MOVE = 12 # Into this container.
security.declarePublic('TRANSITION_ALLOWSUB_COPY')
TRANSITION_ALLOWSUB_COPY = 13 # Same...
.
.
.
Pour chaque constante déclarée, j'ai ajouté une déclaration de sécurité. Maintenant, mon code fonctionne. Est-ce la bonne solution ?
Si oui, peut-on intégrer cette modification à CPS ?
Si non, quelle est la bonne solution ?

Bonjour,

Ca n'est pas vraiment la bonne solution : ces valeurs sont protégées, non disponibles en code restreint (scripts de skin) et n'ont pas réellement besoin d'être mises a sa disposition

La bonne méthode consiste à placer le code qui décrit les workflows à mettre en place en code restreint, comme c'est le cas dans l'ancienne méthode CPSDefault/Extensions/cpsinstall.py.

La meilleure méthode consiste à utiliser la configuration xml et GenericSetup mais cette option n'est peut-être pas disponible pour la version que vous utilisez (?).

Cordialement,

--
Anahide Tchertchian, Nuxeo
Mail: [EMAIL PROTECTED] - Tel: +33 (0)1 40 33 71 60
http://www.nuxeo.com - http://www.cps-project.org
_______________________________________________
cps-users-fr Adresse de la liste : [email protected]
Gestion de l'abonnement : <http://lists.nuxeo.com/mailman/listinfo/cps-users-fr>

Répondre à