Re: [zope-pt] Re: Bug no tratamento de herança?

2006-07-31 Por tôpico Jean Rodrigo Ferri
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

 





[zope-pt] Re: Bug no tratamento de herança?

2006-07-24 Por tôpico Daniel Vainsencher
--- Em zope-pt@yahoogrupos.com.br, Rodrigo Castardo
[EMAIL PROTECTED] escreveu

 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 :)

Oi Rodrigo.
 
Dei uma olhada no CMFQuestions[1]. Confesso que não instalei.  Li a
documentação e dei uma olhada no código. Parece interessante para quem
precisa montar questionários on-line. Aliás na pesquisa encontrei um
outro Produto;CMF Questionnaire[2];com recursos bem interessantes

No entanto a natureza do produto que estou desenvolvendo é diferente.
É um banco de questões, com montagem e administração de provas,
processamento e divulgação de resultados para concursos. Infelizmente
a abordagem de [1] e [2] difere bastante da minha.

Analisei também o modo como ele implementou os diversos tipos de
questão para ver se me dava uma luz na questão da herança. Para minha
Infelicidade ele distingue os tipos de questão apenas na exibição (nos
templates). Eu realmente preciso de classes distintas. :-( 

Obrigado pela sugestão.

[1] http://plone.org/products/cmfquestions
[2] http://plone.org/products/cmfquestionnaire

[]s
Daniel

 
 []'s
 
 Castardo
 
 
 On 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

Re: [zope-pt] Re: Bug no tratamento de herança?

2006-07-23 Por tôpico Rodrigo Castardo



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çã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 entre a 

[zope-pt] Re: Bug no tratamento de herança?

2006-07-21 Por tôpico Daniel Vainsencher
--- 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 entre a classe
abstrata Questao e BaseFolder. No entanto, esta modelagem não
representa corretamente o que pretendo expressar pois as outras
subclasses 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ê vai
encontrar
 sozinho a causa do problema!
 

Infelizmente ainda não. ;-)

Obrigado pelos toques.

[]s
Daniel

 [ ]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
  
 







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

 




[zope-pt] Re: Bug no tratamento de herança?

2006-07-21 Por tôpico Daniel Vainsencher
--- 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 entre a classe
  abstrata Questao e BaseFolder. No entanto, esta modelagem não
  representa corretamente o que pretendo expressar pois as outras
  subclasses 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ê vai
  encontrar
   sozinho a causa do problema!
  
 
  Infelizmente ainda não. ;-)
 
  Obrigado pelos toques.
 
  []s
  Daniel
 
   [ ]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
   

Re: [zope-pt] Re: Bug no tratamento de herança?

2006-07-21 Por tôpico Juracy Filho
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 entre a classe
   abstrata Questao e BaseFolder. No entanto, esta modelagem não
   representa corretamente o que pretendo expressar pois as outras
   subclasses de Questao não são Pastas. (ex: Redacao, Dissertativa, etc)
  
   Desculpem pela descrição descuidada anterior.