Salve galera. 

Eu tenho um zpt que imprimo em uma <table> os resultados retornados de
um script python onde todo o sql se baseia em datas. Preciso fazer com
que ao renderizar o zpt ele ja me traga essas informacoes.
Estou tentando fazer assim:

#Zpt
<table border="1" tal:define="fp_sql options/parametro | nothing">
    <tr>
       <form name="form" method="post" tal:attributes="action
string:${context/consulta_pluviometria_py/absolute_url}">
           <td style="white-space:nowrap;" class="td">Data Inicial:
<input type="text" name="dataI"
onkeypress="FormataData('dataI',event);" maxlength="10" size="10"
style="font-size:7pt;"></td>
           <td style="white-space:nowrap;" class="td">Data Final:
<input type="text" name="dataF"
onkeypress="FormataData('dataF',event);" maxlength="10" size="10"
style="font-size:7pt;"></td>
           <td style="white-space:nowrap;" class="td"><input
type="submit" value="Processar" name=""></td>
       </form>
    </tr>
<metal:block tal:condition="fp_sql" tal:repeat="items fp_sql">
    <tr>
       <td class="td" tal:define="data items/data;"
tal:content="python:context.ZopeTime(data).strftime('%d/%m/%Y')"/>
       <td class="td" tal:content="items/empresa1"/>
       <td class="td" tal:content="items/empresa2"/>
       <td class="td" tal:content="items/empresa3"/>
       <td class="td" tal:content="items/empresa4"/>
       <td class="td" tal:content="items/empresa5"/>
       <td class="td" tal:content="items/empresa6"/>
       <td class="td" tal:content="items/empresa8"/>
       <td class="td" tal:content="items/empresa9"/>
       <td class="td" tal:content="items/empresa10"/>
       <td class="td" tal:content="items/empresa11"/>
    </tr> 
</metal:block>
</table>
</body>

#PY
data_inicial = request.get('dataI',"")
data_final = request.get('dataF',"")

if data_inicial == "" and data_final == "":
    data_zope = context.ZopeTime().strftime('%Y/%m/%d') 
    data_inicial = DateTime(data_zope) - 15             
    result =
context.zsql_select_pluviometria(dataI=data_inicial,dataF=data_zope)
else:
    dataI = data_inicial.split("/")
    dataF = data_final.split("/")
    data_I = dataI[2]+"/"+dataI[1]+"/"+dataI[0]
    data_F = dataF[2]+"/"+dataF[1]+"/"+dataF[0]
    result = context.zsql_select_pluviometria(dataI=data_I,dataF=data_F)
return context.pluviometria(parametro=result)

Ou seja, a primeira vez em que o zpt for renderizado ele devera
processar o pyscript com as datas vazias trazendo as informacoes.
Depois de renderizado ira bastar o usuario informar a datainicial e a
final para processar novamente e trazer as datas referentes a data que
o usuário informou.

Tentei colocar a execucao do pyscript no <body>, tentei assim:
<body tal:define="py_script python:context.pyscript();">.
Mas não tive sucesso.

Alguma sugestão ?

[]'s
Fernando Paiva





Para enviar uma mensagem: zope-pt@yahoogrupos.com.br
Para desistir envie uma mensagem em branco para: [EMAIL PROTECTED] 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/zope-pt/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 

Responder a