<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>
&gt; ¿Puede &quot;abrirse&quot; el archivo link.py con ArchGenXML 2 y trabajar sobre él<br>
&gt; añadiéndole los campos y demás opciones que necesitemos? Es decir: ¿podemos<br>
&gt; hacer una versión ampliada de link.py usando ArchGenXML 2?<br>
</div></blockquote><div><br>Si. Pero en realidad no &quot;abris&quot; 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 &#39;import_from&#39;: 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>&nbsp;&nbsp;&nbsp;&nbsp; ....</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>
&gt; Israel Saeta Pérez wrote:<br>
&gt;&gt;<br>
&gt;&gt; Te equivocas. :-) &nbsp;Mi sugerencia era meter las fichas también en una<br>
&gt;&gt; base de datos relacional. Para saber si te conviene usar esta<br>
&gt;&gt; solución, piensa en si tienes intención de crear formularios de<br>
&gt;&gt; búsqueda que incluyan (casi) todos los campos que vas a escribir en<br>
&gt;&gt; cada ficha. En caso afirmativo, te conviene usar un modelo relacional.<br>
&gt;&gt; En el caso de que sólo quieras buscar por un par de campos, es mejor<br>
&gt;&gt; usar Archetypes.<br>
&gt;&gt;<br>
&gt;&gt; Esto lo digo porque para realizar búsquedas eficientes en la ZODB<br>
&gt;&gt; necesitarías usar ZCatalogs, y si vas a meter todos los campos en el<br>
&gt;&gt; ZCatalog mejor lo almacenas todo directamente en la base de datos<br>
&gt;&gt; relacional. (Esta explicación es para los entendidos de la lista ;-)<br>
&gt;&gt;<br>
&gt;<br>
&gt; En nuestro caso, queremos que la gente pueda localizar las fichas de las<br>
&gt; entidades recomendadas de varias maneras:<br>
&gt;<br>
&gt; 1.- Navegando por las carpetas y subcarpetas temáticas en las que<br>
&gt; clasifiquemos las fichas.<br>
&gt;<br>
&gt; Para esto creo que no necesitamos una base de datos relacional.<br>
<br>
</div>Efectivamente, no.<br>
<div class="Ih2E3d"><br>
&gt; 2.- Buscando por palabras clave.<br>
&gt;<br>
&gt; Por lo que he visto, el buscador de Plone (incluyendo su opción de buscar<br>
&gt; &quot;sólo en la sección actual&quot; y el formulario de búsqueda avanzada por<br>
&gt; contenido) es más que suficiente para este tipo de búsquedas.<br>
<br>
</div>No recuerdo lo de &quot;sólo en la sección actual&quot;, pero los ZCatalog<br>
aceptan rutas base, así que esta funcionalidad la tienes de serie.<br>
<div class="Ih2E3d"><br>
&gt; 3.- Buscando por categorías (en nuestro caso, Derechos humanos, de los<br>
&gt; animales, desarrollo sostenible, Software Libre,...).<br>
&gt;<br>
&gt; Me da la impresión de que las opciones por defecto de Plone son suficientes:<br>
&gt; lista de elementos de una categoría y formulario de búsqueda avanzada por<br>
&gt; 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>
&gt; 2 y 3.- Para mejorar estas dos opciones de búsqueda, quizás podría<br>
&gt; personalizarse algún portlet, widget o formulario de búsqueda avanzada, para<br>
&gt; que sólo busque dentro de las fichas del directorio, aunque por lo que he<br>
&gt; visto, intuyo que ésta es una cuestión independiente. ¿Estoy en lo cierto o<br>
&gt; 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>
&gt; 4.- Búsqueda por territorios<br>
&gt;<br>
&gt; Creo que sería lo único a añadir al ZCatalog. Los campos (menús desplegables<br>
&gt; o similar) serían, cómo mínimo, los siguientes: País, Provincia y Localidad<br>
&gt; (si fuera posible, también nos gustaría intercalar otros:<br>
&gt; CCAA/Región/Estado, Comarca y Municipio).<br>
&gt;<br>
&gt; ¿Qué tendríamos que añadir al ZCatalog? ¿Sólo los 3 o 6 campos indicados o<br>
&gt; también las miles de opciones resultantes de los mismos (todos los países,<br>
&gt; provincias, localidades,... de las entidades que vayamos dando de alta)? Si<br>
&gt; fuera la primera opción, creo que podríamos tener las fichas en Plone y los<br>
&gt; 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>
&gt;<br>
&gt; Aparte, también nos gustaría que los usuarios registrados pudieran valorar<br>
&gt; las entidades dadas de alta (por ejemplo, asignándoles distintas<br>
&gt; puntuaciones en las categorías a las que pertenezcan: 10 en Derechos<br>
&gt; humanos, 8 en Derechos de los animales, 9 en Desarrollo sostenible, Sin<br>
&gt; puntuar (-) en Software Libre,...) y que los resultados de las búsquedas<br>
&gt; pudieran ordenarse en función de estas valoraciones.<br>
&gt;<br>
&gt; ¿Sería posible esto? ¿Con arquetipos o con MySQL asociada? ¡Ufff! ¡Cuántas<br>
&gt; 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>
&gt; Israel Saeta Pérez wrote:<br>
&gt;&gt;<br>
&gt;&gt;&gt; 1.- ¿Qué diferencia hay entre usar archetypes.schemaextender y extender<br>
&gt;&gt;&gt; el<br>
&gt;&gt;&gt; propio esquema del arquetipo?<br>
&gt;&gt;<br>
&gt;&gt; archetypes.schemaextender, si no lo entendí mal, sirve para añadir y<br>
&gt;&gt; quitar campos &quot;al vuelo&quot; de un tipo de contenido ya definido, como<br>
&gt;&gt; puede ser el tipo Enlace de Plone. Extender el esquema del arquetipo<br>
&gt;&gt; Enlace implicaría crear *otro* tipo de contenido, que incluiría los<br>
&gt;&gt; mismos campos del enlace más otros que definas tú.<br>
&gt;&gt;<br>
&gt;<br>
&gt; Gracias. He localizado y leído/visto un par de artículos y un vídeo de<br>
&gt; presentación de archetypes.schemaextender. Interesante herramienta, aunque<br>
&gt; creo que en nuestro caso nos interesa más crear un nuevo tipo, porque las<br>
&gt; fichas de las entidades recomendadas tendrán reglas de permiso, flujos de<br>
&gt; trabajo,... propias y distintas de las de los Enlaces por defecto de Plone<br>
&gt; (el tipo Enlace nos interesa mantenerlo para poder incluir este tipo de<br>
&gt; elemento en carpetas ajenas al directorio de entidades).<br>
&gt;<br>
&gt; Además, cuando terminemos el directorio de entidades, queremos crear un<br>
&gt; directorio de artículos o productos recomendados (ej.: cargador solar<br>
&gt; portátil para teléfonos móviles/celulares, reproductores musicales,...;<br>
&gt; pedales con iluminación cinética para bicicletas; champús no probados en<br>
&gt; animales; etc.) y nos gustaría que los Enlaces genéricos de Plone, las<br>
&gt; Fichas de entidades y las Fichas de artículos/productos tengan sus propios<br>
&gt; iconos diferenciados, para que en los resultados de búsquedas generales en<br>
&gt; el sitio web se distinga más claramente el tipo de recurso que es cada uno<br>
&gt; (simple enlace, entidad o artículo/producto).<br>
&gt;<br>
&gt; Por estas razones, creo que nos interesa más usar los arquetipos para crear<br>
&gt; 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>