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