[gitec] Saap 2.0

Fabiano Weimar dos Santos xirumacanudo em gmail.com
Terça Dezembro 7 22:33:34 BRST 2010


Olá,

Isso aqui é muito feio.

       issue = PloneIssueNG(id)
       temp._setObject(id, issue)
       issue = issue.__of__(temp)

Eu conheço bem pouca gente que realmente sabe como funciona esse __of__

Pergunta: pq você não usa a API de invokeFactory do CMF?

Eu não conheço essa API de objetos temporários, mas criar pastas temporárias
não faz muito sentido quando você entende que os objetos transcientes somem
sozinhos depois de um tempo. Se fosse possível criar uma pasta transciente,
ela sumiria e levaria consigo tudo que ela tem dentro? Equivalente seria
criar conjuntos de objetos quaisquer agrupados por um atributo em comum.

De qualquer forma, acho que o problema aqui é você entender o portal_factory
e usa-lo. Na época que o portal_factory foi criado ele era chato. Hoje ele
ta bem mais estável e esse tipo de hack não se justifica. Você pode utilizar
a api do CMF pura e delegar para o portal_factory a responsabilidade de
criar as coisas com o contexto certo.

Esse código apenas faria sentido se você não pudesse usar o portal_factory,
ok.

-- Fabiano Weimar


Em 6 de dezembro de 2010 19:08, Sesostris Vieira <
sesostris em interlegis.gov.br> escreveu:

> Ainda estou com problemas na parte de processos, que está dando um erro.
> O problema está nesse código abaixo, na classe PloneCollectorNG:
>
>    def redirect_create_object(self, RESPONSE=None):
>        """ Create a new issue as temporary object inside a temporary
> folder to
>            avoid unfilled issues. We do no longer support
> portal_factory because
>            it raises more problems than it solves.
>        """
>
>        from Products.TemporaryFolder.TemporaryFolder import
> constructTemporaryFolder
>        if not hasattr(self, 'temp'):
>            constructTemporaryFolder(self, 'temp')
>        temp = getattr(self, 'temp')
>        id = '%s_%f' % (self.Translate('new_issue', 'NewIssue'),
> time.time() * random.random())
>        issue = PloneIssueNG(id)
>        temp._setObject(id, issue)
>        issue = issue.__of__(temp)
>        # remove pending issues
>        pending = [issue.getId() for issue in
> temp.objectValues('PloneIssueNG') if DateTime() -
> issue.bobobase_modification_time() > 2*3600]
>        temp.manage_delObjects(pending)
>        # if more than 50 issues in memory, remove the first 25
>        if len(temp.objectIds()) > 50:
>            pending = temp.objectValues('PloneIssueNG')
>            pending.sort(lambda x,y: cmp(x.bobobase_modification_time(),
> y.bobobase_modification_time()))
>            temp.manage_delObjects([o.getId() for o in pending[:25]])
>        RESPONSE.redirect(issue.absolute_url() + '/pcng_base_edit')
>
> O problema é que a função constructTemporaryFolder cria um objeto que
> não é container e não possui o método _setObject. Se alguém puder
> ajudar, qualquer contribuição será bem vinda.
>
> Sesóstris Vieira
> Analista de Informática Legislativa
> SPDT / Interlegis / Senado Federal
> sesostris em interlegis.gov.br
>
>
>
> CPD Camara Friburgo escreveu:
> > Pessoal,
> > fiquei um tempão sem receber mensagens da lista, hoje chegaram todas de
> uma vez!
> > O Saap 2.0 já está pronto para uso?
> >
> > Silvia Zveiter de Albuquerque Rocha
> > CPD / Câmara Municipal de Nova Friburgo
> > 22 2522-1516 ramal 254
> >
> --
> Site da Comunidade GITEC:
> http://colab.interlegis.gov.br/wiki
>
> Regras de participação:
> http://colab.interlegis.gov.br/wiki/ComoParticiparComunidade
>
> Para pesquisar o histórico da lista visite:
> http://colab.interlegis.gov.br/wiki/PesquisaListas
>
> Para administrar sua conta visite:
> http://listas.interlegis.gov.br/mailman/listinfo/gitec
>



-- 
Fabiano Weimar dos Santos [Xiru]
http://www.pytown.com
Blog: http://blog.xiru.org
Twitter: xiru
Buzz: xirumacanudo
Skype: xirumacanudo
MSN: xirumacanudo
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://listas.interlegis.gov.br/pipermail/gitec/attachments/20101207/24f25b02/attachment.htm 


Mais detalhes sobre a lista de discussão GITEC