[Plone-conosur] problema de "Permisos Insuficientes"
Mikel Larreategi
mlarreategi en codesyntax.com
Jue Mar 26 07:13:41 UTC 2009
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
mlarreategi en codesyntax.com
CodeSyntax
Azitaingo Industrialdea 3 K
E-20600 Eibar
Tel: (+34) 943 82 17 80
Más información sobre la lista de distribución Plone-ConoSur