このワークフローの実装は、これらのモジュールの組み合わせ(および通常のコンテンツタイプ、「Webフォーム」のようなものは必要ありません)を使用することで可能です。
これらの4つのモジュールを一緒に使用する方法の例(および詳細)については、「匿名の訪問者がコンテンツを送信できるようにするにはどうすればよいですか?」に関する質問の私の回答を参照してください(この質問はその質問のバリエーションのようです)。
以下は、同様のアプローチでワークフローを実装するための詳細です。
従業員がフォームを送信します
従業員は、コンテンツタイプ(たとえば)のノードを作成します(リクエスト)(コンテンツアクセスを使用して、「複数のタイプのリクエストを複数のコンテンツタイプに拡張するだけの場合に、どのタイプのリクエストを作成できるロールについて、あらゆる種類の権限を微調整します)。
スーパーバイザーは通知を受け取り、フォームを確認した後、フォームを承認するか、同じ送信の要求を拒否します。
ルールを使用してスーパーバイザーに「電子メールを送信する」(=アクション)「タイプ「リクエスト」のコンテンツが保存された後」(=イベント)。スーパーバイザー向けの(カスタム)電子メールに、リクエストに関連するすべての詳細を含めます(ルールで使用できるさまざまなデータに応じて)。確認するノードのURLなど。
リクエスタがリクエストデータを変更できないようにするには(レビュープロセスが未解決の場合)、同じ(前の)ルールに追加のアクションを追加して、リクエストへのアクセスを更新します(リクエスタに対してのみ読み取りを許可します)。
フラグモジュールを使用して、スーパーバイザーが「承認済み(スーパーバイザーによる)」または「拒否された(スーパーバイザーによる)」(拒否?)などのフラグで送信済みノードをマークできるようにします。これらのフラグを設定する許可は、スーパーバイザーに制限されています。
承認されると、メール通知がDirectorに送信され、Directorが同じ提出を承認または不承認にします。
ルールを(再度)使用して、「ノードに「承認済み(スーパーバイザによる)」のフラグが付けられた後(=イベント)、同様の「電子メールの送信」(=アクション)がDirectorに発生するようにします。ディレクターの(カスタム)電子メールに、リクエストに関連するすべての詳細を含めます(ルールで使用できるさまざまなデータに応じて)。確認するノードのURLなど。
フラグモジュール(再度)を使用して、ディレクターが「承認済み(ディレクターによる)」または「拒否された(ディレクターによる)」などのフラグで送信されたノードをマークできるようにします。これらのフラグを設定する権限は、ディレクターに制限されています。
ルールを使用してリクエスタに「電子メールを送信する」(=アクション)「タイプ「リクエスト」のコンテンツが拒否された(フラグによって)フラグが付けられた後」(=イベント)。
上司によって拒否された場合、メールが従業員に送信されます。
- ルールを使用してリクエスタに「電子メールを送信する」(=アクション)「タイプ「リクエスト」のコンテンツが拒否された(スーパーバイザによって)フラグが付けられた後」(=イベント)。
ですから、基本的なルール / フラグに関するものをいくつか...
Node Convertに関連するものは(まだ)含まれていません。このモジュールをこのミックスに追加する必要があるのは、ワークフローの参加者の一部がまったく「見る」べきではない特定の「フィールド」で上記をさらに細かくしたい場合のみです(「フィールド権限」を使用する必要がないようにするため、それに代わるものかもしれません。
可能な拡張
フォームブロック
Form Blockモジュールの経験はありません。そのプロジェクトページには、「ユーザー登録、サイト全体の連絡、またはノード作成フォームをブロックで表示できるようにします。これは、パネルにフォームを含める場合に特に役立ちます。」と書かれています。
パネルを使用している場合、このモジュールを使用すると、おそらく付加価値が生じるようです。ただし、このモジュールの真の付加価値については(まだ)確信がありません。
レッドフラグのように思える点がいくつかあります(=そのモジュールを使用する前に2回考えます)。
ドキュメントはどこにありますか?
プロジェクトページでの説明とは別に、(a)コミュニティのドキュメント(少なくともプロジェクトページからリンクされていない)と(b)モジュールに付属するreadme.txtはあるが、「実際の」コンテンツはない。
D7リリースはどこにありますか?
D6の公式リリースがあります。しかし、D7バージョンは1年以上前のアルファ1としてのみ存在します。そして、すでにベータ版のD8バージョンがあります。D8で何が起きるかはわかりませんが、D7には何か問題があるようです。D7の公式バージョンはありますか?それにもかかわらず、使用統計を見ると、D7サイトがたくさんあります。そのD7-アルファバージョンの1万件近くの報告されたインストール。モジュールを使用する10Kサイトは間違いないので、「そのalfa1バージョンは事実上、このようにタグ付けする必要がある公式リリースです」のようなものでなければなりません。
上記の箇条書きは、貢献したモジュールを決定するために私がよく使用する基準のほんの一部です。詳細については、メンテナンススコアカードに関するコミュニティのドキュメントを参照してください。これについて(そのページから)の紹介です:
...提供されたモジュールの保守とサポートの評価に役立つ23の基準(= 28-5)のリストが含まれています。以下は、これらの基準を各ネイティブチャートモジュールに適用する試みです...
もちろん、これらのスコアカードは「チャートモジュール」に関連していますが、複数のモジュール間で決定する必要がある場合でも、同じ基準が適用されます。
豆
おそらくBeanモジュールを見て、ブロックの領域に別のモジュールを追加することを検討してください。ここにそのプロジェクトページについての引用があります:
Beanを新しいタイプを提供するメソッドと考えてください(ノードと比較すると、これはコンテンツタイプになります)。必要な数のブロックを作成するための追加コンテンツインターフェースを提供します(下のスクリーンショットを参照)。Beanのコンテンツは、他のブロックと同じようにサイトの周りに配置できます。
適切なBeanパーミッションを付与するために利用可能なオプションと組み合わせると、特定のケースでこの(優れた)モジュールをどのように使用したいかについて、多くの柔軟性が得られます。おまけとして、BeanモジュールはUUIDおよびUUID機能統合モジュールと組み合わせて使用することもできます。その上で、Beanモジュールに慣れた後、サイトでBeanモジュールも使用したい場合があるかもしれません(別のモジュールを追加する必要があるという事実を何らかの形で補償します)。
ビデオチュートリアル
ルールに慣れていない場合は、ビデオチュートリアルLearn the Rules frameworkをご覧ください。またはFlagモジュールに関する8つのビデオチュートリアルの同様のセット。
ビデオチュートリアルDrupal Beanモジュールチュートリアル-Bean管理UIを使用すると、Beanモジュールの能力と、それを使用して実行できる操作の種類(サイト構築手法のみを使用し、カスタムコーディングは不要)を理解するための優れた入門書が提供されます。また、BeanモジュールがDrupalブロックをフィールド化可能なエンティティに変換する方法も示しています。