Opa Elisandra,

> Estou implementando um campo com MasterSelectWidget, a minha dúvida é
> como faço para que o segundo campo só apareça se no primeiro campo o
> valor selecionado seja "diferente" de 'outro', o que faço no parametro
> 'hide_values'?

a princípio o MasterSelectWidget só aceitava as seguintes 'actions':

- value: para alterar o valor de outro(s) campo(s), conforme o valor
  do campo atual;

- vocabulary: para alterar dinamicamente o vocabulário de outro(s)
  campo(s), dependendo do valor do campo atual;

- hide: para esconder outro(s) campo(s), quando o campo atual contiver
  um(ns) valor(es) específico(s);

- disable: mesma coisa do anterior, só que desativa o(s) campo(s)
  ao invés de esconder ele(s);       

> Só consegui que fizesse o contrário, que esconda quando o valor é
> "igual" a 'outro'.

Isso não dava para fazer, mas agora dá... ;-)

Basta usar a nova action 'show' que eu inclui[1], da mesma forma como
você faria para usar a action 'hide'.

> Aqui está o código dos meus campos:
> 
> StringField(
>     name='item',
>     index=":schema",
>     widget=MasterSelectWidget(
>            label="Item",
>            description="Informe o item de investimento",
>            format="select",
>            slave_fields=({'name': 'item_outro', 'action': 'hide', 
> 'hide_values': ('outro',)},),
>            label_msgid='OrcamentoInvestimentosUCS_label_item',
>            description_msgid='OrcamentoInvestimentosUCS_help_item',
>            i18n_domain='OrcamentoInvestimentosUCS',
>     ),
>     vocabulary=['1','2','outro']
> ),
> 
> StringField(
>     name='item_outro',
>     widget=StringWidget(
>     label="Descrição do Item",
>     label_msgid='OrcamentoInvestimentosUCS_label_item_outro',
>     i18n_domain='OrcamentoInvestimentosUCS',
>     )
> ),

No exemplo acima, muda de 'hide' para 'show' que já vai funcionar
da forma como você esperava.

[1] Usar a versão 0.2.3, atualmente disponível apenas no SVN, em
http://svn.plone.org/svn/archetypes/MoreFieldsAndWidgets/MasterSelectWidget/trunk

HTH,

-- 

Dorneles Treméa
X3ng Web Technology


Para enviar uma mensagem: zope-pt@yahoogrupos.com.br
Para desistir envie uma mensagem em branco para: [EMAIL PROTECTED] 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/zope-pt/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 


Responder a