[Zope-PTK] PTK II

Dan L. Pierson dan@sol.control.com
Fri, 28 Jul 2000 16:27:53 -0400 (EDT)


Shane Hathaway writes:
 > I envision PTK as not a framework but a toolkit.  A framework is a
 > thing which is mostly built but needs customization.  It's like leasing
 > office space.  A toolkit is less restrictive but more flexible.  It's
 > like having the tools and materials to build your own office space.
 > 
 > So PTKBase should be a toolkit while PTKDemo is a framework built from
 > that toolkit.

I certainly agree that separating PTK into a generally useful toolkit
and a default/example framework built out of that toolkit is the way
to go.

That said, the framework is very important.  Not just for its direct
value to users, but because it's a nearly essential component for
being able to validate that the toolkit is actually capable of
producing content manager configurable frameworks!

 > As I look over PTKBase and PTKDemo, I see little evidence of
 > separation.  I wanted to move the five basic content types from PTKBase
 > to PTKDemo, but discovered that DiscussableItem inherits from Document,
 > one of the content types.  This means either PTKBase would depend on
 > PTKDemo or all the Discussable code gets moved to PTKDemo. 
 > "Discussable" should be a feature of PTKBase, not PTKDemo.  This is
 > evidence of an architecture problem IMHO.

Absolutely!

 > So I came up with an idea.  What we want to be able to do is have a set
 > of "tools" at the base of the portal.  These tools would include:
 > 
 >   - Membership database
 >   - Workflow attribute access
 >   - Discussion access
 > 
 > The default membership database would be a thin layer on top of the
 > acl_users object.  It could be replaced with a ZPatterns specialist
 > that looks up users from any number of sources.

What is the difference between this and the Membership product effort
other than some minimal support for default acl_users membership?

<Confession>
I suspect that supporting default acl_users for Portal membership is a
poor idea.  I can't prove it, but somehow I'm more comfortable with
site managers being defined in a separate area that Portal members
have no access too.  Please feel free to convince me that I'm just
being silly and paranoid here :-)
</Confession>

 > The default workflow attribute access tool would query documents about
 > their workflow status, as is done now.  But it should be possible to
 > retrieve and store workflow status in another way, such as from context
 > or using a specialist.  This could be achieved by replacing the default
 > tool.

That means that we first need to defined a good interface for this
component.  Of course this is true for all, but this component is
described in such a way that I think that most serious uses would want 
to replace it.

 > The discussion access tool would enable us to solve a problem we have
 > right now: every view of any portal content generates a catalog query. 
 > That's not necessarily a good thing.  The discussion access tool could
 > govern the storage of discussion information.

OK.  I like this being a separate interface, especially since I've
long wanted general DataSkins-based discussion support (well, it did
have another name way back then :-)).  I think that it's very
important that it be cheap and easy to make all or almost everything
on a site discussable.  I also think that site management would be
much easier if the discussions did not have to live in the same ZODB
as the rest of the site.

 > Basically, where PTKBase currently uses subclassing to achieve
 > membership (as opposed to simple users), workflow, and discussability,
 > we should instead use singleton objects that add capabilities without
 > subclassing (although the initial implementation will make use of
 > existing subclasses.)  I think this is exactly what Phillip's vision is
 > for ZPatterns.

OK, here I lose you.  I'd like to see an example of what you think
these singleton objects might look like.