This is how I would implement this, just by using template code:
- add a boolean (checkbox) field to the article class to mark it for "public" display, for exampel "is_ready". - in the article display (full/line) views add a check on both the boolean field and the current user groups to see if an editor is logged in and act accordingly in a {section show=....}
{* init $current user if necessary with let current_user=fetch(user,current_user)
and
suppose the group (object id) of the editors group is 13 *}
{section show=or($current_user.groups|contains(13),$node.data_map.is_ready.content)}
{* display the article *}
{section-else}
{* do not display the article, but maybe show some kind of a message *}
{/section}
I've had a similar problem but with content spread over several nodes.
What I did was to create a new section "under construct". When the user publish the content (no save draft button), it goes to the underconstruct section. On the template for this section, I've added a button "publish" that call a custom module to change the section to the standard one.
Obvioulsy, with access rights, you can define we can read/edit content in the under construct section.
But I don't understand your solutions. As far as I understand Paul, he keeps articles from getting visible - that's nice, 'cause my editors could no save (not save draft) and the next editor can modify the article. But what about all published articles which still exist? Wouldn't they become invisible?
Xavier, if I understand you right, it is necassary to write an custom module - this is far beyond my possibilities.
I think I try Pauls solution, maybe I can solve it with a mysql update over all existing articles or modify the template language (which is new for me too) to look after the checkbox only if it exists.