Opa Teix, funcionou blzinha.

Obrigado

[]'s
Fernando Paiva

--- Em zope-pt@yahoogrupos.com.br, Nuno Teixeira <[EMAIL PROTECTED]> escreveu
>
> 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="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="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="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 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