[Zope-CMF] Publishable Folder....

Carl Rendell cer@sol43.com
Wed, 5 Jun 2002 08:28:09 -0700


Heimo,

Florent Guillaume has a product that handles the workflow end of it 
so that could be a place to start.

http://www.zope.org/Members/efge/PortalContentFolder

To my mind the standard publication stuff is a bit quirky anyway. 
It's fine when a user is adding one bit of content at a time, but 
when new sections of a site are being added, or some other 'mass 
publishing' exercise is under way then the point-to-point 
publishing idiom breaks down.

One interesting thing here that keeps raising a question in my 
mind. Should ALL content and containers be subject to workflow? 
Should containers be cataloged?

If often seems strange to me that Portal Folders are the only 
default items - below the CMF Site - that are not in the catalog.

~C

On Wednesday, June 5, 2002, at 05:08  AM, zope-cmf-request@zope.org 
wrote:

> Message: 15
> Date: Wed, 05 Jun 2002 15:02:10 +0300
> From: Heimo Laukkanen <huima@fountainpark.org>
> To: zope-cmf <zope-cmf@zope.org>
> Subject: [Zope-CMF] Publishable Folder....
>
> Hi all,
>
> I was just wondering why in the first place the Portal 
> Folder-product is
> not workflow like, meaning there is no way to publish or keep Folders
> private - for example until all the content is ready inside the Folder.
>
> If pne would like to do thiskind of behaviour - meaning workflow aware
> folder, what would it need? Only to create manage_afterAdd and
> manage_beforeDelete like in the CMF Article( see below)?
>
> -huima
>
>
>
> #
> # Workflow interaction
> #
>
>      security.declarePrivate('manage_afterAdd')
>      def manage_afterAdd(self, item, container):
>          " Add self to the workflow and catalog. "
>          # Recurse in the children (ObjectManager)
>          PortalFolder.manage_afterAdd(self, item, container)
>          # Add self to workflow and catalog
>          PortalContent.manage_afterAdd(self, item, container)
>          # remember to move the initial sorting here
>
>      security.declarePrivate('manage_beforeDelete')
>      def manage_beforeDelete(self, item, container):
>          " Remove self from the workflow and catalog. "
>          # We don't call PortalContent.manage_beforeDelete because
>          #  it deals with talkbacks which are subobjects...
>          # Remove self from catalog
>          if aq_base(container) is not aq_base(self):
>              self.unindexObject()
>          # Then recurse in the children (ObjectManager)
>          PortalFolder.manage_beforeDelete(self, item, container)

Carl E. Rendell
Solution43
Information Distribution Consulting        |   "Ahhhh the power of
cer@sol43.com                              |    acquisition"  - Chef Z