[Zope-PTK] content states
Phillip J. Eby
Wed, 19 Jul 2000 15:20:57 -0500
At 09:09 PM 7/19/00 +0100, Chris Withers wrote:
>"Phillip J. Eby" wrote:
>> For the SWARM model Ty and I were working on
>Where can I find out about the SWARM model?
Aside from the brains of Ty and myself, it's currently documented only in
scribbled notes and on whiteboards in our offices. :(
>And, I don't know how this fits in but here's my spin of workflow and
>1. For each object you have a single to-do list, which is the workflow
>that object passes through
>2. A to-do list may be ordered or unordered. If ordered, you may only
>proceed to the next item in the list when the last has been completed,
>if unordered, the list is completed when all tasks in it have been
>3. Each item in a to-do list may either be an action that must be
>performed or another to-do list.
>I can't think of a workflow pattern (other than looping - rats ;-) that
>can't be created from these principles...
You also forgot branching. Anyway, if you check out the "Chautauqua"
workflow paper (Chautauqua is a simple Python workflow system), you'll find
there a model whose expressive power is about the same level as where SWARM
should end up, although the actual Chautauqua ICN execution model is much
more complex than what we wound up with for SWARM.
>Can this kindof workflow be supported with the system you're talking
Using "checklist" propertysheets such as I proposed to Steve, certainly.
The purpose of the SWARM tools will be primarily to provide state-based
subclassing, and stakeholder event transformations. These are higher-level
workflow operations than checklist management, which is why I suggest that
the PTK is unlikely to need the full power of SWARM for simple content
reviewing. However, it might nonetheless find some of those higher-level
tools useful, because state-based subclassing potentially allows you to do
things like have different permissions for a method, depending on what
state the object is in. And stakeholder event transformations might be
useful for e-mailing people about things or putting items in some sort of
"in-box" for them, etc.