[zope-pt] Acessando o contexto do Zope pelo Python

2007-03-26 Por tôpico Paulo Roberto Simões Pellucci
E aí pessoal, beleza?

Preciso que vocês me ajudem da seguinte forma, tenho uma classe no
Python (arquivo .py dentro do diretório Products), que está
instanciada no Zope.

Quero que dentro do meu arquivo .py eu consiga acessar o contexto do
Zope, chamando um page template que vai chamar uma outra função minha.
Especificando mais, é que eu gostaria que por exemplo, o usuário
aperta um botão de efetuar a compra de um item, eu vou estar lá no
python adicionando x,y,z ao banco, então quando retorno um código pro
meu page template ele vai pra outro (mostrando o recibo da compra),
mas eu gostaria de enviar um email pra ele com o recibo da compra,
então gostaria que o próprio python já acesse antes este page template
(que trás informações do banco que acabei de inserir, o caso é que não
faço direto por causa de formatação, css), envie o email com o
contexto da página (acessando simplesmente pagina =
self.pagina(reserva='12345') ), e eu envio a página por email.

Deu pra entender? Agradeço a ajuda pessoal.
Abraços.



[zope-pt] Ajuda com sessão no Zope.

2007-03-30 Por tôpico Paulo Roberto Simões Pellucci
Olá pessoal, tudo bom? Espero que me ajudem pois este problema está me
deixando careca hehe.

Olha só, a um tempo atrás eu postei pedindo ajuda pois administro um
site em Zope (http://www.primus.com.br) e de um tempo pra cá
aumentou-se o número de pessoas que está usando o portal, e este erro
tem acontecido com grande frequência.

Realmente eu não sei 100% os conceitos web para poder confirmar e nem
pra saber se estou certo ou errado, mas eu não gravo cache no site
pois é um site de pesquisas de produtos (pesquisa a um webservice) e a
qualquer momento aquele ali pode estar ali ou não, e sempre estou
inserindo a linha:
REQUEST.RESPONSE.setHeader(Cache-Control, no-cache)
quando alguem loga no site por exemplo,eu gravo alguns items na
SESSION do sujeito, e depois pra frente ele tem perdido alguns items
da SESSION, é um erro que começou a aparecer do nada.

Primeiro era possível corrigir limpando o cache do I.E (não entendo
como, afinal a linha acima não está fazendo efeito? Ou apenas
coincidência?), depois de um tempo nem isso ajudava, tem hora que tem
session, tem hora que não tem.

Pra fazer uns testes eu fiquei rodando um portlet com o seguinte conteúdo:

span tal:define=global mane here/REQUEST/SESSION /
span tal:content=python:request.SESSION.set('dsf1325','dfsdf3') /
span tal:content=python: (['%s=%s' % (k, v) for k, v in
mane.items()]) /

eu trocava o nome/valor dos items que ia gravar e dava f5 na outra aba
pra poder atualizar a lista de sessão. Depois que eu enjoei eu fiquei
com essa lista aqui:

['pasf=7sgd1', 'firefox=rulez', 'p231f=7s4321', 'qqqkkk=kkkqqq',
'ppp=7771', 'testandooo=testeeeqw3', 'quan=123', 'ie=sux',
'paisSelecHoteis=14', 'fsads=3', 'paulo=cruzeiraaao',
'dsf1325=dfsdf3', 'fsafs=1', 'asf1=fff', 'iceweasel=rulez',
'asdgdsga=4', 'paisSelec=14', '564=4', 'testsado=s13', 'sads=421421',
'teste=TESTE', 'poqw=1513', 'dfsdfs=4', 'maria=14', 'a=1551',
'12=mil', '14=mil', 'oi=e31', 'saddfgsgh=1', 'yhunger=31', '123=mil',
'aas=7771']

depois de uns dois refresh que dei, a lista mudou pra essa:

['pasf=7sgd1', 'firefox=rulez', 'p231f=7s4321', 'qqqkkk=kkkqqq',
'ppp=7771', 'testandooo=testeeeqw3', 'ie=sux', 'paisSelecHoteis=14',
'fsads=3', '123=mil', 'paulo=cruzeiraaao', 'dsf1325=dfsdf3',
'fsafs=1', 'asf1=fff', 'maria=14', 'asdgdsga=4', 'paisSelec=14',
'564=4', 'testsado=s13', 'sads=421421', 'teste=TESTE', 'poqw=1513',
'dfsdfs=4', 'iceweasel=rulez', 'a=1551', '12=mil', '14=mil', 'oi=e31',
'saddfgsgh=1', 'yhunger=31', 'quan=123', 'aas=7771']

PS: Não reparem nas bobeiras, ok? Hehe.

De qualquer forma, porquê os meus campos andaram? Eu dava refresh
denovo (uns 3 refreshs) e ele voltava pra primeira forma, depois uns
2-3 refreshs denovo e ele assumia a segunda denovo.

O que pode estar acontecendo galera? Dá muito conflito o meu ZODB,
existe até uma trava que grava o ip da pessoa e uma variável randômica
(data-hora que o cara logou no site), pois de vez em quando o Zope
tenta dar um post que não existe (acessando assim denovo o zpt e
chamando a funçao denovo, por exemplo).

Utilizo esses dois zopes:
Zope Version :(Zope 2.9.6-final, python 2.4.4, linux2)
Python Version :2.4.4 (#2, Jan 13 2007, 17:50:26) [GCC 4.1.2 20061115
(prerelease) (Debian 4.1.1-21)]
System Platform: linux2
SOFTWARE_HOME:/usr/lib/zope2.9/:)
ZOPE_HOME: /usr/lib/zope2.9

