3
0
Fork 0
mirror of https://github.com/farmOS/farmOS.git synced 2024-02-23 11:37:38 +01:00

Issue #2401551: New log type: Medical

This commit is contained in:
Michael Stenta 2016-06-08 13:17:48 -04:00
parent e7963b2d92
commit 7dfe9a89fc
6 changed files with 488 additions and 0 deletions

View file

@ -17,8 +17,10 @@ This module depends on the following modules:
* Date (http://drupal.org/project/date)
* Entity API (http://drupal.org/project/entity)
* Entity Reference (http://drupal.org/project/entityreference)
* Entity Reference View Widget (http://drupal.org/project/entityreference_view_widget)
* Features (http://drupal.org/project/features)
* Field Collection (http://drupal.org/project/field_collection)
* Log (http://drupal.org/project/log)
* Pathauto (http://drupal.org/project/pathauto)
* Pathauto Entity (http://drupal.org/project/pathauto_entity)
* Strongarm (http://drupal.org/project/strongarm)

View file

@ -485,8 +485,169 @@ function farm_livestock_field_default_field_instances() {
),
);
// Exported field_instance: 'log-farm_medical-field_farm_asset'.
$field_instances['log-farm_medical-field_farm_asset'] = array(
'bundle' => 'farm_medical',
'deleted' => 0,
'description' => 'What assets do this medical log pertain to?',
'display' => array(
'default' => array(
'label' => 'inline',
'module' => 'entityreference',
'settings' => array(
'link' => 1,
),
'type' => 'entityreference_label',
'weight' => 0,
),
),
'entity_type' => 'log',
'field_name' => 'field_farm_asset',
'label' => 'Assets',
'required' => 0,
'settings' => array(
'user_register_form' => FALSE,
),
'widget' => array(
'active' => 1,
'module' => 'entityreference_view_widget',
'settings' => array(
'allow_duplicates' => 0,
'close_modal' => 1,
'pass_argument' => 1,
'pass_arguments' => '',
'rendered_entity' => 0,
'view' => 'farm_asset_entityreference_view|entityreference_view_widget',
'view_mode' => 'full',
),
'type' => 'entityreference_view_widget',
'weight' => 2,
),
);
// Exported field_instance: 'log-farm_medical-field_farm_files'.
$field_instances['log-farm_medical-field_farm_files'] = array(
'bundle' => 'farm_medical',
'deleted' => 0,
'description' => '',
'display' => array(
'default' => array(
'label' => 'above',
'module' => 'file',
'settings' => array(),
'type' => 'file_table',
'weight' => 3,
),
),
'entity_type' => 'log',
'field_name' => 'field_farm_files',
'label' => 'Files',
'required' => 0,
'settings' => array(
'description_field' => 1,
'file_directory' => 'farm/log/medical',
'file_extensions' => 'csv doc docx odt odp ods pdf ppt pptx txt xls xlsx kml kmz zip tar gz',
'max_filesize' => '',
'user_register_form' => FALSE,
),
'widget' => array(
'active' => 1,
'module' => 'file',
'settings' => array(
'progress_indicator' => 'bar',
),
'type' => 'file_generic',
'weight' => 5,
),
);
// Exported field_instance: 'log-farm_medical-field_farm_images'.
$field_instances['log-farm_medical-field_farm_images'] = array(
'bundle' => 'farm_medical',
'deleted' => 0,
'description' => '',
'display' => array(
'default' => array(
'label' => 'above',
'module' => 'colorbox',
'settings' => array(
'colorbox_caption' => 'auto',
'colorbox_caption_custom' => '',
'colorbox_gallery' => 'post',
'colorbox_gallery_custom' => '',
'colorbox_image_style' => '',
'colorbox_multivalue_index' => NULL,
'colorbox_node_style' => 'thumbnail',
'colorbox_node_style_first' => 'large',
),
'type' => 'colorbox',
'weight' => 2,
),
),
'entity_type' => 'log',
'field_name' => 'field_farm_images',
'label' => 'Photo(s)',
'required' => 0,
'settings' => array(
'alt_field' => 0,
'default_image' => 0,
'file_directory' => 'farm/log/medical',
'file_extensions' => 'png gif jpg jpeg',
'max_filesize' => '',
'max_resolution' => '',
'min_resolution' => '',
'title_field' => 0,
'user_register_form' => FALSE,
),
'widget' => array(
'active' => 1,
'module' => 'image',
'settings' => array(
'preview_image_style' => 'thumbnail',
'progress_indicator' => 'bar',
),
'type' => 'image_image',
'weight' => 4,
),
);
// Exported field_instance: 'log-farm_medical-field_farm_notes'.
$field_instances['log-farm_medical-field_farm_notes'] = array(
'bundle' => 'farm_medical',
'default_value' => NULL,
'deleted' => 0,
'description' => '',
'display' => array(
'default' => array(
'label' => 'inline',
'module' => 'text',
'settings' => array(),
'type' => 'text_default',
'weight' => 1,
),
),
'entity_type' => 'log',
'field_name' => 'field_farm_notes',
'label' => 'Notes',
'required' => 0,
'settings' => array(
'text_processing' => 1,
'user_register_form' => FALSE,
),
'widget' => array(
'active' => 1,
'module' => 'text',
'settings' => array(
'rows' => 5,
),
'type' => 'text_textarea',
'weight' => 3,
),
);
// Translatables
// Included for use with string extractors like potx.
t('Assets');
t('Assign this animal to a particular group, herd, flock, etc. You can manage the list of available groups in the ' . l('Animal Groups', 'farm/assets/animals/groups') . ' vocabulary.');
t('Body Location');
t('Date of birth');
@ -498,11 +659,13 @@ function farm_livestock_field_default_field_instances() {
t('List any identification tags that this animal has. These can be ear tags, tattoos, leg bands, etc. Use the fields below to describe the type, location, and ID of each.');
t('List any nickname(s) of this animal.');
t('Nickname(s)');
t('Notes');
t('Parents');
t('Photo(s)');
t('Sex');
t('Tag Type');
t('Type');
t('What assets do this medical log pertain to?');
t('What is the species/breed of this animal? You can manage the list of available species/breeds in the ' . l('Animal Species/Breeds', 'farm/assets/animals/types') . ' vocabulary.');
return $field_instances;

View file

@ -33,3 +33,20 @@ function farm_livestock_default_farm_asset_type() {
}');
return $items;
}
/**
* Implements hook_default_log_type().
*/
function farm_livestock_default_log_type() {
$items = array();
$items['farm_medical'] = entity_import('log_type', '{
"type" : "farm_medical",
"label" : "Medical",
"weight" : 0,
"name_pattern" : "[log:name]",
"name_edit" : "1",
"done" : "1",
"rdf_mapping" : []
}');
return $items;
}

View file

@ -7,6 +7,7 @@ dependencies[] = ctools
dependencies[] = date
dependencies[] = entity
dependencies[] = entityreference
dependencies[] = entityreference_view_widget
dependencies[] = farm_asset
dependencies[] = farm_fields
dependencies[] = farm_log
@ -16,6 +17,7 @@ dependencies[] = field_collection
dependencies[] = file
dependencies[] = image
dependencies[] = list
dependencies[] = log
dependencies[] = options
dependencies[] = pathauto
dependencies[] = pathauto_entity
@ -51,6 +53,11 @@ features[field_instance][] = farm_asset-animal-field_farm_images
features[field_instance][] = field_collection_item-field_farm_animal_tag-field_farm_animal_tag_id
features[field_instance][] = field_collection_item-field_farm_animal_tag-field_farm_animal_tag_location
features[field_instance][] = field_collection_item-field_farm_animal_tag-field_farm_animal_tag_type
features[field_instance][] = log-farm_medical-field_farm_asset
features[field_instance][] = log-farm_medical-field_farm_files
features[field_instance][] = log-farm_medical-field_farm_images
features[field_instance][] = log-farm_medical-field_farm_notes
features[log_type][] = farm_medical
features[taxonomy][] = farm_animal_groups
features[taxonomy][] = farm_animal_types
features[variable][] = pathauto_farm_asset_animal_pattern
@ -59,3 +66,4 @@ features[variable][] = pathauto_taxonomy_term_farm_animal_types_pattern
features[views_view][] = farm_animal_groups
features[views_view][] = farm_animal_types
features[views_view][] = farm_animals
features[views_view][] = farm_log_medical

View file

@ -16,6 +16,9 @@ function farm_livestock_farm_access_perms($role) {
'farm_asset' => array(
'animal',
),
'log' => array(
'farm_medical',
),
'taxonomy' => array(
'farm_animal_groups',
'farm_animal_types',
@ -82,6 +85,16 @@ function farm_livestock_farm_admin_actions() {
'farm_animal_types',
),
),
'medical' => array(
'title' => t('Add a medical record'),
'href' => 'log/add/farm_medical',
'assets' => array(
'animal',
),
'views' => array(
'farm_log_medical',
),
),
);
return $actions;
}
@ -120,6 +133,10 @@ function farm_livestock_farm_asset_view_views($farm_asset) {
'name' => 'farm_log_observation',
'weight' => 10,
),
array(
'name' => 'farm_log_medical',
'weight' => 20,
),
array(
'name' => 'farm_log_input',
'weight' => 50,

View file

@ -912,5 +912,286 @@ if (!empty($farm_asset)) {
);
$export['farm_animals'] = $view;
$view = new view();
$view->name = 'farm_log_medical';
$view->description = '';
$view->tag = 'farm_log';
$view->base_table = 'log';
$view->human_name = 'Farm Log: Medical';
$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'] = 'Medical Records';
$handler->display->display_options['use_more_always'] = FALSE;
$handler->display->display_options['access']['type'] = 'perm';
$handler->display->display_options['access']['perm'] = 'view any farm_medical log entities';
$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']['reset_button'] = TRUE;
$handler->display->display_options['pager']['type'] = 'full';
$handler->display->display_options['pager']['options']['items_per_page'] = '50';
$handler->display->display_options['pager']['options']['offset'] = '0';
$handler->display->display_options['pager']['options']['id'] = '0';
$handler->display->display_options['pager']['options']['quantity'] = '9';
$handler->display->display_options['style_plugin'] = 'table';
$handler->display->display_options['style_options']['columns'] = array(
'views_bulk_operations' => 'views_bulk_operations',
'id' => 'id',
'done' => 'done',
'timestamp' => 'timestamp',
'name' => 'name',
'field_farm_asset' => 'field_farm_asset',
);
$handler->display->display_options['style_options']['default'] = '-1';
$handler->display->display_options['style_options']['info'] = array(
'views_bulk_operations' => array(
'align' => '',
'separator' => '',
'empty_column' => 0,
),
'id' => array(
'sortable' => 0,
'default_sort_order' => 'asc',
'align' => '',
'separator' => '',
'empty_column' => 0,
),
'done' => array(
'sortable' => 0,
'default_sort_order' => 'asc',
'align' => '',
'separator' => '',
'empty_column' => 0,
),
'timestamp' => array(
'sortable' => 0,
'default_sort_order' => 'asc',
'align' => '',
'separator' => '',
'empty_column' => 0,
),
'name' => array(
'sortable' => 0,
'default_sort_order' => 'asc',
'align' => '',
'separator' => '',
'empty_column' => 0,
),
'field_farm_asset' => array(
'align' => '',
'separator' => '',
'empty_column' => 0,
),
);
$handler->display->display_options['style_options']['empty_table'] = TRUE;
/* No results behavior: Global: Unfiltered text */
$handler->display->display_options['empty']['area_text_custom']['id'] = 'area_text_custom';
$handler->display->display_options['empty']['area_text_custom']['table'] = 'views';
$handler->display->display_options['empty']['area_text_custom']['field'] = 'area_text_custom';
$handler->display->display_options['empty']['area_text_custom']['empty'] = TRUE;
$handler->display->display_options['empty']['area_text_custom']['content'] = 'No medical logs found.';
/* Field: Bulk operations: Log */
$handler->display->display_options['fields']['views_bulk_operations']['id'] = 'views_bulk_operations';
$handler->display->display_options['fields']['views_bulk_operations']['table'] = 'log';
$handler->display->display_options['fields']['views_bulk_operations']['field'] = 'views_bulk_operations';
$handler->display->display_options['fields']['views_bulk_operations']['vbo_settings']['display_type'] = '1';
$handler->display->display_options['fields']['views_bulk_operations']['vbo_settings']['enable_select_all_pages'] = 1;
$handler->display->display_options['fields']['views_bulk_operations']['vbo_settings']['force_single'] = 0;
$handler->display->display_options['fields']['views_bulk_operations']['vbo_settings']['entity_load_capacity'] = '10';
$handler->display->display_options['fields']['views_bulk_operations']['vbo_settings']['skip_batching'] = 1;
$handler->display->display_options['fields']['views_bulk_operations']['vbo_operations'] = array(
'action::log_clone_action' => array(
'selected' => 1,
'postpone_processing' => 0,
'skip_confirmation' => 1,
'override_label' => 0,
'label' => '',
),
'action::log_done_action' => array(
'selected' => 1,
'postpone_processing' => 0,
'skip_confirmation' => 1,
'override_label' => 1,
'label' => 'Done',
),
'action::log_undone_action' => array(
'selected' => 1,
'postpone_processing' => 0,
'skip_confirmation' => 1,
'override_label' => 1,
'label' => 'Not Done',
),
'action::log_reschedule_action' => array(
'selected' => 1,
'postpone_processing' => 0,
'skip_confirmation' => 1,
'override_label' => 0,
'label' => '',
),
);
/* Field: Log: Log ID */
$handler->display->display_options['fields']['id']['id'] = 'id';
$handler->display->display_options['fields']['id']['table'] = 'log';
$handler->display->display_options['fields']['id']['field'] = 'id';
$handler->display->display_options['fields']['id']['exclude'] = TRUE;
$handler->display->display_options['fields']['id']['separator'] = '';
/* Field: Log: Done */
$handler->display->display_options['fields']['done']['id'] = 'done';
$handler->display->display_options['fields']['done']['table'] = 'log';
$handler->display->display_options['fields']['done']['field'] = 'done';
$handler->display->display_options['fields']['done']['type'] = 'custom';
$handler->display->display_options['fields']['done']['type_custom_true'] = '✔';
$handler->display->display_options['fields']['done']['not'] = 0;
/* Field: Log: Timestamp */
$handler->display->display_options['fields']['timestamp']['id'] = 'timestamp';
$handler->display->display_options['fields']['timestamp']['table'] = 'log';
$handler->display->display_options['fields']['timestamp']['field'] = 'timestamp';
$handler->display->display_options['fields']['timestamp']['label'] = 'Date';
$handler->display->display_options['fields']['timestamp']['alter']['make_link'] = TRUE;
$handler->display->display_options['fields']['timestamp']['alter']['path'] = 'log/[id]';
$handler->display->display_options['fields']['timestamp']['date_format'] = 'custom';
$handler->display->display_options['fields']['timestamp']['custom_date_format'] = 'M j Y';
$handler->display->display_options['fields']['timestamp']['second_date_format'] = 'long';
/* Field: Log: Name */
$handler->display->display_options['fields']['name']['id'] = 'name';
$handler->display->display_options['fields']['name']['table'] = 'log';
$handler->display->display_options['fields']['name']['field'] = 'name';
$handler->display->display_options['fields']['name']['label'] = 'Medical';
$handler->display->display_options['fields']['name']['alter']['make_link'] = TRUE;
$handler->display->display_options['fields']['name']['alter']['path'] = 'log/[id]';
/* Field: Log: Assets */
$handler->display->display_options['fields']['field_farm_asset']['id'] = 'field_farm_asset';
$handler->display->display_options['fields']['field_farm_asset']['table'] = 'field_data_field_farm_asset';
$handler->display->display_options['fields']['field_farm_asset']['field'] = 'field_farm_asset';
$handler->display->display_options['fields']['field_farm_asset']['settings'] = array(
'link' => 1,
);
$handler->display->display_options['fields']['field_farm_asset']['delta_offset'] = '0';
/* Sort criterion: Log: Timestamp */
$handler->display->display_options['sorts']['timestamp']['id'] = 'timestamp';
$handler->display->display_options['sorts']['timestamp']['table'] = 'log';
$handler->display->display_options['sorts']['timestamp']['field'] = 'timestamp';
$handler->display->display_options['sorts']['timestamp']['order'] = 'DESC';
$handler->display->display_options['sorts']['timestamp']['exposed'] = TRUE;
$handler->display->display_options['sorts']['timestamp']['expose']['label'] = 'Date';
/* Sort criterion: Log: Log ID */
$handler->display->display_options['sorts']['id']['id'] = 'id';
$handler->display->display_options['sorts']['id']['table'] = 'log';
$handler->display->display_options['sorts']['id']['field'] = 'id';
$handler->display->display_options['sorts']['id']['order'] = 'DESC';
/* Contextual filter: Log: Assets (field_farm_asset) */
$handler->display->display_options['arguments']['field_farm_asset_target_id']['id'] = 'field_farm_asset_target_id';
$handler->display->display_options['arguments']['field_farm_asset_target_id']['table'] = 'field_data_field_farm_asset';
$handler->display->display_options['arguments']['field_farm_asset_target_id']['field'] = 'field_farm_asset_target_id';
$handler->display->display_options['arguments']['field_farm_asset_target_id']['title_enable'] = TRUE;
$handler->display->display_options['arguments']['field_farm_asset_target_id']['title'] = '%1\'s maintenance';
$handler->display->display_options['arguments']['field_farm_asset_target_id']['default_argument_type'] = 'fixed';
$handler->display->display_options['arguments']['field_farm_asset_target_id']['summary']['number_of_records'] = '0';
$handler->display->display_options['arguments']['field_farm_asset_target_id']['summary']['format'] = 'default_summary';
$handler->display->display_options['arguments']['field_farm_asset_target_id']['summary_options']['items_per_page'] = '25';
$handler->display->display_options['arguments']['field_farm_asset_target_id']['specify_validation'] = TRUE;
$handler->display->display_options['arguments']['field_farm_asset_target_id']['validate']['type'] = 'php';
$handler->display->display_options['arguments']['field_farm_asset_target_id']['validate_options']['code'] = '// Attempt to load the asset.
$farm_asset = farm_asset_load($argument);
if (!empty($farm_asset)) {
// Set the title.
$handler->validated_title = entity_label(\'farm_asset\', $farm_asset);
return TRUE;
}';
/* Filter criterion: Log: Log type */
$handler->display->display_options['filters']['type']['id'] = 'type';
$handler->display->display_options['filters']['type']['table'] = 'log';
$handler->display->display_options['filters']['type']['field'] = 'type';
$handler->display->display_options['filters']['type']['value'] = array(
'farm_medical' => 'farm_medical',
);
$handler->display->display_options['filters']['type']['group'] = 1;
/* Filter criterion: Date: Date (log) */
$handler->display->display_options['filters']['date_filter']['id'] = 'date_filter';
$handler->display->display_options['filters']['date_filter']['table'] = 'log';
$handler->display->display_options['filters']['date_filter']['field'] = 'date_filter';
$handler->display->display_options['filters']['date_filter']['operator'] = '>=';
$handler->display->display_options['filters']['date_filter']['exposed'] = TRUE;
$handler->display->display_options['filters']['date_filter']['expose']['operator_id'] = 'date_filter_op';
$handler->display->display_options['filters']['date_filter']['expose']['label'] = 'Start date';
$handler->display->display_options['filters']['date_filter']['expose']['operator'] = 'date_filter_op';
$handler->display->display_options['filters']['date_filter']['expose']['identifier'] = 'date_filter';
$handler->display->display_options['filters']['date_filter']['year_range'] = '-10:+3';
$handler->display->display_options['filters']['date_filter']['date_fields'] = array(
'log.timestamp' => 'log.timestamp',
);
/* Filter criterion: Date: Date (log) */
$handler->display->display_options['filters']['date_filter_1']['id'] = 'date_filter_1';
$handler->display->display_options['filters']['date_filter_1']['table'] = 'log';
$handler->display->display_options['filters']['date_filter_1']['field'] = 'date_filter';
$handler->display->display_options['filters']['date_filter_1']['operator'] = '<=';
$handler->display->display_options['filters']['date_filter_1']['exposed'] = TRUE;
$handler->display->display_options['filters']['date_filter_1']['expose']['operator_id'] = 'date_filter_1_op';
$handler->display->display_options['filters']['date_filter_1']['expose']['label'] = 'End date';
$handler->display->display_options['filters']['date_filter_1']['expose']['operator'] = 'date_filter_1_op';
$handler->display->display_options['filters']['date_filter_1']['expose']['identifier'] = 'date_filter_1';
$handler->display->display_options['filters']['date_filter_1']['year_range'] = '-10:+3';
$handler->display->display_options['filters']['date_filter_1']['date_fields'] = array(
'log.timestamp' => 'log.timestamp',
);
/* Filter criterion: Log: Done */
$handler->display->display_options['filters']['done']['id'] = 'done';
$handler->display->display_options['filters']['done']['table'] = 'log';
$handler->display->display_options['filters']['done']['field'] = 'done';
$handler->display->display_options['filters']['done']['value'] = 'All';
$handler->display->display_options['filters']['done']['exposed'] = TRUE;
$handler->display->display_options['filters']['done']['expose']['operator_id'] = '';
$handler->display->display_options['filters']['done']['expose']['label'] = 'Done';
$handler->display->display_options['filters']['done']['expose']['operator'] = 'done_op';
$handler->display->display_options['filters']['done']['expose']['identifier'] = 'done';
/* Display: Page */
$handler = $view->new_display('page', 'Page', 'page');
$handler->display->display_options['path'] = 'farm/logs/medical';
$handler->display->display_options['menu']['type'] = 'normal';
$handler->display->display_options['menu']['title'] = 'Medical';
$handler->display->display_options['menu']['weight'] = '';
$handler->display->display_options['menu']['name'] = 'farm';
$handler->display->display_options['menu']['context'] = 0;
$handler->display->display_options['menu']['context_only_inline'] = 0;
$translatables['farm_log_medical'] = array(
t('Master'),
t('Medical Records'),
t('more'),
t('Apply'),
t('Reset'),
t('Sort by'),
t('Asc'),
t('Desc'),
t('Items per page'),
t('- All -'),
t('Offset'),
t('« first'),
t(' previous'),
t('next '),
t('last »'),
t('No medical logs found.'),
t('Log'),
t('- Choose an operation -'),
t('Done'),
t('Not Done'),
t('Log ID'),
t('.'),
t('✔'),
t('Date'),
t('Medical'),
t('Assets'),
t('All'),
t('%1\'s maintenance'),
t('Start date'),
t('End date'),
t('Page'),
);
$export['farm_log_medical'] = $view;
return $export;
}