manda ai  pra me ver como que ta sua função, pois esse problema é que vc nao
chamou o *BaseObject *e o *CatalogMultiplex*..
esta faltando coisa no metodo... *(EU ACHO)*

da uma olhada ai no meu metdo...

security.declarePrivate('manage_beforeDelete')
def manage_beforeDelete(self, item, container):
*    BaseObject.manage_beforeDelete(self, item, container)
    CatalogMultiplex.manage_beforeDelete(self, item, container)*
    #deleta a acao do banco
    ano = self.getValueAno
    plinvest = self.getValuePlinves
    eixo = self.getValueEixo
    subeixo = self.getValueSubEixo
    agregadora = self.getValueAgregadora
    nivel = self.getValueNivelAgregadora
    self.delete_historico_acao(ano,plinvest,eixo,subeixo,agregadora,nivel)
    self.delete_acao_transversal(ano,eixo,subeixo,agregadora,nivel)

repare as duas primeiras linhas do metodo...

o restante é o que eu quero fazer.. na hora de deletar um archetype...

nao se esqueça de importar:

*from Products.Archetypes.CatalogMultiplex  import CatalogMultiplex
from Products.Archetypes.BaseObject import BaseObject*


Abs,
Leonardo Miranda



2008/2/14 Maurício Victor <[EMAIL PROTECTED]>:

>   Me parece que ao usar o portal_factory quando o objeto temporário é
> apagado ele chama o manage_beforeDelete pra depois chamar o
> post_create_script.
>
> Até aí tudo bem.
> O problema é que está sendo criado no catalog um registro duplo do objeto.
> No site fica mostrado como se existissem 2 objetos. Somente realizando
> update_catalog que o registro errado é apagado.
>
> Se eu comento a função manage_beforeDelete tudo volta a funcionar
> normalmente.
> O que eu faço agora? eu preciso da função...
>
>
>
> 2008/2/14 Maurício Victor <[EMAIL PROTECTED]>:
>
> > Opa, o email foi enviado antes de acabar de digitar. Desculpa.
> >
> > Estou com o mesmo problema que você hoje. Conseguiu resolver?
> >
> > Só descobri que a função manage_beforeDelete está sendo chamada ao
> > adicionar o objeto, o que não está correto.
> >
> > Seu alguém puder me ajudar...
> >
> > Plone 2.5.5
> > Zope 2.9.8
> > Python 2.4.4
> >
> > 2008/2/14 Maurício Victor <[EMAIL PROTECTED]>:
> >
> > Amigo Gabriel, blz?
> > >
> > > Estou
> > >
> > > 2007/8/21 Gabriel Monnerat <[EMAIL PROTECTED]>:
> > >
> > >   Bom estou com um problema que quem puder me ajudar desde já
> > > > agradeço. Tenhu um produto que nele exitem dois sub-produtos
> > > > "folderprofessor" e "professor". No folderprofessor só pode adicionar o
> > > > arquivo professor. no folder existe um campo "carga horarias total", 
> > > > onde
> > > > você coloca o maximo de horas que podem ser usadas pelos professores. O
> > > > problema está ai, quando um professor é adicionado:
> > > > def at_post_create_script(self):
> > > >         self.aq_parent.setCarga(int(self.aq_parent.getCarga()) -
> > > > int(self.getCargahoraria()))
> > > >  ou seja, a carga do professor é diminuida da total(no folder).
> > > > só que adicionei mais uma função:
> > > > def manage_beforeDelete(self, item, container):
> > > >             self.aq_parent.setCarga(int(self.aq_parent.getCarga()) +
> > > > int(self.getCargahoraria()))
> > > >             BaseObject.manage_beforeDelete(self, item, container)
> > > >             CatalogMultiplex.manage_beforeDelete(self, item,
> > > > container)
> > > > --> essa função eu copiei do proprio plone e adicionei para somar a
> > > > carga horaria do professor novamente quando o mesmo fosse deletado.
> > > > Só que quando é adicionado a carga horaria é diminui depois somada
> > > > novamente pela classe "manage_beforeDelete" e quando o arquivo é apagado
> > > > ocorre corretamente.
> > > > Em suma, porque quando adiciono o objeto ele é diminuido e somado
> > > > novamente e não só diminuir a carga horaria?
> > > >
> > > > zope 2.9.6
> > > > plone 2.5
> > > > archetypes 1.4
> > > >
> > > > desde já agradeço a atenção
> > > >
> > >
> > >
> > >
> > > --
> > > Maurício Victor
> > > http://mauvictor.objectis.net
> >
> >
> >
> >
> > --
> > Maurício Victor
> > http://mauvictor.objectis.net
> >
>
>
>
> --
> Maurício Victor
> http://mauvictor.objectis.net
>  
>



-- 
Leonardo Miranda

Responder a