Module Introduction Workspace Plus
This is a quick introduction to the Workspace Plus module that we created to help a client with some unique content moderation needs. This module allows a team to create changes to content that leverages things like Blocks/Layouts or other custom entities with Content moderation and the Workspace module to provide a method to deploy all of these updates with a single click of a button when its ready.
Getting things setup requires you to enable the module, and you can add it to a composer project using composer require wembassyco/workspace_plus. Once it is added and enabled there are a few suggested things I would do to get things moving smoothly. Firstly I would recommend creating the below setup for content moderation:
For my case I added tow extra steps one that would mark content as being ready to review by proofreaders, and then the second that allows proofreaders to mark it as being ready to deploy. The other step you will want to do on this section of the settings is to enable the Deploy to live checkbox when editing the Ready to Deploy state. This will tell Workspace Plus that any content in this state is ready to be published to the Live workspace.
Once these two things are taken care of then your setup is mostly complete, the only thing remaining is to enable Blocks and Layouts to use the workflow you created. When you start working and creating content you will want to make sure that your team is doing so inside of your Stage workspace, you can limit who has access to edit in the content in the Live workspace via permissions.
After you have some items you are looking to deploy, you can then go to the Deploy Content screen in Workspace, there you will see a short summary of the content items to deploy. There are some enhancements that you could make that were not included in the module, for example you could display a list of all the items deploying by name, using something like views. And/or you could also setup scheduling to pre-set what space to deploy.
This is a small module that just looks to enhance some of the existing functionality and also allow you to leverage workspace for all content entities aside from just those with default support out of the box.