Olá Diego,
2010/4/28 Diego Rubert
>
> Olá pessoal!
>
> Estou escrevendo um produto, com um tipo chamado "Portaria". E algo
> assustador acontece quando eu redefino o campo description (também acontece
> com o title)
>
> Adicionei alguns itens "Portaria" (cada um com uma descrição diferente), e
> quando fui olhar no site, a descrição estava igual à da pasta pai... E mais
> estranho ainda: usando o pdb, percebi que diferentes métodos retornam
> diferentes descrições:
>
>
> (Pdb) portaria_item.description
> 'minha descrição do item portaria'
>
Aqui você tá usando o attributo description direto, isso não é recomendado.
>
> (Pdb) portaria_item.Description()
> 'descricao da pasta pai'
>
Aqui você está usando o accessor do campo description original.
>
> (Pdb) portaria_item.getDescription()
> 'minha descrição do item portaria'
>
Aqui você está usando o accessor do campo description que você criou.
>
> Alguma idéia? Um pouco do código abaixo:
>
>
> content/portaria.py
>
>
> .
> .
> .
> PortariaSchema = schemata.ATContentTypeSchema.copy() + atapi.Schema((
>
>atapi.TextField(
>'description',
>storage=atapi.AnnotationStorage(),
>widget=atapi.TextAreaWidget(
>label=_(u"Descri\xe7\xe3o"),
>description=_(u"Resumo da portaria"),
>),
>required=True,
>),
>
Aqui quando você faz:
schemata.ATContentTypeSchema.copy()
Você já copiou o campo description padrão dos tipos de conteúdos do
Archetype.
Depois você colocou mais um novo campo description no seu schema.
Ficando com 2 campos description no mesmo schema.
O accessor do Description do Archetype é o "Description()", já o que você
criou, por você não ter indicado o accessor, ele usou o padrão
getDescription.
A grande questão é: Porque você quer adicionar um campo description ? Só
para mudar o descrição do widget para "Resumo da portaria" ?
Você pode mudar isso assim:
PortariaSchema['description'].widget.description=_(u'Resumo da portaria')
> .
> ))
>
> PortariaSchema['description'].storage = atapi.AnnotationStorage()
>
Espero ter ajudado.
Até mais,
--
Luciano Pacheco
blog.lucmult.com.br