Merci pour tes indications, 
pour la peine , voici la m�thode que j'utilise pour installer de nouveau type 
de document sans remettre � z�ro les autres types:








Dans un fichier <un_produit>/Extension/update_SPEC_documents.py , mettre ceci :


from Products.CPSInstaller.CPSInstaller import CPSInstaller

def update_SPEc_documents(self):
    installer = DocInstaller(self)
    installer.install()
    return installer.logResult()



class DocInstaller(CPSInstaller):
    product_name = 'CPSDocument'

    def install(self):
        self.log("Debut de mise a jour documents du SPEC")
        self.installDocumentSchemas()
        self.setupPortalTypes()  
        self.setupTranslations()  # mets a jour les .po
        self.log("Fin de mise a jour documents du SPEC")
        
        
    
    def installDocumentSchemas(self):
        self.verifyWidgets(self.portal.getCustomDocumentWidgetsSPEC())
        self.verifySchemas(self.portal.getCustomDocumentSchemasSPEC())
        self.verifyLayouts(self.portal.getCustomDocumentLayoutsSPEC())
        self.verifyVocabularies(self.portal.getCustomDocumentVocabulariesSPEC())
        # note : getCustomDocumentxxx corresponds aux fichier propos� par 
CPSDocument et surcharg� pour mes documents sp�cifique.
    
    
    def setupPortalTypes(self):
        # setup portal_types
        self.log("Verifying portal types")
        self.flextypes = self.portal.getCustomDocumentTypesSPEC()
        self.newptypes = self.flextypes.keys()
        self.verifyFlexibleTypes(self.flextypes)
        #  le allowed content type du wokspace est mis � la main dans 
getCustomDocumentTypesSPEC






Faire une external method : 

Module name : un_produit.update_SPEC_documents
Function name : update_SPEC_documents




Puis la lancer , on cliquant sur test




-----Message d'origine-----
De : Anahide Tchertchian [mailto:[EMAIL PROTECTED]
Envoy� : jeudi 28 avril 2005 13:50
� : HERVE Patrick
Cc : Liste CPS (E-mail)
Objet : Re: [CPS-users-fr] getCustomDocumentTypes.py et Workspaces


HERVE Patrick wrote:
> j'ai cr�e un getCustomDocumentTypes.py dans lequel j'ai plac� mes nouveaux 
> type de document.
> Tout ce cr�e une fois que je lance l'external methode cpsdocument_installer.
> 
> Toutefois je remaque que la plupart de mes documents sont r�initialis�, chose 
> que je ne d�sire pas vraiment en fait (taille des widgets customis� au cas 
> par cas par exemple).
> 
> Mais plus important,  le type Workspace est r�-initialis� ce qui pose 
> probl�me pour les 'allowed content type'
> 
> Je place donc  'Workspace' aussi dans le fichier getCustomDocumentTypes.py , 
> et la je remarque une fois l'update faite, qu'il n'a pas pris en compte mes 
> modifications concernant 'allowed content type', mais qu'il a ajouter mes 
> modifications � la configuration par d�faut ...
> 
> 
> Comment faire pour qu'il ne prenne en compte que les donn�es mise dans 
> getCustomDocumentTypes.py ?
> 
> Est ce  que la cr�ation de document par script  se fait bien via  
> cpsdocument_installer  ?

Bonjour,

La cr�ation des types de documents peut effectivement se faire via 
l'utilisation du script getCustomDocumentTypes.

La mise � jour des types de contenu autoris�s dans un "Workspace" se 
fait de mani�re connexe : en effet, l'installeur de CPSDocument est 
configur� pour autoriser tous les types de contenu d�clar�s dans 
getDocumentTypes.py et getCustomDocumentTypes.py dans les workspaces.

Si vous souhaitez que certains documents ne soient pas autoris�s dans 
les contenus, je vous conseille de cr�er votre propre installeur, qui 
effectue des installations similaires � celles de CPSDocument (voir la 
m�thode "setupPortalTypes" dans CPSDocument/Extensions/install.py).

Les deux installations que vous souhaietz d�coupler (et qui sont 
coupl�es dans CPSDocument) sont :

self.verifyFlexibleTypes(self.flextypes)

qui installe les types de documents

self.allowContentTypes(types, 'Workspace')

qui autorise les types dans le type 'Workspace'.

Notez que 'Section' est d�j� supprim� de la liste des types � autoriser 
dans cette m�thode.

Cordialement,

-- 
Anahide Tchertchian
Mail: at at nuxeo.com - Tel: +33 (0)1 40 33 71 60
Nuxeo Collaborative Portal Server: http://www.nuxeo.com/cps
Gestion de contenu web / portail collaboratif / groupware / open source


_______________________________________________
cps-users-fr
Adresse de la liste : [email protected]
Gestion de l'abonnement : <http://lists.nuxeo.com/mailman/listinfo/cps-users-fr>

Répondre à