problema con script de parseo accediendo desde page-template

6 messages Options
Embed this post
Permalink
Aritz Maeztu

problema con script de parseo accediendo desde page-template

Reply Threaded More More options
Print post
Permalink
Hola! Tengo una duda con zope 2.11, he creado un page_template y ahora
me gustaría saber como acceder desde ahí a un script
(xmlparser(path_de_ficheroxml)) programado en python que parsea un
fichero XML en el servidor. Dicho script devuelve una lista de structs
(una clase python) que he declarado en el mismo fichero que el script.
El problema es que dicho script (xmlparser(path_de_ficheroxml)) está
añadido en zope como External method, y al hacer la llamada desde el
page_template no es capaz de encontrar la clase que he definido en el
fichero para crear las estructuras que se han de devolver. ¿Alguna ayuda?

_______________________________________________
Plone-ConoSur mailing list
[hidden email]
http://lists.plone.org/mailman/listinfo/plone-conosur
Mikel Larreategi

Re: problema con script de parseo accediendo desde page-template

Reply Threaded More More options
Print post
Permalink
Aritz Maeztu(e)k dio:

> Hola! Tengo una duda con zope 2.11, he creado un page_template y ahora
> me gustaría saber como acceder desde ahí a un script
> (xmlparser(path_de_ficheroxml)) programado en python que parsea un
> fichero XML en el servidor. Dicho script devuelve una lista de structs
> (una clase python) que he declarado en el mismo fichero que el script.
> El problema es que dicho script (xmlparser(path_de_ficheroxml)) está
> añadido en zope como External method, y al hacer la llamada desde el
> page_template no es capaz de encontrar la clase que he definido en el
> fichero para crear las estructuras que se han de devolver. ¿Alguna ayuda?
>

Comprueba lo siguiente:

1- Tu archivo.py con el parser XML está en el directorio Extensions de
tu instancia Zope.

2- Has añadido en Zope un objeto de tipo External Method apuntando al
archivo y método que quieres llamar.

Una vez comprobado eso, tienes que llamar al External Method. Si ese
External Method se llama parsea_mi_archivo, sería algo así desde ZPT:

<html>

<body>

<div tal:define="path string:/el/path/del/archivo.xml;
                  resultado python:here.parsea_mi_archivo(path)">

<!--
  Aquí haces lo que tengas que hacer con resultado
-->

</div>
</body>
</html>



Mikel

P.S.: ¿Es necesario que devuelvas "structs" u objetos de una clase que
has definido tú? ¿No es posible devolver listas de diccionarios, por
ejemplo?

--
Mikel Larreategi
[hidden email]

CodeSyntax
Azitaingo Industrialdea 3 K
E-20600 Eibar
Tel: (+34) 943 82 17 80

_______________________________________________
Plone-ConoSur mailing list
[hidden email]
http://lists.plone.org/mailman/listinfo/plone-conosur
Aritz Maeztu

Re: problema con script de parseo accediendo desde page-template

Reply Threaded More More options
Print post
Permalink


El 9 de diciembre de 2008 6:11, Mikel Larreategi <[hidden email]> escribió:
Aritz Maeztu(e)k dio:

Hola! Tengo una duda con zope 2.11, he creado un page_template y ahora me gustaría saber como acceder desde ahí a un script (xmlparser(path_de_ficheroxml)) programado en python que parsea un fichero XML en el servidor. Dicho script devuelve una lista de structs (una clase python) que he declarado en el mismo fichero que el script. El problema es que dicho script (xmlparser(path_de_ficheroxml)) está añadido en zope como External method, y al hacer la llamada desde el page_template no es capaz de encontrar la clase que he definido en el fichero para crear las estructuras que se han de devolver. ¿Alguna ayuda?


Comprueba lo siguiente:

1- Tu archivo.py con el parser XML está en el directorio Extensions de tu instancia Zope.

2- Has añadido en Zope un objeto de tipo External Method apuntando al archivo y método que quieres llamar.

Una vez comprobado eso, tienes que llamar al External Method. Si ese External Method se llama parsea_mi_archivo, sería algo así desde ZPT:

<html>

<body>

<div tal:define="path string:/el/path/del/archivo.xml;
                resultado python:here.parsea_mi_archivo(path)">

<!--
 Aquí haces lo que tengas que hacer con resultado
-->

</div>
</body>
</html>



Mikel

P.S.: ¿Es necesario que devuelvas "structs" u objetos de una clase que has definido tú? ¿No es posible devolver listas de diccionarios, por ejemplo?

--
Mikel Larreategi
[hidden email]

CodeSyntax
Azitaingo Industrialdea 3 K
E-20600 Eibar
Tel: (+34) 943 82 17 80

_______________________________________________
Plone-ConoSur mailing list
[hidden email]
http://lists.plone.org/mailman/listinfo/plone-conosur


Aritz Maeztu

