Boas Fernando!
Já vi que depois de termos falado no IRC não entendeste a minha sugestão :P
Talvez seja melhor alterares a forma como estás a fazer isso.
Em primeiro lugar, alterar o action do form para ser o zpt em vez de
chamares o script.
Depois esse zpt chamará o script e passará os argumentos necessários.
No pyscript em vez de colocares request.get() podes definir o dataI e
dataF na Parameter List
Algo do género:
table border=1 tal:define=dataI request/dataI|string:;
dataF
request/dataF|string:;
results
python:context/pyscript(dataI=dataI, dataF=dataF)
tr
form name=form method=post tal:attributes=action
string:${context/template/absolute_url}
td style=white-space:nowrap; class=tdData 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=tdData 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=tdinput
type=submit value=Processar name=/td
/form
/tr
metal:block tal:condition=results
(...)
/metal:block
/table
/body
abraço
Nuno
Fernando Paiva wrote:
Opa Zé.
Sim, é ele msm.
[]'s
Fernando Paiva
José Henrique escreveu:
Esse script que você quer executar não é o que está definido no action
de seu form?
Zénrique.
Em 11/10/06, pythondeveloper[EMAIL PROTECTED] escreveu:
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=tdData 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=tdData 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=tdinput
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 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!