web-dev-qa-db-ja.com

ポイントベースのタスク:誓約と追跡

私は社会団体のメンバーであり、そのDrupal 7 Webサイトを実行しています。数週間でキャンペーンを開始し、特定のポイントベースのタスク(関連しないウェブサイトに)、そして誓約、完了、および積み上げ合計を追跡したい。

  1. およそ100のタスクがあり、異なるポイント値と説明があります。タスクは個別です。複数のメンバーがタスクを実行することを誓約できます。
  2. メンバーは、ユーザーごとのページにサインアップして、特定のタスクを完了します。メンバーの誓約済みタスクと完了済みタスクの合計がユーザーごとのページに表示され、すべてのメンバーの誓約済みと完了済みのポイントとタスクの概要も表示されます。
  3. メンバーは、誓約書と完了を更新するために自分のページに戻ることができる必要があります。

私は Webform でこれのために何かをすることができると信じていますが、それは多少厄介かもしれません。メンバーごとの合計とロールアップを簡単に実行できるかどうかはわかりません。 ユーザーポイント は少し役立つかもしれませんが、これにはあまり向いていません。モジュールを書くこともできますが、それを行う時間があるかどうかはわかりません。他のモジュールの提案またはこれをすばやく実装することは歓迎されます。

2
Dan Halbert

Views にビューに基づいてフォームを作成する機能が含まれていることを発見した後、私は自分のモジュールを作成することにしました。これは、あまりよく知られていない(少なくとも私には)ビューの機能です。この機能の使用方法に関する優れたチュートリアルがあります: Drupal 7 でビューを使用してプログラムでフォームを作成する。この機能を使用して入力フィールドをビューに追加でき、その値はフォームと共に送信されます。

元の質問で説明されている各タスクをノードにすることができます。ポイント合計を行うには、ビューをページに埋め込み、合計を計算するコードを追加します。最終的にはページをAjax化する可能性があります。

ここでの重要な機能は、ノードに関連付けられているユーザーごとのデータを保存することですが、これは一般的ではありません。私のモジュールは、独自のdbテーブルを使用してこれを格納します。 Flag モジュールは、ノードごとのユーザーごとのストアデータを関連付けることもできますが、ブール値のみを保存し、多値フラグを処理しません。

私が取り組んでいるモジュールは現在、サンドボックスプロジェクト Task Pledge です。

0
Dan Halbert

ユーザーフィールドに初期値0の数値フィールドを追加することにより、 RulesWebform および Webform Rules を一緒に使用する方法があります。ユーザーがフォームの送信を検証するタスクを完了するたびに、値がフィールドに追加されます。これがポイントフィールドで、この場合は一意になります。この場合、合計はありませんが、フィールド値は Rules によって自動的に計算されます。

数値フィールド(ポイントフィールド)は、適切な権限で、ユーザー登録フォームではなく、ディスプレイで使用できる必要があります。

タスクがWebフォームである場合、それが解決策として今考えていることです。賞や、完了した各タスクを追跡する方法についてはわかりません。

それであなたが始められるといいのですが。

3
designarti