Преглед изворни кода

Added new-style views integration for feature, genetic, library, natural diversity, phenotype, project, pub, and stock modules

Lacey Sanderson пре 12 година
родитељ
комит
0ec9c56953

+ 2 - 1
tripal_feature/tripal_feature.api.inc

@@ -212,7 +212,7 @@ function tripal_feature_chado_feature_cvterm_schema() {
   $description['foreign keys']['cvterm'] = array(
         'table' => 'cvterm',
         'columns' => array(
-          'type_id' => 'cvterm_id',
+          'cvterm_id' => 'cvterm_id',
         ),
   );
   $description['foreign keys']['pub'] = array(
@@ -221,6 +221,7 @@ function tripal_feature_chado_feature_cvterm_schema() {
           'pub_id' => 'pub_id',
         ),
   );
+  
   return $description;
 }
 /**

+ 1 - 1
tripal_feature/tripal_feature.views.inc

@@ -51,7 +51,7 @@ function tripal_feature_views_data()  {
     }
         
     $tables = array(
-      //'feature_cvterm',
+      'feature_cvterm',
       'feature_cvterm_dbxref',
       'feature_cvterm_pub',
       'feature_cvtermprop',

+ 28 - 1
tripal_genetic/tripal_genetic.views.inc

@@ -24,7 +24,34 @@ require_once('views/genotype.views.inc');
 function tripal_genetic_views_data()  {
   $data = array();
   
-  $data = array_merge($data, retrieve_genotype_views_data());
+  //$data = array_merge($data, retrieve_genotype_views_data());
+
+  if (module_exists('tripal_views')) {
+    $tables = array(
+      'environment',
+      'genotype',
+      'phenstatement'
+    );
+    foreach ($tables as $tablename) {
+      if (!tripal_views_is_integrated($tablename, 10)) {
+        $table_integration_array = tripal_views_get_integration_array_for_chado_table($tablename,TRUE);
+        tripal_views_integration_add_entry($table_integration_array);
+      }
+    }
+        
+    $tables = array(
+      'environment_cvterm',
+      'feautre_genotype',
+      'phendesc',
+      'phenotype_comparison'
+    );
+    foreach ($tables as $tablename) {
+      if (!tripal_views_is_integrated($tablename, 10)) {
+        $table_integration_array = tripal_views_get_integration_array_for_chado_table($tablename,FALSE);
+        tripal_views_integration_add_entry($table_integration_array);
+      }
+    }
+  }
   
   return $data;
 }

+ 29 - 3
tripal_library/tripal_library.views.inc

@@ -33,9 +33,35 @@ require_once('views/misc_tables.views.inc');
 function tripal_library_views_data()  {
   $data = array();
   
-  $data = array_merge($data, retrieve_library_views_data());
-  $data = array_merge($data, retrieve_chado_library_views_data());
-  $data = array_merge($data, retrieve_library_misc_tables_views_data());
+  //$data = array_merge($data, retrieve_library_views_data());
+  //$data = array_merge($data, retrieve_chado_library_views_data());
+  //$data = array_merge($data, retrieve_library_misc_tables_views_data());
+  
+  if (module_exists('tripal_views')) {
+    $tables = array(
+      'library'
+    );
+    foreach ($tables as $tablename) {
+      if (!tripal_views_is_integrated($tablename, 10)) {
+        $table_integration_array = tripal_views_get_integration_array_for_chado_table($tablename,TRUE);
+        tripal_views_integration_add_entry($table_integration_array);
+      }
+    }
+        
+    $tables = array(
+      'library_cvterm',
+      'library_feature',
+      'library_pub',
+      'library_synonym',
+      'libraryprop'
+    );
+    foreach ($tables as $tablename) {
+      if (!tripal_views_is_integrated($tablename, 10)) {
+        $table_integration_array = tripal_views_get_integration_array_for_chado_table($tablename,FALSE);
+        tripal_views_integration_add_entry($table_integration_array);
+      }
+    }
+  }
   
   return $data;
 }

+ 52 - 12
tripal_natural_diversity/tripal_natural_diversity.views.inc

@@ -20,26 +20,66 @@
  *   includes basic details about the table, fields in that table and
  *   relationships between that table and others (joins)
  */
