commit eaa878e1805a421efe1d6e6426116209daa59098
Author: Mickey Williamson <mickey@Mickeys-MacBook-Pro.local>
Date:   Sun Jun 30 10:24:52 2013 -0400

    updated views relationshiops in redhen_note

diff --git a/modules/redhen_engagement/lib/redhen_engagement.views.inc b/modules/redhen_engagement/lib/redhen_engagement.views.inc
new file mode 100644
index 0000000..c0b487b
--- /dev/null
+++ b/modules/redhen_engagement/lib/redhen_engagement.views.inc
@@ -0,0 +1,113 @@
+<?php
+
+/**
+ * RedhenMembership Views Controller class.
+ */
+class RedhenEngagementViewsController extends EntityDefaultViewsController {
+
+  /**
+   * Add extra fields to views_data().
+   */
+  public function views_data() {
+    $data = parent::views_data();
+
+    $entity_info = entity_get_info();
+
+    foreach ($entity_info as $entity_type => $info) {
+      if ($entity_type == 'redhen_note') {
+        // Entity to Engagement.
+        $data[$info['base table']]['redhen_engagement_rel'] = array(
+          'group' => t('Engagement'),
+          'title' => t('@entity to Engagement',
+            array('@entity' => drupal_ucfirst($info['label']))),
+          'help' => t('The Note associated with the @entity entity.',
+            array('@entity' => drupal_ucfirst($info['label']))),
+          'relationship' => array(
+            'entity' => $entity_type,
+            'handler' => 'redhen_membership_handler_relationship',
+            'label' => t('@entity being the Note',
+              array('@entity' => $entity_type)),
+            'base' => 'redhen_engagement',
+            'base field' => 'entity_id',
+            'relationship field' => $info['entity keys']['id'],
+          ),
+        );
+
+        // Engagement to entity.
+        $data['redhen_engagement']['redhen_engagement_related_' . $entity_type] = array(
+          'group' => t('Engagement'),
+          'title' => t('Engagement to @entity',
+            array('@entity' => drupal_ucfirst($info['label']))),
+          'help' => t('The @entity entity that is associated with the Engagement.',
+            array('@entity' => $info['label'])),
+          'relationship' => array(
+            'handler' => 'views_handler_relationship',
+            'label' => t('@entity from Note',
+              array('@entity' => $entity_type)),
+            'base' => $info['base table'],
+            'base field' => $info['entity keys']['id'],
+            'relationship field' => 'entity_id',
+          ),
+        );
+      }
+    }
+
+    return $data;
+  }
+}
+
+/**
+ * RedhenMembership Views Controller class.
+ */
+class RedhenEngagementScoreViewsController extends EntityDefaultViewsController {
+
+  /**
+   * Add extra fields to views_data().
+   */
+  public function views_data() {
+    $data = parent::views_data();
+
+    $entity_info = entity_get_info();
+
+    foreach ($entity_info as $entity_type => $info) {
+      if ($entity_type == 'redhen_engagement') {
+        // Entity to engagment_score.
+        $data[$info['base table']]['redhen_engagement_score_rel'] = array(
+          'group' => t('Engagement Score'),
+          'title' => t('@entity to Engagement Score',
+            array('@entity' => drupal_ucfirst($info['label']))),
+          'help' => t('The Note associated with the @entity entity.',
+            array('@entity' => drupal_ucfirst($info['label']))),
+          'relationship' => array(
+            'entity' => $entity_type,
+            'label' => t('@entity being the Engagement',
+              array('@entity' => $entity_type)),
+            'base' => 'redhen_engagement_score',
+            'base field' => 'name',
+            'relationship field' => 'engagement_score',
+          ),
+        );
+
+        // Engagement score to entity.
+        $data['redhen_engagement_score']['redhen_engagement_related_' . $entity_type] = array(
+          'group' => t('Engagement Score'),
+          'title' => t('Engagement Score to @entity',
+            array('@entity' => drupal_ucfirst($info['label']))),
+          'help' => t('The @entity entity that is associated with the Engagement.',
+            array('@entity' => $info['label'])),
+          'relationship' => array(
+            'handler' => 'views_handler_relationship',
+            'label' => t('@entity from Redhen Engagement',
+              array('@entity' => $entity_type)),
+            'base' => $info['base table'],
+            'base field' => 'engagement_score_id',
+            'relationship field' => 'engagement_score_id',
+          ),
+        );
+      }
+    }
+
+    return $data;
+  }
+}
+
diff --git a/modules/redhen_engagement/redhen_engagement.info b/modules/redhen_engagement/redhen_engagement.info
index 761dbde..aa51fa5 100644
--- a/modules/redhen_engagement/redhen_engagement.info
+++ b/modules/redhen_engagement/redhen_engagement.info
@@ -7,6 +7,7 @@ dependencies[] = redhen_contact
 
 files[] = lib/redhen_engagement.entity.inc
 files[] = lib/redhen_engagement.metadata.inc
+files[] = lib/redhen_engagement.views.inc
 files[] = lib/redhen_engagement_score.entity.inc
 files[] = lib/redhen_engagement_score.ui_controller.inc
 
