Index: feedback.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/feedback/feedback.module,v
retrieving revision 1.75
diff -u -p -r1.75 feedback.module
--- feedback.module	21 Mar 2009 20:22:14 -0000	1.75
+++ feedback.module	4 Jan 2010 18:11:47 -0000
@@ -351,3 +351,10 @@ function feedback_admin_view_form_submit
   }
 }
 
+/**
+ * Implementation of hook_views_api();
+ */
+function feedback_views_api() {
+  return array('api' => 2.0);
+}
+
Index: feedback.views.inc
===================================================================
RCS file: feedback.views.inc
diff -N feedback.views.inc
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ feedback.views.inc	4 Jan 2010 18:11:47 -0000
@@ -0,0 +1,136 @@
+<?php
+/**
+ * @file
+ * Provide views data feedback.module
+ */
+
+/**
+ * Implement hook_views_data().
+ */
+function feedback_views_data() {
+
+  $data = array();
+  // Define the {feedback} table.
+  $data['feedback']['table']['group'] = t('Feedback');
+  // Base table for Views.
+  $data['feedback']['table']['base'] = array(
+    'field' => 'fid',
+    'title' => t('Feedback'),
+    'help' => t('Feedback by users for site locations.'),
+  );
+  // Define the joins.
+  $data['feedback']['table']['join']['users'] = array(
+    // 'left_table' => 'user',
+    'left_field' => 'uid',
+    'field' => 'uid',
+  );
+  // Fields
+
+  // user that left feedback
+  $data['feedback']['uid'] = array(
+    'title' => t('User Id'),
+    'help' => t('The unique id key for the User who left feedback.'),
+    'relationship' => array(
+      'label' => t('Users'),
+      'help' => 'Users who left this feedback.',
+      'base' => 'users',
+      'base field' => 'uid',
+      // This allows us to not show this relationship if the base is already
+      // node_revisions so users won't create circular relationships.
+      'skip base' => array('users'),
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string',
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument_many_to_one',
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+  );
+
+  // processed status
+  $data['feedback']['status'] = array(
+    'title' => t('Processed'),
+    'help' => t('Whether or not the feedback is marked processed.'),
+    'field' => array(
+      'handler' => 'views_handler_field_boolean',
+      'click sortable' => TRUE,
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_boolean_operator',
+      'label' => t('Promoted to front page'),
+      'type' => 'yes-no',
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+  );
+
+  // message left
+  $data['feedback']['message'] = array(
+    'title' => t('Message'),
+    'help' => t('The message the user left.'),
+    'field' => array(
+      'handler' => 'views_handler_field',
+      'click sortable' => TRUE,
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string',
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+  );
+
+  // feedback path
+  $data['feedback']['location'] = array(
+    'title' => t('Location'),
+    'help' => t('The location the user left.'),
+    'field' => array(
+      'handler' => 'views_handler_field',
+      'click sortable' => TRUE,
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string',
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+  );
+
+  // user-agent string
+  $data['feedback']['useragent'] = array(
+    'title' => t('User-Agent'),
+    'help' => t('The users browser user-agent string.'),
+    'field' => array(
+      'handler' => 'views_handler_field',
+      'click sortable' => TRUE,
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string',
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+  );
+
+  // timestamp when feedback was left
+  $data['feedback']['timestamp'] = array(
+    'title' => t('Time'),
+    'help' => t('When the Feedback was left.'),
+    'field' => array(
+      'click sortable' => TRUE,
+      'handler' => 'views_handler_field_date',
+    ),
+    'filter' => array(
+      'handler' => 'date_api_filter_handler',
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+  );
+
+  return $data;
+}
