[Plone-conosur] Directorio web avanzado

Israel Saeta Pérez dukebody en gmail.com
Vie Sep 5 19:27:28 UTC 2008


Veamos:

2008/9/5 spanish <manuel en utopiaverde.org>:
>
>
> Israel Saeta Pérez wrote:
>>
>> En realidad es al revés. En teoría, ArchGenXML es más para novatos
>> porque, en vez de tener que pelearte con el código en Python, escribes
>> un diagrama UML y el código se genera solo.
>>
>
> Uhhmm..., entonces quizás nos convenga probar primero con ArchGenXML 2, ya
> que de Python no tenemos ni idea.

Si de Python no tenéis ni idea, lo que tenéis son dos opciones:

1) Aprender programación básica en Python.
http://hetland.org/writing/instant-python.html
2) No desarrollar nada en Plone → olvídate de hacer el directorio.

> ¿Puede "abrirse" el archivo link.py con ArchGenXML 2 y trabajar sobre él
> añadiéndole los campos y demás opciones que necesitemos? Es decir: ¿podemos
> hacer una versión ampliada de link.py usando ArchGenXML 2?

Según http://plone.org/products/archgenxml/documentation/how-to/subclassing-atcontenttypes
parece que sí, pero yo nunca lo he hecho, y en esta página no explica
demasiado. Quizá alguien más ducho en ArchGenXML te pueda ayudar con
esto.

> Israel Saeta Pérez wrote:
>>
>> Te equivocas. :-)  Mi sugerencia era meter las fichas también en una
>> base de datos relacional. Para saber si te conviene usar esta
>> solución, piensa en si tienes intención de crear formularios de
>> búsqueda que incluyan (casi) todos los campos que vas a escribir en
>> cada ficha. En caso afirmativo, te conviene usar un modelo relacional.
>> En el caso de que sólo quieras buscar por un par de campos, es mejor
>> usar Archetypes.
>>
>> Esto lo digo porque para realizar búsquedas eficientes en la ZODB
>> necesitarías usar ZCatalogs, y si vas a meter todos los campos en el
>> ZCatalog mejor lo almacenas todo directamente en la base de datos
>> relacional. (Esta explicación es para los entendidos de la lista ;-)
>>
>
> En nuestro caso, queremos que la gente pueda localizar las fichas de las
> entidades recomendadas de varias maneras:
>
> 1.- Navegando por las carpetas y subcarpetas temáticas en las que
> clasifiquemos las fichas.
>
> Para esto creo que no necesitamos una base de datos relacional.

Efectivamente, no.

> 2.- Buscando por palabras clave.
>
> Por lo que he visto, el buscador de Plone (incluyendo su opción de buscar
> "sólo en la sección actual" y el formulario de búsqueda avanzada por
> contenido) es más que suficiente para este tipo de búsquedas.

No recuerdo lo de "sólo en la sección actual", pero los ZCatalog
aceptan rutas base, así que esta funcionalidad la tienes de serie.

> 3.- Buscando por categorías (en nuestro caso, Derechos humanos, de los
> animales, desarrollo sostenible, Software Libre,...).
>
> Me da la impresión de que las opciones por defecto de Plone son suficientes:
> lista de elementos de una categoría y formulario de búsqueda avanzada por
> contenido.

Si por categorías te refieres al campo donde puedes añadir una lista
de palabras clave, ese también está indexado en el catálogo, sí.

> 2 y 3.- Para mejorar estas dos opciones de búsqueda, quizás podría
> personalizarse algún portlet, widget o formulario de búsqueda avanzada, para
> que sólo busque dentro de las fichas del directorio, aunque por lo que he
> visto, intuyo que ésta es una cuestión independiente. ¿Estoy en lo cierto o
> vuelvo a equivocarme?

Sí, podrías personalizar los formularios de búsqueda, pero eso
requiere entender Python, tenlo muy en cuenta.

