From d53d67d0473c2971c25dfa8ca8f3169e8351be56 Mon Sep 17 00:00:00 2001 From: Michael Stenta Date: Wed, 10 Apr 2019 15:08:35 -0400 Subject: [PATCH] Use farm_fields_dynamic to create the data field (in a new module). --- farm.install | 8 +++ .../farm/farm_data_field/farm_data_field.info | 8 +++ .../farm_data_field.module} | 44 ++++++------- .../farm_fields.features.field_base.inc | 19 ------ .../farm_fields.features.field_instance.inc | 66 ------------------- modules/farm/farm_fields/farm_fields.info | 1 - 6 files changed, 36 insertions(+), 110 deletions(-) create mode 100644 modules/farm/farm_data_field/farm_data_field.info rename modules/farm/{farm_fields/farm_fields.install => farm_data_field/farm_data_field.module} (72%) delete mode 100644 modules/farm/farm_fields/farm_fields.features.field_instance.inc diff --git a/farm.install b/farm.install index 54d906c98..fbe4cc17d 100644 --- a/farm.install +++ b/farm.install @@ -32,6 +32,7 @@ function farm_modules() { 'farm_crop_area_types' => t('Crop area types: Bed and Greenhouse'), 'farm_livestock_area_types' => t('Livestock area types: Paddock'), 'farm_water' => st('Water area type'), + 'farm_data_field' => st('Add an arbitrary "data" field to logs and assets'), 'farm_access_roles' => st('Default roles: Manager, Worker, Viewer'), 'farm_help' => st('farmOS Help Pages'), 'farm_tour' => st('farmOS Tours'), @@ -793,6 +794,13 @@ function farm_update_7046(&$sandbox) { db_query("DELETE FROM {system} WHERE name = 'role_delegation' AND type = 'module'"); } +/** + * Add an arbitrary data field to logs and assets. + */ +function farm_update_7047(&$sandbox) { + _farm_update_enable_modules(array('farm_data_field')); +} + /** * Update helper function: enable modules. */ diff --git a/modules/farm/farm_data_field/farm_data_field.info b/modules/farm/farm_data_field/farm_data_field.info new file mode 100644 index 000000000..6b0fe368a --- /dev/null +++ b/modules/farm/farm_data_field/farm_data_field.info @@ -0,0 +1,8 @@ +name = Farm Data Field +description = Adds an arbitrary data field to logs and assets. +core = 7.x +package = farmOS +dependencies[] = farm_asset +dependencies[] = farm_fields_dynamic +dependencies[] = log +dependencies[] = text diff --git a/modules/farm/farm_fields/farm_fields.install b/modules/farm/farm_data_field/farm_data_field.module similarity index 72% rename from modules/farm/farm_fields/farm_fields.install rename to modules/farm/farm_data_field/farm_data_field.module index 91f11391e..90a7322e5 100644 --- a/modules/farm/farm_fields/farm_fields.install +++ b/modules/farm/farm_data_field/farm_data_field.module @@ -1,20 +1,16 @@ array( 'active' => 1, 'cardinality' => 1, 'deleted' => 0, @@ -30,12 +26,17 @@ function farm_fields_update_7000(&$sandbox) { 'settings' => array(), 'translatable' => 0, 'type' => 'text_long', - ); - field_create_field($field_base); - } + ), + ); +} - // Load field instances. - $field_instances = field_info_instances(); +/** + * Implements hook_farm_fields_dynamic_instances(). + */ +function farm_data_field_farm_fields_dynamic_instances() { + + // Start an empty array of field instance definitions. + $field_instances = array(); // Get a list of log types. $log_types = log_types(); @@ -56,14 +57,7 @@ function farm_fields_update_7000(&$sandbox) { // Add a data field to each bundle. foreach ($entity_types as $entity_type => $bundles) { foreach ($bundles as $bundle) { - - // If the instance already exists, skip it. - if (!empty($field_instances[$entity_type][$bundle]['field_farm_data'])) { - continue; - } - - // Create the field instance. - $field_instance = array( + $field_instances[] = array( 'bundle' => $bundle, 'default_value' => NULL, 'deleted' => 0, @@ -93,7 +87,9 @@ function farm_fields_update_7000(&$sandbox) { 'weight' => 0, ), ); - field_create_instance($field_instance); } } + + // Return the array of field instance definitions. + return $field_instances; } diff --git a/modules/farm/farm_fields/farm_fields.features.field_base.inc b/modules/farm/farm_fields/farm_fields.features.field_base.inc index 0b163dd55..2a4587ea4 100644 --- a/modules/farm/farm_fields/farm_fields.features.field_base.inc +++ b/modules/farm/farm_fields/farm_fields.features.field_base.inc @@ -43,25 +43,6 @@ function farm_fields_field_default_field_bases() { 'type' => 'entityreference', ); - // Exported field_base: 'field_farm_data'. - $field_bases['field_farm_data'] = array( - 'active' => 1, - 'cardinality' => 1, - 'deleted' => 0, - 'entity_types' => array(), - 'field_name' => 'field_farm_data', - 'indexes' => array( - 'format' => array( - 0 => 'format', - ), - ), - 'locked' => 0, - 'module' => 'text', - 'settings' => array(), - 'translatable' => 0, - 'type' => 'text_long', - ); - // Exported field_base: 'field_farm_date'. $field_bases['field_farm_date'] = array( 'active' => 1, diff --git a/modules/farm/farm_fields/farm_fields.features.field_instance.inc b/modules/farm/farm_fields/farm_fields.features.field_instance.inc deleted file mode 100644 index 875508e0e..000000000 --- a/modules/farm/farm_fields/farm_fields.features.field_instance.inc +++ /dev/null @@ -1,66 +0,0 @@ - $info) { - $entity_types['log'][] = $bundle; - } - foreach ($asset_types as $bundle => $info) { - $entity_types['farm_asset'][] = $bundle; - } - - // Add a data field to each bundle. - foreach ($entity_types as $entity_type => $bundles) { - foreach ($bundles as $bundle) { - $field_instances['log-' . $bundle . '-field_farm_data'] = array( - 'bundle' => $bundle, - 'default_value' => NULL, - 'deleted' => 0, - 'description' => t('The data field can be used to store arbitrary data on the log.'), - 'display' => array( - 'default' => array( - 'label' => 'above', - 'type' => 'hidden', - 'weight' => 0, - ), - ), - 'entity_type' => $entity_type, - 'field_name' => 'field_farm_data', - 'label' => t('Data'), - 'required' => 0, - 'settings' => array( - 'text_processing' => 0, - 'user_register_form' => FALSE, - ), - 'widget' => array( - 'active' => 1, - 'module' => 'text', - 'settings' => array( - 'rows' => 5, - ), - 'type' => 'text_textarea', - 'weight' => 0, - ), - ); - } - } - - return $field_instances; -} diff --git a/modules/farm/farm_fields/farm_fields.info b/modules/farm/farm_fields/farm_fields.info index 04ce2dd03..ed38526b6 100644 --- a/modules/farm/farm_fields/farm_fields.info +++ b/modules/farm/farm_fields/farm_fields.info @@ -18,7 +18,6 @@ dependencies[] = text features[ctools][] = strongarm:strongarm:1 features[features_api][] = api:2 features[field_base][] = field_farm_asset -features[field_base][] = field_farm_data features[field_base][] = field_farm_date features[field_base][] = field_farm_date_range features[field_base][] = field_farm_description