Oublié le Cc à la liste

Begin forwarded message:

From: Georges Racinet <[EMAIL PROTECTED]>
Date: August 9, 2006 12:49:39 PM CEDT
To: Christophe Otton <[EMAIL PROTECTED]>
Subject: Re: [CPS-users-fr] Pb de Stockage externe séparé


On Aug 9, 2006, at 10:48 AM, Christophe Otton wrote:

Bonjour,

Sur un CPS 3.2.4.0 et Zope 2.7.5
J'ai créé deux sites cps avec un chacun un produit dans lequel est défini un chemin de stockage externe pour les fichiers attachés des types : file, news et flexible. Pour les deux premiers pas de pb mais pour les flexibles le 'disk_storage_path' est défini uniquement dans un script :
AttachedFileWidgetPatch.py avec la ligne :

ExtendedWidgets.CPSAttachedFileWidget.field_inits[0] ['disk_storage_path'] = 'var/StoSite1'
et 'var/StoSite2' pour le deuxième site.

Evidemment, le dernier produit installé défini le chemin de stockage pour les docs flexibles des deux sites. J'ai donc essayé de trouver un endroit où modifier ce chemin uniquement pour le site : D'après la doc de CPSSchema les champs CPS Disk File ont une propriété 'disk_storage_path' apparemment définie dans le schéma du document mais les doc flexibles n'ont pas de schema ; Toujours d'après la doc, si cette propriété n'est pas définie c'est la valeur du portal_schemas qui est utilisée ? Mais je ne sais pas où est définie cette valeur.

Si, il y a un schéma (flexible), qui est créé dans le document au moment de l'ajout du premier widget flexible par recopie de celui qui est dans portal_types, qui sert donc de point de départ.

Lorsque l'on ajoute un widget flexible, les champs nécessaires sont créés dans ledit schéma, en fonction du type de widget créé. C'est l'attribut de classe
"field_types" qui sert à déterminer quels types de champs créer.


En CPS 3.4 (je ne suis pas sûr pour 3.2), les propriétés des champs sont de plus initialisées en fonction de l'attribut "field_inits". Voici un extrait de CPSSchemas/ExtendedWidgets.py:

class CPSAttachedFileWidget(CPSFileWidget):
    """AttachedFile widget."""
    meta_type = 'AttachedFile Widget'

    field_types = ('CPS File Field',   # File
'CPS String Field', # Plain text for indexing (optional)
                   'CPS File Field',   # Preview (HTML, optional)
                   'CPS SubObjects Field',)

    field_inits = ({'is_searchabletext': 0,
'suffix_text': '_f1', # _f# are autocomputed field ext
                    'suffix_html': '_f2',
                    'suffix_html_subfiles': '_f3',
                    },
                   {'is_searchabletext': 1}, {}, {},
                   )

Lorsque l'on ajoute un widget flexible de type (meta_type) "AttachedFile Widget" il y a donc creation de 4 champs. Le premier (le CPS File Field) portera les références aux autres, le second est indexable full text et rien de particulier pour les autres.

Pour faire ce que vous voulez le plus simple est de créer un nouveau type de widget héritant de celui-là portant les bons paramètres (disk_storage_path sur le Disk File Field)



Est ce quelqu'un a une idée pour résoudre le pb ?

Merci d'avance

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

---------
Georges Racinet                        Nuxeo SAS
[EMAIL PROTECTED]                http://nuxeo.com
Tel: +33 (0) 1 40 33 71 73



---------
Georges Racinet                        Nuxeo SAS
[EMAIL PROTECTED]                http://nuxeo.com
Tel: +33 (0) 1 40 33 71 73


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

Répondre à