> 4.- Búsqueda por territorios
>
> Creo que sería lo único a añadir al ZCatalog. Los campos (menús desplegables
> o similar) serían, cómo mínimo, los siguientes: País, Provincia y Localidad
> (si fuera posible, también nos gustaría intercalar otros:
> CCAA/Región/Estado, Comarca y Municipio).
>
> ¿Qué tendríamos que añadir al ZCatalog? ¿Sólo los 3 o 6 campos indicados o
> también las miles de opciones resultantes de los mismos (todos los países,
> provincias, localidades,... de las entidades que vayamos dando de alta)? Si
> fuera la primera opción, creo que podríamos tener las fichas en Plone y los
> comentarios y/o valoraciones en MySQL, ¿no?

Al catálogo tienes que añadir todos aquellos campos que quieras poder
filtrar en una búsqueda y que no vengan por defecto en portal_catalog.
Es decir, los 3 o 6 campos indicados.

>
> Aparte, también nos gustaría que los usuarios registrados pudieran valorar
> las entidades dadas de alta (por ejemplo, asignándoles distintas
> puntuaciones en las categorías a las que pertenezcan: 10 en Derechos
> humanos, 8 en Derechos de los animales, 9 en Desarrollo sostenible, Sin
> puntuar (-) en Software Libre,...) y que los resultados de las búsquedas
> pudieran ordenarse en función de estas valoraciones.
>
> ¿Sería posible esto? ¿Con arquetipos o con MySQL asociada? ¡Ufff! ¡Cuántas
> dudas! :confused:

Existen productos para poner valoraciones generales a contenidos, pero
no creo que en principio puedas puntuar cada categoría a la que
pertenece. También puedes usar una base de datos relacional para
almacenar las puntuaciones si quieres, sí. La clave se llama
SQLAlchemy.

> Israel Saeta Pérez wrote:
>>
>>> 1.- ¿Qué diferencia hay entre usar archetypes.schemaextender y extender
>>> el
>>> propio esquema del arquetipo?
>>
>> archetypes.schemaextender, si no lo entendí mal, sirve para añadir y
>> quitar campos "al vuelo" de un tipo de contenido ya definido, como
>> puede ser el tipo Enlace de Plone. Extender el esquema del arquetipo
>> Enlace implicaría crear *otro* tipo de contenido, que incluiría los
>> mismos campos del enlace más otros que definas tú.
>>
>
> Gracias. He localizado y leído/visto un par de artículos y un vídeo de
> presentación de archetypes.schemaextender. Interesante herramienta, aunque
> creo que en nuestro caso nos interesa más crear un nuevo tipo, porque las
> fichas de las entidades recomendadas tendrán reglas de permiso, flujos de
> trabajo,... propias y distintas de las de los Enlaces por defecto de Plone
> (el tipo Enlace nos interesa mantenerlo para poder incluir este tipo de
> elemento en carpetas ajenas al directorio de entidades).
>
> Además, cuando terminemos el directorio de entidades, queremos crear un
> directorio de artículos o productos recomendados (ej.: cargador solar
> portátil para teléfonos móviles/celulares, reproductores musicales,...;
> pedales con iluminación cinética para bicicletas; champús no probados en
> animales; etc.) y nos gustaría que los Enlaces genéricos de Plone, las
> Fichas de entidades y las Fichas de artículos/productos tengan sus propios
> iconos diferenciados, para que en los resultados de búsquedas generales en
> el sitio web se distinga más claramente el tipo de recurso que es cada uno
> (simple enlace, entidad o artículo/producto).
>
> Por estas razones, creo que nos interesa más usar los arquetipos para crear
> nuestros propios tipos de objetos. ¿Correcto?

Sí, en este caso os interesa más crear nuevos tipos de contenido
usando Archetypes en vez de adaptar los ya existentes.


Si quieres un día charlar por el IRC para aclarar las dudas más
rápido, yo suelo estar en la red de freenode en #zope-es y en
#plone-conosur, además de en #plone claro.


-- 
Israel Saeta Pérez
http://dukebody.com


Más información sobre la lista de distribución Plone-ConoSur