Kaixo! Creo que sí es posible hacerlo con un diccionario. Al fín y al cabo los diccionarios se componen de elementos clave:objeto ¿no? Este objeto puede ser una lista de python en mi caso. Si lo paso en modo de diccionario ¿cómo haría en ZPT para recorrer todo el diccionario? Por ejemplo despues de ejecutar el external method, mostrar todas las claves.

PD: Euskaraz bai??

Aio!

_______________________________________________
Plone-ConoSur mailing list
[hidden email]
http://lists.plone.org/mailman/listinfo/plone-conosur
Israel Saeta Pérez

Re: problema con script de parseo accediendo desde page-template

Reply Threaded More More options
Print post
Permalink
Estoy metido en todos los ajos. ;-)

2008/12/9 Aritz Maeztu wrote:

Kaixo! Creo que sí es posible hacerlo con un diccionario. Al fín y al cabo los diccionarios se componen de elementos clave:objeto ¿no? Este objeto puede ser una lista de python en mi caso. Si lo paso en modo de diccionario ¿cómo haría en ZPT para recorrer todo el diccionario? Por ejemplo despues de ejecutar el external method, mostrar todas las claves.

Si el diccionario es "mydict" en este contexto:

<ul>
  <li tal:repeat="item python: mydict.items()"
      tal:attributes="id python: item[0]"
      tal:content="python: item[1]">elemento</li>
</ul>

-- israel


_______________________________________________
Plone-ConoSur mailing list
[hidden email]
http://lists.plone.org/mailman/listinfo/plone-conosur
Israel Saeta Pérez
Mikel Larreategi

Re: problema con script de parseo accediendo desde page-template

Reply Threaded More More options
Print post
Permalink
In reply to this post by Aritz Maeztu
Aritz Maeztu(e)k dio:
>
> Kaixo! Creo que sí es posible hacerlo con un diccionario. Al fín y al
> cabo los diccionarios se componen de elementos clave:objeto ¿no? Este
> objeto puede ser una lista de python en mi caso. Si lo paso en modo de
> diccionario ¿cómo haría en ZPT para recorrer todo el diccionario? Por
> ejemplo despues de ejecutar el external method, mostrar todas las claves.
>

Como ha dicho Israel :)

> PD: Euskaraz bai??
>

Bai noski :P


Mikel

--
Mikel Larreategi
[hidden email]

CodeSyntax
Azitaingo Industrialdea 3 K
E-20600 Eibar
Tel: (+34) 943 82 17 80

_______________________________________________
Plone-ConoSur mailing list
[hidden email]
http://lists.plone.org/mailman/listinfo/plone-conosur
Aritz Maeztu

Re: problema con script de parseo accediendo desde page-template

Reply Threaded More More options
Print post
Permalink
Apa! Acabo de conseguir poner los valores de los ficheros zip en el primer combo y la correspondencia del primero en el segundo combo. Lo he hecho usando diccionarios python. Ahora viene lo gore, he intentado que el primer combo condicione el segundo mediante jquery y al cambiar la opción en el primero se carga una especie de string largo en el segundo con todos los ficheros, en lugar de poner una opción para cada uno. Este es el código:

En el ZPT "index":

<html>

  <head>

    <script type="text/javascript" src="java_scriptak/jquery"></script>

    <script type="text/javascript" src="java_scriptak/combos"></script>

  </head>

 <body>
     <div tal:define="path string:/home/aritz/zopedirektorioa/Extensions/corpusak.xml;
                emaitza python:here.kanpo_metodoak.corpus_egitura_hiztegia(path)">
     <select id="primer-select">
     <option tal:repeat="item python: emaitza.keys()"
     tal:attributes="id python: item"
      tal:content="python: item">elemento</option> 
     </select>
    <select id="segundo-select">
        <option tal:repeat="item python: emaitza.get(emaitza.keys()[0])"
    tal:attributes="id python: item"
    tal:content="python: item">elemento</option>
   </select>
 </div>

  </body>
</html>

desde aquí se hace la llamada a la función de parseo de xml y esta devuelve un diccionario, se guardan las claves en el primer combo y el valor correspondiente a la primera clave en el segundo.

En el js "combos":

$(document).ready(function(){

    $('#primer-select').change(function(){

        $('#segundo-select').load('valores-segundo-combo?value='+this.value);    

    });

});

He mantenido lo que me dijisteis.

En el ZPT valores-segundo-combo:

<tal:block define="value request/value">
<div tal:define="path string:/home/aritz/zopedirektorioa/Extensions/corpusak.xml;
                emaitza python:here.kanpo_metodoak.corpus_egitura_hiztegia(path)">
  <option tal:repeat="item python: emaitza.get(value)"
   tal:attributes="id python: item"
    tal:content="python: item">elemento</option>
</div>
</tal:block>

Supongo que será un problema en la comunicación servidor-cliente que tendré que solucionar con JSON..

_______________________________________________
Plone-ConoSur mailing list
[hidden email]
http://lists.plone.org/mailman/listinfo/plone-conosur