From 6ba444c3225ced28fd07049366c769f55b201f82 Mon Sep 17 00:00:00 2001 From: Michael Stenta Date: Wed, 5 Jul 2017 11:49:01 -0400 Subject: [PATCH] Add extra field mappings and tamper plugins for all log types. --- modules/farm/farm_crop/farm_crop.module | 15 +++++ .../farm_livestock_eggs.module | 42 ++++++++++++ .../farm_log_harvest/farm_log_harvest.module | 21 ++++++ .../farm_log_input/farm_log_input.module | 66 +++++++++++++++++++ .../farm_log_sale/farm_log_sale.module | 45 +++++++++++++ .../farm_soil_test/farm_soil_test.module | 42 ++++++++++++ .../farm_water_test/farm_water_test.module | 20 ++++++ 7 files changed, 251 insertions(+) diff --git a/modules/farm/farm_crop/farm_crop.module b/modules/farm/farm_crop/farm_crop.module index 80b18939d..d1e2de463 100644 --- a/modules/farm/farm_crop/farm_crop.module +++ b/modules/farm/farm_crop/farm_crop.module @@ -249,6 +249,21 @@ function farm_crop_feeds_importer_default_alter(&$importers) { $importer_mappings =& $importers[$name]->config['processor']['config']['mappings']; $importer_mappings = array_merge($importer_mappings, $mappings); } + + // Add extra field mappings to seedings. + $name = 'log_farm_seeding'; + if (!empty($importers[$name])) { + $mappings = array( + array( + 'source' => 'Source/supplier', + 'target' => 'field_farm_seed_source', + 'unique' => FALSE, + 'language' => 'und', + ), + ); + $importer_mappings =& $importers[$name]->config['processor']['config']['mappings']; + $importer_mappings = array_merge($importer_mappings, $mappings); + } } /** diff --git a/modules/farm/farm_livestock/farm_livestock_eggs/farm_livestock_eggs.module b/modules/farm/farm_livestock/farm_livestock_eggs/farm_livestock_eggs.module index 0b18626e1..a326f7c22 100644 --- a/modules/farm/farm_livestock/farm_livestock_eggs/farm_livestock_eggs.module +++ b/modules/farm/farm_livestock/farm_livestock_eggs/farm_livestock_eggs.module @@ -21,3 +21,45 @@ function farm_livestock_eggs_farm_ui_entities() { ), ); } + +/** + * Implements hook_feeds_importer_default_alter(). + */ +function farm_livestock_eggs_feeds_importer_default_alter(&$importers) { + + // Add extra field mappings to eggs. + $name = 'log_farm_eggs'; + if (!empty($importers[$name])) { + $mappings = array( + array( + 'source' => 'Quantity', + 'target' => 'field_farm_egg_qty', + 'unique' => FALSE, + 'language' => 'und', + ), + array( + 'source' => 'Group', + 'target' => 'field_farm_animal_group', + 'unique' => FALSE, + 'language' => 'und', + ), + ); + $importer_mappings =& $importers[$name]->config['processor']['config']['mappings']; + $importer_mappings = array_merge($importer_mappings, $mappings); + } +} + +/** + * Implements hook_feeds_tamper_default_alter(). + */ +function farm_livestock_eggs_feeds_tamper_default_alter(&$feeds_tampers) { + + // If farm_import is not installed, bail. + if (!module_exists('farm_import')) { + return; + } + + // Explode group so it supports multiple values. + $feeds_tamper = farm_import_feeds_tamper_plugin('log', 'farm_eggs', 'Group', 'explode'); + $feeds_tampers[$feeds_tamper->id] = $feeds_tamper; +} diff --git a/modules/farm/farm_log/farm_log_harvest/farm_log_harvest.module b/modules/farm/farm_log/farm_log_harvest/farm_log_harvest.module index 4c8a38d9a..41fbb917e 100644 --- a/modules/farm/farm_log/farm_log_harvest/farm_log_harvest.module +++ b/modules/farm/farm_log/farm_log_harvest/farm_log_harvest.module @@ -22,3 +22,24 @@ function farm_log_harvest_farm_ui_entities() { ), ); } + +/** + * Implements hook_feeds_importer_default_alter(). + */ +function farm_log_harvest_feeds_importer_default_alter(&$importers) { + + // Add extra field mappings to harvests. + $name = 'log_farm_harvest'; + if (!empty($importers[$name])) { + $mappings = array( + array( + 'source' => 'Lot number', + 'target' => 'field_farm_lot_number', + 'unique' => FALSE, + 'language' => 'und', + ), + ); + $importer_mappings =& $importers[$name]->config['processor']['config']['mappings']; + $importer_mappings = array_merge($importer_mappings, $mappings); + } +} diff --git a/modules/farm/farm_log/farm_log_input/farm_log_input.module b/modules/farm/farm_log/farm_log_input/farm_log_input.module index 21c00c50f..90e21cde4 100644 --- a/modules/farm/farm_log/farm_log_input/farm_log_input.module +++ b/modules/farm/farm_log/farm_log_input/farm_log_input.module @@ -23,3 +23,69 @@ function farm_log_input_farm_ui_entities() { ), ); } + +/** + * Implements hook_feeds_importer_default_alter(). + */ +function farm_log_input_feeds_importer_default_alter(&$importers) { + + // Add extra field mappings to inputs. + $name = 'log_farm_input'; + if (!empty($importers[$name])) { + $mappings = array( + array( + 'source' => 'Material', + 'target' => 'field_farm_material', + 'unique' => FALSE, + 'language' => 'und', + ), + array( + 'source' => 'Purpose', + 'target' => 'field_farm_input_purpose', + 'unique' => FALSE, + 'language' => 'und', + ), + array( + 'source' => 'Application method', + 'target' => 'field_farm_input_method', + 'unique' => FALSE, + 'language' => 'und', + ), + array( + 'source' => 'Source/manufacturer', + 'target' => 'field_farm_input_source', + 'unique' => FALSE, + 'language' => 'und', + ), + array( + 'source' => 'Lot number', + 'target' => 'field_farm_lot_number', + 'unique' => FALSE, + 'language' => 'und', + ), + array( + 'source' => 'Date purchased', + 'target' => 'field_farm_date_purchase:start', + 'unique' => FALSE, + 'language' => 'und', + ), + ); + $importer_mappings =& $importers[$name]->config['processor']['config']['mappings']; + $importer_mappings = array_merge($importer_mappings, $mappings); + } +} + +/** + * Implements hook_feeds_tamper_default_alter(). + */ +function farm_log_input_feeds_tamper_default_alter(&$feeds_tampers) { + + // If farm_import is not installed, bail. + if (!module_exists('farm_import')) { + return; + } + + // Convert date purchased to a Unix timestamp + $feeds_tamper = farm_import_feeds_tamper_plugin('log', 'farm_input', 'Date purchased', 'strtotime'); + $feeds_tampers[$feeds_tamper->id] = $feeds_tamper; +} diff --git a/modules/farm/farm_log/farm_log_sale/farm_log_sale.module b/modules/farm/farm_log/farm_log_sale/farm_log_sale.module index d89ae54db..b868c45fe 100644 --- a/modules/farm/farm_log/farm_log_sale/farm_log_sale.module +++ b/modules/farm/farm_log/farm_log_sale/farm_log_sale.module @@ -21,3 +21,48 @@ function farm_log_sale_farm_ui_entities() { ), ); } + +/** + * Implements hook_feeds_importer_default_alter(). + */ +function farm_log_sale_feeds_importer_default_alter(&$importers) { + + // Add extra field mappings to sales. + $name = 'log_farm_sale'; + if (!empty($importers[$name])) { + $mappings = array( + array( + 'source' => 'Customer', + 'target' => 'field_farm_customer', + 'unique' => FALSE, + 'language' => 'und', + ), + array( + 'source' => 'Invoice number', + 'target' => 'field_farm_invoice_number', + 'unique' => FALSE, + 'language' => 'und', + ), + array( + 'source' => 'Lot number', + 'target' => 'field_farm_lot_number', + 'unique' => FALSE, + 'language' => 'und', + ), + array( + 'source' => 'Unit price', + 'target' => 'field_farm_unit_price', + 'unique' => FALSE, + 'language' => 'und', + ), + array( + 'source' => 'Total price', + 'target' => 'field_farm_total_price', + 'unique' => FALSE, + 'language' => 'und', + ), + ); + $importer_mappings =& $importers[$name]->config['processor']['config']['mappings']; + $importer_mappings = array_merge($importer_mappings, $mappings); + } +} diff --git a/modules/farm/farm_soil/farm_soil_test/farm_soil_test.module b/modules/farm/farm_soil/farm_soil_test/farm_soil_test.module index 65d323251..fec36b4c8 100644 --- a/modules/farm/farm_soil/farm_soil_test/farm_soil_test.module +++ b/modules/farm/farm_soil/farm_soil_test/farm_soil_test.module @@ -23,3 +23,45 @@ function farm_soil_test_farm_ui_entities() { ); } +/** + * Implements hook_feeds_importer_default_alter(). + */ +function farm_soil_test_feeds_importer_default_alter(&$importers) { + + // Add extra field mappings to soil tests. + $name = 'log_farm_soil_test'; + if (!empty($importers[$name])) { + $mappings = array( + array( + 'source' => 'Laboratory', + 'target' => 'field_farm_soil_lab', + 'unique' => FALSE, + 'language' => 'und', + ), + array( + 'source' => 'Soil names', + 'target' => 'field_farm_soil_names', + 'term_search' => '0', + 'autocreate' => 1, + 'language' => 'und', + ), + ); + $importer_mappings =& $importers[$name]->config['processor']['config']['mappings']; + $importer_mappings = array_merge($importer_mappings, $mappings); + } +} + +/** + * Implements hook_feeds_tamper_default_alter(). + */ +function farm_soil_test_feeds_tamper_default_alter(&$feeds_tampers) { + + // If farm_import is not installed, bail. + if (!module_exists('farm_import')) { + return; + } + + // Explode soil names so it supports multiple values. + $feeds_tamper = farm_import_feeds_tamper_plugin('log', 'farm_soil_test', 'Soil names', 'explode'); + $feeds_tampers[$feeds_tamper->id] = $feeds_tamper; +} diff --git a/modules/farm/farm_water/farm_water_test/farm_water_test.module b/modules/farm/farm_water/farm_water_test/farm_water_test.module index 905eac2f5..a47a5cbed 100644 --- a/modules/farm/farm_water/farm_water_test/farm_water_test.module +++ b/modules/farm/farm_water/farm_water_test/farm_water_test.module @@ -22,3 +22,23 @@ function farm_water_test_farm_ui_entities() { ), ); } + +/** + * Implements hook_feeds_importer_default_alter(). + */ +function farm_water_test_feeds_importer_default_alter(&$importers) { + + // Add extra field mappings to water tests. + $name = 'log_farm_water_test'; + if (!empty($importers[$name])) { + $mappings = array( + array( + 'source' => 'Laboratory', + 'target' => 'field_farm_water_lab', + 'unique' => FALSE, + ), + ); + $importer_mappings =& $importers[$name]->config['processor']['config']['mappings']; + $importer_mappings = array_merge($importer_mappings, $mappings); + } +}