diff --git a/modules/redhen_engagement/redhen_engagement.module b/modules/redhen_engagement/redhen_engagement.module
index e45f27a..9c4f952 100644
--- a/modules/redhen_engagement/redhen_engagement.module
+++ b/modules/redhen_engagement/redhen_engagement.module
@@ -16,6 +16,7 @@ function redhen_engagement_entity_info() {
     'plural label' => t('Engagements'),
     'controller class' => 'EntityAPIController',
     'metadata controller class' => 'RedhenEngagementMetadataController',
+    'views controller class' => 'RedhenEngagementViewsController',
     'entity class' => 'RedhenEngagement',
     'base table' => 'redhen_engagement',
     'fieldable' => FALSE,
@@ -47,6 +48,7 @@ function redhen_engagement_entity_info() {
     'plural label' => t('Engagement Scores'),
     'controller class' => 'EntityAPIControllerExportable',
     'entity class' => 'RedhenEngagementScore',
+    'views controller class' => 'RedhenEngagementScoreViewsController',
     'base table' => 'redhen_engagement_score',
     'fieldable' => FALSE,
     'entity keys' => array(
diff --git a/modules/redhen_note/includes/views/redhen_note.views.inc b/modules/redhen_note/includes/views/redhen_note.views.inc
deleted file mode 100644
index 2e7cf8c..0000000
--- a/modules/redhen_note/includes/views/redhen_note.views.inc
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php
-
-/**
- * @file
- * RedHen Note Views integration
- */
-
-/**
- * Implement hook_views_data_alter().
- *
- * Create relationships between redhen_notes and their related entities.
- */
-function redhen_note_views_data_alter(&$data) {
-
-  $entity_info = entity_get_info();
-
-  foreach ($entity_info as $entity_type => $info) {
-
-    // Note to entity.
-    $data['redhen_note']['redhen_note_related_' . $entity_type] = array(
-      'group' => t('Note'),
-      'title' => t('Note to @entity',
-        array('@entity' => drupal_ucfirst($info['label']))),
-      'help' => t('The @entity entity that is associated with the Note.',
-        array('@entity' => $info['label'])),
-      'relationship' => array(
-        'handler' => 'views_handler_relationship',
-        'label' => t('@entity from Note',
-          array('@entity' => $entity_type)),
-        'base' => $info['base table'],
-        'base field' => $info['entity keys']['id'],
-        'relationship field' => 'entity_id',
-        'extra' => array(
-          array('table' => 'redhen_note', 'field' => 'entity_type', 'value' => $entity_type),
-        ),
-      ),
-    );
-
-  }
-}
diff --git a/modules/redhen_note/lib/redhen_note.views.inc b/modules/redhen_note/lib/redhen_note.views.inc
new file mode 100644
index 0000000..a0e5ae2
--- /dev/null
+++ b/modules/redhen_note/lib/redhen_note.views.inc
@@ -0,0 +1,56 @@
+<?php
+
+/**
+ * RedhenMembership Views Controller class.
+ */
+class RedhenNoteViewsController extends EntityDefaultViewsController {
+
+  /**
+   * Add extra fields to views_data().
+   */
+  public function views_data() {
+    $data = parent::views_data();
+
+    $entity_info = entity_get_info();
+
+    foreach ($entity_info as $entity_type => $info) {
+      if ($entity_type == 'redhen_contact' || $entity_type == 'redhen_org') {
+        // Entity to note.
+        $data[$info['base table']]['redhen_note_rel'] = array(
+          'group' => t('Note'),
+          'title' => t('@entity to Note',
+            array('@entity' => drupal_ucfirst($info['label']))),
+          'help' => t('The Note associated with the @entity entity.',
+            array('@entity' => drupal_ucfirst($info['label']))),
+          'relationship' => array(
+            'entity' => $entity_type,
+            'label' => t('@entity being the Note',
+              array('@entity' => $entity_type)),
+            'base' => 'redhen_note',
+            'base field' => 'entity_id',
+            'relationship field' => $info['entity keys']['id'],
+          ),
+        );
+
+        // Note to entity.
+        $data['redhen_note']['redhen_note_related_' . $entity_type] = array(
+          'group' => t('Note'),
+          'title' => t('Note to @entity',
+            array('@entity' => drupal_ucfirst($info['label']))),
+          'help' => t('The @entity entity that is associated with the Note.',
+            array('@entity' => $info['label'])),
+          'relationship' => array(
+            'handler' => 'views_handler_relationship',
+            'label' => t('@entity from Note',
+              array('@entity' => $entity_type)),
+            'base' => $info['base table'],
+            'base field' => $info['entity keys']['id'],
+            'relationship field' => 'entity_id',
+          ),
+        );
+      }
+    }
+
+    return $data;
+  }
+}
diff --git a/modules/redhen_note/redhen_note.info b/modules/redhen_note/redhen_note.info
index b2559e8..f81b123 100644
--- a/modules/redhen_note/redhen_note.info
+++ b/modules/redhen_note/redhen_note.info
@@ -10,6 +10,7 @@ dependencies[] = text
 ; Classes
 files[] = lib/redhen_note.entity.inc
 files[] = lib/redhen_note.metadata.inc
+files[] = lib/redhen_note.views.inc
 
 ; Information added by drupal.org packaging script on 2013-06-26
 version = "7.x-1.3+27-dev"
diff --git a/modules/redhen_note/redhen_note.module b/modules/redhen_note/redhen_note.module
index c9ea644..deca78b 100644
--- a/modules/redhen_note/redhen_note.module
+++ b/modules/redhen_note/redhen_note.module
@@ -17,6 +17,7 @@ function redhen_note_entity_info() {
       'controller class' => 'EntityAPIController',
       'metadata controller class' => 'RedhenNoteMetadataController',
       'entity class' => 'RedhenNote',
+      'views controller class' => 'RedhenNoteViewsController',
       'base table' => 'redhen_note',
       'fieldable' => TRUE,
       'entity keys' => array(
@@ -321,16 +322,6 @@ function redhen_note_entity_delete($entity, $type) {
 }
 
 /**
- * Implements hook_views_api().
- */
-function redhen_note_views_api() {
-  return array(
-    'api' => 3,
-    'path' => drupal_get_path('module', 'redhen_note') . '/includes/views',
-  );
-}
-
-/**
  * Callback to get $note->entity.
  *
  * @see redhen_note_entity_property_info().
