Fala Marcos, consegui fazer funcionar com o ultimo codigo postado... so que
ainda não esta 100% pois quando salvo e entro em edição denovo os valores
não estão voltando. ja ate perguntei aqui no forum o que pode estar
acontecendo mas niguem ainda não me respondeu...

Aproveitando mais uma o e-mail, gostaria de reforçar, se alguem souber como
corrigo este codigo para que ele volte os valores "selected" me avisem...

Abraço!

2008/9/25 Marcos Henrique Nassif de Alencar <[EMAIL PROTECTED]>

> Felipe, estou fazendo o portal da justiça eleitoral e estou precisando de
> um produto com as características do MasterSelectWidget, vc conseguiu fazer
> funcionar ? Tem como me passar seu código.
>
> Obrigado
> Marcos Nassif
>
> 2008/9/12 Felipe Toscano <[EMAIL PROTECTED]>
>
>>   Galera consegui fazer o MasterSelectWidget FUNCIONAR!!!
>> EHAIUHEAIUHEAIUE.... so to com um pequeno probleminha....
>>
>> Eu faço as atribuições de valores nos selections feitos com o
>> MasterSelectWidget, blz ele salva e tudo bem! Mas quando entro para editar o
>> MASTER pega o valor salvo mas o SLAVE não pega... o que pode ser ??? sera
>> que definir o vocabulario errado?? ou tem algum parametro faltando no
>> produto (Bug)... Estou passando o codigo que eu fiz, e se encontrarem alguma
>> coisa estranha ou uma forma melhor para fazer, você me passam...
>>
>> *CODIGO:*
>>
>> StringField(
>>         name='vinculo',
>>         widget=MasterSelectWidget(label='Vínculo',
>>                                       description='Informe o vínculo do
>> profissional com o MDS.',
>>                                       slave_fields = ({'name':'tp_vinc',
>>                                                        'action':
>> 'vocabulary',
>>                                                        'vocab_method':
>> 'getSlavesClassificacao',
>>                                                        'control_param':
>> 'master'},
>>                                                        {'name': 'tp_vinc',
>>                                                         'action': 'hide',
>>                                                         'hide_values':
>> (''),
>>                  },)
>>                                 ),
>>         required=1,
>>         schemata="Vínculo",
>>         vocabulary='getVinculos',
>>         searchable=1,
>>         enforceVocabulary=1
>>     ),
>>
>>     StringField(
>>         name='tp_vinc',
>>         widget=SelectionWidget(
>>             label="Classificação",
>>             description="Informe a classificação do vínculo.",
>>             format="select",
>>             label_msgid='SGRH_label_tp_vinc',
>>             description_msgid='SGRH_help_tp_vinc',
>>             i18n_domain='SGRH',
>>         ),
>>         required=1,
>>         schemata="Vínculo",
>>         vocabulary='getClassificacao',
>>         searchable=1,
>>         enforceVocabulary=1
>>     ),
>>
>>
>> *Definições*
>>
>> def getVinculos(self):
>>         """Retorna a lista de vínculos."""
>>         portal_sgrh = getToolByName(self, 'portal_sgrh')
>>         result = [["","Selecione um Vínculo"]]
>>         vocabulary = portal_sgrh.getVocab_vinculo()
>>         for item in vocabulary:
>>             idd = item.get('id')
>>             valor = item.get('valor')
>>             result.append([idd, valor])
>>         return DisplayList(tuple(result))
>>
>>     security.declarePublic('getSlavesClassificacao')
>>     def getSlavesClassificacao(self,master):
>>         portal_sgrh = getToolByName(self, 'portal_sgrh')
>>         result = [["","Selecione uma Classificação"]]
>>         vocabulary = portal_sgrh.getVocab_classificacao()
>>         if master == "":
>>             pass
>>         for item in vocabulary:
>>             vinculo = item.get('vinculo')
>>             if master == vinculo:
>>                 idd = item.get('id')
>>                 valor = item.get('valor')
>>                 result.append([idd, valor])
>>         return DisplayList(tuple(result))
>>
>>
>>
>> 2008/9/9 Felipe Toscano <[EMAIL PROTECTED]>
>>
>>  Cara to tentando impor um dependência assim:
>>>
>>> quando o cara selecionao valor "Terceirizado" no selection "VINCULO"
>>> quero que no selection "CLASSIFICAÇÃO" ele utilize o vocabulário no
>>> "getClassTerceirizado".
>>>
>>> Ou
>>>
>>> quando o cara seleciona o valor "Servidor" no selection "VINCULO" quero
>>> que no selection "CLASSIFICAÇÃO" ele utilize o vocabulário no
>>> "getClassServidor".
>>>
>>>
>>> Eu fiz desta forma que encontrei de exemplo na net, mas o mesmo estava
>>> incompleto...
>>>
>>>
>>> *WIDGETS*
>>>
>>> StringField(
>>>         name='vinculo',
>>>         #widget=SelectionWidget(
>>>             #label="*Vínculo*",
>>>             #description="Informe o vínculo do profissional com o MDS.",
>>>             #format="select",
>>>             #label_msgid='SGRH_label_vinculo',
>>>             #description_msgid='SGRH_help_vinculo',
>>>             #i18n_domain='SGRH',
>>>         #),
>>>         widget=MasterSelectWidget(label='Vínculo',
>>>                                       description='Informe o vínculo do
>>> profissional com o MDS.',
>>>                                       slave_fields = ({'name':'tp_vinc',
>>>                                                        'action':
>>> 'vocabulary',
>>>                                                        'vocab_method':
>>> 'getTypeClassificacao',
>>>                                                        'control_param':
>>> 'master'},)
>>>                                 ),
>>>         required=1,
>>>         schemata="Vínculo",
>>>         vocabulary='getVinculos',
>>>         searchable=1,
>>>         enforceVocabulary=1
>>>     ),
>>>
>>>     StringField(
>>>         name='tp_vinc',
>>>         widget=SelectionWidget(
>>>             label="*Classificação*",
>>>             description="Informe a classificação do vínculo.",
>>>             format="select",
>>>             label_msgid='SGRH_label_tp_vinc',
>>>             description_msgid='SGRH_help_tp_vinc',
>>>             i18n_domain='SGRH',
>>>         ),
>>>         required=1,
>>>         schemata="Vínculo",
>>>         #vocabulary='getTypeClassificacao',
>>>         searchable=1,
>>>         enforceVocabulary=1
>>>     ),
>>>
>>>
>>>
>>> *DEFINIÇÕES*
>>>
>>>
>>>     def getVinculos(self):
>>>         """
>>>         """
>>>         return DisplayList((
>>>                             ["", "Selecione um Vínculo"],
>>>                             ["terceirizado", "Terceirizado"],
>>>                             ["servidor", "Servidor"],
>>>                           ))
>>>
>>>
>>>     def getClassTerceirizado(self):
>>>         """
>>>         """
>>>         return DisplayList((
>>>                             ["consultor", "Consultor"],
>>>                             ["informatica", "Informática"],
>>>                           ))
>>>
>>>     def getClassServidor(self):
>>>         """
>>>         """
>>>         return DisplayList((
>>>                             ["pgpe", "PGPE"],
>>>                             ["pss", "PSS"],
>>>                             ["cedido", "Cedido"],
>>>                           ))
>>>
>>>
>>>     security.declarePublic('getTypeClassificacao')
>>>     def getTypeClassificacao(self,master):
>>>         """
>>>         """
>>>         if (master in ('terceirizado')): vocab = getClassTerceirizado
>>>         if (master in ('servidor')): vocab = getClassServidor
>>>         return vocab
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> 2008/9/9 Davi Medeiros <[EMAIL PROTECTED]>
>>>
>>>   Infelizmente não tenho à mão. Veja se acha no Google ou coloca aqui a
>>>> parte do código onde você tá emperrando (copie o código do demo e vá
>>>> modificando).
>>>>
>>>> Abraço,
>>>> Davi
>>>>
>>>>
>>>> --- Em zope-pt@yahoogrupos.com.br <zope-pt%40yahoogrupos.com.br>,
>>>> "Felipe Toscano"
>>>> <[EMAIL PROTECTED]> escreveu
>>>> >
>>>> > Ja olhei a documentação, mas ainda não consegui aplicar no meu
>>>> produto, se
>>>> > você tiver mais alguns exemplos alem do demo que você ja tenha
>>>> aplicado em
>>>> > algum produto, poooo vai me ajudar pra caramba... você tem ???
>>>> >
>>>> > 2008/9/9 Davi Medeiros <[EMAIL PROTECTED]>
>>>> >
>>>> > > Felipe, a documentação que acompanha o produto é muito boa,
>>>> inclusive
>>>> > > vem com um Demo, que cairá como uma luva para sua necessidade.
>>>> > >
>>>> > > []s
>>>> > > Davi Lima
>>>> > >
>>>> > > --- Em zope-pt@yahoogrupos.com.br 
>>>> > > <zope-pt%40yahoogrupos.com.br><zope-pt%
>>>> 40yahoogrupos.com.br>,
>>>> "Felipe
>>>> > > Toscano"
>>>> > > <felipe.toscano@> escreveu
>>>> > >
>>>> > > >
>>>> > > > Fala ae pessoal,
>>>> > > >
>>>> > > > Estou fazendo um produto de Rh, e gostaria de impor uma
>>>> dependência nas
>>>> > > > widget de selection. Pesquisei na net e vi que este produto
>>>> > > > (MasterSelectWidget) faz esta necessidade, porem não entendi como
>>>> > > aplica-lo.
>>>> > > >
>>>> > > > Gostaria de fazer com que um selection "Vinculo" que tem como
>>>> opções
>>>> > > > "terceirizado" e "servidor", quando selecionado a opção
>>>> "terceirizado" o
>>>> > > > outro selection que vem logo abaixo traga o vocabulario referente
>>>> as
>>>> > > > classificações de "terceirizado" ou se eu selecionar "servidor",
>>>> no
>>>> > > > selection abaixo traga so o vocabulario referente a classificação
>>>> de
>>>> > > > servidor.
>>>> > > >
>>>> > > > Alguem ja utilizou este produto???
>>>> > > >
>>>> > > > Poderia me passar algum codigo de exemplo ??
>>>> > > >
>>>> > > > Att..
>>>> > > >
>>>> > > > Felipe Toscano
>>>> > > >
>>>> > >
>>>> > >
>>>> > >
>>>> >
>>>> >
>>>> >
>>>> > --
>>>> > Felipe Toscano
>>>> >
>>>>
>>>>
>>>
>>>
>>> --
>>> Felipe Toscano
>>>
>>
>>
>>
>> --
>> Felipe Toscano
>>  
>>
>
>
>
> --
> Marcos Nassif
>



-- 
Felipe Toscano

Responder a