-require_once('views/nd_experiment.views.inc');
-require_once('views/nd_experimentprop.views.inc');
-require_once('views/nd_geolocation.views.inc');
-require_once('views/nd_geolocationprop.views.inc');
-require_once('views/nd_reagent.views.inc');
-require_once('views/nd_reagentprop.views.inc');
+//require_once('views/nd_experiment.views.inc');
+//require_once('views/nd_experimentprop.views.inc');
+//require_once('views/nd_geolocation.views.inc');
+//require_once('views/nd_geolocationprop.views.inc');
+//require_once('views/nd_reagent.views.inc');
+//require_once('views/nd_reagentprop.views.inc');
 function tripal_natural_diversity_views_data()  {
   $data = array();
   
   //EXPERIMENT
-  $data = array_merge($data, retrieve_nd_experiment_views_data());
-  $data = array_merge($data, retrieve_nd_experimentprop_views_data());
+  //$data = array_merge($data, retrieve_nd_experiment_views_data());
+  //$data = array_merge($data, retrieve_nd_experimentprop_views_data());
   
   // GEOLOCATION
-  $data = array_merge($data, retrieve_nd_geolocation_views_data());
-  $data = array_merge($data, retrieve_nd_geolocationprop_views_data());
+  //$data = array_merge($data, retrieve_nd_geolocation_views_data());
+  //$data = array_merge($data, retrieve_nd_geolocationprop_views_data());
   
   // REAGENTS
-  $data = array_merge($data, retrieve_nd_reagent_views_data());
-  $data = array_merge($data, retrieve_nd_reagentprop_views_data());
+  //$data = array_merge($data, retrieve_nd_reagent_views_data());
+  //$data = array_merge($data, retrieve_nd_reagentprop_views_data());
+
+  if (module_exists('tripal_views')) {
+    $tables = array(
+      'nd_experiment',
+      'nd_geolocation',
+      'nd_protocol',
+      'nd_reagent'
+    );
+    foreach ($tables as $tablename) {
+      if (!tripal_views_is_integrated($tablename, 10)) {
+        $table_integration_array = tripal_views_get_integration_array_for_chado_table($tablename,TRUE);
+        tripal_views_integration_add_entry($table_integration_array);
+      }
+    }
+        
+    $tables = array(
+      'nd_experiment_contact',
+      'nd_experiment_dbxref',
+      'nd_experiment_genotype',
+      'nd_experiment_phenotype',
+      'nd_experiment_project',
+      'nd_experiment_protocol',
+      'nd_experiment_pub',
+      'nd_experiment_stock',
+      'nd_experiment_stock_dbxref',
+      'nd_experiment_stockprop',
+      'nd_experimentprop',
+      'nd_geolocationprop',
+      'nd_protocol_reagent',
+      'nd_protocolprop',
+      'nd_reagent_relationship',
+      'nd_reagentprop'
+    );
+    foreach ($tables as $tablename) {
+      if (!tripal_views_is_integrated($tablename, 10)) {
+        $table_integration_array = tripal_views_get_integration_array_for_chado_table($tablename,FALSE);
+        tripal_views_integration_add_entry($table_integration_array);
+      }
+    }
+  }
   
   return $data;
 }

+ 23 - 0
tripal_phenotype/tripal_phenotype.views.inc

