前回の記事はコチラ↓
スケジューラー機能付きのワークフローを導入してみた(Drupal8) 〜前編〜
スケジュールの設定
/admin/config/workflow/scheduled-transitionsのページで、スケジューラー機能の設定ができます。
Enabled types から、適用したいものにチェックをいれます。他にもcronの設定やエンティティの設定なども行えますが、今回は特に必要ありませんでした。
ユーザー権限の設定
今回は投稿者、承認者とユーザーを分けることにします。
/admin/people/roles のページで、役割の追加ボタンをクリックして投稿者と承認者の役割を作成します。
Content Moderationの権限設定
ユーザー権限ごとにどの状態に変更することができるかを切り分けることができます。
先程設定した推移(TRANSITIONS)の単位で権限を設定することができます。
今回であれば、
投稿者は「Draftに変更する権限」「waiting for checkに変更する権限]、
承認者は投稿者と同じ権限に加えて、CheckedやPublishに変更する権限が必要です。また、念の為Content Moderationに関するすべての権限を付与します。
Scheduled Transitionsの権限設定
スケジュール設定を行うことができるユーザーを切り分けることができます。
今回は投稿者にはチェックを入れず、承認者にはチェックを入れます。
これによってスケジュール設定は承認者しか行えないことになります。
完成!
これで一通り設定が完了しました。
実際の動きを確認してみましょう。
投稿者の場合
記事の作成時の部分からチェックしてみましょう。
投稿者権限でコンテンツの編集ページを見てみます。
Draft→waiting for checkに変更できますが、Waiting for check →Publish等のステータスには変更することができません。
↓現在のステータスがDraftの場合
↓現在のステータスがWaiting for checkの場合
承認者の場合
記事の確認について
/admin/content/moderated から、Moderationの設定がされている記事一覧が見れます。Moderation stateのフィールドが追加されているので、その記事が今どの状態がパッと見でわかるようになりました!
コンテンツ編集ページを確認してみると、waiting for check からchecked に変更することができます。
先程投稿者権限では変更できませんでしたが、承認者権限では変更することができるようになりました。
記事のステータス変更
コンテンツページのタブに、Scheduled Transitionsというタブが追加されており、そこからスケジュール設定ができるようになっています。Add Scheduled transitionのボタンをクリックします。
スケジュール設定のポップアップが表示されますので、Excute transitionを「Publish」、ondateを公開したい日付にします。
これでこの記事は2021年1月8日の18:00に公開されるようになりました。
※実際はCronが動いたタイミングでステータスが変わりますので、Cronは適宜設定することをお忘れなく!
また、既にスケジュール設定されている記事の一覧は、/admin/content/scheduled-transitionsで確認することができます。
最後に
いかがでしたでしょうか。ワークフローは様々な案件で取り扱うので、参考になれば幸いです。
これからもどんどん機能追加していくつもりですので、その際はまた当ブログでご紹介していきたいと思います。
最後まで読んでいただきありがとうございました。