[Zope-CMF] Howto use CMFStaging?

alan runyan alan runyan" <runyaga@runyaga.com
Fri, 16 Aug 2002 02:19:51 -0500


> My case I think is fairly general for publishing of content within CMF,
> and I really need Versioning/Locking.
>
> In the current cmf, I can
>
> 1. create content
> 2. submit content for review
> 3. review content either approving, or rejecting it.
> (and obviously create other workflow variations)
>
> and now I have published content. I have to then be able to
> allow a content author to edit the published document, b currently I
> must force a retract, so that the publishing process is
> then revisited for every change (other wise someone could make
> undesirable changes). But this then means the old (approved version) of
> the document is no longer visible

yes.. this is one of the reasons for the 'staging' concept.  it gives us
another dimension
to keep content in so we can putz about with our 'development sandboxes'.

> What I want to achieve is to allow the content author to edit the
> published document, but with some form of version control/locking
> which means when the published document is edited, a new version is
> created which is automatically retracted, leaving the previous version
> still published and accessible.

this is doable w/ CMFStaging.  you may need to customzie some python scripts
but the API will definetly allow you to do something like this.

> Once the new unpublished version is approved, it becomes the new
> published visible incarnation of the document.

again you will instrument the CMFStaging by replacing the old content with
the
newly approved one (you will be in yoru development 'area') and then your
workflow
will ask the Staging API to promote it to the next area.

> I have no idea if CMFStaging could be used to implement such a process.

it can.

> If you think this could be done, I am quite willing to build, and
> document as a tutorial the required steps, code etc....

how about doing this in a BackTalk book?  I can provide the web server is
need be.

> I may need some help though.

I can try to help.

> Is this requirement even feasible. I have to embark on such a solution
> and if I can utilise CMFStaging all the better.

yes Tim, its completely feasible and I believe this is one of the use cases
that hte Staging/Versioning
bits covers quite well.  I have given it a go the first time it was checked
into CVS but have stopped
because of other business.  but my 'experiments' with the Staging/Versions
stuff did show that I could
do exactly what you mention above using a combination of workflow and some
customizations to the
object edit scripts (Python Scripts) in the ZODB.  Its really slick stuff.

Plone 1.1 will have CMFStaging/Versions integrated into it.  That and
we will be tackling the pre-object creation problem (the fact you can have
orphaned objects lying around).
The latter is something Geoff Davis cooked up and we would like for people
to look at as soon as its
done and tested.

maybe we can get BackTalk installed on cmf.zope.org ? or on zope.org ? I
would really like to push for
documentation.  but I'm also guilty of not being able to contribute time
immediately.  I can only volunteer
some random help here and there and some hardware resources.

~runyaga