[Zope-CMF] Implementing CMFStaging

Norfleet, Sheppard S. SNorfleet2@northropgrumman.com
Thu, 3 Apr 2003 08:21:40 -0800


Looking for tips here from people that have implemented CMFStaging in a
document server.  What do you forsee me needed to do implement this kind of
concept site: 

View-Content:
    IF content is UNDER_VERSION_CONTROL
        content=getLastPublishedVersion(content)
    view_content(content)

Edit-Content:
    IF content is UNDER_VERSION_CONTROL
        IF content is CHECKED_OUT
             IF user is checkout_user(content)
                 showEditPage(content)
             ELSE  show(CONTENT-IS-CHECKED-OUT-MESSAGE)
        ELSE show(CHECK-OUT-FIRST-MESSAGE)
     ELSE showEditPage(content)
   
Content-Actions:
   ShowAction(VIEW_CONTENT)
   IF content is UNDER_VERSION_CONTROL
       showAction(VERSION_HISTORY)
       IF content is CHECKED_OUT 
	IF current_user=checkout_user(content)
                showAction(EDIT_CONTENT)
                showAction(CHECK_IN)
            ELSE
                showAction(CHECKED_OUT_USER)
       ELIF showAction(CHECK_OUT)
  ELSE
      ShowAction(USE_VERSION_CONTROL);
      ShowAction(EDIT_CONTENT);

Assume appropriate security steps in the pseudo-code above.  My needs see
workflow as being separate from the version control process but aware
inasmuch as the workflow deals not with the content monolithically but with
a particular version of the content.   
Example:  I have a site with a controlled document published at version 2.5.
The documents private state may be at version 3.0 but it has not been
submitted through the workflow process yet.  

Now my final questions are: Is this concept site attainable with CMF
Staging? AND  what do I need to do to accomplish with CMF Staging?  In
otherwords, what do I need to know how to do in order to fill in the gaps.

I am comfortable with python, but still relatively unfamiliar with CMF's
internal structure.  

Thanks for any help

Shep