Gustavo Archuby(e)k dio:
Buenas, me está sucediendo lo siguiente, corro una línea desde el cluseau
y funciona perfectamente, trato de hacer un script que haga los mismo y me
dice permisos insuficientes, basicamente:

en cluseau:
[ i.getId() for i in portal.portal_catalog.index_objects()]

me lista los id de todos los indices del catalogo

si hago un script

from Products.CMFCore.utils import getToolByName
urltool = getToolByName(context, 'portal_url')
portal = urltool.getPortalObject()

x=[ i.getId() for i in portal.portal_catalog.index_objects()]

return x

Me dice "Permisos Insuficientes"

Alguien sabe porque puede ser?

Seguramente porque el método index_objects estará marcado que es privado.


Estoy tratando de acceder a los indices para ver que valores se indizaron
en determinados indices y que cantidad de cada uno de estos valores, no se
si es la forma correcta o si es conveniente acceder al catálogo para este
tipo de tareas.

Eso lo puedes hacer desde el interfaz del propio catálogo:

http://tu-ip-del-servidor/plone/portal_catalog/manage_catalogIndexes

Pinchando en cada índice tienes los valores asociados de cada objeto.


La idea es que en lugar de guardar y mantener en algún objeto la cantidad
de ocurrencias de un valor en una determinada propiedad hago un índice
(que se mantiene solo) y luego lo analizo los diferentes valores del
indice y la cantidad de objetos apuntados.


Para hacer lo que haces, puedes utilizar un script de 2 líneas:

values = here.portal_catalog.uniqueValuesFor('mi-indice')
return len(values)

Con eso obtienes primero los diferentes valores para el índice mi-indice (tendrá que ser un FieldIndex o un KeywordIndex) y luego cuántos hay.


Mikel

--
Mikel Larreategi
mlarreat...@codesyntax.com

CodeSyntax
Azitaingo Industrialdea 3 K
E-20600 Eibar
Tel: (+34) 943 82 17 80

_______________________________________________
Plone-ConoSur mailing list
Plone-ConoSur@lists.plone.org
http://lists.plone.org/mailman/listinfo/plone-conosur

Responder a