On 4/21/06, Olivier Grisel <[EMAIL PROTECTED]> wrote: > Cyrille Leroux a écrit : > > Bonjour, > > Avec CPS 3.4.0-1, je créé un nouveau type auquel j'ajoute un widget de > > sélection (le CPSSelectWidget du fichier CPSSchemas/BasicWidgets.py). > > J'obtiens donc une liste déroulante : > > id1 : valeur1 > > id2 : valeur2 > > id3 : valeur3 > > ... > > Lorsque je fais une recherche, je me rend compte que seule l'id de > > l'élément sélectionné est indexée, alors que j'aimerais que ce soit sa > > valeur plutôt. Par exemple, si je cherche "id1", je trouve le > > document, mais si je cherche "valeur1", je ne trouve pas. > > > > Question : Sachant que je ne peux pas mettre le contenu de la valeur > > dans l'id (ça poserait des problèmes évidents de mise à jour de la > > valeur), > > Pourquoi ? >
Un exemple : valeur1 : valeur1 valeur2 : valeur2 Maintenant je créé 100 documents et je selectionne "valeur1" Un jour, j'ai une mise à jour à faire, et j'ai donc : valeur1bis : valeur1bis valeur2 : valeur2 Quand je veux visualiser mes documents, j'ai toujours "valeur1" et non "valeur1bis" : il faut tout changer à la main. Alors qu'avec un id fixe, le changement id1 : valeur1 -> id1 : valeur1bis aurait été répercuté dans tous mes documents Ou encore un autre scénario : ne changer que la valeur et pas l'id : valeur1 : valeur1bis Mais dans ce cas, la recherche ne serait plus pertinante. > > existe-t-il une solution pour que la valeur soit indexée? > > (via zmi ou code python)? > ion de l'abonnement : <http://lists.nuxeo.com/mailman/listinfo/cps-users-fr> > > La clef est ce qui est *stocké* dans le document (et donc indexé). La valeur > sert uniquement a la traduction de l'interface. > > Pour contourner ce fonctionnement, il devrait être possible d'ajouter un > nouveau > champ indexé pour la recherche plein texte dans le schema de ce document et > dont le contenu serait calculé par un write_process_expr du type: > > python:portal.portal_vocabularies['mon_voc'].get(datamodel.get('field_avec_la_clef', > '') Dans mon cas, j'ai créé un nouveau widget à partir de CPSSelectWidget et j'ai surchargé la méthode qui récupère le "vocabulary" pour y mettre à la place une méthode qui récupère des données d'une BDD. Mais effectivement, peut être qu'en ajoutant un champ caché, ça devrait fonctionner. En tout cas, merci pour cette piste. Cyrille _______________________________________________ cps-users-fr Adresse de la liste : [email protected] Gestion de l'abonnement : <http://lists.nuxeo.com/mailman/listinfo/cps-users-fr>
