Grégory FRANCOIS a écrit :
Bonjour,
Pour permettre aux membres d'un portail d'acceder au MailHost (lors d'une
creation de document) sans etre manager, j'essaie de créer un tool lequel
sera appelé par le wfscript.
Le script d'installation du site déclenche l'erreur suivante :
Traceback (innermost last):
* Module ZPublisher.Publish, line 115, in publish
* Module ZPublisher.mapply, line 88, in mapply
* Module ZPublisher.Publish, line 41, in call_object
* Module Products.ExternalMethod.ExternalMethod, line 225, in __call__
__traceback_info__: ((<CPSDefaultSite at /IntranetCirus>,), {}, None)
* Module
C:\Zope-Instance\Products\IntranetCirus\Extensions\install.py, line
320, in install
* Module
C:\Zope-Instance\Products\IntranetCirus\Extensions\install.py, line
314, in installSendMailAsManager
* Module Products.CPSInstaller.CMFInstaller, line 174, in getTool
* Module Products.CMFCore.utils, line 82, in getToolByName
AttributeError: Mon_tool
Visiblement le tool en question n'existe pas au moment de l'appel à
getToolByName. Il faut le creer avant dans le script d'install ou part un
import_step / toolset dedié dans un profil GenericSetup.
Mais étant donné le fait que ce tool ne contient aucune donnée persistente il
est plus simple de coder cette fonction dans un simple module au lieu d'en faire
une méthode de tool.
Par exemple dans un fichier Products.MonProduit.utils.py :
"""
from AccessControl import ModuleSecurityInfo
ModuleSecurityInfo('Products.MonProduit.utils').declarePublic('ma_fonction')
def ma_fonction(arg1, arg2):
pass
"""
Ne pas oublier de faire un "import utils" dans le __init__.py du produit pour
que la declaration de sécurité soit prise en compte au lancement de Zope.
Dans le script de wf ou dans n'importe quel autre bout de code restreint il sera
alors possible de faire :
modules['Products.MonProduit.utils'].ma_fonction(arg1, arg2)
--
Olivier
_______________________________________________
cps-users-fr
Adresse de la liste : [email protected]
Gestion de l'abonnement : <http://lists.nuxeo.com/mailman/listinfo/cps-users-fr>