[Product-Developers] Re: Limitations in the use of schemaextender

Giovanni Toffoli toffoli at uni.net
Sun Sep 13 15:37:55 UTC 2009


Thank you Martin!

I think that the keyword is introspection.

> Perhaps. :) I'm not quite sure I understand what you're trying to achieve.


Well, I need to recap my experience.
Starting with UML and AGX, I've developed a complex data model, which is 
implemented with Archetypes.
It is a tree of classes and subclasses; the leaves of the tree correspond to 
content types (portal types).
The rationale of this is to share many fields and methods among subsets of 
types.
Among other things, I've developed a generic search functionality able to 
generate dynamically search forms and results reports for each content type, 
and also for the subset of content types belonging to each subtree in the 
model.
Each search form includes a search widget for each indexed field.
I've developed this and other generic functions using a kind of 
introspection; that is
- analyzing programmatically the class hierarchy
- analyzing the ftis in portal_types
- trying to find relationships among classes and portal types
- identifying the fields that can be used in the search criteria.
It seems that Archetypes doesn't provide interfaces supporting such an 
endeavour. However, in some way I managed to fulfil my goal.

When, in a new project, I tried to extend some schemas using schemaextender, 
instead of using further subclassing, I better realized the limitation of my 
approach.
I would say that the limitation is in the framework, Archetypes, that 
supports introspection at the instance level but not at the type level, if I 
am true.
I also wander if new frameworks for data modeling in Zope/Plone, such as 
Dexterity, overcome said limitation.

Best regards, Giovanni


----- Original Message ----- 
From: "Martin Aspeli" <optilude+lists at gmail.com>
To: <product-developers at lists.plone.org>
Sent: Saturday, September 12, 2009 6:07 PM
Subject: [Product-Developers] Re: Limitations in the use of schemaextender

(...)






More information about the Product-Developers mailing list