Olá Rodrigo,

obrigado pela dica, ela me levou a outras questões:

1. Continuo achando estranho o método index_object() ser chamado várias
vezes. Acabei de fazer um teste onde ele é chamado 20 vezes durante a
criação de um objeto.

2. A funcionalidade que eu procurava era de ter um gatilho ativado a cada
vez que um campo de um objeto fosse alterado, mesmo que isso não acontecesse
através da interface web. Por exemplo, se em algum lugar eu executasse "
obj.setMeuField('meuvalor')" eu queria que um método fosse chamado. Pelo o
que eu verifiquei nem o index_object do meu índice nem o at_post_edit_script
são chamados nessa situação.

Alguma idéia ?

[]s

On 3/4/07, Rodrigo Castardo <[EMAIL PROTECTED]> wrote:

  Opa Rafael!

se uq tu precisa eh um gatilho apos a criação de um objeto vc pode usar um
metodo:

at_post_create_script

e se por acaso precisar de outro na edicao, usa este metodo aqui:

at_post_edit_script

[]'s!


On 3/4/07, Rafael Oliveira <[EMAIL PROTECTED]> wrote:
>
>   Olá,
>
> estou tendo este "problema" na versão Zope 2.9.4/Plone 2.1.3/Python
> 2.4 (não testei em outras).
>
> Eu tenho uma classe que implementa um índice, declarada assim: [1]. O
> que acontece é que quando um objeto é criado no site, o método
> index_object() é chamado repetidas vezes, numa quantidade de vezes que
> varia de acordo com o tipo do objeto.
>
> Qual é a explicação para esse comportamento ? Há alguma forma de eu
> fazer o método index_object() ser chamado apenas uma vez no fim da
> criação do objeto ? Ou pelo menos reduzir o número de chamadas ?
>
> [1]
> class CBSyncIndex(Persistent, Implicit, SimpleItem):
> __implements__ = (PluggableIndex.PluggableIndexInterface,)
> meta_type = "CBSyncIndex"
> manage_options = (
> {'label': 'Settings',
> 'action': 'manage_main',
> 'help': ('CBSyncIndex', 'CBSyncIndex_Settings.stx')},
> )
> query_options = ["query"]
> # (...)
> def index_object(self, documentId, obj, threshold = None):
> #(...)
>
> def manage_addCBSyncIndex(self, id, extra = None, REQUEST = None,
> RESPONSE = None, URL3 = None):
> return self.manage_addIndex(id, 'CBSyncIndex', extra = extra,
> REQUEST = REQUEST, RESPONSE = RESPONSE, URL1 = URL3)
>
> []s
> --
> Rafael Bruno Cavalhero de Oliveira
> Paradigma <http://www.paradigma.com.br>
> <[EMAIL PROTECTED] <rafaelbco%40gmail.com>> < [EMAIL 
PROTECTED]<rafael%40paradigma.com.br>
> >
> MSN: [EMAIL PROTECTED] <rafaelbco%40terra.com.br> | ICQ: 26240428
>



--
Castardo
ThreePointsWeb
[EMAIL PROTECTED]
+55 61 8166-4109




--
Rafael Bruno Cavalhero de Oliveira
Paradigma <http://www.paradigma.com.br>
<[EMAIL PROTECTED]> <[EMAIL PROTECTED]>
MSN: [EMAIL PROTECTED] | ICQ: 26240428

Responder a