[Zope-dev] Object hierarchy in RIPP

Phillip J. Eby pje@telecommunity.com
Thu, 04 May 2000 15:46:00 -0500


At 04:10 PM 5/4/00 -0400, Kevin Dangoor wrote:
>
>I assume that one difference between the Rack and my existing set up is that
>if I have a Specialist called "products" and go to
>products/manage
>I'm not going to see the standard Zope management interface listing out the
>products. Correct?

Correct.  You'd see the management interface for editing the specialist,
specifically the "Methods" tab.  Other tabs exist for "Racks", "Sheet
Providers", and "Attribute Providers".


>I understand that Racks are meant to solve some of the issues with having
>"too many" items in one Folder, in which case you wouldn't *want* the
>standard Zope management interface. If/when the API defines search methods,
>it might be nice to create a standard "management interface" for Racks that
>would let you add instances, search for instances and delete them.

Currently that sort of interface is all spec'd by the builder (you).  Just
add methods on the methods tab for what you want.  That also lets you make
it more application domain-specific.  Specialists are *supposed* to be
domain-specific, not merely a place like a folder where you stash your
data.  Indeed, in your products application, I'd put my front-page menu as
the specialist's index_html, with all my add/search/reporting methods there
as well.  Anything that is like a product method, but which is more a
"class" method than an instance method, would go on the Methods tab of the
Specialist.  The Specialist thus becomes a one-stop-shop for an application
building block.

Way-in-the-future releases may have some more ability to set up defaults of
such things for you, and after we figure out indexing plugins there may be
some kind of built-in search capabilities.  Meanwhile to implement
searching, just use a Catalog, SQL methods, LDAP methods, or whatever else
works for you, on the Methods tab of either the Rack (if its a
storage-specific mechanism) or on the Specialist (if it works across all
the Specialist's racks).


>I see the difference you're getting at, as well. So, I wouldn't try to stuff
>a Specialist into another Specialist or onto a Rack. The ProductGroups
>Specialist just asks the Products Specialist for a given item. Makes sense.

Right.  Nobody should ever talk to a Rack except the Specialist who owns
it.  In fact, you can't even add a Rack to a folder, you can only add one
to a Specialist.


>I agree that this flexibility would be nice... But, I don't mind having to
>put things in Racks in order to be able to flexibly store information in the
>ZODB and RDBMSes.

Keep in mind that at the moment, you'll have to write your own SQL
providers for sheets and attributes.  There will be two examples of each
kind of provider available in 0.3.0, but they don't do much interesting
because they're ZODB and acquisition-based.  We'll probably also be
implementing LDAPRack and LDAP-attribute/sheet providers before the SQL
stuff, because we need the LDAP stuff sooner for company projects.