|
@@ -47,6 +47,12 @@ class chado_base__organism_id extends TripalField {
|
|
|
return $field_info;
|
|
|
}
|
|
|
|
|
|
+ $is_required = FALSE;
|
|
|
+ if (array_key_exists('not null', $schema['fields']['organism_id']) and
|
|
|
+ $schema['fields']['organism_id']['not null']) {
|
|
|
+ $is_required = TRUE;
|
|
|
+ }
|
|
|
+
|
|
|
// There is an organism_id column so attach the field!
|
|
|
$field_info = array(
|
|
|
'field_name' => $table_name . '__organism_id',
|
|
@@ -54,7 +60,7 @@ class chado_base__organism_id extends TripalField {
|
|
|
'widget_type' => 'chado_base__organism_id_widget',
|
|
|
'description' => 'Select an organism.',
|
|
|
'label' => 'Organism',
|
|
|
- 'is_required' => 0,
|
|
|
+ 'is_required' => $is_required,
|
|
|
'storage' => 'field_chado_storage',
|
|
|
'widget_settings' => array(
|
|
|
'display_label' => 1
|
|
@@ -126,9 +132,9 @@ class chado_base__organism_id extends TripalField {
|
|
|
$field_table = $field['settings']['chado_table'];
|
|
|
$field_column = $field['settings']['chado_column'];
|
|
|
|
|
|
- $default_value = 0;
|
|
|
- if (array_key_exists($field_table . '__organism_id', $items[0])) {
|
|
|
- $default_value = $items[0][$field_table . '__organism_id'];
|
|
|
+ $organism_id = 0;
|
|
|
+ if (count($items) > 0 and array_key_exists($field_table . '__organism_id', $items[0])) {
|
|
|
+ $organism_id = $items[0][$field_table . '__organism_id'];
|
|
|
}
|
|
|
|
|
|
$widget['value'] = array(
|
|
@@ -141,7 +147,7 @@ class chado_base__organism_id extends TripalField {
|
|
|
'#title' => $element['#title'],
|
|
|
'#description' => $element['#description'],
|
|
|
'#options' => $options,
|
|
|
- '#default_value' => $default_value,
|
|
|
+ '#default_value' => $organism_id,
|
|
|
'#required' => $element['#required'],
|
|
|
'#weight' => isset($element['#weight']) ? $element['#weight'] : 0,
|
|
|
'#delta' => $delta,
|
|
@@ -162,18 +168,25 @@ class chado_base__organism_id extends TripalField {
|
|
|
$field_table = $field['settings']['chado_table'];
|
|
|
$field_column = $field['settings']['chado_column'];
|
|
|
|
|
|
- $organism = $record->organism_id;
|
|
|
- $string = $settings['field_display_string'];
|
|
|
- $value = tripal_replace_chado_tokens($string, $organism);
|
|
|
-
|
|
|
- $entity->{$field_name}['und'][0]['value'] = $value;
|
|
|
- $entity->{$field_name}['und'][0][$field_table . '__organism_id'] = $organism->organism_id;
|
|
|
+ // Set some defaults for the empty record.
|
|
|
+ $entity->{$field_name}['und'][0] = array(
|
|
|
+ 'value' => '',
|
|
|
+ 'organism__type_id' => '',
|
|
|
+ );
|
|
|
|
|
|
- // Is there a published entity for this organism?
|
|
|
- if (property_exists($entity->chado_record->$field_column, 'entity_id')) {
|
|
|
- $fk_entity_id = $entity->chado_record->$field_column->entity_id;
|
|
|
- $entity->{$field_name}['und'][0]['entity_id'] = $fk_entity_id;
|
|
|
- $entity->{$field_name}['und'][0]['entity_type'] = 'TripalEntity';
|
|
|
+ if ($record) {
|
|
|
+ $organism = $record->organism_id;
|
|
|
+ $string = $settings['field_display_string'];
|
|
|
+ $value = tripal_replace_chado_tokens($string, $organism);
|
|
|
+ $entity->{$field_name}['und'][0]['value'] = $value;
|
|
|
+ $entity->{$field_name}['und'][0][$field_table . '__organism_id'] = $organism->organism_id;
|
|
|
+
|
|
|
+ // Is there a published entity for this organism?
|
|
|
+ if (property_exists($entity->chado_record->$field_column, 'entity_id')) {
|
|
|
+ $fk_entity_id = $entity->chado_record->$field_column->entity_id;
|
|
|
+ $entity->{$field_name}['und'][0]['entity_id'] = $fk_entity_id;
|
|
|
+ $entity->{$field_name}['und'][0]['entity_type'] = 'TripalEntity';
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|