@@ -22,6 +22,29 @@
  */
 function tripal_phenotype_views_data()  {
   $data = array();
+
+  if (module_exists('tripal_views')) {
+    $tables = array(
+      'phenotype'
+    );
+    foreach ($tables as $tablename) {
+      if (!tripal_views_is_integrated($tablename, 10)) {
+        $table_integration_array = tripal_views_get_integration_array_for_chado_table($tablename,TRUE);
+        tripal_views_integration_add_entry($table_integration_array);
+      }
+    }
+        
+    $tables = array(
+      'feature_phenotype',
+      'phenotype_cvterm'
+    );
+    foreach ($tables as $tablename) {
+      if (!tripal_views_is_integrated($tablename, 10)) {
+        $table_integration_array = tripal_views_get_integration_array_for_chado_table($tablename,FALSE);
+        tripal_views_integration_add_entry($table_integration_array);
+      }
+    }
+  }
   
   return $data;
 }

+ 23 - 2
tripal_project/tripal_project.views.inc

@@ -25,8 +25,29 @@ require_once('views/project.views.inc');
 function tripal_project_views_data()  {
   $data = array();
   
-  $data = array_merge($data, retrieve_project_views_data());
-  $data = array_merge($data, retrieve_project_views_data());
+  //$data = array_merge($data, retrieve_project_views_data());
+  //$data = array_merge($data, retrieve_project_views_data());
+
+  if (module_exists('tripal_views')) {
+    $tables = array(
+      'project'
+    );
+    foreach ($tables as $tablename) {
+      if (!tripal_views_is_integrated($tablename, 10)) {
+        $table_integration_array = tripal_views_get_integration_array_for_chado_table($tablename,TRUE);
+        tripal_views_integration_add_entry($table_integration_array);
+      }
+    }
+        
+    $tables = array(
+    );
+    foreach ($tables as $tablename) {
+      if (!tripal_views_is_integrated($tablename, 10)) {
+        $table_integration_array = tripal_views_get_integration_array_for_chado_table($tablename,FALSE);
+        tripal_views_integration_add_entry($table_integration_array);
+      }
+    }
+  }
   
   return $data;
 }

+ 25 - 0
tripal_pub/tripal_pub.views.inc

@@ -22,6 +22,31 @@
  */
 function tripal_pub_views_data()  {
   $data = array();
+
+  if (module_exists('tripal_views')) {
+    $tables = array(
+      'pub'
+    );
+    foreach ($tables as $tablename) {
+      if (!tripal_views_is_integrated($tablename, 10)) {
+        $table_integration_array = tripal_views_get_integration_array_for_chado_table($tablename,TRUE);
+        tripal_views_integration_add_entry($table_integration_array);
+      }
+    }
+        
+    $tables = array(
+      'pub_dbxref',
+      'pub_relationship',
+      'pubauthor',
+      'pubprop'
+    );
+    foreach ($tables as $tablename) {
+      if (!tripal_views_is_integrated($tablename, 10)) {
+        $table_integration_array = tripal_views_get_integration_array_for_chado_table($tablename,FALSE);
+        tripal_views_integration_add_entry($table_integration_array);
+      }
+    }
+  }
   
   return $data;
 }

+ 35 - 3
tripal_stock/tripal_stock.views.inc

@@ -34,9 +34,41 @@ require_once('views/misc_tables.views.inc');
 function tripal_stock_views_data()  {
   $data = array();
 
-  $data = array_merge($data, retrieve_stock_views_data());
-  $data = array_merge($data, retrieve_chado_stock_views_data());
-  $data = array_merge($data, retrieve_stock_misc_tables_views_data());
+  //$data = array_merge($data, retrieve_stock_views_data());
+  //$data = array_merge($data, retrieve_chado_stock_views_data());
+  //$data = array_merge($data, retrieve_stock_misc_tables_views_data());
+
+  if (module_exists('tripal_views')) {
+    $tables = array(
+      'stock',
+      'stockcollection'
+    );
+    foreach ($tables as $tablename) {
+      if (!tripal_views_is_integrated($tablename, 10)) {
+        $table_integration_array = tripal_views_get_integration_array_for_chado_table($tablename,TRUE);
+        tripal_views_integration_add_entry($table_integration_array);
+      }
+    }
+        
+    $tables = array(
+      'stock_cvterm',
+      'stock_dbxref',
+      'stock_genotype',
+      'stock_pub',
+      'stock_relationship',
+      'stock_relationship_pub',
+      'stockcollection_stock',
+      'stockcollectionprop',
+      'stockprop',
+      'stockprop_pub'
+    );
+    foreach ($tables as $tablename) {
+      if (!tripal_views_is_integrated($tablename, 10)) {
+        $table_integration_array = tripal_views_get_integration_array_for_chado_table($tablename,FALSE);
+        tripal_views_integration_add_entry($table_integration_array);
+      }
+    }
+  }
   
   return $data;
 }

