フォームコンポーネントに基づくwebforms / entityformsで複数ステップの承認を実装する方法は?


7

WebformまたはEntityformのいずれかを使用してマルチステップ送信ワークフローを呼び出すことは可能ですか?ワークフローのシナリオは次のとおりです。

  • 従業員がフォームを送信します
    • スーパーバイザーは通知を受け取り、フォームを確認した後、フォームを承認するか、同じ送信の要求を拒否します。
    • 承認されると、メール通知がDirectorに送信され、Directorが同じ提出を承認または不承認にします。
  • 上司によって拒否された場合、メールが従業員に送信されます。

このシナリオには、同じリクエストに対する複数の役割による提出が含まれます。従業員の役割に対して承認フィールドを非表示にすることはできますが、通知目的のルールを介してWebフォーム承認フィールドコンポーネントにどのようにアクセスしますか?フォームの状態をどのようにフリーズしますか?

すべてのフォームコンポーネントが公開されているため、エンティティフォームを使用する必要がありますか?最後の手段として、forms_apiを使用して独自のソリューションを実装する場合があります。しかし、Webフォームまたはエンティティフォームを使用して可能かどうかを最初に知りたいと思います。


EntityFormsは、Workbenchモジュールがこれをすべて実行できる基本的なDrupalコンテンツタイプにすぎないと思います。
テンケン2015

回答:


9

このワークフローの実装は、これらのモジュールの組み合わせ(および通常のコンテンツタイプ、「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ブロックをフィールド化可能なエンティティに変換する方法も示しています。


1
興味深い自家製のアプローチ!
テンケン2015

1
これは非常に簡単です!このアプローチで私が唯一懸念しているのは、ユーザーエクスペリエンスです。少なくとも従業員にとっては、それはコンテンツ/追加プロセスのほうが多く、ウェブフォームのように単純なフォームではありません。提案されたアプローチを試して、それに応じて質問にマークを付けます。ありがとうございました。
JT-Drupal 2015

フィードバックのためのThx。はい、これはコンテンツ/追加プロセスですが、「ルール」(および「フラグ」)が追加する機能により、かなりの数を自動化(および強制)することもできます。ちょっと待って、私がそれについて私が意味することについてAbitMOREの答えを拡張します...
Pierre.Vriens

1
ピエール、それは間違いなくうまくいった。このアイデアを提案してくれてありがとう。ユーザーエクスペリエンスを向上させ、フォームパーツのみを追加するためにform_blockモジュールを使用しています。今ではWebフォームに似ていますが、より強力です。
JT-Drupal 2015

1
drupal.org/project/formblockを回答に含めて、他の人にも役立つようにしてもらえますか?:)
JT-Drupal 2015
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.