Re: [zope-pt] Re: Bug no tratamento de herança?
Daniel Vainsencher escreveu: > --- Em zope-pt@yahoogrupos.com.br, "Juracy Filho" <[EMAIL PROTECTED]> escreveu >> Eu tive este problema há algum tempo atrás e resolvi, porém, estou sem >> este código a disposição no momento (na segunda posso verificar), não >> lembro ao certo se resolvi usando BaseClass ou nenhuma super-classe. >> >> Quanto ao ArchGenXML, se você quiser que ele gere uma classe que não >> herde de nenhuma super-classe você deve usar a tagged value: >> base_class na classe, assim: >> >> base_class = 0 >> >> Olhe em: > http://plone.org/documentation/tutorial/archgenxml-getting-started/classes >> Simple Derivation >> >> All content types in Archetypes are derived from one of the base >> classes - BaseContent, BaseFolder, OrderedBaseFolder and so on. If you >> wish to turn this off, for example because the base class is being >> inherited from a parent class, you can set the base_class tagged value >> to 0. > > Opa, ótima dica esta do base_class = 0. > > Fazer com que a classe abstrata não herde de nenhuma classe > (BaseContent) resolveu o problema. Se este for o tratamento esperado > mesmo, o AGX não deveria omitir a herança de BaseContent quando a > classe fosse abstrata? Não sei se entendi bem o problema de vocês, mas acho que faltou declarar o estereótipo 'mixin' na classe abstrata. O produto de inscrições da PyConBrasil tem um exemplo. Abraço, -- Jean Ferri ___ Novidade no Yahoo! Mail: receba alertas de novas mensagens no seu celular. Registre seu aparelho agora! http://br.mobile.yahoo.com/mailalertas/ 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
Re: [zope-pt] Re: Bug no tratamento de herança?
Pessoal,segue uma dica, existe o CMFQuestion, ou CMFQuestions, que implementa isso, eu comecei a tradução dele a uns 2 meses atrás e nao consegui terminar, se nós traduzirmos o bixo ele provavelmente serve como uma luva para o que o Daniel precisa e ainda ajudamos a na tradução do produto :) []'sCastardoOn 7/21/06, Juracy Filho <[EMAIL PROTECTED]> wrote: Eu tive este problema há algum tempo atrás e resolvi, porém, estou sem este código a disposição no momento (na segunda posso verificar), não lembro ao certo se resolvi usando BaseClass ou nenhuma super-classe. Quanto ao ArchGenXML, se você quiser que ele gere uma classe que não herde de nenhuma super-classe você deve usar a tagged value: base_class na classe, assim: base_class = 0 Olhe em: http://plone.org/documentation/tutorial/archgenxml-getting-started/classes Simple Derivation All content types in Archetypes are derived from one of the base classes - BaseContent, BaseFolder, OrderedBaseFolder and so on. If you wish to turn this off, for example because the base class is being inherited from a parent class, you can set the base_class tagged value to 0. On 7/21/06, Daniel Vainsencher <[EMAIL PROTECTED]> wrote: > --- Em zope-pt@yahoogrupos.com.br, "Juracy Filho" < [EMAIL PROTECTED]> escreveu > > > > Daniel, não pude testar para vê se realmente funciona, mas acredito > que a > > solução do seu problema seria herdar Questao de BaseClass e não de > > BaseContent. > > > > Juracy, a sua sugestão não funcionou mas acho que lançou uma luz na > direção correta. > > Troquei BaseContent por BaseClass mas ocorreu um erro ao instalar o > produto no Zope (na inicialização da instância) porque a classe > BaseClass não foi encontrada. Procurei por exemplos em outros produtos > e não encontrei referência à bendita. > > No entanto encontrei esta referência em [1] : > > "By marking your class as abstract in your model (usually a separate > tick-box), you are signifying that it will not be added as a content > type. Such classes are useful as mixin parents and as abstract base > classes for more complex content types, and will not have the standard > Archetypes registration machinery, factory type information or derive > from BaseClass." > > Ela sugere que classes abstratas não devem herdar de BaseClass (que > interpretei como BaseContent). Fiz o teste excluindo BaseClass como > super classe de Questão e funcionou. > > Bem, se isto que fiz estiver correto então o problema estaria no > ArchgenXML que gera classes abstratas herdando de BaseContent. Será > isto mesmo? > > [1] > http://plone.org/documentation/tutorial/archgenxml-getting-started/tutorial-all-pages > > []s > Daniel > > > On 7/21/06, Daniel Vainsencher <[EMAIL PROTECTED]> wrote: > > > > > > --- Em zope-pt@yahoogrupos.com.br, "Luciano Ramalho" < [EMAIL PROTECTED]> > > > escreveu > > > > > > > > Daniel, talvez algum guru mais esperto que eu saiba te dar a > > > > solução, mas > > > > quero tentar te ajudar dando um toque sobre terminologia: quando se > > > > fala de > > > > pai e filho em OO isso pode ser ambíguo. > > > > > > > > A maioria das vezes, o pai é a super-classe e o filho é a > > > > sub-classe. Mas > > > > pode ser também que se trate de uma relação de composição: o pai > é > um > > > > container e o filho é o objeto contido. No Zope2, com o mecanismo > > > > de > > > > aquisição, essa possível confusão fica ainda mais presente. Mas > > > > note que é > > > > fácil separar, desde que fique claro que herança é uma relação de > > > > pai-filho > > > > entre CLASSES, e aquisição é uma relação entre OBJETOS (instâncias > > > > de > > > > classes). > > > > > > > > Isto posto, no problema que você relata você fala de "objeto pai > > > > (Questão)". > > > > Mas se Questao é uma classe abstrata, então ela não tem instâncias > > > > por > > > > definição! Acho que você está confundindo os conceitos. > > > > > > > > > > Corretíssima a observação. Do modo como escrevi está impreciso > > > e incorreto. > > > > > > > Tente reformular a descrição do seu problema sendo mais preciso na > > > > distinção > > > > > > Aí vai: > > > > > > Classes: > > > - Questão - Classe abstrata e superclasse de MultiplaEscolha; > > > - MultiplaEscolha - Especialização de Questão, relação de > > > composição (contém) com Alternativa e, > > > em função da composição, também herda de > > > BaseFolder. > > > - Alternativa - Relação de composição (está contida) com > > > MultiplaEscolha > > > > > > Para facilitar postei o código das classes em > > > http://paste.plone.org/6063 (Obrigado pela dica Jean) > > > > > > A minha intenção era colocar alternativas (instâncias de Alternativa) > > > dentro de questões de multipla escolha (instâncias de > MultiplaEscolha). > > > > > > O que ocorreu foi que, embora a classe MultiplaEscolha de fato herde > > > de BaseFolder, não se comporta como uma pasta. Embora consiga forçar > > > a cria
Re: [zope-pt] Re: Bug no tratamento de herança?
Eu tive este problema há algum tempo atrás e resolvi, porém, estou sem este código a disposição no momento (na segunda posso verificar), não lembro ao certo se resolvi usando BaseClass ou nenhuma super-classe. Quanto ao ArchGenXML, se você quiser que ele gere uma classe que não herde de nenhuma super-classe você deve usar a tagged value: base_class na classe, assim: base_class = 0 Olhe em: http://plone.org/documentation/tutorial/archgenxml-getting-started/classes Simple Derivation All content types in Archetypes are derived from one of the base classes - BaseContent, BaseFolder, OrderedBaseFolder and so on. If you wish to turn this off, for example because the base class is being inherited from a parent class, you can set the base_class tagged value to 0. On 7/21/06, Daniel Vainsencher <[EMAIL PROTECTED]> wrote: > --- Em zope-pt@yahoogrupos.com.br, "Juracy Filho" <[EMAIL PROTECTED]> escreveu > > > > Daniel, não pude testar para vê se realmente funciona, mas acredito > que a > > solução do seu problema seria herdar Questao de BaseClass e não de > > BaseContent. > > > > Juracy, a sua sugestão não funcionou mas acho que lançou uma luz na > direção correta. > > Troquei BaseContent por BaseClass mas ocorreu um erro ao instalar o > produto no Zope (na inicialização da instância) porque a classe > BaseClass não foi encontrada. Procurei por exemplos em outros produtos > e não encontrei referência à bendita. > > No entanto encontrei esta referência em [1] : > > "By marking your class as abstract in your model (usually a separate > tick-box), you are signifying that it will not be added as a content > type. Such classes are useful as mixin parents and as abstract base > classes for more complex content types, and will not have the standard > Archetypes registration machinery, factory type information or derive > from BaseClass." > > Ela sugere que classes abstratas não devem herdar de BaseClass (que > interpretei como BaseContent). Fiz o teste excluindo BaseClass como > super classe de Questão e funcionou. > > Bem, se isto que fiz estiver correto então o problema estaria no > ArchgenXML que gera classes abstratas herdando de BaseContent. Será > isto mesmo? > > [1] > http://plone.org/documentation/tutorial/archgenxml-getting-started/tutorial-all-pages > > []s > Daniel > > > On 7/21/06, Daniel Vainsencher <[EMAIL PROTECTED]> wrote: > > > > > > --- Em zope-pt@yahoogrupos.com.br, "Luciano Ramalho" <[EMAIL PROTECTED]> > > > escreveu > > > > > > > > Daniel, talvez algum guru mais esperto que eu saiba te dar a > > > > solução, mas > > > > quero tentar te ajudar dando um toque sobre terminologia: quando se > > > > fala de > > > > pai e filho em OO isso pode ser ambíguo. > > > > > > > > A maioria das vezes, o pai é a super-classe e o filho é a > > > > sub-classe. Mas > > > > pode ser também que se trate de uma relação de composição: o pai > é > um > > > > container e o filho é o objeto contido. No Zope2, com o mecanismo > > > > de > > > > aquisição, essa possível confusão fica ainda mais presente. Mas > > > > note que é > > > > fácil separar, desde que fique claro que herança é uma relação de > > > > pai-filho > > > > entre CLASSES, e aquisição é uma relação entre OBJETOS (instâncias > > > > de > > > > classes). > > > > > > > > Isto posto, no problema que você relata você fala de "objeto pai > > > > (Questão)". > > > > Mas se Questao é uma classe abstrata, então ela não tem instâncias > > > > por > > > > definição! Acho que você está confundindo os conceitos. > > > > > > > > > > Corretíssima a observação. Do modo como escrevi está impreciso > > > e incorreto. > > > > > > > Tente reformular a descrição do seu problema sendo mais preciso na > > > > distinção > > > > > > Aí vai: > > > > > > Classes: > > >- Questão - Classe abstrata e superclasse de MultiplaEscolha; > > >- MultiplaEscolha - Especialização de Questão, relação de > > >composição (contém) com Alternativa e, > > >em função da composição, também herda de > > >BaseFolder. > > >- Alternativa - Relação de composição (está contida) com > > >MultiplaEscolha > > > > > > Para facilitar postei o código das classes em > > > http://paste.plone.org/6063 (Obrigado pela dica Jean) > > > > > > A minha intenção era colocar alternativas (instâncias de Alternativa) > > > dentro de questões de multipla escolha (instâncias de > MultiplaEscolha). > > > > > > O que ocorreu foi que, embora a classe MultiplaEscolha de fato herde > > > de BaseFolder, não se comporta como uma pasta. Embora consiga forçar > > > a criação de alternativas acessando o método diretamente > > > http://localhost:8090/remo/questao1/createObject?type_name=Alternativa > > > as opções de adição de alternativa e listagem de conteúdo não aparecem > > > na interface do Plone. É como se MultiplaEscolha não fosse subclasse > > > de BaseFolder. > > > > > > Consegui contornar provisoriamente forçando a herança
Re: [zope-pt] Re: Bug no tratamento de herança?
Daniel, não pude testar para vê se realmente funciona, mas acredito que a solução do seu problema seria herdar Questao de BaseClass e não de BaseContent.On 7/21/06, Daniel Vainsencher <[EMAIL PROTECTED]> wrote: --- Em zope-pt@yahoogrupos.com.br, "Luciano Ramalho" <[EMAIL PROTECTED]>escreveu>> Daniel, talvez algum guru mais esperto que eu saiba te dar a > solução, mas> quero tentar te ajudar dando um toque sobre terminologia: quando se> fala de> pai e filho em OO isso pode ser ambíguo.>> A maioria das vezes, o pai é a super-classe e o filho é a > sub-classe. Mas> pode ser também que se trate de uma relação de composição: o pai é > um> container e o filho é o objeto contido. No Zope2, com o mecanismo> de> aquisição, essa possível confusão fica ainda mais presente. Mas > note que é> fácil separar, desde que fique claro que herança é uma relação de> pai-filho> entre CLASSES, e aquisição é uma relação entre OBJETOS (instâncias> de> classes).> > Isto posto, no problema que você relata você fala de "objeto pai> (Questão)".> Mas se Questao é uma classe abstrata, então ela não tem instâncias> por> definição! Acho que você está confundindo os conceitos. >Corretíssima a observação. Do modo como escrevi está imprecisoe incorreto.> Tente reformular a descrição do seu problema sendo mais preciso na> distinçãoAí vai:Classes: - Questão - Classe abstrata e superclasse de MultiplaEscolha; - MultiplaEscolha - Especialização de Questão, relação de composição (contém) com Alternativa e, em função da composição, também herda de BaseFolder. - Alternativa - Relação de composição (está contida) com MultiplaEscolhaPara facilitar postei o código das classes em http://paste.plone.org/6063 (Obrigado pela dica Jean)A minha intenção era colocar alternativas (instâncias de Alternativa)dentro de questões de multipla escolha (instâncias de MultiplaEscolha).O que ocorreu foi que, embora a classe MultiplaEscolha de fato herde de BaseFolder, não se comporta como uma pasta. Embora consiga forçara criação de alternativas acessando o método diretamentehttp://localhost:8090/remo/questao1/createObject?type_name=Alternativa as opções de adição de alternativa e listagem de conteúdo não aparecemna interface do Plone. É como se MultiplaEscolha não fosse subclassede BaseFolder.Consegui contornar provisoriamente forçando a herança entre a classe abstrata Questao e BaseFolder. No entanto, esta modelagem nãorepresenta corretamente o que pretendo expressar pois as outrassubclasses de Questao não são Pastas. (ex: Redacao, Dissertativa, etc)Desculpem pela descrição descuidada anterior. Espero que tenha melhorado. > entre as relações. Aposto que ao fazer esta reformulação você vaiencontrar> sozinho a causa do problema!>Infelizmente ainda não. ;-)Obrigado pelos toques.[]sDaniel > [ ]s> Luciano>>> On 7/20/06, Daniel Vainsencher Maya Monteiro <[EMAIL PROTECTED]> wrote:> >> > Uma classe que herda de BaseFolder e de uma classe abstrata > > que não é Folder parece não refletir o comportamento de um Folder.> > Nossa! Que frase horrível! Trocando em miúdos:> > Criei as classes:> >> > - Questao - classe abstrata não Folder, > > - MultiplaEscolha - herda de Questao e é composta por alternativas> > - Alternativa> >> > No entanto, Ao criar um objeto MultiplaEscolha as opções de> > adição de conteúdo referem-se à pasta pai de MultiplaEscolha: > >> > O que ocorre:> > - Alternativa não está disponível para adição, apenas os Tipos> > Permitidos na pasta pai> > - Ao forçar a criação da Alternativa com> > http://localhost:8090/remo/questao1/createObject?type_name=Alternativa> > consigo criar Alternativas sem erros;> > - O ícone do Tipo MultiplaEscolha é igual ao da Pasta o que > > indica que é de fato uma pasta> > - Não aparece a action Conteúdo, comum a todas as pastas> >> > Parece que as verificações para adição são feitas sobre o objeto pai> > (Questao) o que não paree correto num ambiente com herança múltipla. > >> > O que acham? (Se é que me fiz entender ;-) )> >> > []s> > Daniel> >> >>-- Juracy Filho __._,_.___ Para enviar uma mensagem: zope-pt@yahoogrupos.com.br Para desistir envie uma mensagem em branco para: [EMAIL PROTECTED] Yahoo! Grupos, um serviço oferecido por: PUBLICIDADE 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 Termos do Serviço do Yahoo!. __,_._,___