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