<div dir="ltr">Buenas,<br><br>Claramente, si les gusta Plone y quieren hacer desarrollos basados en Plone, van a tener que aprender python. Sin embargo me parece que se pueden hacer muchas cosas sin ser un experto, y ademas python no es dificil de aprender. Asique no lo veo como un impedimento<br>
<br>Efectivamente, creo que ArchGenXML le hace la vida mas facil a la gente que empieza con Archetypes y Plone. Pero para hacer cosas mas o menos complejas, vas a necesitar entender algo de python, objetos, UML, plone, zope.<br>
<br>Por ejemplo:<br><br><div class="gmail_quote"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div class="Ih2E3d"><br>
> ¿Puede "abrirse" el archivo link.py con ArchGenXML 2 y trabajar sobre él<br>
> añadiéndole los campos y demás opciones que necesitemos? Es decir: ¿podemos<br>
> hacer una versión ampliada de link.py usando ArchGenXML 2?<br>
</div></blockquote><div><br>Si. Pero en realidad no "abris" link.py con ArchGenXML<br><br>archgenxml es un script python que genera codigo para Plone desde un diagrama UML que siga un formato determinado. <br>Ese diagrama lo harias con ArgoUML por ejemplo o algun programa para trabajar con UML.<br>
<br>Ahora bien, trabajando con UML, se siguen los conceptos de la programacion orientada a objetos. <br>Entonces lo que vos necesitarias es heredar de la clase que define el tipo de contenido Link (Enlace) y agregar campos o metodos con la herencia de objetos.<br>
<br>Justamente esa clase Link, esta definida en link.py y segun dice el manual de archgenxml:<br><br>[...]<br><h4> Deriving from other Products</h4>
<p> If you want to derive from a class of an other product create a stub class
with a tagged value 'import_from': This will generate a import line
<code>from VALUE import CLASSNAME</code> in classes derived from this class.</p><p>...</p><p>Entonces cuando generes el codigo, te va a quedar algo asi:</p><p>from Products.ATContentTypes.content.link import Link</p><p>
...<br></p><p>class MiLinkExtendido(Link):</p><p> ....</p><p>Si estas muy perdido y no entendes nada (como me paso a mi cuando arranque), quizas te sirva ver algunos videos:</p><p><a href="http://plone.tv/search?SearchableText=archgenxml">http://plone.tv/search?SearchableText=archgenxml</a></p>
<p><br></p><p>Saludos<br></p></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div class="Ih2E3d"><br>
</div>Según <a href="http://plone.org/products/archgenxml/documentation/how-to/subclassing-atcontenttypes" target="_blank">http://plone.org/products/archgenxml/documentation/how-to/subclassing-atcontenttypes</a><br>
parece que sí, pero yo nunca lo he hecho, y en esta página no explica<br>
demasiado. Quizá alguien más ducho en ArchGenXML te pueda ayudar con<br>
esto.<br>
<div class="Ih2E3d"><br>
> Israel Saeta Pérez wrote:<br>
>><br>
>> Te equivocas. :-) Mi sugerencia era meter las fichas también en una<br>
>> base de datos relacional. Para saber si te conviene usar esta<br>
>> solución, piensa en si tienes intención de crear formularios de<br>
>> búsqueda que incluyan (casi) todos los campos que vas a escribir en<br>
>> cada ficha. En caso afirmativo, te conviene usar un modelo relacional.<br>
>> En el caso de que sólo quieras buscar por un par de campos, es mejor<br>
>> usar Archetypes.<br>
>><br>
>> Esto lo digo porque para realizar búsquedas eficientes en la ZODB<br>
>> necesitarías usar ZCatalogs, y si vas a meter todos los campos en el<br>
>> ZCatalog mejor lo almacenas todo directamente en la base de datos<br>
>> relacional. (Esta explicación es para los entendidos de la lista ;-)<br>
>><br>
><br>
> En nuestro caso, queremos que la gente pueda localizar las fichas de las<br>
> entidades recomendadas de varias maneras:<br>
><br>
> 1.- Navegando por las carpetas y subcarpetas temáticas en las que<br>
> clasifiquemos las fichas.<br>
><br>
> Para esto creo que no necesitamos una base de datos relacional.<br>
<br>
</div>Efectivamente, no.<br>
<div class="Ih2E3d"><br>
> 2.- Buscando por palabras clave.<br>
><br>
> Por lo que he visto, el buscador de Plone (incluyendo su opción de buscar<br>
> "sólo en la sección actual" y el formulario de búsqueda avanzada por<br>
> contenido) es más que suficiente para este tipo de búsquedas.<br>
<br>
</div>No recuerdo lo de "sólo en la sección actual", pero los ZCatalog<br>
aceptan rutas base, así que esta funcionalidad la tienes de serie.<br>
<div class="Ih2E3d"><br>
> 3.- Buscando por categorías (en nuestro caso, Derechos humanos, de los<br>
> animales, desarrollo sostenible, Software Libre,...).<br>
><br>
> Me da la impresión de que las opciones por defecto de Plone son suficientes:<br>
> lista de elementos de una categoría y formulario de búsqueda avanzada por<br>
> contenido.<br>
<br>
</div>Si por categorías te refieres al campo donde puedes añadir una lista<br>
de palabras clave, ese también está indexado en el catálogo, sí.<br>
<div class="Ih2E3d"><br>
> 2 y 3.- Para mejorar estas dos opciones de búsqueda, quizás podría<br>
> personalizarse algún portlet, widget o formulario de búsqueda avanzada, para<br>
> que sólo busque dentro de las fichas del directorio, aunque por lo que he<br>
> visto, intuyo que ésta es una cuestión independiente. ¿Estoy en lo cierto o<br>
> vuelvo a equivocarme?<br>
<br>
</div>Sí, podrías personalizar los formularios de búsqueda, pero eso<br>
requiere entender Python, tenlo muy en cuenta.<br>
<div class="Ih2E3d"><br>
> 4.- Búsqueda por territorios<br>
><br>
> Creo que sería lo único a añadir al ZCatalog. Los campos (menús desplegables<br>
> o similar) serían, cómo mínimo, los siguientes: País, Provincia y Localidad<br>
> (si fuera posible, también nos gustaría intercalar otros:<br>
> CCAA/Región/Estado, Comarca y Municipio).<br>
><br>
> ¿Qué tendríamos que añadir al ZCatalog? ¿Sólo los 3 o 6 campos indicados o<br>
> también las miles de opciones resultantes de los mismos (todos los países,<br>
> provincias, localidades,... de las entidades que vayamos dando de alta)? Si<br>
> fuera la primera opción, creo que podríamos tener las fichas en Plone y los<br>
> comentarios y/o valoraciones en MySQL, ¿no?<br>
<br>
</div>Al catálogo tienes que añadir todos aquellos campos que quieras poder<br>
filtrar en una búsqueda y que no vengan por defecto en portal_catalog.<br>
Es decir, los 3 o 6 campos indicados.<br>
<div class="Ih2E3d"><br>
><br>
> Aparte, también nos gustaría que los usuarios registrados pudieran valorar<br>
> las entidades dadas de alta (por ejemplo, asignándoles distintas<br>
> puntuaciones en las categorías a las que pertenezcan: 10 en Derechos<br>
> humanos, 8 en Derechos de los animales, 9 en Desarrollo sostenible, Sin<br>
> puntuar (-) en Software Libre,...) y que los resultados de las búsquedas<br>
> pudieran ordenarse en función de estas valoraciones.<br>
><br>
> ¿Sería posible esto? ¿Con arquetipos o con MySQL asociada? ¡Ufff! ¡Cuántas<br>
> dudas! :confused:<br>
<br>
</div>Existen productos para poner valoraciones generales a contenidos, pero<br>
no creo que en principio puedas puntuar cada categoría a la que<br>
pertenece. También puedes usar una base de datos relacional para<br>
almacenar las puntuaciones si quieres, sí. La clave se llama<br>
SQLAlchemy.<br>
<div><div></div><div class="Wj3C7c"><br>
> Israel Saeta Pérez wrote:<br>
>><br>
>>> 1.- ¿Qué diferencia hay entre usar archetypes.schemaextender y extender<br>
>>> el<br>
>>> propio esquema del arquetipo?<br>
>><br>
>> archetypes.schemaextender, si no lo entendí mal, sirve para añadir y<br>
>> quitar campos "al vuelo" de un tipo de contenido ya definido, como<br>
>> puede ser el tipo Enlace de Plone. Extender el esquema del arquetipo<br>
>> Enlace implicaría crear *otro* tipo de contenido, que incluiría los<br>
>> mismos campos del enlace más otros que definas tú.<br>
>><br>
><br>
> Gracias. He localizado y leído/visto un par de artículos y un vídeo de<br>
> presentación de archetypes.schemaextender. Interesante herramienta, aunque<br>
> creo que en nuestro caso nos interesa más crear un nuevo tipo, porque las<br>
> fichas de las entidades recomendadas tendrán reglas de permiso, flujos de<br>
> trabajo,... propias y distintas de las de los Enlaces por defecto de Plone<br>
> (el tipo Enlace nos interesa mantenerlo para poder incluir este tipo de<br>
> elemento en carpetas ajenas al directorio de entidades).<br>
><br>
> Además, cuando terminemos el directorio de entidades, queremos crear un<br>
> directorio de artículos o productos recomendados (ej.: cargador solar<br>
> portátil para teléfonos móviles/celulares, reproductores musicales,...;<br>
> pedales con iluminación cinética para bicicletas; champús no probados en<br>
> animales; etc.) y nos gustaría que los Enlaces genéricos de Plone, las<br>
> Fichas de entidades y las Fichas de artículos/productos tengan sus propios<br>
> iconos diferenciados, para que en los resultados de búsquedas generales en<br>
> el sitio web se distinga más claramente el tipo de recurso que es cada uno<br>
> (simple enlace, entidad o artículo/producto).<br>
><br>
> Por estas razones, creo que nos interesa más usar los arquetipos para crear<br>
> nuestros propios tipos de objetos. ¿Correcto?<br>
<br>
</div></div>Sí, en este caso os interesa más crear nuevos tipos de contenido<br>
usando Archetypes en vez de adaptar los ya existentes.<br>
<br>
<br>
Si quieres un día charlar por el IRC para aclarar las dudas más<br>
rápido, yo suelo estar en la red de freenode en #zope-es y en<br>
#plone-conosur, además de en #plone claro.<br>
<div><div></div><div class="Wj3C7c"><br>
<br>
--<br>
Israel Saeta Pérez<br>
<a href="http://dukebody.com" target="_blank">http://dukebody.com</a><br>
</div></div><br>_______________________________________________<br>
Plone-ConoSur mailing list<br>
<a href="mailto:Plone-ConoSur@lists.plone.org">Plone-ConoSur@lists.plone.org</a><br>
<a href="http://lists.plone.org/mailman/listinfo/plone-conosur" target="_blank">http://lists.plone.org/mailman/listinfo/plone-conosur</a><br>
<br></blockquote></div><br><br clear="all"><br>-- <br>Santiago Videla<br><a href="http://www.revolucionesweb.com.ar">www.revolucionesweb.com.ar</a><br><a href="http://www.linkedin.com/in/svidela">http://www.linkedin.com/in/svidela</a><br>
<br>Sigue la mata dando de que hablar siempre abajo y a la izquierda donde el pensamiento que se hace corazón resplandece con la palabra sencilla y humilde que l@s tod@s somos.<br>
</div>