Quellcode durchsuchen

Fixing bugs related to consolidating code

Stephen Ficklin vor 9 Jahren
Ursprung
Commit
bac2b07b47

+ 16 - 6
tripal/api/tripal.jobs.api.inc

@@ -48,18 +48,21 @@
  * @param $priority
  *    The priority at which to run the job where the highest priority is 10 and the lowest priority
  *    is 1. The default priority is 10.
- *
+ * @param $includes
+ *    An array of paths to files that should be included in order to execute
+ *    the job. Use the module_load_include function to get a path for a given
+ *    file.
  * @return
  *    The job_id of the registered job
  *
  * Example usage:
  * @code
- *  $args = array($dfile, $organism_id, $type, $library_id, $re_name, $re_uname,
- *        $re_accession, $db_id, $rel_type, $re_subject, $parent_type, $method,
+ * $args = array($dfile, $organism_id, $type, $library_id, $re_name, $re_uname,
+ *         $re_accession, $db_id, $rel_type, $re_subject, $parent_type, $method,
  *         $user->uid, $analysis_id, $match_type);
- *
+ * $includes = module_load_include('inc', 'tripal_chado', 'includes/loaders/tripal_chado.fasta_loader');
  * tripal_add_job("Import FASTA file: $dfile", 'tripal_feature',
- *   'tripal_feature_load_fasta', $args, $user->uid);
+ *   'tripal_feature_load_fasta', $args, $user->uid, 10, $includes);
  * @endcode
  * The code above is copied from the tripal_feature/fasta_loader.php file. The
  * snipped first builds an array of arguments that will then be passed to the
@@ -69,7 +72,9 @@
  *
  * @ingroup tripal_jobs_api
  */
