|
@@ -292,47 +292,13 @@ function chado_stock_form($node, $form_state) {
|
|
|
|
|
|
// PROPERTIES FORM
|
|
|
//---------------------------------------------
|
|
|
- $ontology = variable_get('chado_stock_prop_types_cv', FALSE);
|
|
|
- if (!$ontology) {
|
|
|
- tripal_core_report_error(
|
|
|
- 'chado_stock',
|
|
|
- TRIPAL_ERROR,
|
|
|
- 'Stock property type controlled vocabulary is not set. please set it in the Stock configuration form.'
|
|
|
- );
|
|
|
- tripal_core_report_error(
|
|
|
- 'chado_stock',
|
|
|
- TRIPAL_ERROR,
|
|
|
- 'Unable to add properties form to the node form because stock property type controlled vocabulary is not set'
|
|
|
- );
|
|
|
- }
|
|
|
- else {
|
|
|
- // ontology name needed for properties api
|
|
|
- $cv = tripal_core_chado_select('cv',array('name'),array('cv_id' => $ontology));
|
|
|
- $ontology_name = $cv[0]->name;
|
|
|
-
|
|
|
- // get the stockprop types for the property drop-down
|
|
|
- $properties = array();
|
|
|
- $properties[] = 'Select a Property';
|
|
|
- $sql = "
|
|
|
- SELECT DISTINCT CVT.cvterm_id, CVT.name, CVT.definition
|
|
|
- FROM {cvterm} CVT
|
|
|
- INNER JOIN {cv} CV ON CVT.cv_id = CV.cv_id
|
|
|
- WHERE
|
|
|
- CV.name = :ontology AND
|
|
|
- NOT CVT.is_obsolete = 1
|
|
|
- ORDER BY CVT.name ASC
|
|
|
- ";
|
|
|
- $prop_types = chado_query($sql, array(':ontology' => $ontology_name));
|
|
|
- while ($prop = $prop_types->fetchObject()) {
|
|
|
- $properties[$prop->cvterm_id] = $prop->name;
|
|
|
- }
|
|
|
-
|
|
|
- $exclude = array();
|
|
|
- $include = array();
|
|
|
- $instructions = t('To add additional properties to the drop down. ' . l("Add terms to the ".$ontology_name." vocabulary", "admin/tripal/chado/tripal_cv/cvterm/add") . ".");
|
|
|
- tripal_core_properties_form($form, $form_state, 'stockprop', 'stock_id', $ontology_name,
|
|
|
- $properties, $stock_id, $exclude, $include, $instructions, 'Properties');
|
|
|
- }
|
|
|
+ $details = array(
|
|
|
+ 'property_table' => 'stockprop',
|
|
|
+ 'base_foreign_key' => 'stock_id',
|
|
|
+ 'base_key_value' => $stock_id,
|
|
|
+ 'cv_id' => variable_get('chado_stock_prop_types_cv', FALSE)
|
|
|
+ );
|
|
|
+ tripal_api_chado_node_properties_form($form, $form_state, $details);
|
|
|
|
|
|
// ADDITIONAL DBXREFS FORM
|
|
|
//---------------------------------------------
|
|
@@ -577,31 +543,15 @@ function chado_stock_insert($node) {
|
|
|
|
|
|
// Now add properties
|
|
|
if ($stock_added) {
|
|
|
- $ontology = variable_get('chado_stock_prop_types_cv', FALSE);
|
|
|
- $cv = tripal_core_chado_select('cv',array('name'),array('cv_id' => $ontology));
|
|
|
- $ontology_name = $cv[0]->name;
|
|
|
-
|
|
|
- $properties = tripal_core_properties_form_retreive($node, $ontology_name);
|
|
|
- foreach ($properties as $property => $elements) {
|
|
|
- foreach ($elements as $rank => $value) {
|
|
|
- $success = tripal_core_insert_property(
|
|
|
- 'stock',
|
|
|
- $stock_id,
|
|
|
- $property,
|
|
|
- $ontology_name,
|
|
|
- $value
|
|
|
- );
|
|
|
|
|
|
- if (!$success) {
|
|
|
- watchdog(
|
|
|
- 'tripal_stock',
|
|
|
- 'Stock Insert: Unable to insert property %cvterm %value.',
|
|
|
- array('%cvterm' => $property, '%value' => $value),
|
|
|
- WATCHDOG_ERROR
|
|
|
- );
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
+ $details = array(
|
|
|
+ 'property_table' => 'stockprop',
|
|
|
+ 'base_table' => 'stock',
|
|
|
+ 'foreignkey_name' => 'stock_id',
|
|
|
+ 'foreignkey_value' => $stock_id
|
|
|
+ );
|
|
|
+ tripal_api_chado_node_properties_form_update_properties($node, $details);
|
|
|
+
|
|
|
}
|
|
|
|
|
|
// Now add the additional references
|
|
@@ -768,36 +718,15 @@ function chado_stock_update($node) {
|
|
|
|
|
|
// now update the properties
|
|
|
if ($node->stock_id > 0) {
|
|
|
- $stock_id = $node->stock_id;
|
|
|
-
|
|
|
- $ontology = variable_get('chado_stock_prop_types_cv', FALSE);
|
|
|
- $cv = tripal_core_chado_select('cv',array('name'),array('cv_id' => $ontology));
|
|
|
- $ontology_name = $cv[0]->name;
|
|
|
-
|
|
|
- // now add in the properties by first removing any the stock
|
|
|
- // already has and adding the ones we have
|
|
|
- tripal_core_chado_delete('stockprop', array('stock_id' => $stock_id));
|
|
|
- $properties = tripal_core_properties_form_retreive($node, $ontology_name);
|
|
|
- foreach ($properties as $property => $elements) {
|
|
|
- foreach ($elements as $rank => $value) {
|
|
|
- $success = tripal_core_insert_property(
|
|
|
- 'stock',
|
|
|
- $stock_id,
|
|
|
- $property,
|
|
|
- $ontology_name,
|
|
|
- $value
|
|
|
- );
|
|
|
|
|
|
- if (!$success) {
|
|
|
- watchdog(
|
|
|
- 'tripal_stock',
|
|
|
- 'Stock Update: Unable to insert property %cvterm %value.',
|
|
|
- array('%cvterm' => $property, '%value' => $value),
|
|
|
- WATCHDOG_ERROR
|
|
|
- );
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
+ $details = array(
|
|
|
+ 'property_table' => 'stockprop',
|
|
|
+ 'base_table' => 'stock',
|
|
|
+ 'foreignkey_name' => 'stock_id',
|
|
|
+ 'foreignkey_value' => $node->stock_id
|
|
|
+ );
|
|
|
+ tripal_api_chado_node_properties_form_update_properties($node, $details);
|
|
|
+
|
|
|
}
|
|
|
|
|
|
// now update the additional dbxrefs
|