+ 9 - 0
tripal_views/tripal_views.api.inc

@@ -143,6 +143,7 @@ function tripal_views_integration_add_entry($defn_array) {
     
     // Insert Field Definitions
     foreach ($defn_array['fields'] as $field) {
+      
       $field_record = array(
       	'setup_id' => $view_record['setup_id'],
         'column_name' => $field['name'],
@@ -285,6 +286,10 @@ function tripal_views_get_integration_array_for_chado_table ($table_name, $base_
   );
   
   // Add fields
+  if (!isset($schema['fields'])) { 
+    $schema['fields'] = array();
+    drupal_set_message('There are no fields defined for '.$table_name.' in the Chado Schema API.','warning');
+  }
   foreach ($schema['fields'] as $field_name => $field_schema) {
     
     // Base field definition
@@ -335,6 +340,10 @@ function tripal_views_get_integration_array_for_chado_table ($table_name, $base_
   }
   
   // Add Joins to fields
+  if (!isset($schema['foreign keys'])) {
+    $schema['foreign keys'] = array();
+    drupal_set_message('There are no foreign keys defined for '.$table_name.' in the Chado Schema API.','warning');
+  }
   foreach ($schema['foreign keys'] as $foreign_key_schema) {
     foreach ($foreign_key_schema['columns'] as $left_field => $right_field) {
       $defn_array['fields'][$left_field]['joins'][ $foreign_key_schema['table'] ] = array(

+ 8 - 1
tripal_views/tripal_views.views.inc

@@ -486,7 +486,7 @@ function tripal_views_views_data(){
          if(!$table_desc){            
             $table_desc = tripal_get_chado_custom_schema($base_table);
          }
-         $fields = $table_desc['fields'];
+         $fields = ($table_desc['fields']) ? $table_desc['fields'] : array();
          foreach($fields as $column => $attrs){
             $base_fields[$column] = array(
               'column_name' => $column,
@@ -541,6 +541,7 @@ function tripal_views_views_data(){
      // now add the joins
      $sql = "SELECT * FROM {tripal_views_join} WHERE setup_id = %d";
      $joins = db_query($sql,$setup_id);
+     if (!isset($joins)) { $joins = array(); }
      while($join = db_fetch_object($joins)){               
         $left_table = $join->left_table;
         $left_field = $join->left_field;
@@ -568,8 +569,10 @@ function tripal_views_views_data(){
         }
       }
     }
+    
     return $data;
 }
+
 /**
  *
  * @ingroup tripal_views
@@ -628,6 +631,7 @@ function tripal_views_views_data_alter(&$data) {
     }
     return $data;
 }
+
 /**
  * Implementation of hook_views_plugins().
  */
@@ -681,6 +685,7 @@ function tripal_views_views_pre_view(&$view,&$display_id,&$args){
    // have access to everything needed for this view to work properlys
    $_GET = array_merge($_GET, $_POST);
 }
+
 /**
  * Implementation of hook_views_pre_build().
  */
@@ -692,6 +697,7 @@ function tripal_views_views_pre_view(&$view,&$display_id,&$args){
    $form = drupal_get_form('tripal_views_data_export_download_form',$view,$display_id,$args);
    $view->attachment_after = $form;
 }*/
+
 /**
  * 
  */
@@ -750,6 +756,7 @@ function tripal_views_data_export_download_form(&$form_state, $view,$display_id,
    
    return $form;
 }
+
 /**
  * 
  */