3
0
Fork 0
mirror of https://github.com/farmOS/farmOS.git synced 2024-02-23 11:37:38 +01:00
farmOS/modules/asset/group/farm_group.base_fields.inc
2021-03-05 14:15:32 -05:00

80 lines
2 KiB
PHP

<?php
/**
* @file
* Code for creating farmOS group membership base field definitions.
*/
use Drupal\farm_group\Field\AssetGroupItemList;
/**
* Define asset group base fields.
*/
function farm_group_asset_base_fields() {
$fields = [];
// Group membership field.
// This is computed based on an asset's group assignment logs.
$options = [
'type' => 'entity_reference',
'label' => t('Group membership'),
'target_type' => 'asset',
'target_bundle' => 'group',
'multiple' => TRUE,
'computed' => AssetGroupItemList::class,
'hidden' => 'form',
'weight' => [
'view' => 94,
],
];
$fields['group'] = \Drupal::service('farm_field.factory')->baseFieldDefinition($options);
return $fields;
}
/**
* Define log group base fields.
*/
function farm_group_log_base_fields() {
$fields = [];
// "Is group assignment" boolean field.
$options = [
'type' => 'boolean',
'label' => t('Is group assignment'),
'description' => t('If this log is a group assignment, any referenced assets will become members of the groups referenced below.'),
'weight' => [
'form' => 96,
],
'view_display_options' => [
'label' => 'inline',
'type' => 'hideable_boolean',
'settings' => [
'format' => 'default',
'format_custom_false' => '',
'format_custom_true' => '',
'hide_if_false' => TRUE,
],
'weight' => 96,
],
];
$fields['is_group_assignment'] = \Drupal::service('farm_field.factory')->baseFieldDefinition($options);
// Group reference field.
$options = [
'type' => 'entity_reference',
'label' => t('Groups'),
'description' => t('If this is a group assignment log, which groups should the referenced assets be assigned to?'),
'target_type' => 'asset',
'target_bundle' => 'group',
'multiple' => TRUE,
'weight' => [
'form' => 97,
'view' => 97,
],
];
$fields['group'] = \Drupal::service('farm_field.factory')->baseFieldDefinition($options);
return $fields;
}