-function tripal_add_job($job_name, $modulename, $callback, $arguments, $uid, $priority = 10) {
+function tripal_add_job($job_name, $modulename, $callback, $arguments, $uid,
+    $priority = 10, $includes = array()) {
+
   global $user;
 
   // convert the arguments into a string for storage in the database
@@ -87,6 +92,7 @@ function tripal_add_job($job_name, $modulename, $callback, $arguments, $uid, $pr
   $record->uid = $uid;
   $record->priority = $priority;  # the lower the number the higher the priority
   $record->arguments = $args;
+  $record->includes = serialize($includes);
 
   if (drupal_write_record('tripal_jobs', $record)) {
     drupal_set_message(t("Job '%job_name' submitted.", array('%job_name' => $job_name)));
@@ -318,6 +324,10 @@ function tripal_launch_job($do_parallel = 0, $job_id = NULL) {
     $job_res = db_query($sql);
   }
   foreach ($job_res as $job) {
+    // Include the necessary files
+    foreach (unserialize($job->includes) as $path) {
+      require_once $path;
+    }
     // set the start time for this job
     $record = new stdClass();
     $record->job_id = $job->job_id;

+ 25 - 0
tripal/tripal.install

@@ -166,6 +166,11 @@ function tripal_tripal_jobs_schema() {
         'not NULL' => FALSE,
         'description' => 'If set to 1 then all jobs are held until this one finishes'
       ),
+      'includes' => array(
+        'type' => 'text',
+        'description' => 'A serialized array of file paths that should be included prior to executing the job.',
+        'not NULL' => FALSE,
+      )
     ),
     'indexes' => array(
       'job_id' => array('job_id'),
@@ -567,4 +572,24 @@ function tripal_tripal_bundle_variables_schema() {
   );
 
   return $schema;
+}
+
+/**
+ * This is the required update for tripal_feature when upgrading from Drupal core API 6.x.
+ * This update may take some time to complete.
+ */
+function tripal_update_7300() {
+  try {
+    if (!db_field_exists('tripal_jobs', 'includes')) {
+      db_add_field('tripal_jobs', 'includes', array(
+        'type' => 'text',
+        'description' => 'A serialized array of file paths that should be included prior to executing the job.',
+        'not NULL' => FALSE,
+      ));
+    }
+  }
+  catch (\PDOException $e) {
+    $error = $e->getMessage();
+    throw new DrupalUpdateException('Failed to complete update' . $error);
+  }
 }

+ 7 - 1
tripal/tripal.module

@@ -34,10 +34,16 @@ require_once "includes/TripalBundleUIController.inc";
 
 /**
  * Implements hook_views_api().
+ *
+ * Essentially this hook tells drupal that there is views support for
+ *  for this module which then includes tripal_db.views.inc where all the
+ *  views integration code is
+ *
+ * @ingroup tripal_feature
  */
 function tripal_views_api() {
   return array(
-    'api' => 3,
+    'api' => 3.0,
   );
 }
 

+ 2 - 355
tripal/tripal.views.inc

@@ -14,13 +14,7 @@ function tripal_views_data() {
   $data = array();
 
   // Job Management System
-  $data =   tripal_views_data_jobs($data);
-
-  // Custom Tables Management
-  $data = tripal_views_data_custom_tables($data);
-
-  // Materialized Views Management
-  $data = tripal_views_data_mviews($data);
+  $data = tripal_views_data_jobs($data);
 
   return $data;
 }
@@ -286,351 +280,4 @@ function tripal_views_data_jobs($data) {
   );
 
   return $data;
-}
-
-/**
- * Provides the data array for the tripal custom tables management
- *
- * @param $data
- *   Previously generated tripal views data array
- * return
- *   $data array with custom tables management described
- *
- * @ingroup tripal
- */
-function tripal_views_data_custom_tables($data) {
-
-  $data['tripal_custom_tables']['table']['group'] = t('Tripal Custom Tables');
-  $data['tripal_custom_tables']['table']['base'] = array(
-    'field' => 'table_id', // This is the identifier field for the view.
-    'title' => t('Tripal Custom Tables'),
-    'help' => t('Custom Tables in Chado created by this Tripal Installation.'),
-    'weight' => 10,
-  );
-
-  // Table ID
-  $data['tripal_custom_tables']['table_id'] = array(
-    'title' => t('Custom Table ID'),
-    'help' => t('Custom table primary key.'),
-    'field' => array(
-      'handler' => 'views_handler_field_numeric',
-      'click sortable' => TRUE,
-    ),
-    'filter' => array(
-      'handler' => 'views_handler_filter_numeric',
-    ),
-    'sort' => array(
-      'handler' => 'views_handler_sort',
-    ),
-  );
-
-  // Table Name
-  $data['tripal_custom_tables']['table_name'] = array(
-    'title' => t('Table Name'),
-    'help' => t('The name of the table in the database.'),
-    'field' => array(
-      'handler' => 'views_handler_field',
-      'click sortable' => TRUE, // This is use by the table display plugin.
-    ),
-    'sort' => array(
-      'handler' => 'views_handler_sort',
-    ),
-    'filter' => array(
-      'handler' => 'views_handler_filter_string',
-    ),
-    'argument' => array(
-      'handler' => 'views_handler_argument_string',
-    ),
-  );
-
-  // Schema
-  $data['tripal_custom_tables']['schema'] = array(
-    'title' => t('Table Schema'),
-    'help' => t('The schema definition of the table.'),
-    'field' => array(
-      'handler' => 'views_handler_field',
-      'click sortable' => TRUE, // This is use by the table display plugin.
-    ),
-    'sort' => array(
-      'handler' => 'views_handler_sort',
-    ),
-    'filter' => array(
-      'handler' => 'views_handler_filter_string',
-    ),
-    'argument' => array(
-      'handler' => 'views_handler_argument_string',
-    ),
-  );
-
-  // Table ID
-  $data['tripal_custom_tables']['mview_id'] = array(
-    'title' => t('Materialized View ID'),
-    'help' => t('Foreign key to tripal_mviews table for the materialized view.'),
-    'field' => array(
-      'handler' => 'views_handler_field_numeric',
-      'click sortable' => TRUE,
-    ),
-    'filter' => array(
-      'handler' => 'views_handler_filter_numeric',
-    ),
-    'sort' => array(
-      'handler' => 'views_handler_sort',
-    ),
-  );
-
-
-  return $data;
-}
-
-/**
- * Provides the data array for the tripal custom tables management
- *
- * @param $data
- *   Previously generated tripal views data array
- * return
- *   $data array with custom tables management described
- *
- * @ingroup tripal
- */
-function tripal_views_data_mviews($data) {
-
-  $data['tripal_mviews']['table']['group'] = t('Tripal Materialized Views');
-  $data['tripal_mviews']['table']['base'] = array(
-    'field' => 'mview_id', // This is the identifier field for the view.
-    'title' => t('Tripal Materialized Views'),
-    'help' => t('Materialized Views in Chado created by this Tripal Installation.'),
-    'weight' => 10,
-  );
-
-    // Implicit Join to Tripal Views
-  $data['tripal_mviews']['table']['join'] = array(
-    'tripal_views' => array(
-      'left_field' => 'mview_id',
-      'field' => 'mview_id',
-    ),
-  );
-
-  // Mview ID
-  $data['tripal_mviews']['mview_id'] = array(
-    'title' => t('Materialized View ID'),
-    'help' => t('The primary key.'),
-    'field' => array(
-      'handler' => 'views_handler_field_numeric',
-      'click sortable' => TRUE,
-    ),
-    'filter' => array(
-      'handler' => 'views_handler_filter_numeric',
-    ),
-    'sort' => array(
-      'handler' => 'views_handler_sort',
-    ),
-  );
-
-  // name
-  $data['tripal_mviews']['name'] = array(
-    'title' => t('Name'),
-    'help' => t('Human-readable name of the materialized view.'),
-    'field' => array(
-      'handler' => 'views_handler_field',
-      'click sortable' => TRUE, // This is use by the table display plugin.
-    ),
-    'sort' => array(
-      'handler' => 'views_handler_sort',
-    ),
-    'filter' => array(
-      'handler' => 'views_handler_filter_string',
-    ),
-    'argument' => array(
-      'handler' => 'views_handler_argument_string',
-    ),
-  );
-
-  // modulename
-  $data['tripal_mviews']['modulename'] = array(
-    'title' => t('Module Name'),
-    'help' => t('The module that created the materialized view.'),
-    'field' => array(
-      'handler' => 'views_handler_field',
-      'click sortable' => TRUE, // This is use by the table display plugin.
-    ),
-    'sort' => array(
-      'handler' => 'views_handler_sort',
-    ),
-    'filter' => array(
-      'handler' => 'views_handler_filter_string',
-    ),
-    'argument' => array(
-      'handler' => 'views_handler_argument_string',
-    ),
-  );
-
-  // mv_table
-  $data['tripal_mviews']['mv_table'] = array(
-    'title' => t('Table'),
-    'help' => t('The database table the materialized view is stored in.'),
-    'field' => array(
-      'handler' => 'views_handler_field',
-      'click sortable' => TRUE, // This is use by the table display plugin.
-    ),
-    'sort' => array(
-      'handler' => 'views_handler_sort',
-    ),
-    'filter' => array(
-      'handler' => 'views_handler_filter_string',
-    ),
-    'argument' => array(
-      'handler' => 'views_handler_argument_string',
-    ),
-  );
-
-  // mv_specs
-  $data['tripal_mviews']['mv_specs'] = array(
-    'title' => t('Specification'),
-    'help' => t('Materialized View Specification.'),
-    'field' => array(
-      'handler' => 'views_handler_field',
-      'click sortable' => TRUE, // This is use by the table display plugin.
-    ),
-    'sort' => array(
-      'handler' => 'views_handler_sort',
-    ),
-    'filter' => array(
-      'handler' => 'views_handler_filter_string',
-    ),
-    'argument' => array(
-      'handler' => 'views_handler_argument_string',
-    ),
-  );
-
-  // mv_schema
-  $data['tripal_mviews']['mv_schema'] = array(
-    'title' => t('Schema'),
-    'help' => t('Schema definition for the materialized view table.'),
-    'field' => array(
-      'handler' => 'views_handler_field',
-      'click sortable' => TRUE, // This is use by the table display plugin.
-    ),
-    'sort' => array(
-      'handler' => 'views_handler_sort',
-    ),
-    'filter' => array(
-      'handler' => 'views_handler_filter_string',
-    ),
-    'argument' => array(
-      'handler' => 'views_handler_argument_string',
-    ),
-  );
-
-  // indexed
-  $data['tripal_mviews']['indexed'] = array(
-    'title' => t('Indices'),
-    'help' => t('Any indices for this materialized view.'),
-    'field' => array(
-      'handler' => 'views_handler_field',
-      'click sortable' => TRUE, // This is use by the table display plugin.
-    ),
-    'sort' => array(
-      'handler' => 'views_handler_sort',
-    ),
-    'filter' => array(
-      'handler' => 'views_handler_filter_string',
-    ),
-    'argument' => array(
-      'handler' => 'views_handler_argument_string',
-    ),
-  );
-
-  // query
-  $data['tripal_mviews']['query'] = array(
-    'title' => t('Query'),
-    'help' => t('The query used to populate the materialized view.'),
-    'field' => array(
-      'handler' => 'views_handler_field',
-      'click sortable' => TRUE, // This is use by the table display plugin.
-    ),
-    'sort' => array(
-      'handler' => 'views_handler_sort',
-    ),
-    'filter' => array(
-      'handler' => 'views_handler_filter_string',
-    ),
-    'argument' => array(
-      'handler' => 'views_handler_argument_string',
-    ),
-  );
-
-  // special_index
-  $data['tripal_mviews']['special_index'] = array(
-    'title' => t('Special Index'),
-    'help' => t('Any special indices for the materialized view.'),
-    'field' => array(
-      'handler' => 'views_handler_field',
-      'click sortable' => TRUE, // This is use by the table display plugin.
-    ),
-    'sort' => array(
-      'handler' => 'views_handler_sort',
-    ),
-    'filter' => array(
-      'handler' => 'views_handler_filter_string',
-    ),
-    'argument' => array(
-      'handler' => 'views_handler_argument_string',
-    ),
-  );
-
-  // last_update
-  $data['tripal_mviews']['last_update'] = array(
-    'title' => t('Updated'),
-    'help' => t('Date Last Updated.'),
-    'field' => array(
-      'handler' => 'views_handler_field_date',
-      'click sortable' => TRUE,
-    ),
-    'sort' => array(
-      'handler' => 'views_handler_sort_date',
-    ),
-    'filter' => array(
-      'handler' => 'views_handler_filter_date',
-    ),
-  );
-
-  // status
-  $data['tripal_mviews']['status'] = array(
-    'title' => t('Status'),
-    'help' => t('The status of the materialized view.'),
-    'field' => array(
-      'handler' => 'views_handler_field',
-      'click sortable' => TRUE, // This is use by the table display plugin.
-    ),
-    'sort' => array(
-      'handler' => 'views_handler_sort',
-    ),
-    'filter' => array(
-      'handler' => 'views_handler_filter_string',
-    ),
-    'argument' => array(
-      'handler' => 'views_handler_argument_string',
-    ),
-  );
-
-  // comment
-  $data['tripal_mviews']['comment'] = array(
-    'title' => t('Description'),
-    'help' => t('Human-Readable Admin Description.'),
-    'field' => array(
-      'handler' => 'views_handler_field',
-      'click sortable' => TRUE, // This is use by the table display plugin.
-    ),
-    'sort' => array(
-      'handler' => 'views_handler_sort',
-    ),
-    'filter' => array(
-      'handler' => 'views_handler_filter_string',
-    ),
-    'argument' => array(
-      'handler' => 'views_handler_argument_string',
-    ),
-  );
-
-  return $data;
-}
+}

+ 1 - 405
tripal/tripal.views_default.inc

@@ -15,12 +15,6 @@ function tripal_views_default_views() {
   $view = tripal_admin_defaultview_jobs();
   $views[$view->name] = $view;
 
-  $view = tripal_admin_defaultview_custom_tables();
-  $views[$view->name] = $view;
-
-  $view = tripal_admin_defaultview_mviews();
-  $views[$view->name] = $view;
-
   return $views;
 }
 
@@ -36,7 +30,7 @@ function tripal_admin_defaultview_jobs() {
   $view->description = 'DO NOT DISABLE';
   $view->tag = 'tripal admin';
   $view->base_table = 'tripal_jobs';
-  $view->human_name = 'Jobs Admin';
+  $view->human_name = 'Tripal Jobs (Admin)';
   $view->core = 7;
   $view->api_version = '3.0';
   $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
@@ -300,401 +294,3 @@ function tripal_admin_defaultview_jobs() {
 
   return $view;
 }
-
-/**
- * Describes the custom tables administration view.
- *
- * @ingroup tripal
- */
-function tripal_admin_defaultview_custom_tables() {
-
-  $view = new view();
-  $view->name = 'tripal_admin_custom_table';
-  $view->description = 'DO NOT DISABLE';
-  $view->tag = 'tripal admin';
-  $view->base_table = 'tripal_custom_tables';
-  $view->human_name = 'Tripal Custom Table Admin';
-  $view->core = 7;
-  $view->api_version = '3.0';
-  $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
-
-  /* Display: Master */
-  $handler = $view->new_display('default', 'Master', 'default');
-  $handler->display->display_options['title'] = 'Custom Tables';
-  $handler->display->display_options['use_more_always'] = FALSE;
-  $handler->display->display_options['access']['type'] = 'none';
-  $handler->display->display_options['cache']['type'] = 'none';
-  $handler->display->display_options['query']['type'] = 'views_query';
-  $handler->display->display_options['exposed_form']['type'] = 'basic';
-  $handler->display->display_options['exposed_form']['options']['submit_button'] = 'Filter';
-  $handler->display->display_options['pager']['type'] = 'full';
-  $handler->display->display_options['pager']['options']['items_per_page'] = '25';
-  $handler->display->display_options['style_plugin'] = 'table';
-  /* Header: Global: Action Links */
-  $handler->display->display_options['header']['action_links_area']['id'] = 'action_links_area';
-  $handler->display->display_options['header']['action_links_area']['table'] = 'views';
-  $handler->display->display_options['header']['action_links_area']['field'] = 'action_links_area';
-  $handler->display->display_options['header']['action_links_area']['label'] = 'Action Links';
-  $handler->display->display_options['header']['action_links_area']['empty'] = TRUE;
-  $handler->display->display_options['header']['action_links_area']['link-1'] = array(
-    'label-1' => 'Add Custom Table',
-    'path-1' => 'admin/tripal/storage/chado/custom_tables/new',
-  );
-  $handler->display->display_options['header']['action_links_area']['link-2'] = array(
-    'label-2' => '',
-    'path-2' => '',
-  );
-  $handler->display->display_options['header']['action_links_area']['link-3'] = array(
-    'label-3' => '',
-    'path-3' => '',
-  );
-  $handler->display->display_options['header']['action_links_area']['link-4'] = array(
-    'label-4' => '',
-    'path-4' => '',
-  );
-  /* Field: Tripal Custom Tables: Custom Table ID */
-  $handler->display->display_options['fields']['table_id']['id'] = 'table_id';
-  $handler->display->display_options['fields']['table_id']['table'] = 'tripal_custom_tables';
-  $handler->display->display_options['fields']['table_id']['field'] = 'table_id';
-  $handler->display->display_options['fields']['table_id']['label'] = 'ID';
-  $handler->display->display_options['fields']['table_id']['element_class'] = 'extra-short-column';
-  $handler->display->display_options['fields']['table_id']['element_label_class'] = 'extra-short-column';
-  $handler->display->display_options['fields']['table_id']['element_label_colon'] = FALSE;
-  $handler->display->display_options['fields']['table_id']['separator'] = '';
-  /* Field: Tripal Custom Tables: Table Name */
-  $handler->display->display_options['fields']['table_name']['id'] = 'table_name';
-  $handler->display->display_options['fields']['table_name']['table'] = 'tripal_custom_tables';
-  $handler->display->display_options['fields']['table_name']['field'] = 'table_name';
-  $handler->display->display_options['fields']['table_name']['label'] = 'Name';
-  $handler->display->display_options['fields']['table_name']['alter']['make_link'] = TRUE;
-  $handler->display->display_options['fields']['table_name']['alter']['path'] = 'admin/tripal/storage/chado/custom_tables/view/[table_id]';
-  /* Field: Tripal Custom Tables: Materialized View ID */
-  $handler->display->display_options['fields']['mview_id']['id'] = 'mview_id';
-  $handler->display->display_options['fields']['mview_id']['table'] = 'tripal_custom_tables';
-  $handler->display->display_options['fields']['mview_id']['field'] = 'mview_id';
-  $handler->display->display_options['fields']['mview_id']['label'] = 'Is MView';
-  $handler->display->display_options['fields']['mview_id']['alter']['alter_text'] = TRUE;
-  $handler->display->display_options['fields']['mview_id']['alter']['text'] = 'Yes';
-  $handler->display->display_options['fields']['mview_id']['hide_empty'] = TRUE;
-  $handler->display->display_options['fields']['mview_id']['empty_zero'] = TRUE;
-  /* Field: Global: Custom text */
-  $handler->display->display_options['fields']['nothing']['id'] = 'nothing';
-  $handler->display->display_options['fields']['nothing']['table'] = 'views';
-  $handler->display->display_options['fields']['nothing']['field'] = 'nothing';
-  $handler->display->display_options['fields']['nothing']['label'] = 'Edit Link';
-  $handler->display->display_options['fields']['nothing']['exclude'] = TRUE;
-  $handler->display->display_options['fields']['nothing']['alter']['text'] = 'Edit';
-  $handler->display->display_options['fields']['nothing']['alter']['make_link'] = TRUE;
-  $handler->display->display_options['fields']['nothing']['alter']['path'] = 'admin/tripal/storage/chado/custom_tables/edit/[table_id]';
-  /* Field: Global: Custom text */
-  $handler->display->display_options['fields']['nothing_1']['id'] = 'nothing_1';
-  $handler->display->display_options['fields']['nothing_1']['table'] = 'views';
-  $handler->display->display_options['fields']['nothing_1']['field'] = 'nothing';
-  $handler->display->display_options['fields']['nothing_1']['label'] = 'Delete Link';
-  $handler->display->display_options['fields']['nothing_1']['exclude'] = TRUE;
-  $handler->display->display_options['fields']['nothing_1']['alter']['text'] = 'Delete';
-  $handler->display->display_options['fields']['nothing_1']['alter']['make_link'] = TRUE;
-  $handler->display->display_options['fields']['nothing_1']['alter']['path'] = 'admin/tripal/storage/chado/custom_tables/delete/[table_id]';
-  /* Field: Global: Custom text */
-  $handler->display->display_options['fields']['nothing_2']['id'] = 'nothing_2';
-  $handler->display->display_options['fields']['nothing_2']['table'] = 'views';
-  $handler->display->display_options['fields']['nothing_2']['field'] = 'nothing';
-  $handler->display->display_options['fields']['nothing_2']['label'] = '';
-  $handler->display->display_options['fields']['nothing_2']['alter']['text'] = '[nothing]   [nothing_1]';
-  $handler->display->display_options['fields']['nothing_2']['element_label_colon'] = FALSE;
-  /* Filter criterion: Tripal Custom Tables: Table Name */
-  $handler->display->display_options['filters']['table_name']['id'] = 'table_name';
-  $handler->display->display_options['filters']['table_name']['table'] = 'tripal_custom_tables';
-  $handler->display->display_options['filters']['table_name']['field'] = 'table_name';
-  $handler->display->display_options['filters']['table_name']['exposed'] = TRUE;
-  $handler->display->display_options['filters']['table_name']['expose']['operator_id'] = 'table_name_op';
-  $handler->display->display_options['filters']['table_name']['expose']['label'] = 'Table Name';
-  $handler->display->display_options['filters']['table_name']['expose']['operator'] = 'table_name_op';
-  $handler->display->display_options['filters']['table_name']['expose']['identifier'] = 'table_name';
-  $handler->display->display_options['filters']['table_name']['expose']['remember_roles'] = array(
-    2 => '2',
-    1 => 0,
-    3 => 0,
-  );
-
-  /* Display: Page */
-  $handler = $view->new_display('page', 'Page', 'page');
-  $handler->display->display_options['path'] = 'admin/tripal/storage/chado/custom_tables/tables';
-  $handler->display->display_options['menu']['type'] = 'default tab';
-  $handler->display->display_options['menu']['title'] = 'Custom Tables';
-  $handler->display->display_options['menu']['description'] = 'A list of existing custom tables';
-  $handler->display->display_options['menu']['weight'] = '-10';
-  $handler->display->display_options['menu']['name'] = 'management';
-  $handler->display->display_options['menu']['context'] = 0;
-  $handler->display->display_options['menu']['context_only_inline'] = 0;
-  $handler->display->display_options['tab_options']['weight'] = '0';
-
-  return $view;
-}
-
-/**
- * Describes the materialized views administration view.
- *
- * @ingroup tripal
- */
-function tripal_admin_defaultview_mviews() {
-
-  $view = new view();
-  $view->name = 'tripal_admin_mviews';
-  $view->description = 'DO NOT DISABLE';
-  $view->tag = 'tripal admin';
-  $view->base_table = 'tripal_mviews';
-  $view->human_name = 'MView Admin';
-  $view->core = 7;
-  $view->api_version = '3.0';
-  $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
-
-  /* Display: Master */
-  $handler = $view->new_display('default', 'Master', 'default');
-  $handler->display->display_options['title'] = 'Materialized Views';
-  $handler->display->display_options['use_more_always'] = FALSE;
-  $handler->display->display_options['access']['type'] = 'none';
-  $handler->display->display_options['cache']['type'] = 'none';
-  $handler->display->display_options['query']['type'] = 'views_query';
-  $handler->display->display_options['exposed_form']['type'] = 'basic';
-  $handler->display->display_options['exposed_form']['options']['submit_button'] = 'Filter';
-  $handler->display->display_options['pager']['type'] = 'full';
-  $handler->display->display_options['pager']['options']['items_per_page'] = '25';
-  $handler->display->display_options['style_plugin'] = 'table';
-  $handler->display->display_options['style_options']['columns'] = array(
-    'mview_id' => 'mview_id',
-    'name' => 'name',
-    'mv_table' => 'mv_table',
-    'comment' => 'comment',
-    'last_update' => 'last_update',
-    'status' => 'status',
-  );
-  $handler->display->display_options['style_options']['default'] = 'mview_id';
-  $handler->display->display_options['style_options']['info'] = array(
-    'mview_id' => array(
-      'sortable' => 1,
-      'default_sort_order' => 'asc',
-      'align' => '',
-      'separator' => '',
-      'empty_column' => 0,
-    ),
-    'name' => array(
-      'sortable' => 1,
-      'default_sort_order' => 'asc',
-      'align' => '',
-      'separator' => '',
-      'empty_column' => 0,
-    ),
-    'mv_table' => array(
-      'sortable' => 1,
-      'default_sort_order' => 'asc',
-      'align' => '',
-      'separator' => '',
-      'empty_column' => 0,
-    ),
-    'comment' => array(
-      'sortable' => 0,
-      'default_sort_order' => 'asc',
-      'align' => '',
-      'separator' => '',
-      'empty_column' => 0,
-    ),
-    'last_update' => array(
-      'sortable' => 1,
-      'default_sort_order' => 'asc',
-      'align' => '',
-      'separator' => '',
-      'empty_column' => 0,
-    ),
-    'status' => array(
-      'sortable' => 1,
-      'default_sort_order' => 'asc',
-      'align' => '',
-      'separator' => '',
-      'empty_column' => 0,
-    ),
-  );
-  /* Header: Global: Text area */
-  $handler->display->display_options['header']['area']['id'] = 'area';
-  $handler->display->display_options['header']['area']['table'] = 'views';
-  $handler->display->display_options['header']['area']['field'] = 'area';
-  $handler->display->display_options['header']['area']['label'] = 'Description';
-  $handler->display->display_options['header']['area']['empty'] = TRUE;
-  $handler->display->display_options['header']['area']['content'] = '<p>Materialized Views (MViews) are custom tables populated with a defined SQL statement. Because Chado is highly normalized and highly constrained it serves as a wonderful data storage platform, but unfortunately some queries may be slow. MViews alleviate slowness by aggregating data into tables that are more easy to query. Use MViews to create tables for custom search pages or custom Tripal module development.</p>
-  <p>MViews behaves in the following way:</p>
-  <ul>
-  <li>The SQL statement defined for an MVIEW will be used to populate the table</li>
-  <li>Altering the table structure of an MView will cause the MView table to be dropped and recreated. All records in the MView will be lost.</li>
-  <li>Altering the query of an existing view will not change the MView table. No records will be lost.</li>
-  <li>Repopulating an MView that is already populated will result in replacement of all records.</li>
-  <li>A database transaction will be used when populating MViews. Therefore replacement of records does not occur until the query completes. Any search forms or pages dependent on the MView will continue to function.</li>
-  </ul>';
-  $handler->display->display_options['header']['area']['format'] = 'full_html';
-  /* Header: Global: Action Links */
-  $handler->display->display_options['header']['action_links_area']['id'] = 'action_links_area';
-  $handler->display->display_options['header']['action_links_area']['table'] = 'views';
-  $handler->display->display_options['header']['action_links_area']['field'] = 'action_links_area';
-  $handler->display->display_options['header']['action_links_area']['label'] = 'Action Links';
-  $handler->display->display_options['header']['action_links_area']['link-1'] = array(
-    'label-1' => 'Add Materialized View',
-    'path-1' => 'admin/tripal/storage/chado/mviews/new',
-  );
-  $handler->display->display_options['header']['action_links_area']['link-2'] = array(
-    'label-2' => '',
-    'path-2' => '',
-  );
-  $handler->display->display_options['header']['action_links_area']['link-3'] = array(
-    'label-3' => '',
-    'path-3' => '',
-  );
-  $handler->display->display_options['header']['action_links_area']['link-4'] = array(
-    'label-4' => '',
-    'path-4' => '',
-  );
-  /* Field: Tripal Materialized Views: Materialized View ID */
-  $handler->display->display_options['fields']['mview_id']['id'] = 'mview_id';
-  $handler->display->display_options['fields']['mview_id']['table'] = 'tripal_mviews';
-  $handler->display->display_options['fields']['mview_id']['field'] = 'mview_id';
-  $handler->display->display_options['fields']['mview_id']['label'] = '';
-  $handler->display->display_options['fields']['mview_id']['element_class'] = 'extra-short-column';
-  $handler->display->display_options['fields']['mview_id']['element_label_class'] = 'extra-short-column';
-  $handler->display->display_options['fields']['mview_id']['element_label_colon'] = FALSE;
-  $handler->display->display_options['fields']['mview_id']['separator'] = '';
-  /* Field: Tripal Materialized Views: Name */
-  $handler->display->display_options['fields']['name']['id'] = 'name';
-  $handler->display->display_options['fields']['name']['table'] = 'tripal_mviews';
-  $handler->display->display_options['fields']['name']['field'] = 'name';
-  $handler->display->display_options['fields']['name']['alter']['make_link'] = TRUE;
-  $handler->display->display_options['fields']['name']['alter']['path'] = 'admin/tripal/storage/chado/mviews/report/[mview_id]';
-  /* Field: Tripal Materialized Views: Table */
-  $handler->display->display_options['fields']['mv_table']['id'] = 'mv_table';
-  $handler->display->display_options['fields']['mv_table']['table'] = 'tripal_mviews';
-  $handler->display->display_options['fields']['mv_table']['field'] = 'mv_table';
-  $handler->display->display_options['fields']['mv_table']['label'] = 'Table Name';
-  /* Field: Tripal Materialized Views: Description */
-  $handler->display->display_options['fields']['comment']['id'] = 'comment';
-  $handler->display->display_options['fields']['comment']['table'] = 'tripal_mviews';
-  $handler->display->display_options['fields']['comment']['field'] = 'comment';
-  /* Field: Tripal Materialized Views: Updated */
-  $handler->display->display_options['fields']['last_update']['id'] = 'last_update';
-  $handler->display->display_options['fields']['last_update']['table'] = 'tripal_mviews';
-  $handler->display->display_options['fields']['last_update']['field'] = 'last_update';
-  $handler->display->display_options['fields']['last_update']['label'] = 'Last Updated';
-  $handler->display->display_options['fields']['last_update']['date_format'] = 'long';
-  /* Field: Tripal Materialized Views: Status */
-  $handler->display->display_options['fields']['status']['id'] = 'status';
-  $handler->display->display_options['fields']['status']['table'] = 'tripal_mviews';
-  $handler->display->display_options['fields']['status']['field'] = 'status';
-  $handler->display->display_options['fields']['status']['empty'] = 'Not yet populated';
-  /* Field: Global: Custom text */
-  $handler->display->display_options['fields']['nothing']['id'] = 'nothing';
-  $handler->display->display_options['fields']['nothing']['table'] = 'views';
-  $handler->display->display_options['fields']['nothing']['field'] = 'nothing';
-  $handler->display->display_options['fields']['nothing']['label'] = 'Edit Link';
-  $handler->display->display_options['fields']['nothing']['exclude'] = TRUE;
-  $handler->display->display_options['fields']['nothing']['alter']['text'] = 'Edit';
-  $handler->display->display_options['fields']['nothing']['alter']['make_link'] = TRUE;
-  $handler->display->display_options['fields']['nothing']['alter']['path'] = 'admin/tripal/storage/chado/mviews/edit/[mview_id]';
-  /* Field: Global: Custom text */
-  $handler->display->display_options['fields']['nothing_1']['id'] = 'nothing_1';
-  $handler->display->display_options['fields']['nothing_1']['table'] = 'views';
-  $handler->display->display_options['fields']['nothing_1']['field'] = 'nothing';
-  $handler->display->display_options['fields']['nothing_1']['label'] = 'Delete Link';
-  $handler->display->display_options['fields']['nothing_1']['exclude'] = TRUE;
-  $handler->display->display_options['fields']['nothing_1']['alter']['text'] = 'Delete';
-  $handler->display->display_options['fields']['nothing_1']['alter']['make_link'] = TRUE;
-  $handler->display->display_options['fields']['nothing_1']['alter']['path'] = 'admin/tripal/storage/chado/mviews/delete/[mview_id]';
-  /* Field: Global: Custom text */
-  $handler->display->display_options['fields']['nothing_2']['id'] = 'nothing_2';
-  $handler->display->display_options['fields']['nothing_2']['table'] = 'views';
-  $handler->display->display_options['fields']['nothing_2']['field'] = 'nothing';
-  $handler->display->display_options['fields']['nothing_2']['label'] = 'Populate Link';
-  $handler->display->display_options['fields']['nothing_2']['exclude'] = TRUE;
-  $handler->display->display_options['fields']['nothing_2']['alter']['text'] = 'Populate';
-  $handler->display->display_options['fields']['nothing_2']['alter']['make_link'] = TRUE;
-  $handler->display->display_options['fields']['nothing_2']['alter']['path'] = 'admin/tripal/storage/chado/mviews/update/[mview_id]';
-  /* Field: Global: Custom text */
-  $handler->display->display_options['fields']['nothing_3']['id'] = 'nothing_3';
-  $handler->display->display_options['fields']['nothing_3']['table'] = 'views';
-  $handler->display->display_options['fields']['nothing_3']['field'] = 'nothing';
-  $handler->display->display_options['fields']['nothing_3']['label'] = '';
-  $handler->display->display_options['fields']['nothing_3']['alter']['text'] = '[nothing]   [nothing_1]<br />
-  [nothing_2]';
-  $handler->display->display_options['fields']['nothing_3']['element_class'] = 'short-column';
-  $handler->display->display_options['fields']['nothing_3']['element_label_class'] = 'short-column';
-  $handler->display->display_options['fields']['nothing_3']['element_label_colon'] = FALSE;
-  /* Filter criterion: Tripal Materialized Views: Name */
-  $handler->display->display_options['filters']['name']['id'] = 'name';
-  $handler->display->display_options['filters']['name']['table'] = 'tripal_mviews';
-  $handler->display->display_options['filters']['name']['field'] = 'name';
-  $handler->display->display_options['filters']['name']['group'] = 1;
-  $handler->display->display_options['filters']['name']['exposed'] = TRUE;
-  $handler->display->display_options['filters']['name']['expose']['operator_id'] = 'name_op';
-  $handler->display->display_options['filters']['name']['expose']['label'] = 'Name';
-  $handler->display->display_options['filters']['name']['expose']['operator'] = 'name_op';
-  $handler->display->display_options['filters']['name']['expose']['identifier'] = 'name';
-  $handler->display->display_options['filters']['name']['expose']['remember_roles'] = array(
-    2 => '2',
-    1 => 0,
-    3 => 0,
-  );
-  /* Filter criterion: Tripal Materialized Views: Table */
-  $handler->display->display_options['filters']['mv_table']['id'] = 'mv_table';
-  $handler->display->display_options['filters']['mv_table']['table'] = 'tripal_mviews';
-  $handler->display->display_options['filters']['mv_table']['field'] = 'mv_table';
-  $handler->display->display_options['filters']['mv_table']['group'] = 1;
-  $handler->display->display_options['filters']['mv_table']['exposed'] = TRUE;
-  $handler->display->display_options['filters']['mv_table']['expose']['operator_id'] = 'mv_table_op';
-  $handler->display->display_options['filters']['mv_table']['expose']['label'] = 'Table Name';
-  $handler->display->display_options['filters']['mv_table']['expose']['operator'] = 'mv_table_op';
-  $handler->display->display_options['filters']['mv_table']['expose']['identifier'] = 'mv_table';
-  $handler->display->display_options['filters']['mv_table']['expose']['remember_roles'] = array(
-    2 => '2',
-    1 => 0,
-    3 => 0,
-  );
-  /* Filter criterion: Tripal Materialized Views: Module Name */
-  $handler->display->display_options['filters']['modulename']['id'] = 'modulename';
-  $handler->display->display_options['filters']['modulename']['table'] = 'tripal_mviews';
-  $handler->display->display_options['filters']['modulename']['field'] = 'modulename';
-  $handler->display->display_options['filters']['modulename']['group'] = 1;
-  $handler->display->display_options['filters']['modulename']['exposed'] = TRUE;
-  $handler->display->display_options['filters']['modulename']['expose']['operator_id'] = 'modulename_op';
-  $handler->display->display_options['filters']['modulename']['expose']['label'] = 'Module';
-  $handler->display->display_options['filters']['modulename']['expose']['operator'] = 'modulename_op';
-  $handler->display->display_options['filters']['modulename']['expose']['identifier'] = 'modulename';
-  $handler->display->display_options['filters']['modulename']['expose']['remember_roles'] = array(
-    2 => '2',
-    1 => 0,
-    3 => 0,
-  );
-  /* Filter criterion: Tripal Materialized Views: Status */
-  $handler->display->display_options['filters']['status']['id'] = 'status';
-  $handler->display->display_options['filters']['status']['table'] = 'tripal_mviews';
-  $handler->display->display_options['filters']['status']['field'] = 'status';
-  $handler->display->display_options['filters']['status']['group'] = 1;
-  $handler->display->display_options['filters']['status']['exposed'] = TRUE;
-  $handler->display->display_options['filters']['status']['expose']['operator_id'] = 'status_op';
-  $handler->display->display_options['filters']['status']['expose']['label'] = 'Status';
-  $handler->display->display_options['filters']['status']['expose']['operator'] = 'status_op';
-  $handler->display->display_options['filters']['status']['expose']['identifier'] = 'status';
-  $handler->display->display_options['filters']['status']['expose']['remember_roles'] = array(
-    2 => '2',
-    1 => 0,
-    3 => 0,
-  );
-
-  /* Display: Page */
-  $handler = $view->new_display('page', 'Page', 'page');
-  $handler->display->display_options['path'] = 'admin/tripal/storage/chado/mviews/mviews';
-  $handler->display->display_options['menu']['type'] = 'default tab';
-  $handler->display->display_options['menu']['title'] = 'Materialized Views';
-  $handler->display->display_options['menu']['description'] = 'a list of mviews';
-  $handler->display->display_options['menu']['weight'] = '-10';
-  $handler->display->display_options['menu']['name'] = 'management';
-  $handler->display->display_options['menu']['context'] = 0;
-  $handler->display->display_options['menu']['context_only_inline'] = 0;
-  $handler->display->display_options['tab_options']['weight'] = '0';
-
-  return $view;
-}

+ 1 - 4
tripal_chado/api/tripal_chado.mviews.api.inc

@@ -169,10 +169,7 @@ function tripal_add_mview($name, $modulename, $mv_schema, $query, $comment = NUL
     return TRUE;
   }
   else {
-    tripal_report_error('tripal_chado', TRIPAL_WARNING,
-      "Materialized view, %vname, already exists. Cannot create.",
-      array('%vname' => $name));
-    drupal_set_message(t("Materialized view, $name, already exists. Cannot create.", array('%name' => $name)));
+    drupal_set_message(t("Materialized view, $name, already exists. Skipping creation.", array('%name' => $name)));
     return FALSE;
   }
 }

+ 1 - 1
tripal_chado/includes/tripal_chado.custom_tables.inc

@@ -34,7 +34,7 @@ function tripal_custom_table_admin_view() {
   drupal_set_breadcrumb($breadcrumb);
 
   // Add the view
-  $view = views_embed_view('tripal_chado_admin_custom_table','default');
+  $view = views_embed_view('tripal_admin_custom_table','default');
   if (isset($view)) {
     $output .= $view;
   }

+ 2 - 2
tripal_chado/includes/tripal_chado.mviews.inc

@@ -32,12 +32,12 @@ function tripal_mview_admin_view() {
   drupal_set_breadcrumb($breadcrumb);
 
   // Add the view
-  $view = views_embed_view('tripal_chado_admin_mviews','default');
+  $view = views_embed_view('tripal_admin_mviews', 'default');
   if (isset($view)) {
     $output .= $view;
   }
   else {
-    $output .= '<p>The Tripal Materalized View management system uses primarily views to provide an '
+    $output .= '<p>The Tripal Materalized View management system uses Drupal Views to provide an '
       . 'administrative interface. Currently one or more views needed for this '
       . 'administrative interface are disabled. <strong>Click each of the following links to '
       . 'enable the pertinent views</strong>:</p>';

+ 323 - 309
tripal_chado/includes/tripal_chado.setup.inc

@@ -10,28 +10,33 @@
 function tripal_chado_prepare_form($form, $form_state) {
   $form = array();
 
-  // we want to force the version of Chado to be set properly
-  $real_version = chado_get_version(TRUE);
-
-  $form['current_version'] = array(
-    '#type' => 'item',
-    '#title' => t("Current installed version of Chado:"),
-    '#description' => $real_version,
-  );
+  if (variable_get('tripal_chado_is_prepared') == TRUE) {
+    drupal_set_message('Your site is prepared.');
+  }
   $form['instructions'] = array(
     '#type' => 'item',
-    '#description' => t("Click the button below to prepare a Chado installation for
-        use by Tripal.  If you used Tripal to install Chado then this step
-        is not necessary.  If Chado was installed outside of Tripal then
-        it should be prepared. Preparing Chado involves adding of
-        specific controlled vocabularies, custom tables and materialized views."),
-  );
-
-  $form['button'] = array(
+    '#title' => 'Prepare Drupal for Chado.',
+    '#description' => t("Before a Drupal site can use Chado (via Tripal), both
+        Chado and Drupal must be prepared a bit more.  Tripal will add some new
+        materialized views, custom tables and controlled vocabularies to Chado.
+        It will also add some management tables to Drupal. You only are
+        required to prepare your Drupal site if this is a brand-new Drupal
+        installation or if Chado was installed outside of Tripal.  If you
+        installed Chado using Tripal then you do not need to run this step.
+        If you are upgrading from a previous version of Tripal, you do not
+        need to prepare your site, and you can click the 'Skip' button."),
+  );
+
+  $form['prepare-button'] = array(
     '#type' => 'submit',
-    '#value' => t('Prepare Chado'),
+    '#value' => t('Prepare this site'),
     '#name' => 'prepare-chado',
   );
+  $form['skip-button'] = array(
+    '#type' => 'submit',
+    '#value' => t('Skip'),
+    '#name' => 'prepare-skip',
+  );
   return $form;
 }
 
@@ -45,7 +50,16 @@ function tripal_chado_prepare_form_submit($form, $form_state) {
    if ($form_state['clicked_button']['#name'] == "prepare-chado") {
      global $user;
      $args = array();
-     tripal_add_job('Prepare Chado', 'tripal_chado', 'tripal_chado_prepare_chado', $args, $user->uid);
+     $includes = array(
+        module_load_include('inc', 'tripal_chado', 'includes/tripal_chado.setup'),
+        module_load_include('inc', 'tripal_chado', 'includes/loaders/tripal_chado.obo_loader'),
+     );
+     tripal_add_job('Prepare Chado', 'tripal_chado',
+       'tripal_chado_prepare_chado', $args,
+       $user->uid, 10, $includes);
+   }
+   if ($form_state['clicked_button']['#name'] == "prepare-skip") {
+     variable_set('tripal_chado_is_prepared', TRUE);
    }
 }
 /**
@@ -53,7 +67,7 @@ function tripal_chado_prepare_form_submit($form, $form_state) {
  *
  * @ingroup tripal_chado
  */
-function tripal_chado_load_form($form, $form_state) {
+function tripal_chado_install_form($form, $form_state) {
 
   // we want to force the version of Chado to be set properly
   $real_version = chado_get_version(TRUE);
@@ -93,7 +107,7 @@ function tripal_chado_load_form($form, $form_state) {
   return $form;
 }
 
-function tripal_chado_chado_load_form_validate($form, &$form_state) {
+function tripal_chado_install_form_validate($form, &$form_state) {
   // We do not want to allow re-installation of Chado if other
   // Tripal modules are installed.  This is because the install files
   // of those modules may add content to Chado and reinstalling Chado
@@ -129,11 +143,16 @@ function tripal_chado_chado_load_form_validate($form, &$form_state) {
  *
  * @ingroup tripal_chado
  */
-function tripal_chado_chado_load_form_submit($form, &$form_state) {
+function tripal_chado_install_form_submit($form, &$form_state) {
   global $user;
   $action_to_do = trim($form_state['values']['action_to_do']);
   $args = array($action_to_do);
-  tripal_add_job($action_to_do, 'tripal_chado', 'tripal_chado_install_chado', $args, $user->uid);
+  $includes = array(
+    module_load_include('inc', 'tripal_chado', 'includes/tripal_chado.setup'),
+    module_load_include('inc', 'tripal_chado', 'includes/loaders/tripal_chado.obo_loader'),
+  );
+  tripal_add_job($action_to_do, 'tripal_chado', 'tripal_chado_install_chado',
+      $args, $user->uid, 10, $includes);
 }
 
 /**
@@ -227,268 +246,284 @@ function tripal_chado_install_chado($action) {
       exit;
     }
   }
+
+  tripal_chado_prepare_chado();
 }
 
 /**
  * Prepares Chado for use by Tripal.
  */
 function tripal_chado_prepare_chado() {
-  // we want to force the version of Chado to be set properly
-  $real_version = chado_get_version(TRUE);
 
-  // get the effective version.  Pass true as second argument
-  // to warn the user if the current version is not compatible
-  $version = chado_get_version(FALSE, FALSE);
+  try {
+    // we want to force the version of Chado to be set properly
+    $real_version = chado_get_version(TRUE);
 
-  /////////////////////////////////////////////////////////////////////////////
-  //                          Chado CV Module
-  /////////////////////////////////////////////////////////////////////////////
-  // Add the cv_root_mview.
-  tripal_cv_add_cv_root_mview();
+    // get the effective version.  Pass true as second argument
+    // to warn the user if the current version is not compatible
+    $version = chado_get_version(FALSE, FALSE);
 
-  // Add defaults to the tables that correlate OBO files/references with
-  // a chado CV.
-  tripal_cv_add_obo_defaults();
+    /////////////////////////////////////////////////////////////////////////////
+    //                          Chado CV Module
+    /////////////////////////////////////////////////////////////////////////////
+    // Add the cv_root_mview.
+    tripal_cv_add_cv_root_mview();
 
-  // Add the Chado ontology CV.
-  $obo_path = '{tripal_chado}/files/cv_property.obo';
-  $obo_id = tripal_insert_obo('Chado CV Properties', $obo_path);
-  tripal_submit_obo_job(array('obo_id' => $obo_id));
+    // Add defaults to the tables that correlate OBO files/references with
+    // a chado CV.
+    tripal_cv_add_obo_defaults();
 
-  // Create the temp table we will use for loading OBO files.
-  tripal_cv_create_tripal_obo_temp();
+    // Create the temp table we will use for loading OBO files.
+    tripal_cv_create_tripal_obo_temp();
+
+    // Add the Chado ontology CV.
+    $obo_path = '{tripal_chado}/files/cv_property.obo';
+    $obo_id = tripal_insert_obo('Chado CV Properties', $obo_path);
+    tripal_chado_load_obo_v1_2_id($obo_id);
+    //tripal_submit_obo_job(array('obo_id' => $obo_id));
 
 
-  /////////////////////////////////////////////////////////////////////////////
-  //                          Chado Organism Module
-  /////////////////////////////////////////////////////////////////////////////
-  tripal_insert_cv(
-  'organism_property',
-  'Contains properties for organisms'
-      );
 
-  // set the default vocabularies
-  tripal_set_default_cv('organismprop', 'type_id', 'organism_property');
-
-
-  /////////////////////////////////////////////////////////////////////////////
-  //                        Chado CompAnalysis Module
-  /////////////////////////////////////////////////////////////////////////////
-  // we may need the analysisfeatureprop table if it doesn't already exist
-  tripal_analysis_create_analysisfeatureprop();
-
-  // add cvterms
-  tripal_analysis_add_cvterms();
-
-  // add materialized views
-  tripal_analysis_add_mview_analysis_organism();
-
-  // set the default vocabularies
-  tripal_set_default_cv('analysisprop', 'type_id', 'analysis_property');
-
-  /////////////////////////////////////////////////////////////////////////////
-  //                        Chado Contact Module
-  /////////////////////////////////////////////////////////////////////////////
-  // Add the contactprop table to Chado.
-  tripal_contact_add_custom_tables();
-
-  // Add loading of the the tripal contact ontology to the job queue.
-  $obo_path = '{tripal_chado}/files/tcontact.obo';
-  $obo_id = tripal_insert_obo('Tripal Contacts', $obo_path);
-  tripal_submit_obo_job(array('obo_id' => $obo_id));
-
-    // Add cvterms for relationship types.
-  tripal_contact_add_cvs();
-
-  // Set the default vocabularies.
-  tripal_set_default_cv('contact', 'type_id', 'tripal_contact');
-  tripal_set_default_cv('contactprop', 'type_id', 'tripal_contact');
-      tripal_set_default_cv('contact_relationship', 'type_id', 'contact_relationship');
-
-  /////////////////////////////////////////////////////////////////////////////
-  //                        Chado Feature Module
-  /////////////////////////////////////////////////////////////////////////////
-  // Note: the feature_property OBO that came with Chado v1.2 should not
-  // be automatically installed.  Some of the terms are duplicates of
-  // others in better maintained vocabularies.  New Tripal sites should
-  // use those.
-  // $obo_path = '{tripal_feature}/files/feature_property.obo';
-  // $obo_id = tripal_insert_obo('Chado Feature Properties', $obo_path);
-  // tripal_submit_obo_job(array('obo_id' => $obo_id));
-
-  // Add the materialized view.
-  tripal_feature_add_organism_count_mview();
-
-  // Add the custom tables.
-  tripal_feature_add_tripal_gff_temp_table();
-  tripal_feature_add_tripal_gffcds_temp_table();
-  tripal_feature_add_tripal_gffprotein_temp_table();
-
-  // Add the vocabularies used by the feature module.
-  tripal_feature_add_cvs();
-
-  // Set the default vocabularies.
-  tripal_set_default_cv('feature', 'type_id', 'sequence');
-  tripal_set_default_cv('featureprop', 'type_id', 'feature_property');
-  tripal_set_default_cv('feature_relationship', 'type_id', 'feature_relationship');
-
-  /////////////////////////////////////////////////////////////////////////////
-  //                            Chado Map Module
-  /////////////////////////////////////////////////////////////////////////////
-  // add the featuremapprop table to Chado
-  tripal_featuremap_add_custom_tables();
-
-  // Add cvterms
-  tripal_featuremap_add_cvs();
-  tripal_featuremap_add_cvterms();
-
-  // set the default vocabularies
-  tripal_set_default_cv('featuremapprop', 'type_id', 'featuremap_property');
-  tripal_set_default_cv('featureposprop', 'type_id', 'featurepos_property');
-  tripal_set_default_cv('featuremap', 'unittype_id', 'featuremap_units');
-
-  /////////////////////////////////////////////////////////////////////////////
-  //                          Chado Library Module
-  /////////////////////////////////////////////////////////////////////////////
-  // add the materialized view
-  tripal_library_add_mview_library_feature_count();
-
-  // add cvterms
-  tripal_library_add_cvs();
-  tripal_library_add_cvterms();
-
-  // set the default vocabularies
-  tripal_set_default_cv('libraryprop', 'type_id', 'library_property');
-  tripal_set_default_cv('library', 'type_id', 'library_type');
-
-  /////////////////////////////////////////////////////////////////////////////
-  //                          Chado NatDiv Module
-  /////////////////////////////////////////////////////////////////////////////
-  // add cvterms
-  tripal_natural_diversity_add_cvterms();
-
-  /////////////////////////////////////////////////////////////////////////////
-  //                          Chado Project Module
-  /////////////////////////////////////////////////////////////////////////////
-  tripal_project_add_cvs();
-  tripal_project_add_cvterms();
-
-  // set the default vocabularies
-  tripal_set_default_cv('projectprop', 'type_id', 'project_property');
-  tripal_set_default_cv('project_relationship', 'type_id', 'project_relationship');
-
-  /////////////////////////////////////////////////////////////////////////////
-  //                          Chado Pub Module
-  /////////////////////////////////////////////////////////////////////////////
-  global $base_path;
-
-  // add loading of the the tripal pub ontology to the job queue
-  $obo_path = '{tripal}/files/tpub.obo';
-  $obo_id = tripal_insert_obo('Tripal Publication', $obo_path);
-  tripal_submit_obo_job(array('obo_id' => $obo_id));
-
-  tripal_pub_add_cvs();
-
-  // add the custom tables
-  tripal_pub_add_custom_tables();
-
-  // set the default vocabularies
-  tripal_set_default_cv('pub', 'type_id', 'tripal_pub');
-  tripal_set_default_cv('pubprop', 'type_id', 'tripal_pub');
-  tripal_set_default_cv('pub_relationship', 'type_id', 'pub_relationship');
-
-  /////////////////////////////////////////////////////////////////////////////
-    //                          Chado Stock Module
     /////////////////////////////////////////////////////////////////////////////
-  // add some controlled vocabularies
-  tripal_stock_add_cvs();
-
-  // set the default vocabularies
-  tripal_set_default_cv('stock', 'type_id', 'stock_type');
-  tripal_set_default_cv('stockprop', 'type_id', 'stock_property');
-  tripal_set_default_cv('stock_relationship', 'type_id', 'stock_relationship');
-
-  // add the materialized view
-  tripal_stock_add_organism_count_mview();
-
-  /////////////////////////////////////////////////////////////////////////////
-  //                              Entity Bundles
-  /////////////////////////////////////////////////////////////////////////////
-
-  // Unfortunately, some Chado base tables do not have a type_id, so we must
-  // take special action for those tables.  These include: organism and
-  // analysis. Until we can find an appropriate controlled vocabulary
-  // that is well supported by the community with types for these tables we
-  // will have to use in-house terms.
-
-  // Add a term to be used for an inherent 'type_id' for the organism table.
-  tripal_insert_cvterm(array(
-  'id' => 'local:organism',
-  'name' => 'organism',
-  'definition' => 'An individual form of life, such as a bacterium, protist, ' .
-  'fungus, plant, or animal, composed of a single cell or a complex of cells  ' .
-  'in which organelles or organs work together to carry out the various  ' .
-  'processes of life. (American Heritage® Dictionary of the English ' .
-  'Language, Fifth Edition. Copyright © 2011 by Houghton Mifflin ' .
-  'Harcourt Publishing Company).',
-  'cv_name' => 'local',
-  ));
-
-  // Add a term to be used for an inherent 'type_id' for the organism table.
-  tripal_insert_cvterm(array(
-    'id' => 'local:analysis',
-    'name' => 'analysis',
-    'definition' => 'A process as a method of studying the nature of something ' .
-    'or of determining its essential features and their relations. ' .
-    '(Random House Kernerman Webster\'s College Dictionary, © 2010 K ' .
-    'Dictionaries Ltd).',
-    'cv_name' => 'local',
-  ));
-
-  tripal_insert_cvterm(array(
-    'id' => 'local:project',
-    'name' => 'project',
-    'definition' => 'A plan or proposal for accomplishing something. ' .
-    '(American Heritage® Dictionary of the English Language, Fifth Edition. ' .
-    'Copyright © 2011 by Houghton Mifflin Harcourt Publishing Company).',
-    'cv_name' => 'local',
-  ));
-
-  // For the TripalBundle entities we will want to associate the cvterm_id,
-  // and the chado table and field that it maps to.  We will use a few
-  // variables to do this:
-  tripal_insert_variable('chado_cvterm_id', 'The cvterm_id that a TripalBundle maps to.');
-  tripal_insert_variable('chado_table', 'The name of the table to which a TripalBundle maps.');
-  tripal_insert_variable('chado_column', 'The name of the column within the table that a TripalBundle maps to.');
-
-  // We want to provide a set of commonly used entity types by default. This
-  // way when a user first installs Tripal there are some commonly used
-  // formats.
-  module_load_include('inc', 'tripal', 'api/tripal.api');
-  module_load_include('inc', 'tripal', 'includes/tripal.admin');
-
-  // Create the 'Organism' entity type. This uses the local:organism term.
-  $error = '';
-  $term = array('name' => 'organism', 'cv_id' => array('name' => 'local'));
-  $cvterm = chado_generate_var('cvterm', $term);
-  if (!tripal_create_bundle('local', 'organism', 'organism', $error)) {
-    throw new Exception($error);
-  }
+    //                          Chado Organism Module
+    /////////////////////////////////////////////////////////////////////////////
+    tripal_insert_cv(
+      'organism_property',
+      'Contains properties for organisms'
+    );
 
-  // Create the 'Analysis' entity type. This uses the local:analysis term.
-  $error = '';
-  $term = array('name' => 'analysis', 'cv_id' => array('name' => 'local'));
-  $cvterm = chado_generate_var('cvterm', $term);
-  if (!tripal_create_bundle('local', 'analysis', 'analysis', $error)) {
-    throw new Exception($error);
-  }
+    // set the default vocabularies
+    tripal_set_default_cv('organismprop', 'type_id', 'organism_property');
+
+
+    /////////////////////////////////////////////////////////////////////////////
+    //                        Chado CompAnalysis Module
+    /////////////////////////////////////////////////////////////////////////////
+    // we may need the analysisfeatureprop table if it doesn't already exist
+    tripal_analysis_create_analysisfeatureprop();
+
+    // add cvterms
+    tripal_analysis_add_cvterms();
+
+    // add materialized views
+    tripal_analysis_add_mview_analysis_organism();
+
+    // set the default vocabularies
+    tripal_set_default_cv('analysisprop', 'type_id', 'analysis_property');
+
+    /////////////////////////////////////////////////////////////////////////////
+    //                        Chado Contact Module
+    /////////////////////////////////////////////////////////////////////////////
+    // Add the contactprop table to Chado.
+    tripal_contact_add_custom_tables();
+
+    // Add loading of the the tripal contact ontology to the job queue.
+    $obo_path = '{tripal_chado}/files/tcontact.obo';
+    $obo_id = tripal_insert_obo('Tripal Contacts', $obo_path);
+    tripal_chado_load_obo_v1_2_id($obo_id);
+    //tripal_submit_obo_job(array('obo_id' => $obo_id));
+
+      // Add cvterms for relationship types.
+    tripal_contact_add_cvs();
+
+    // Set the default vocabularies.
+    tripal_set_default_cv('contact', 'type_id', 'tripal_contact');
+    tripal_set_default_cv('contactprop', 'type_id', 'tripal_contact');
+        tripal_set_default_cv('contact_relationship', 'type_id', 'contact_relationship');
 
-  // Create the 'Project' entity type. This uses the local:project term.
-  $error = '';
-  $term = array('name' => 'project', 'cv_id' => array('name' => 'local'));
-  $cvterm = chado_generate_var('cvterm', $term);
-  if (!tripal_create_bundle('local', 'project', 'project', $error)) {
-    throw new Exception($error);
+    /////////////////////////////////////////////////////////////////////////////
+    //                        Chado Feature Module
+    /////////////////////////////////////////////////////////////////////////////
+    // Note: the feature_property OBO that came with Chado v1.2 should not
+    // be automatically installed.  Some of the terms are duplicates of
+    // others in better maintained vocabularies.  New Tripal sites should
+    // use those.
+    // $obo_path = '{tripal_feature}/files/feature_property.obo';
+    // $obo_id = tripal_insert_obo('Chado Feature Properties', $obo_path);
+    // tripal_chado_load_obo_v1_2_id($obo_id);
+    //// tripal_submit_obo_job(array('obo_id' => $obo_id));
+
+    // Add the materialized view.
+    tripal_feature_add_organism_count_mview();
+
+    // Add the custom tables.
+    tripal_feature_add_tripal_gff_temp_table();
+    tripal_feature_add_tripal_gffcds_temp_table();
+    tripal_feature_add_tripal_gffprotein_temp_table();
+
+    // Add the vocabularies used by the feature module.
+    tripal_feature_add_cvs();
+
+    // Set the default vocabularies.
+    tripal_set_default_cv('feature', 'type_id', 'sequence');
+    tripal_set_default_cv('featureprop', 'type_id', 'feature_property');
+    tripal_set_default_cv('feature_relationship', 'type_id', 'feature_relationship');
+
+    /////////////////////////////////////////////////////////////////////////////
+    //                            Chado Map Module
+    /////////////////////////////////////////////////////////////////////////////
+    // add the featuremapprop table to Chado
+    tripal_featuremap_add_custom_tables();
+
+    // Add cvterms
+    tripal_featuremap_add_cvs();
+    tripal_featuremap_add_cvterms();
+
+    // set the default vocabularies
+    tripal_set_default_cv('featuremapprop', 'type_id', 'featuremap_property');
+    tripal_set_default_cv('featureposprop', 'type_id', 'featurepos_property');
+    tripal_set_default_cv('featuremap', 'unittype_id', 'featuremap_units');
+
+    /////////////////////////////////////////////////////////////////////////////
+    //                          Chado Library Module
+    /////////////////////////////////////////////////////////////////////////////
+    // add the materialized view
+    tripal_library_add_mview_library_feature_count();
+
+    // add cvterms
+    tripal_library_add_cvs();
+    tripal_library_add_cvterms();
+
+    // set the default vocabularies
+    tripal_set_default_cv('libraryprop', 'type_id', 'library_property');
+    tripal_set_default_cv('library', 'type_id', 'library_type');
+
+    /////////////////////////////////////////////////////////////////////////////
+    //                          Chado NatDiv Module
+    /////////////////////////////////////////////////////////////////////////////
+    // add cvterms
+    tripal_natural_diversity_add_cvterms();
+
+    /////////////////////////////////////////////////////////////////////////////
+    //                          Chado Project Module
+    /////////////////////////////////////////////////////////////////////////////
+    tripal_project_add_cvs();
+    tripal_project_add_cvterms();
+
+    // set the default vocabularies
+    tripal_set_default_cv('projectprop', 'type_id', 'project_property');
+    tripal_set_default_cv('project_relationship', 'type_id', 'project_relationship');
+
+    /////////////////////////////////////////////////////////////////////////////
+    //                          Chado Pub Module
+    /////////////////////////////////////////////////////////////////////////////
+    global $base_path;
+
+    // add loading of the the tripal pub ontology to the job queue
+    $obo_path = '{tripal_chado}/files/tpub.obo';
+    $obo_id = tripal_insert_obo('Tripal Publication', $obo_path);
+    tripal_chado_load_obo_v1_2_id($obo_id);
+    //tripal_submit_obo_job(array('obo_id' => $obo_id));
+
+    tripal_pub_add_cvs();
+
+    // add the custom tables
+    tripal_pub_add_custom_tables();
+
+    // set the default vocabularies
+    tripal_set_default_cv('pub', 'type_id', 'tripal_pub');
+    tripal_set_default_cv('pubprop', 'type_id', 'tripal_pub');
+    tripal_set_default_cv('pub_relationship', 'type_id', 'pub_relationship');
+
+    /////////////////////////////////////////////////////////////////////////////
+      //                          Chado Stock Module
+      /////////////////////////////////////////////////////////////////////////////
+    // add some controlled vocabularies
+    tripal_stock_add_cvs();
+
+    // set the default vocabularies
+    tripal_set_default_cv('stock', 'type_id', 'stock_type');
+    tripal_set_default_cv('stockprop', 'type_id', 'stock_property');
+    tripal_set_default_cv('stock_relationship', 'type_id', 'stock_relationship');
+
+    // add the materialized view
+    tripal_stock_add_organism_count_mview();
+
+    /////////////////////////////////////////////////////////////////////////////
+    //                              Entity Bundles
+    /////////////////////////////////////////////////////////////////////////////
+
+    // Unfortunately, some Chado base tables do not have a type_id, so we must
+    // take special action for those tables.  These include: organism and
+    // analysis. Until we can find an appropriate controlled vocabulary
+    // that is well supported by the community with types for these tables we
+    // will have to use in-house terms.
+
+    // Add a term to be used for an inherent 'type_id' for the organism table.
+    tripal_insert_cvterm(array(
+      'id' => 'local:organism',
+      'name' => 'organism',
+      'definition' => 'An individual form of life, such as a bacterium, protist, ' .
+      'fungus, plant, or animal, composed of a single cell or a complex of cells  ' .
+      'in which organelles or organs work together to carry out the various  ' .
+      'processes of life. (American Heritage® Dictionary of the English ' .
+      'Language, Fifth Edition. Copyright © 2011 by Houghton Mifflin ' .
+      'Harcourt Publishing Company).',
+      'cv_name' => 'local',
+    ));
+
+    // Add a term to be used for an inherent 'type_id' for the organism table.
+    tripal_insert_cvterm(array(
+      'id' => 'local:analysis',
+      'name' => 'analysis',
+      'definition' => 'A process as a method of studying the nature of something ' .
+      'or of determining its essential features and their relations. ' .
+      '(Random House Kernerman Webster\'s College Dictionary, © 2010 K ' .
+      'Dictionaries Ltd).',
+      'cv_name' => 'local',
+    ));
+
+    tripal_insert_cvterm(array(
+      'id' => 'local:project',
+      'name' => 'project',
+      'definition' => 'A plan or proposal for accomplishing something. ' .
+      '(American Heritage® Dictionary of the English Language, Fifth Edition. ' .
+      'Copyright © 2011 by Houghton Mifflin Harcourt Publishing Company).',
+      'cv_name' => 'local',
+    ));
+
+    // For the TripalBundle entities we will want to associate the cvterm_id,
+    // and the chado table and field that it maps to.  We will use a few
+    // variables to do this:
+    tripal_insert_variable('chado_cvterm_id', 'The cvterm_id that a TripalBundle maps to.');
+    tripal_insert_variable('chado_table', 'The name of the table to which a TripalBundle maps.');
+    tripal_insert_variable('chado_column', 'The name of the column within the table that a TripalBundle maps to.');
+
+    // We want to provide a set of commonly used entity types by default. This
+    // way when a user first installs Tripal there are some commonly used
+    // formats.
+    module_load_include('inc', 'tripal', 'api/tripal.api');
+    module_load_include('inc', 'tripal', 'includes/tripal.admin');
+
+    // Create the 'Organism' entity type. This uses the local:organism term.
+    $error = '';
+    $term = array('name' => 'organism', 'cv_id' => array('name' => 'local'));
+    $cvterm = chado_generate_var('cvterm', $term);
+    if (!tripal_create_bundle('local', 'organism', 'organism', $error)) {
+      throw new Exception($error);
+    }
+
+    // Create the 'Analysis' entity type. This uses the local:analysis term.
+    $error = '';
+    $term = array('name' => 'analysis', 'cv_id' => array('name' => 'local'));
+    $cvterm = chado_generate_var('cvterm', $term);
+    if (!tripal_create_bundle('local', 'analysis', 'analysis', $error)) {
+      throw new Exception($error);
+    }
+
+    // Create the 'Project' entity type. This uses the local:project term.
+    $error = '';
+    $term = array('name' => 'project', 'cv_id' => array('name' => 'local'));
+    $cvterm = chado_generate_var('cvterm', $term);
+    if (!tripal_create_bundle('local', 'project', 'project', $error)) {
+      throw new Exception($error);
+    }
+
+    // Set a variable to indicate the site is prepared.
+    variable_set('tripal_chado_is_prepared', TRUE);
+  }
+  catch (Exception $e) {
+    throw new Exception($e);
   }
 }
 
@@ -807,49 +842,7 @@ function tripal_stock_add_cvs() {
       'Contains a list of types for stocks.'
   );
 }
-/**
- * Implementation of hook_schema().
- *
- * @ingroup tripal_pub
- */
-function tripal_chado_tripal_pub_import_schema() {
 
-  return array(
-    'fields' => array(
-      'pub_import_id' => array(
-        'type' => 'serial',
-        'not null' => TRUE
-      ),
-      'name' => array(
-        'type' => 'varchar',
-        'length' => 255,
-        'not null' => TRUE
-      ),
-      'criteria' => array(
-        'type' => 'text',
-        'size' => 'normal',
-        'not null' => TRUE,
-        'description' => 'Contains a serialized PHP array containing the search criteria'
-      ),
-      'disabled'  => array(
-        'type' => 'int',
-        'unsigned' => TRUE,
-        'not NULL' => TRUE,
-        'default' => 0
-      ),
-      'do_contact'  => array(
-        'type' => 'int',
-        'unsigned' => TRUE,
-        'not NULL' => TRUE,
-        'default' => 0
-      ),
-    ),
-    'primary key' => array('pub_import_id'),
-    'indexes' => array(
-      'name' => array('name')
-    ),
-  );
-}
 /**
  * Add custom table related to publications
  *  - pubauthor_contact
@@ -1978,6 +1971,27 @@ function tripal_analysis_add_cvterms() {
       array('update_existing' => TRUE)
   );
 }
+/**
+ * Add's defaults to the tripal_cv_obo table
+ *
+ * @ingroup tripal_cv
+ */
+function tripal_cv_add_obo_defaults() {
+
+  // Insert commonly used ontologies into the tables.
+  $ontologies = array(
+    array('Relationship Ontology', 'http://purl.obolibrary.org/obo/ro.obo'),
+    //    array('Relationship Ontology (older deprecated version)', 'http://www.obofoundry.org/ro/ro.obo'),
+    array('Sequence Ontology', 'https://github.com/The-Sequence-Ontology/SO-Ontologies/blob/master/so-xp-simple.obo'),
+    array('Gene Ontology', 'http://www.geneontology.org/ontology/gene_ontology.obo'),
+    //    array('Cell Ontology', 'https://raw.githubusercontent.com/obophenotype/cell-ontology/master/cl.obo'),
+    //    array('Plant Structure Ontology', 'http://palea.cgrb.oregonstate.edu/viewsvn/Poc/trunk/ontology/OBO_format/po_anatomy.obo?view=co'),
+    //    array('Plant Growth and Development Stages Ontology', 'http://palea.cgrb.oregonstate.edu/viewsvn/Poc/trunk/ontology/OBO_format/po_temporal.obo?view=co')
+  );
+  foreach ($ontologies as $o) {
+    db_query("INSERT INTO {tripal_cv_obo} (name,path) VALUES (:name, :path)", array(':name' => $o[0], ':path' => $o[1]));
+  }
+}
 /**
  * Add a materialized view of root terms for all chado cvs. This is needed for viewing cv trees
  *

+ 21 - 1
tripal_chado/includes/tripal_chado.term_storage.inc

@@ -17,6 +17,26 @@ function tripal_chado_vocab_storage_info() {
  * Implements hook_vocab_get_term().
  */
 function tripal_chado_vocab_get_term($namespace, $accession) {
+  // Create an empty term array for returning if there is a problem.
+  $empty_term = array(
+    'namespace'  => $namespace,
+    'accession'  => $accession,
+    'name'       => '',
+    'definition' => 'Term is undefined.',
+    'urlprefix'  => '',
+    // The following are not required for the returned array but we'll
+    // add these for convenience later when we look at the TripalTerm
+    // objects and these will be there.
+    'cvterm'     => NULL,
+  );
+
+  // It's possible that Chado is not available (i.e. it gets renamed
+  // for copying) but Tripal has already been prepared and the
+  // entities exist.  If this is the case we don't want to run the
+  // commands below.
+  if (!chado_table_exists('cvterm')) {
+    return $empty_term;
+  }
   $match = array(
     'dbxref_id' => array(
       'db_id' => array(
@@ -27,7 +47,7 @@ function tripal_chado_vocab_get_term($namespace, $accession) {
   );
   $cvterm = chado_generate_var('cvterm', $match);
   if (!$cvterm) {
-    return NULL;
+    return $empty_term;
   }
   $cvterm = chado_expand_var($cvterm, 'field', 'cvterm.definition');
   return array(

+ 0 - 1
tripal_chado/tripal_chado.info

@@ -7,6 +7,5 @@ version = 7.x-2.0
 
 stylesheets[all][] = theme/css/tripal_chado.css
 
-dependencies[] = tripal
 dependencies[] = tripal
 dependencies[] = date

+ 43 - 24
tripal_chado/tripal_chado.install

@@ -93,30 +93,6 @@ function tripal_chado_tripal_cv_defaults_schema() {
 }
 
 
-
-/**
- * Add's defaults to the tripal_cv_obo table
- *
- * @ingroup tripal_cv
- */
-function tripal_cv_add_obo_defaults() {
-
-  // Insert commonly used ontologies into the tables.
-  $ontologies = array(
-    array('Relationship Ontology', 'http://purl.obolibrary.org/obo/ro.obo'),
-    //    array('Relationship Ontology (older deprecated version)', 'http://www.obofoundry.org/ro/ro.obo'),
-    array('Sequence Ontology', 'https://github.com/The-Sequence-Ontology/SO-Ontologies/blob/master/so-xp-simple.obo'),
-    array('Gene Ontology', 'http://www.geneontology.org/ontology/gene_ontology.obo'),
-    //    array('Cell Ontology', 'https://raw.githubusercontent.com/obophenotype/cell-ontology/master/cl.obo'),
-  //    array('Plant Structure Ontology', 'http://palea.cgrb.oregonstate.edu/viewsvn/Poc/trunk/ontology/OBO_format/po_anatomy.obo?view=co'),
-  //    array('Plant Growth and Development Stages Ontology', 'http://palea.cgrb.oregonstate.edu/viewsvn/Poc/trunk/ontology/OBO_format/po_temporal.obo?view=co')
-  );
-  foreach ($ontologies as $o) {
-    db_query("INSERT INTO {tripal_cv_obo} (name,path) VALUES (:name, :path)", array(':name' => $o[0], ':path' => $o[1]));
-  }
-}
-
-
 /**
  * Implements hook_schema().
  */
@@ -152,6 +128,49 @@ function tripal_chado_schema() {
  * @section
  * Schema Definitions.
  */
+/**
+ * Implementation of hook_schema().
+ *
+ * @ingroup tripal_pub
+ */
+function tripal_chado_tripal_pub_import_schema() {
+
+  return array(
+    'fields' => array(
+      'pub_import_id' => array(
+        'type' => 'serial',
+        'not null' => TRUE
+      ),
+      'name' => array(
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE
+      ),
+      'criteria' => array(
+        'type' => 'text',
+        'size' => 'normal',
+        'not null' => TRUE,
+        'description' => 'Contains a serialized PHP array containing the search criteria'
+      ),
+      'disabled'  => array(
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not NULL' => TRUE,
+        'default' => 0
+      ),
+      'do_contact'  => array(
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not NULL' => TRUE,
+        'default' => 0
+      ),
+    ),
+    'primary key' => array('pub_import_id'),
+    'indexes' => array(
+      'name' => array('name')
+    ),
+  );
+}
 /**
  * Describes the Tripal Custom Tables (tripal_custom_tables) table
  * This keeps track of tables created by Tripal and stored in chado that may or may not

+ 60 - 5
tripal_chado/tripal_chado.module

@@ -78,9 +78,35 @@ function tripal_chado_init() {
           "VALUES ('tripal', 'Used as a database placeholder for tripal defined objects such as tripal cvterms')"
       );
     }
+
+    // Check to see if the Chado and Drupal have been prepared
+    if (!variable_get('tripal_chado_is_prepared', FALSE)) {
+      drupal_set_message('Chado is installed but Tripal has not yet prepared Drupal and Chado. Please ' .
+          l('prepare both Drupal and Chado', 'admin/tripal/storage/chado/chado_prepare') .
+          ' before continuing.', 'warning');
+    }
+  }
+  else {
+    drupal_set_message('Tripal cannot find a Chado installation. Please ' .
+        l('install Chado', 'admin/tripal/storage/chado/chado_install') .
+        ' before continuing.', 'warning');
   }
 }
 
+/**
+ * Implements hook_views_api().
+ *
+ * Essentially this hook tells drupal that there is views support for
+ *  for this module which then includes tripal_db.views.inc where all the
+ *  views integration code is
+ *
+ * @ingroup tripal_feature
+ */
+function tripal_chado_views_api() {
+  return array(
+    'api' => 3.0,
+  );
+}
 /**
  * Implements hook_menu().
  */
@@ -110,7 +136,7 @@ function tripal_chado_menu() {
     'title' => 'Install Chado',
     'description' => t('Installs the Chado database tables, views, etc., inside the current Drupal database'),
     'page callback' => 'drupal_get_form',
-    'page arguments' => array('tripal_chado_load_form'),
+    'page arguments' => array('tripal_chado_install_form'),
     'type' => MENU_NORMAL_ITEM,
     'access arguments' => array('install chado'),
     'file' => 'includes/tripal_chado.setup.inc',
@@ -119,10 +145,7 @@ function tripal_chado_menu() {
   );
   $items['admin/tripal/storage/chado/chado_prepare'] = array(
     'title' => 'Prepare Chado',
-    'description' => t('After installation of Chado some preparation is required for Tripal. This includes adding
-        some Tripal required ontologies, materialized views and custom tables. This step
-        is only required if Chado was installed outside of Tripal. If you installed Tripal
-        using the "Install Chado" step above then Chado is prepared.'),
+    'description' => t('Prepares Drupal to use Chado.'),
     'page callback' => 'drupal_get_form',
     'page arguments' => array('tripal_chado_prepare_form'),
     'type' => MENU_NORMAL_ITEM,
@@ -141,6 +164,8 @@ function tripal_chado_menu() {
     'page callback' => 'tripal_mview_admin_view',
     'access arguments' => array('administer tripal'),
     'type' => MENU_NORMAL_ITEM,
+    'file' => 'includes/tripal_chado.mviews.inc',
+    'file path' => drupal_get_path('module', 'tripal_chado'),
     'weight' => -10
   );
   $items['admin/tripal/storage/chado/mviews/help'] = array(
@@ -150,6 +175,8 @@ function tripal_chado_menu() {
     'page arguments' => array('tripal_mviews_help'),
     'access arguments' => array('administer tripal'),
     'type' => MENU_LOCAL_TASK,
+    'file' => 'includes/tripal_chado.mviews.inc',
+    'file path' => drupal_get_path('module', 'tripal_chado'),
     'weight' => 10
   );
   $items['admin/tripal/storage/chado/mviews/report/%'] = array(
@@ -159,6 +186,8 @@ function tripal_chado_menu() {
     'page arguments' => array(5),
     'access arguments' => array('administer tripal'),
     'type' => MENU_CALLBACK,
+    'file' => 'includes/tripal_chado.mviews.inc',
+    'file path' => drupal_get_path('module', 'tripal_chado'),
   );
   $items['admin/tripal/storage/chado/mviews/new'] = array(
     'title' => 'Create Materialized View',
@@ -167,6 +196,8 @@ function tripal_chado_menu() {
     'page arguments' => array('tripal_mviews_form'),
     'access arguments' => array('administer tripal'),
     'type' => MENU_CALLBACK,
+    'file' => 'includes/tripal_chado.mviews.inc',
+    'file path' => drupal_get_path('module', 'tripal_chado'),
   );
   $items['admin/tripal/storage/chado/mviews/edit/%'] = array(
     'title' => 'Edit Materialized View',
@@ -174,6 +205,8 @@ function tripal_chado_menu() {
     'page arguments' => array('tripal_mviews_form', 5),
     'access arguments' => array('administer tripal'),
     'type' => MENU_CALLBACK,
+    'file' => 'includes/tripal_chado.mviews.inc',
+    'file path' => drupal_get_path('module', 'tripal_chado'),
   );
   $items['admin/tripal/storage/chado/mviews/update/%'] = array(
     'title' => 'Create Materialized View',
@@ -182,6 +215,8 @@ function tripal_chado_menu() {
     'page arguments' => array(5),
     'access arguments' => array('administer tripal'),
     'type' => MENU_CALLBACK,
+    'file' => 'includes/tripal_chado.mviews.inc',
+    'file path' => drupal_get_path('module', 'tripal_chado'),
   );
   $items['admin/tripal/storage/chado/mviews/delete/%'] = array(
     'title' => 'Create Materialized View',
@@ -190,6 +225,8 @@ function tripal_chado_menu() {
     'page arguments' => array('tripal_mviews_delete_form', 5),
     'access arguments' => array('administer tripal'),
     'type' => MENU_CALLBACK,
+    'file' => 'includes/tripal_chado.mviews.inc',
+    'file path' => drupal_get_path('module', 'tripal_chado'),
   );
   // TODO: complete the code for exporting and importing of MViews.
   // Need to address security issues of sharing SQL.
@@ -200,6 +237,8 @@ function tripal_chado_menu() {
     'page arguments' => array('tripal_mviews_import_form'),
     'access arguments' => array('administer tripal'),
     'type' => MENU_CALLBACK,
+    'file' => 'includes/tripal_chado.mviews.inc',
+    'file path' => drupal_get_path('module', 'tripal_chado'),
   );
   $items['admin/tripal/storage/chado/mviews/%tblid/export'] = array(
     'title' => 'Export MView',
@@ -208,6 +247,8 @@ function tripal_chado_menu() {
     'page arguments' => array('tripal_mviews_export_form', 5),
     'access arguments' => array('administer tripal'),
     'type' => MENU_CALLBACK,
+    'file' => 'includes/tripal_chado.mviews.inc',
+    'file path' => drupal_get_path('module', 'tripal_chado'),
   );
 
   //////////////////////////////////////////////////////////////////////////////
@@ -219,6 +260,8 @@ function tripal_chado_menu() {
     'page callback' => 'tripal_custom_table_admin_view',
     'access arguments' => array('administer tripal'),
     'type' => MENU_NORMAL_ITEM,
+    'file' => 'includes/tripal_chado.custom_tables.inc',
+    'file path' => drupal_get_path('module', 'tripal_chado'),
     'weight' => -10
   );
   $items['admin/tripal/storage/chado/custom_tables/help'] = array(
@@ -228,6 +271,8 @@ function tripal_chado_menu() {
     'page arguments' => array('tripal_job_help'),
     'access arguments' => array('administer tripal'),
     'type' => MENU_LOCAL_TASK,
+    'file' => 'includes/tripal_chado.custom_tables.inc',
+    'file path' => drupal_get_path('module', 'tripal_chado'),
     'weight' => 10
   );
   $items['admin/tripal/storage/chado/custom_tables/view/%'] = array(
@@ -236,6 +281,8 @@ function tripal_chado_menu() {
     'page callback' => 'tripal_custom_table_view',
     'page arguments' => array(5),
     'access arguments' => array('administer tripal'),
+    'file' => 'includes/tripal_chado.custom_tables.inc',
+    'file path' => drupal_get_path('module', 'tripal_chado'),
     'type' => MENU_CALLBACK,
   );
   $items['admin/tripal/storage/chado/custom_tables/new'] = array(
@@ -243,6 +290,8 @@ function tripal_chado_menu() {
     'description' => t('An interface for creating your own custom tables.'),
     'page callback' => 'tripal_custom_table_new_page',
     'access arguments' => array('administer tripal'),
+    'file' => 'includes/tripal_chado.custom_tables.inc',
+    'file path' => drupal_get_path('module', 'tripal_chado'),
     'type' => MENU_CALLBACK,
   );
   $items['admin/tripal/storage/chado/custom_tables/edit/%'] = array(
@@ -250,6 +299,8 @@ function tripal_chado_menu() {
     'page callback' => 'drupal_get_form',
     'page arguments' => array('tripal_custom_tables_form', 5),
     'access arguments' => array('administer tripal'),
+    'file' => 'includes/tripal_chado.custom_tables.inc',
+    'file path' => drupal_get_path('module', 'tripal_chado'),
     'type' => MENU_CALLBACK,
   );
   $items['admin/tripal/storage/chado/custom_tables/delete/%'] = array(
@@ -258,6 +309,8 @@ function tripal_chado_menu() {
     'page callback' => 'drupal_get_form',
     'page arguments' => array('tripal_custom_tables_delete_form', 5),
     'access arguments' => array('administer tripal'),
+    'file' => 'includes/tripal_chado.custom_tables.inc',
+    'file path' => drupal_get_path('module', 'tripal_chado'),
     'type' => MENU_CALLBACK,
   );
   $items['admin/tripal/storage/chado/custom_tables/views/tables/enable'] = array(
@@ -265,6 +318,8 @@ function tripal_chado_menu() {
     'page callback' => 'tripal_enable_view',
     'page arguments' => array('tripal_admin_custom_table', 'admin/tripal/storage/chado/custom_tables'),
     'access arguments' => array('administer tripal'),
+    'file' => 'includes/tripal_chado.custom_tables.inc',
+    'file path' => drupal_get_path('module', 'tripal_chado'),
     'type' => MENU_CALLBACK,
   );
 

+ 370 - 0
tripal_chado/tripal_chado.views.inc

@@ -0,0 +1,370 @@
+<?php
+/**
+ * @file
+ * Integrates many of the core database tables with drupal views
+ */
+
+/**
+ * Describe various Tripal Core systems to Views
+ *   for the creation of administrative views.
+ *
+ * @ingroup tripal
+ */
+function tripal_chado_views_data() {
+  $data = array();
+
+  // Custom Tables Management
+  $data = tripal_chado_views_data_custom_tables($data);
+
+  // Materialized Views Management
+  $data = tripal_chado_views_data_mviews($data);
+
+  return $data;
+}
+
+/**
+ * Provides the data array for the tripal custom tables management
+ *
+ * @param $data
+ *   Previously generated tripal views data array
+ * return
+ *   $data array with custom tables management described
+ *
+ * @ingroup tripal
+ */
+function tripal_chado_views_data_custom_tables($data) {
+
+  $data['tripal_custom_tables']['table']['group'] = t('Tripal Custom Tables');
+  $data['tripal_custom_tables']['table']['base'] = array(
+    'field' => 'table_id', // This is the identifier field for the view.
+    'title' => t('Tripal Custom Tables'),
+    'help' => t('Custom Tables in Chado created by this Tripal Installation.'),
+    'weight' => 10,
+  );
+
+  // Table ID
+  $data['tripal_custom_tables']['table_id'] = array(
+    'title' => t('Custom Table ID'),
+    'help' => t('Custom table primary key.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE,
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric',
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+  );
+
+  // Table Name
+  $data['tripal_custom_tables']['table_name'] = array(
+    'title' => t('Table Name'),
+    'help' => t('The name of the table in the database.'),
+    'field' => array(
+      'handler' => 'views_handler_field',
+      'click sortable' => TRUE, // This is use by the table display plugin.
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string',
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument_string',
+    ),
+  );
+
+  // Schema
+  $data['tripal_custom_tables']['schema'] = array(
+    'title' => t('Table Schema'),
+    'help' => t('The schema definition of the table.'),
+    'field' => array(
+      'handler' => 'views_handler_field',
+      'click sortable' => TRUE, // This is use by the table display plugin.
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string',
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument_string',
+    ),
+  );
+
+  // Table ID
+  $data['tripal_custom_tables']['mview_id'] = array(
+    'title' => t('Materialized View ID'),
+    'help' => t('Foreign key to tripal_mviews table for the materialized view.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE,
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric',
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+  );
+
+
+  return $data;
+}
+
+/**
+ * Provides the data array for the tripal custom tables management
+ *
+ * @param $data
+ *   Previously generated tripal views data array
+ * return
+ *   $data array with custom tables management described
+ *
+ * @ingroup tripal
+ */
+function tripal_chado_views_data_mviews($data) {
+
+  $data['tripal_mviews']['table']['group'] = t('Tripal Materialized Views');
+  $data['tripal_mviews']['table']['base'] = array(
+    'field' => 'mview_id', // This is the identifier field for the view.
+    'title' => t('Tripal Materialized Views'),
+    'help' => t('Materialized Views in Chado created by this Tripal Installation.'),
+    'weight' => 10,
+  );
+
+    // Implicit Join to Tripal Views
+  $data['tripal_mviews']['table']['join'] = array(
+    'tripal_views' => array(
+      'left_field' => 'mview_id',
+      'field' => 'mview_id',
+    ),
+  );
+
+  // Mview ID
+  $data['tripal_mviews']['mview_id'] = array(
+    'title' => t('Materialized View ID'),
+    'help' => t('The primary key.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE,
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric',
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+  );
+
+  // name
+  $data['tripal_mviews']['name'] = array(
+    'title' => t('Name'),
+    'help' => t('Human-readable name of the materialized view.'),
+    'field' => array(
+      'handler' => 'views_handler_field',
+      'click sortable' => TRUE, // This is use by the table display plugin.
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string',
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument_string',
+    ),
+  );
+
+  // modulename
+  $data['tripal_mviews']['modulename'] = array(
+    'title' => t('Module Name'),
+    'help' => t('The module that created the materialized view.'),
+    'field' => array(
+      'handler' => 'views_handler_field',
+      'click sortable' => TRUE, // This is use by the table display plugin.
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string',
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument_string',
+    ),
+  );
+
+  // mv_table
+  $data['tripal_mviews']['mv_table'] = array(
+    'title' => t('Table'),
+    'help' => t('The database table the materialized view is stored in.'),
+    'field' => array(
+      'handler' => 'views_handler_field',
+      'click sortable' => TRUE, // This is use by the table display plugin.
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string',
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument_string',
+    ),
+  );
+
+  // mv_specs
+  $data['tripal_mviews']['mv_specs'] = array(
+    'title' => t('Specification'),
+    'help' => t('Materialized View Specification.'),
+    'field' => array(
+      'handler' => 'views_handler_field',
+      'click sortable' => TRUE, // This is use by the table display plugin.
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string',
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument_string',
+    ),
+  );
+
+  // mv_schema
+  $data['tripal_mviews']['mv_schema'] = array(
+    'title' => t('Schema'),
+    'help' => t('Schema definition for the materialized view table.'),
+    'field' => array(
+      'handler' => 'views_handler_field',
+      'click sortable' => TRUE, // This is use by the table display plugin.
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string',
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument_string',
+    ),
+  );
+
+  // indexed
+  $data['tripal_mviews']['indexed'] = array(
+    'title' => t('Indices'),
+    'help' => t('Any indices for this materialized view.'),
+    'field' => array(
+      'handler' => 'views_handler_field',
+      'click sortable' => TRUE, // This is use by the table display plugin.
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string',
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument_string',
+    ),
+  );
+
+  // query
+  $data['tripal_mviews']['query'] = array(
+    'title' => t('Query'),
+    'help' => t('The query used to populate the materialized view.'),
+    'field' => array(
+      'handler' => 'views_handler_field',
+      'click sortable' => TRUE, // This is use by the table display plugin.
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string',
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument_string',
+    ),
+  );
+
+  // special_index
+  $data['tripal_mviews']['special_index'] = array(
+    'title' => t('Special Index'),
+    'help' => t('Any special indices for the materialized view.'),
+    'field' => array(
+      'handler' => 'views_handler_field',
+      'click sortable' => TRUE, // This is use by the table display plugin.
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string',
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument_string',
+    ),
+  );
+
+  // last_update
+  $data['tripal_mviews']['last_update'] = array(
+    'title' => t('Updated'),
+    'help' => t('Date Last Updated.'),
+    'field' => array(
+      'handler' => 'views_handler_field_date',
+      'click sortable' => TRUE,
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_date',
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_date',
+    ),
+  );
+
+  // status
+  $data['tripal_mviews']['status'] = array(
+    'title' => t('Status'),
+    'help' => t('The status of the materialized view.'),
+    'field' => array(
+      'handler' => 'views_handler_field',
+      'click sortable' => TRUE, // This is use by the table display plugin.
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string',
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument_string',
+    ),
+  );
+
+  // comment
+  $data['tripal_mviews']['comment'] = array(
+    'title' => t('Description'),
+    'help' => t('Human-Readable Admin Description.'),
+    'field' => array(
+      'handler' => 'views_handler_field',
+      'click sortable' => TRUE, // This is use by the table display plugin.
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string',
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument_string',
+    ),
+  );
+
+  return $data;
+}

+ 420 - 0
tripal_chado/tripal_chado.views_default.inc

@@ -0,0 +1,420 @@
+<?php
+/**
+ * @file
+ * Describes core default views
+ */
+
+/**
+ * Describes core default views
+ *
+ * @ingroup tripal
+ */
+function tripal_chado_views_default_views() {
+  $views = array();
+
+  $view = tripal_admin_defaultview_custom_tables();
+  $views[$view->name] = $view;
+
+  $view = tripal_admin_defaultview_mviews();
+  $views[$view->name] = $view;
+
+  return $views;
+}
+
+/**
+ * Describes the custom tables administration view.
+ *
+ * @ingroup tripal
+ */
+function tripal_admin_defaultview_custom_tables() {
+
+  $view = new view();
+  $view->name = 'tripal_admin_custom_table';
+  $view->description = 'DO NOT DISABLE';
+  $view->tag = 'tripal admin';
+  $view->base_table = 'tripal_custom_tables';
+  $view->human_name = 'Chado Custom Table (Admin)';
+  $view->core = 7;
+  $view->api_version = '3.0';
+  $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
+
+  /* Display: Master */
+  $handler = $view->new_display('default', 'Master', 'default');
+  $handler->display->display_options['title'] = 'Custom Tables';
+  $handler->display->display_options['use_more_always'] = FALSE;
+  $handler->display->display_options['access']['type'] = 'none';
+  $handler->display->display_options['cache']['type'] = 'none';
+  $handler->display->display_options['query']['type'] = 'views_query';
+  $handler->display->display_options['exposed_form']['type'] = 'basic';
+  $handler->display->display_options['exposed_form']['options']['submit_button'] = 'Filter';
+  $handler->display->display_options['pager']['type'] = 'full';
+  $handler->display->display_options['pager']['options']['items_per_page'] = '25';
+  $handler->display->display_options['style_plugin'] = 'table';
+  /* Header: Global: Action Links */
+  $handler->display->display_options['header']['action_links_area']['id'] = 'action_links_area';
+  $handler->display->display_options['header']['action_links_area']['table'] = 'views';
+  $handler->display->display_options['header']['action_links_area']['field'] = 'action_links_area';
+  $handler->display->display_options['header']['action_links_area']['label'] = 'Action Links';
+  $handler->display->display_options['header']['action_links_area']['empty'] = TRUE;
+  $handler->display->display_options['header']['action_links_area']['link-1'] = array(
+    'label-1' => 'Add Custom Table',
+    'path-1' => 'admin/tripal/storage/chado/custom_tables/new',
+  );
+  $handler->display->display_options['header']['action_links_area']['link-2'] = array(
+    'label-2' => '',
+    'path-2' => '',
+  );
+  $handler->display->display_options['header']['action_links_area']['link-3'] = array(
+    'label-3' => '',
+    'path-3' => '',
+  );
+  $handler->display->display_options['header']['action_links_area']['link-4'] = array(
+    'label-4' => '',
+    'path-4' => '',
+  );
+  /* Field: Tripal Custom Tables: Custom Table ID */
+  $handler->display->display_options['fields']['table_id']['id'] = 'table_id';
+  $handler->display->display_options['fields']['table_id']['table'] = 'tripal_custom_tables';
+  $handler->display->display_options['fields']['table_id']['field'] = 'table_id';
+  $handler->display->display_options['fields']['table_id']['label'] = 'ID';
+  $handler->display->display_options['fields']['table_id']['element_class'] = 'extra-short-column';
+  $handler->display->display_options['fields']['table_id']['element_label_class'] = 'extra-short-column';
+  $handler->display->display_options['fields']['table_id']['element_label_colon'] = FALSE;
+  $handler->display->display_options['fields']['table_id']['separator'] = '';
+  /* Field: Tripal Custom Tables: Table Name */
+  $handler->display->display_options['fields']['table_name']['id'] = 'table_name';
+  $handler->display->display_options['fields']['table_name']['table'] = 'tripal_custom_tables';
+  $handler->display->display_options['fields']['table_name']['field'] = 'table_name';
+  $handler->display->display_options['fields']['table_name']['label'] = 'Name';
+  $handler->display->display_options['fields']['table_name']['alter']['make_link'] = TRUE;
+  $handler->display->display_options['fields']['table_name']['alter']['path'] = 'admin/tripal/storage/chado/custom_tables/view/[table_id]';
+  /* Field: Tripal Custom Tables: Materialized View ID */
+  $handler->display->display_options['fields']['mview_id']['id'] = 'mview_id';
+  $handler->display->display_options['fields']['mview_id']['table'] = 'tripal_custom_tables';
+  $handler->display->display_options['fields']['mview_id']['field'] = 'mview_id';
+  $handler->display->display_options['fields']['mview_id']['label'] = 'Is MView';
+  $handler->display->display_options['fields']['mview_id']['alter']['alter_text'] = TRUE;
+  $handler->display->display_options['fields']['mview_id']['alter']['text'] = 'Yes';
+  $handler->display->display_options['fields']['mview_id']['hide_empty'] = TRUE;
+  $handler->display->display_options['fields']['mview_id']['empty_zero'] = TRUE;
+  /* Field: Global: Custom text */
+  $handler->display->display_options['fields']['nothing']['id'] = 'nothing';
+  $handler->display->display_options['fields']['nothing']['table'] = 'views';
+  $handler->display->display_options['fields']['nothing']['field'] = 'nothing';
+  $handler->display->display_options['fields']['nothing']['label'] = 'Edit Link';
+  $handler->display->display_options['fields']['nothing']['exclude'] = TRUE;
+  $handler->display->display_options['fields']['nothing']['alter']['text'] = 'Edit';
+  $handler->display->display_options['fields']['nothing']['alter']['make_link'] = TRUE;
+  $handler->display->display_options['fields']['nothing']['alter']['path'] = 'admin/tripal/storage/chado/custom_tables/edit/[table_id]';
+  /* Field: Global: Custom text */
+  $handler->display->display_options['fields']['nothing_1']['id'] = 'nothing_1';
+  $handler->display->display_options['fields']['nothing_1']['table'] = 'views';
+  $handler->display->display_options['fields']['nothing_1']['field'] = 'nothing';
+  $handler->display->display_options['fields']['nothing_1']['label'] = 'Delete Link';
+  $handler->display->display_options['fields']['nothing_1']['exclude'] = TRUE;
+  $handler->display->display_options['fields']['nothing_1']['alter']['text'] = 'Delete';
+  $handler->display->display_options['fields']['nothing_1']['alter']['make_link'] = TRUE;
+  $handler->display->display_options['fields']['nothing_1']['alter']['path'] = 'admin/tripal/storage/chado/custom_tables/delete/[table_id]';
+  /* Field: Global: Custom text */
+  $handler->display->display_options['fields']['nothing_2']['id'] = 'nothing_2';
+  $handler->display->display_options['fields']['nothing_2']['table'] = 'views';
+  $handler->display->display_options['fields']['nothing_2']['field'] = 'nothing';
+  $handler->display->display_options['fields']['nothing_2']['label'] = '';
+  $handler->display->display_options['fields']['nothing_2']['alter']['text'] = '[nothing]   [nothing_1]';
+  $handler->display->display_options['fields']['nothing_2']['element_label_colon'] = FALSE;
+  /* Filter criterion: Tripal Custom Tables: Table Name */
+  $handler->display->display_options['filters']['table_name']['id'] = 'table_name';
+  $handler->display->display_options['filters']['table_name']['table'] = 'tripal_custom_tables';
+  $handler->display->display_options['filters']['table_name']['field'] = 'table_name';
+  $handler->display->display_options['filters']['table_name']['exposed'] = TRUE;
+  $handler->display->display_options['filters']['table_name']['expose']['operator_id'] = 'table_name_op';
+  $handler->display->display_options['filters']['table_name']['expose']['label'] = 'Table Name';
+  $handler->display->display_options['filters']['table_name']['expose']['operator'] = 'table_name_op';
+  $handler->display->display_options['filters']['table_name']['expose']['identifier'] = 'table_name';
+  $handler->display->display_options['filters']['table_name']['expose']['remember_roles'] = array(
+    2 => '2',
+    1 => 0,
+    3 => 0,
+  );
+
+  /* Display: Page */
+  $handler = $view->new_display('page', 'Page', 'page');
+  $handler->display->display_options['path'] = 'admin/tripal/storage/chado/custom_tables/tables';
+  $handler->display->display_options['menu']['type'] = 'default tab';
+  $handler->display->display_options['menu']['title'] = 'Custom Tables';
+  $handler->display->display_options['menu']['description'] = 'A list of existing custom tables';
+  $handler->display->display_options['menu']['weight'] = '-10';
+  $handler->display->display_options['menu']['name'] = 'management';
+  $handler->display->display_options['menu']['context'] = 0;
+  $handler->display->display_options['menu']['context_only_inline'] = 0;
+  $handler->display->display_options['tab_options']['weight'] = '0';
+
+  return $view;
+}
+
+/**
+ * Describes the materialized views administration view.
+ *
+ * @ingroup tripal
+ */
+function tripal_admin_defaultview_mviews() {
+
+  $view = new view();
+  $view->name = 'tripal_admin_mviews';
+  $view->description = 'DO NOT DISABLE';
+  $view->tag = 'tripal admin';
+  $view->base_table = 'tripal_mviews';
+  $view->human_name = 'Chado Materialized View (Admin)';
+  $view->core = 7;
+  $view->api_version = '3.0';
+  $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
+
+  /* Display: Master */
+  $handler = $view->new_display('default', 'Master', 'default');
+  $handler->display->display_options['title'] = 'Materialized Views';
+  $handler->display->display_options['use_more_always'] = FALSE;
+  $handler->display->display_options['access']['type'] = 'none';
+  $handler->display->display_options['cache']['type'] = 'none';
+  $handler->display->display_options['query']['type'] = 'views_query';
+  $handler->display->display_options['exposed_form']['type'] = 'basic';
+  $handler->display->display_options['exposed_form']['options']['submit_button'] = 'Filter';
+  $handler->display->display_options['pager']['type'] = 'full';
+  $handler->display->display_options['pager']['options']['items_per_page'] = '25';
+  $handler->display->display_options['style_plugin'] = 'table';
+  $handler->display->display_options['style_options']['columns'] = array(
+    'mview_id' => 'mview_id',
+    'name' => 'name',
+    'mv_table' => 'mv_table',
+    'comment' => 'comment',
+    'last_update' => 'last_update',
+    'status' => 'status',
+  );
+  $handler->display->display_options['style_options']['default'] = 'mview_id';
+  $handler->display->display_options['style_options']['info'] = array(
+    'mview_id' => array(
+      'sortable' => 1,
+      'default_sort_order' => 'asc',
+      'align' => '',
+      'separator' => '',
+      'empty_column' => 0,
+    ),
+    'name' => array(
+      'sortable' => 1,
+      'default_sort_order' => 'asc',
+      'align' => '',
+      'separator' => '',
+      'empty_column' => 0,
+    ),
+    'mv_table' => array(
+      'sortable' => 1,
+      'default_sort_order' => 'asc',
+      'align' => '',
+      'separator' => '',
+      'empty_column' => 0,
+    ),
+    'comment' => array(
+      'sortable' => 0,
+      'default_sort_order' => 'asc',
+      'align' => '',
+      'separator' => '',
+      'empty_column' => 0,
+    ),
+    'last_update' => array(
+      'sortable' => 1,
+      'default_sort_order' => 'asc',
+      'align' => '',
+      'separator' => '',
+      'empty_column' => 0,
+    ),
+    'status' => array(
+      'sortable' => 1,
+      'default_sort_order' => 'asc',
+      'align' => '',
+      'separator' => '',
+      'empty_column' => 0,
+    ),
+  );
+  /* Header: Global: Text area */
+  $handler->display->display_options['header']['area']['id'] = 'area';
+  $handler->display->display_options['header']['area']['table'] = 'views';
+  $handler->display->display_options['header']['area']['field'] = 'area';
+  $handler->display->display_options['header']['area']['label'] = 'Description';
+  $handler->display->display_options['header']['area']['empty'] = TRUE;
+  $handler->display->display_options['header']['area']['content'] = '<p>Materialized Views (MViews) are custom tables populated with a defined SQL statement. Because Chado is highly normalized and highly constrained it serves as a wonderful data storage platform, but unfortunately some queries may be slow. MViews alleviate slowness by aggregating data into tables that are more easy to query. Use MViews to create tables for custom search pages or custom Tripal module development.</p>
+  <p>MViews behaves in the following way:</p>
+  <ul>
+  <li>The SQL statement defined for an MVIEW will be used to populate the table</li>
+  <li>Altering the table structure of an MView will cause the MView table to be dropped and recreated. All records in the MView will be lost.</li>
+  <li>Altering the query of an existing view will not change the MView table. No records will be lost.</li>
+  <li>Repopulating an MView that is already populated will result in replacement of all records.</li>
+  <li>A database transaction will be used when populating MViews. Therefore replacement of records does not occur until the query completes. Any search forms or pages dependent on the MView will continue to function.</li>
+  </ul>';
+  $handler->display->display_options['header']['area']['format'] = 'full_html';
+  /* Header: Global: Action Links */
+  $handler->display->display_options['header']['action_links_area']['id'] = 'action_links_area';
+  $handler->display->display_options['header']['action_links_area']['table'] = 'views';
+  $handler->display->display_options['header']['action_links_area']['field'] = 'action_links_area';
+  $handler->display->display_options['header']['action_links_area']['label'] = 'Action Links';
+  $handler->display->display_options['header']['action_links_area']['link-1'] = array(
+    'label-1' => 'Add Materialized View',
+    'path-1' => 'admin/tripal/storage/chado/mviews/new',
+  );
+  $handler->display->display_options['header']['action_links_area']['link-2'] = array(
+    'label-2' => '',
+    'path-2' => '',
+  );
+  $handler->display->display_options['header']['action_links_area']['link-3'] = array(
+    'label-3' => '',
+    'path-3' => '',
+  );
+  $handler->display->display_options['header']['action_links_area']['link-4'] = array(
+    'label-4' => '',
+    'path-4' => '',
+  );
+  /* Field: Tripal Materialized Views: Materialized View ID */
+  $handler->display->display_options['fields']['mview_id']['id'] = 'mview_id';
+  $handler->display->display_options['fields']['mview_id']['table'] = 'tripal_mviews';
+  $handler->display->display_options['fields']['mview_id']['field'] = 'mview_id';
+  $handler->display->display_options['fields']['mview_id']['label'] = '';
+  $handler->display->display_options['fields']['mview_id']['element_class'] = 'extra-short-column';
+  $handler->display->display_options['fields']['mview_id']['element_label_class'] = 'extra-short-column';
+  $handler->display->display_options['fields']['mview_id']['element_label_colon'] = FALSE;
+  $handler->display->display_options['fields']['mview_id']['separator'] = '';
+  /* Field: Tripal Materialized Views: Name */
+  $handler->display->display_options['fields']['name']['id'] = 'name';
+  $handler->display->display_options['fields']['name']['table'] = 'tripal_mviews';
+  $handler->display->display_options['fields']['name']['field'] = 'name';
+  $handler->display->display_options['fields']['name']['alter']['make_link'] = TRUE;
+  $handler->display->display_options['fields']['name']['alter']['path'] = 'admin/tripal/storage/chado/mviews/report/[mview_id]';
+  /* Field: Tripal Materialized Views: Table */
+  $handler->display->display_options['fields']['mv_table']['id'] = 'mv_table';
+  $handler->display->display_options['fields']['mv_table']['table'] = 'tripal_mviews';
+  $handler->display->display_options['fields']['mv_table']['field'] = 'mv_table';
+  $handler->display->display_options['fields']['mv_table']['label'] = 'Table Name';
+  /* Field: Tripal Materialized Views: Description */
+  $handler->display->display_options['fields']['comment']['id'] = 'comment';
+  $handler->display->display_options['fields']['comment']['table'] = 'tripal_mviews';
+  $handler->display->display_options['fields']['comment']['field'] = 'comment';
+  /* Field: Tripal Materialized Views: Updated */
+  $handler->display->display_options['fields']['last_update']['id'] = 'last_update';
+  $handler->display->display_options['fields']['last_update']['table'] = 'tripal_mviews';
+  $handler->display->display_options['fields']['last_update']['field'] = 'last_update';
+  $handler->display->display_options['fields']['last_update']['label'] = 'Last Updated';
+  $handler->display->display_options['fields']['last_update']['date_format'] = 'long';
+  /* Field: Tripal Materialized Views: Status */
+  $handler->display->display_options['fields']['status']['id'] = 'status';
+  $handler->display->display_options['fields']['status']['table'] = 'tripal_mviews';
+  $handler->display->display_options['fields']['status']['field'] = 'status';
+  $handler->display->display_options['fields']['status']['empty'] = 'Not yet populated';
+  /* Field: Global: Custom text */
+  $handler->display->display_options['fields']['nothing']['id'] = 'nothing';
+  $handler->display->display_options['fields']['nothing']['table'] = 'views';
+  $handler->display->display_options['fields']['nothing']['field'] = 'nothing';
+  $handler->display->display_options['fields']['nothing']['label'] = 'Edit Link';
+  $handler->display->display_options['fields']['nothing']['exclude'] = TRUE;
+  $handler->display->display_options['fields']['nothing']['alter']['text'] = 'Edit';
+  $handler->display->display_options['fields']['nothing']['alter']['make_link'] = TRUE;
+  $handler->display->display_options['fields']['nothing']['alter']['path'] = 'admin/tripal/storage/chado/mviews/edit/[mview_id]';
+  /* Field: Global: Custom text */
+  $handler->display->display_options['fields']['nothing_1']['id'] = 'nothing_1';
+  $handler->display->display_options['fields']['nothing_1']['table'] = 'views';
+  $handler->display->display_options['fields']['nothing_1']['field'] = 'nothing';
+  $handler->display->display_options['fields']['nothing_1']['label'] = 'Delete Link';
+  $handler->display->display_options['fields']['nothing_1']['exclude'] = TRUE;
+  $handler->display->display_options['fields']['nothing_1']['alter']['text'] = 'Delete';
+  $handler->display->display_options['fields']['nothing_1']['alter']['make_link'] = TRUE;
+  $handler->display->display_options['fields']['nothing_1']['alter']['path'] = 'admin/tripal/storage/chado/mviews/delete/[mview_id]';
+  /* Field: Global: Custom text */
+  $handler->display->display_options['fields']['nothing_2']['id'] = 'nothing_2';
+  $handler->display->display_options['fields']['nothing_2']['table'] = 'views';
+  $handler->display->display_options['fields']['nothing_2']['field'] = 'nothing';
+  $handler->display->display_options['fields']['nothing_2']['label'] = 'Populate Link';
+  $handler->display->display_options['fields']['nothing_2']['exclude'] = TRUE;
+  $handler->display->display_options['fields']['nothing_2']['alter']['text'] = 'Populate';
+  $handler->display->display_options['fields']['nothing_2']['alter']['make_link'] = TRUE;
+  $handler->display->display_options['fields']['nothing_2']['alter']['path'] = 'admin/tripal/storage/chado/mviews/update/[mview_id]';
+  /* Field: Global: Custom text */
+  $handler->display->display_options['fields']['nothing_3']['id'] = 'nothing_3';
+  $handler->display->display_options['fields']['nothing_3']['table'] = 'views';
+  $handler->display->display_options['fields']['nothing_3']['field'] = 'nothing';
+  $handler->display->display_options['fields']['nothing_3']['label'] = '';
+  $handler->display->display_options['fields']['nothing_3']['alter']['text'] = '[nothing]   [nothing_1]<br />
+  [nothing_2]';
+  $handler->display->display_options['fields']['nothing_3']['element_class'] = 'short-column';
+  $handler->display->display_options['fields']['nothing_3']['element_label_class'] = 'short-column';
+  $handler->display->display_options['fields']['nothing_3']['element_label_colon'] = FALSE;
+  /* Filter criterion: Tripal Materialized Views: Name */
+  $handler->display->display_options['filters']['name']['id'] = 'name';
+  $handler->display->display_options['filters']['name']['table'] = 'tripal_mviews';
+  $handler->display->display_options['filters']['name']['field'] = 'name';
+  $handler->display->display_options['filters']['name']['group'] = 1;
+  $handler->display->display_options['filters']['name']['exposed'] = TRUE;
+  $handler->display->display_options['filters']['name']['expose']['operator_id'] = 'name_op';
+  $handler->display->display_options['filters']['name']['expose']['label'] = 'Name';
+  $handler->display->display_options['filters']['name']['expose']['operator'] = 'name_op';
+  $handler->display->display_options['filters']['name']['expose']['identifier'] = 'name';
+  $handler->display->display_options['filters']['name']['expose']['remember_roles'] = array(
+    2 => '2',
+    1 => 0,
+    3 => 0,
+  );
+  /* Filter criterion: Tripal Materialized Views: Table */
+  $handler->display->display_options['filters']['mv_table']['id'] = 'mv_table';
+  $handler->display->display_options['filters']['mv_table']['table'] = 'tripal_mviews';
+  $handler->display->display_options['filters']['mv_table']['field'] = 'mv_table';
+  $handler->display->display_options['filters']['mv_table']['group'] = 1;
+  $handler->display->display_options['filters']['mv_table']['exposed'] = TRUE;
+  $handler->display->display_options['filters']['mv_table']['expose']['operator_id'] = 'mv_table_op';
+  $handler->display->display_options['filters']['mv_table']['expose']['label'] = 'Table Name';
+  $handler->display->display_options['filters']['mv_table']['expose']['operator'] = 'mv_table_op';
+  $handler->display->display_options['filters']['mv_table']['expose']['identifier'] = 'mv_table';
+  $handler->display->display_options['filters']['mv_table']['expose']['remember_roles'] = array(
+    2 => '2',
+    1 => 0,
+    3 => 0,
+  );
+  /* Filter criterion: Tripal Materialized Views: Module Name */
+  $handler->display->display_options['filters']['modulename']['id'] = 'modulename';
+  $handler->display->display_options['filters']['modulename']['table'] = 'tripal_mviews';
+  $handler->display->display_options['filters']['modulename']['field'] = 'modulename';
+  $handler->display->display_options['filters']['modulename']['group'] = 1;
+  $handler->display->display_options['filters']['modulename']['exposed'] = TRUE;
+  $handler->display->display_options['filters']['modulename']['expose']['operator_id'] = 'modulename_op';
+  $handler->display->display_options['filters']['modulename']['expose']['label'] = 'Module';
+  $handler->display->display_options['filters']['modulename']['expose']['operator'] = 'modulename_op';
+  $handler->display->display_options['filters']['modulename']['expose']['identifier'] = 'modulename';
+  $handler->display->display_options['filters']['modulename']['expose']['remember_roles'] = array(
+    2 => '2',
+    1 => 0,
+    3 => 0,
+  );
+  /* Filter criterion: Tripal Materialized Views: Status */
+  $handler->display->display_options['filters']['status']['id'] = 'status';
+  $handler->display->display_options['filters']['status']['table'] = 'tripal_mviews';
+  $handler->display->display_options['filters']['status']['field'] = 'status';
+  $handler->display->display_options['filters']['status']['group'] = 1;
+  $handler->display->display_options['filters']['status']['exposed'] = TRUE;
+  $handler->display->display_options['filters']['status']['expose']['operator_id'] = 'status_op';
+  $handler->display->display_options['filters']['status']['expose']['label'] = 'Status';
+  $handler->display->display_options['filters']['status']['expose']['operator'] = 'status_op';
+  $handler->display->display_options['filters']['status']['expose']['identifier'] = 'status';
+  $handler->display->display_options['filters']['status']['expose']['remember_roles'] = array(
+    2 => '2',
+    1 => 0,
+    3 => 0,
+  );
+
+  /* Display: Page */
+  $handler = $view->new_display('page', 'Page', 'page');
+  $handler->display->display_options['path'] = 'admin/tripal/storage/chado/mviews/mviews';
+  $handler->display->display_options['menu']['type'] = 'default tab';
+  $handler->display->display_options['menu']['title'] = 'Materialized Views';
+  $handler->display->display_options['menu']['description'] = 'a list of mviews';
+  $handler->display->display_options['menu']['weight'] = '-10';
+  $handler->display->display_options['menu']['name'] = 'management';
+  $handler->display->display_options['menu']['context'] = 0;
+  $handler->display->display_options['menu']['context_only_inline'] = 0;
+  $handler->display->display_options['tab_options']['weight'] = '0';
+
+  return $view;
+}

+ 1 - 1
tripal_views/tripal_views.info

@@ -17,4 +17,4 @@ files[] = views/handlers/tripal_views_handler_filter_select_string.inc
 files[] = views/handlers/tripal_views_handler_field_aggregate.inc
 
 dependencies[] = views
-dependencies[] = tripal_core
+dependencies[] = tripal

+ 13 - 12
tripal_views/tripal_views.module

@@ -13,7 +13,7 @@
  */
 
 require_once 'api/tripal_views.api.inc';
-require_once 'api/tripal_views.DEPRECATED.inc';
+//require_once 'api/tripal_views.DEPRECATED.inc';
 
 require_once 'tripal_views.views.inc';
 
@@ -40,7 +40,8 @@ function tripal_views_menu() {
     'type' => MENU_NORMAL_ITEM,
   );
 
-  $items['admin/tripal/views-integration'] = array(
+  // TODO: should the views integration be moved into the tripal_chado module?
+  $items['admin/tripal/storage/chado/views-integration'] = array(
     'title' => 'Views Integration',
     'description' => 'Integration of all the chado tables and fields with Drupal Views.',
     'page callback' => 'tripal_views_admin_integration_view',
@@ -60,7 +61,7 @@ function tripal_views_menu() {
   );
   */
 
-  $items['admin/tripal/views-integration/new'] = array(
+  $items['admin/tripal/storage/chado/views-integration/new'] = array(
     'title' => 'Integrate A Table',
     'description' => 'Describe to Tripal Views how to integrate a new chado table or materialized view.',
     'page callback' => 'drupal_get_form',
@@ -70,7 +71,7 @@ function tripal_views_menu() {
     'weight' => 1,
   );
 
-  $items['admin/tripal/views-integration/edit/%'] = array(
+  $items['admin/tripal/storage/chado/views-integration/edit/%'] = array(
     'title' => 'Edit Views Integration',
     'page callback' => 'drupal_get_form',
     'page arguments' => array('tripal_views_integration_form', 4),
@@ -78,7 +79,7 @@ function tripal_views_menu() {
     'type' => MENU_CALLBACK,
   );
 
-  $items['admin/tripal/views-integration/delete/%'] = array(
+  $items['admin/tripal/storage/chado/views-integration/delete/%'] = array(
     'title' => 'Delete Views Integration',
     'page callback' => 'tripal_views_integration_delete',
     'page arguments' => array(4),
@@ -86,7 +87,7 @@ function tripal_views_menu() {
     'type' => MENU_CALLBACK,
   );
 
-  $items['admin/tripal/views-integration/delete-all/confirm'] = array(
+  $items['admin/tripal/storage/chado/views-integration/delete-all/confirm'] = array(
     'title' => 'Delete ALL Views Integration',
     'page callback' => 'drupal_get_form',
     'page arguments' => array('tripal_views_integration_delete_all_form'),
@@ -94,7 +95,7 @@ function tripal_views_menu() {
     'type' => MENU_CALLBACK,
   );
 
-  $items['admin/tripal/views-integration/import'] = array(
+  $items['admin/tripal/storage/chado/views-integration/import'] = array(
     'title' => 'Import Views Integration',
     'description' => 'Import a Tripal Views Integration from another site.',
     'page callback' => 'drupal_get_form',
@@ -104,7 +105,7 @@ function tripal_views_menu() {
     'weight' => 2,
   );
 
-  $items['admin/tripal/views-integration/export'] = array(
+  $items['admin/tripal/storage/chado/views-integration/export'] = array(
     'title' => 'Export Views Integration',
     'description' => 'Export a Tripal Views Integration for use in another Tripal site',
     'page callback' => 'drupal_get_form',
@@ -114,7 +115,7 @@ function tripal_views_menu() {
     'weight' => 3,
   );
 
-  $items['admin/tripal/views-integration/export/%'] = array(
+  $items['admin/tripal/storage/chado/views-integration/export/%'] = array(
     'title' => 'Export Views Integration',
     'description' => 'Export a Tripal Views Integration for use in another Tripal site',
     'page callback' => 'drupal_get_form',
@@ -123,7 +124,7 @@ function tripal_views_menu() {
     'type' => MENU_CALLBACK,
   );
 
-  $items['admin/tripal/views-integration/help'] = array(
+  $items['admin/tripal/storage/chado/views-integration/help'] = array(
     'title' => 'Help',
     'description' => "A description of the Tripal Views module including a short description of it's usage.",
     'page callback' => 'theme',
@@ -133,7 +134,7 @@ function tripal_views_menu() {
     'weight' => 10,
   );
 
-  $items['admin/tripal/views-integrations/views/integrations/enable'] = array(
+  $items['admin/tripal/storage/chado/views-integrations/views/integrations/enable'] = array(
     'title' => 'Enable Integrations Administrative View',
     'page callback' => 'tripal_enable_view',
     'page arguments' => array('tripal_views_admin_integrations', 'admin/tripal/views-integrations'),
@@ -150,7 +151,7 @@ function tripal_views_menu() {
  * @ingroup tripal_views
  */
 function tripal_views_init() {
-
+return;
   // Need to ensure that all chado tables are integrated w/out making
   // the user go to views UI. It would be ideal to do this in a hook called only once
   // directly after install/enabling of the module but such a hook doesn't

+ 1 - 1
tripal_views/tripal_views.views_default.inc

@@ -29,7 +29,7 @@ function tripal_views_defaultview_admin_integrations() {
   $view->description = 'DO NOT DISABLE';
   $view->tag = 'tripal admin';
   $view->base_table = 'tripal_views';
-  $view->human_name = 'Tripal Views Admin';
+  $view->human_name = 'Tripal Views (Admin)';
   $view->core = 7;
   $view->api_version = '3.0';
   $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */