[Zope-PTK] Catalog system

Mike Pelletier mike@digicool.com
Fri, 14 Jan 2000 10:50:06 -0500 (EST)


    I've just hashed over some ideas on cataloging with Paul.  Here's
what resulted.

    I am planning to deviate from Zope.org's system of cataloging items.  
On Zope.org, when a catalog request is made the object is cataloged by the
'UnreviewedIndex' catalog.  When it is approved, it is removed from that
catalog and placed in 'SiteIndex'.  Objects are not automatically
cataloged anywhere.

    I wish to have better access to all the objects on the portal as a
manager.  I also want objects to have a history of their catalog requests
and resolutions.

    In the system I plan to implement, all objects would be cataloged by
the master catalog on creation and each time they change.  Only managers
should have permission to search this catalog.  When an object's catalog
request gets approved, it is added to a public catalog.  As a possible
embellishment, there could be additional public catalogs such as 'Editors
Picks', or one for content suitable for children, or anonymous users, or
paying users, or whatever.  There will be a property on the Member object
which determines which catalog (possibly catalogs) the member is to use.

    The actual [un]catalog interface and methods will be done in a ZClass,
'CatalogManager'?, which will be a component of each PortalContent
object.  Each time the content changes, this class is notified so that it
can decided whether the object should be updated in the catalogs, or
perhaps removed from some catalogs as policy dictates.  It also records
all changes in catalog states, all catalog requests, and all reviewer
actions (including comments and correspondence).  I do not want the user to
have to explicitly update the catalog, though they may have to issue a new
request depending on the policy.

    It is also intended that an object's cataloged status should inform
it's security policies-- if an object you do not own is not cataloged in
any catalogs you have access to, you cannot access that object.

    I'm working at the implementation today.

-- 
Mike Pelletier                          email: mike@digicool.com
Mild mannered software developer          icq: 7127228
by day, super villain by night.         phone: 519-884-2434