EnSimpleStaging is a product for Plone that allows you to create
workspaces for staging and versioning of content areas of your site.

These workspaces allow you to make changes to a group of objects and
deploy them all at the same time. They also allow you to save the
state of your objects with labels so that you can return the objects
in the workspace to the state they were in when you last saved. Also,
this labeling happens automatically whenever you 'deploy' or 'publish'
your workspace.

One nice thing about EnSimpleStaging is that it allows you to 'stage'
different parts of your site with different workspaces.

Suppose you want to have a site layout like
this::

 Plone Instance
  |
  \- public_website
      |
      |- products
      |   |
      |   |- foo_product
      |	  |
      |   \- bar_product
      |
      \- news

Now suppose you want to have your public website taken care of by two
different groups of people:

 * The Website folks

  They will take care of the main site and the news section

 * The Product dudes

  They will maintain the products section and everything inside

This is what you need to do:

 * Create the public_website folder

 * Create a "Staging Area" outsite of the public_website folder. let's
   call it 'stage_site', setting it to deploy to "public_website"
   (no quotes, no slashes).

 * In the 'stage_site', create the folders 'products' and
   'news'.

By now you should have a layout that looks like
this::

 Plone Instance
  |
  |- public_website
  |
  \- stage_site
      |
      |
      |- products
      |
      \- news


 * Go to the stage_site interface, choose a label and a description and
press 'Deploy workspace to public site' and you should have something
ressembling this:

 Plone Instance
  |
  |- public_website
  |   |
  |   |- products
  |   |
  |   \- news
  |
  \- stage_site
      |
      |- products
      |
      \- news


 * Now create the staging area of the Products group, It shouldn't be
placed inside 'public_website' nor 'stage_site'. Let's call it
'stage_prod' and put it beside 'stage_site' and set it to publish to
"public_website/products" (without the quotes). Now if you go to the
'products' folder inside the 'stage_site', you'll notice
there's an 'index_html' object there warning you to not add content to
that folder, this is because objects inside this folder, if they were
deployed, could conflict with (or be wiped out by) the objects of
'stage_prod' when 'stage_prod' was deploied.


 * Inside the 'stage_prod', add folders for
'foo_product' and 'bar_product'. By now you should have a layout like
this

 Plone Instance
  |
  |- public_website
  |   |
  |   |- products
  |   |
  |   \- news
  |
  |- stage_prod
  |   |
  |   |- foo_product
  |   |
  |   \- bar_product
  |
  |
  \- stage_site
      |
      |- products
      |
      \- news

 * Go to the stage_prod interface, choose a description and a label
and then deploy. You should have something like this:


 Plone Instance
  |
  |- public_website
  |   |
  |   |- products
  |   |   |
  |   |   |- foo_product
  |   |   |
  |   |   \- bar_product
  |   |
  |   \- news
  |
  |- stage_prod
  |   |
  |   |
  |   |- foo_product
  |   |
  |   \- bar_product
  |
  \- stage_site
      |
      |- products
      |
      \- news


From now on, you can make any changes you want inside the staging
areas and publish them in any order, and the public_website will be
updated accordingly. Just remember to not put anything inside the
"products" folder of 'stage_site'.
