Re: [zope-pt] Retorno para um zpt ?

2006-10-12 Por tôpico Nuno Teixeira
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! 

[zope-pt] Retorno para um zpt ?

2006-10-11 Por tôpico pythondeveloper
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 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