Zope Version: (Zope 2.8.3-final, python 2.4.1, linux2)
Python Version: 2.4.1 (#1, Oct 13 2006, 16:58:04) [GCC 4.0.2 20050901
(prerelease) (SUSE Linux)]
System Platform: linux2
SOFTWARE_HOME: /var/zope_master/:)
ZOPE_HOME: /var/zope_master 

e o problema tem acontecido nos dois.

Um abraço,
Paulo.



[zope-pt] Redirect de Https para Http

2007-04-24 Por tôpico Paulo Roberto Simões Pellucci
Olá pessoal, bom dia!

Venho através do grupo pedir uma ajuda, que é a seguinte.
Tenho um site em que quando vou logar, meu form está direcionando para
um ambiente seguro (https), onde é chamada a função de logar e depois
ele retorna login efetuado com sucesso, ou não. O caso é que quando
loga (ou não) ele continua nesse ambiente seguro (https), tentei fazer
na minha função no python um redirect
(self.REQUEST.RESPONSE.redirect...) voltando para o http, mas ele
perde tudo o que está gravado na minha session.

Poderiam me ajudar como eu poderia chamar a minha função de login (que
está instanciada no zope, ou seja, o produto está no Linux), indo pelo
https e retornando pelo http sem perder a minha sessão?

Agradeço a ajuda,
Abraços.

Paulo Roberto.



[zope-pt] Re: tabela dinamica usando TAL

2007-04-25 Por tôpico Paulo Roberto Simões Pellucci
E aí Luiz Paulo, o seu problema é bem tranquilo cara, uma boa
explicação do que você quer você encontra aqui ó [1] (leitura em
inglês mas é muito bom)

mas em relação ao que você quer, você pode fazer
span tal:repeat=usr users
 span tal:define=global cont repeat/usr/number / !-- Dê uma
estudada nisso, estamos definindo com a variável que se repete um
contador que é o 'number' --
span tal:condition= n_linhas  5 
  tr
/span

Qualquer dúvida mande aí pra gente, mas dê uma lida mesmo nesse site,
é muito bom.

[1]
http://www.zope.org/Documentation/Books/ZopeBook/2_6Edition/AppendixC.stx

 Abaixo um pseudocodigo do que quero:
 
   table
 span tal:repeat=usr users
 
   span tal:condition= n_linhas  5   [aqui a duvida,
como
 trabalhar com esta variavel...???]
 tr
   /span
 td
 
 /td
 
   span tal:condition= n_linhas  5  [?]
 /tr
   /span
 
/span
 /table
 
 obrigado,
  Luis Paulo