class Activity in CRM Core 8
Same name and namespace in other branches
- 8.3 modules/crm_core_activity/src/Entity/Activity.php \Drupal\crm_core_activity\Entity\Activity
- 8.2 modules/crm_core_activity/src/Entity/Activity.php \Drupal\crm_core_activity\Entity\Activity
CRM Activity Entity Class.
@ContentEntityType( id = "crm_core_activity", label = @Translation("CRM Core Activity"), bundle_label = @Translation("Activity type"), label_callback = "Drupal\crm_core_activity\Entity\Activity::defaultLabel", handlers = { "access" = "Drupal\crm_core_activity\ActivityAccessControlHandler", "form" = { "default" = "Drupal\crm_core_activity\Form\ActivityForm", "delete" = "Drupal\crm_core_activity\Form\ActivityDeleteForm", }, "list_builder" = "Drupal\crm_core_activity\ActivityListBuilder", "views_data" = "Drupal\crm_core_activity\ActivityViewsData", "view_builder" = "Drupal\Core\Entity\EntityViewBuilder", "route_provider" = { "html" = "Drupal\Core\Entity\Routing\DefaultHtmlRouteProvider", "revision" = "\Drupal\entity\Routing\RevisionRouteProvider", }, }, show_revision_ui = TRUE, base_table = "crm_core_activity", revision_table = "crm_core_activity_revision", admin_permission = "administer crm_core_activity entities", fieldable = TRUE, entity_keys = { "id" = "activity_id", "revision" = "revision_id", "bundle" = "type", "uuid" = "uuid", "label" = "title", "user" = "uid", "langcode" = "langcode", }, bundle_entity_type = "crm_core_activity_type", permission_granularity = "bundle", permission_labels = { "singular" = @Translation("Activity"), "plural" = @Translation("Activities"), }, links = { "add-page" = "/crm-core/activity/add", "add-form" = "/crm-core/activity/add/{crm_core_activity_type}", "canonical" = "/crm-core/activity/{crm_core_activity}", "delete-form" = "/crm-core/activity/{crm_core_activity}/delete", "edit-form" = "/crm-core/activity/{crm_core_activity}/edit", "admin-form" = "/crm_core_activity.type_edit", "revision" = "/crm-core/activity/{crm_core_activity}/revisions/{crm_core_activity_revision}/view", "revision-revert-form" = "/crm-core/activity/{crm_core_activity}/revisions/{crm_core_activity_revision}/revert", "version-history" = "/crm-core/activity/{crm_core_activity}/revisions", } )
@todo Replace list builder with a view.
Hierarchy
- class \Drupal\crm_core_activity\Entity\Activity extends \Drupal\entity\Revision\RevisionableContentEntityBase implements ActivityInterface uses EntityChangedTrait, EntityOwnerTrait
Expanded class hierarchy of Activity
6 files declare their use of Activity
- ActivityEntityPreDeleteTest.php in modules/
crm_core_activity/ tests/ src/ Kernel/ ActivityEntityPreDeleteTest.php - ActivityTypePluginTest.php in modules/
crm_core_activity/ tests/ src/ Kernel/ ActivityTypePluginTest.php - CRMFeedsActivityProcessor.inc in modules/
crm_core_activity/ legacy/ CRMFeedsActivityProcessor.inc - Class definition of CRMFeedsActivityProcessor.
- IndividualCRUDTest.php in modules/
crm_core_contact/ tests/ src/ Kernel/ IndividualCRUDTest.php - MergeContactsAction.php in modules/
crm_core_contact/ src/ Plugin/ Action/ MergeContactsAction.php
File
- modules/
crm_core_activity/ src/ Entity/ Activity.php, line 71
Namespace
Drupal\crm_core_activity\EntityView source
class Activity extends RevisionableContentEntityBase implements ActivityInterface {
use EntityChangedTrait;
use EntityOwnerTrait;
/**
* {@inheritdoc}
*/
public static function baseFieldDefinitions(EntityTypeInterface $entity_type) {
$fields = parent::baseFieldDefinitions($entity_type);
$fields['uid'] = EntityOwnerTrait::getOwnerFieldDefinition()
->setDescription(t('The user that created the activity.'));
$fields['type'] = BaseFieldDefinition::create('entity_reference')
->setLabel(t('Type'))
->setDescription(t('The activity type.'))
->setSetting('target_type', 'crm_core_activity_type')
->setReadOnly(TRUE);
$fields['title'] = BaseFieldDefinition::create('string')
->setLabel(t('Title'))
->setDescription(t('The title of this activity.'))
->setRequired(TRUE)
->setRevisionable(TRUE)
->setSetting('default_value', '')
->setSetting('max_length', 255)
->setDisplayOptions('view', [
'label' => 'hidden',
'type' => 'string',
'weight' => -5,
])
->setDisplayOptions('form', [
'type' => 'text_textfield',
'weight' => -5,
])
->setDisplayConfigurable('form', TRUE);
$fields['created'] = BaseFieldDefinition::create('created')
->setLabel(t('Created'))
->setDescription(t('The time that the activity was created.'))
->setRevisionable(TRUE)
->setDisplayOptions('form', [
'type' => 'datetime_timestamp',
'weight' => -5,
])
->setDisplayConfigurable('form', TRUE);
$fields['changed'] = BaseFieldDefinition::create('changed')
->setLabel(t('Changed'))
->setDescription(t('The time that the activity was last edited.'))
->setRevisionable(TRUE);
$fields['activity_participants'] = BaseFieldDefinition::create('dynamic_entity_reference')
->setLabel(t('Participants'))
->setSetting('exclude_entity_types', FALSE)
->setSetting('entity_type_ids', [
'crm_core_individual',
'crm_core_organization',
])
->setCardinality(-1)
->setRequired(TRUE)
->setDisplayOptions('view', [
'label' => 'above',
'settings' => [
'link' => TRUE,
],
'type' => 'dynamic_entity_reference_label',
'weight' => 0,
])
->setDisplayOptions('form', [
'type' => 'dynamic_entity_reference_default',
'settings' => [
'match_operator' => 'CONTAINS',
],
'weight' => 0,
]);
// @todo Check settings.
$fields['activity_date'] = BaseFieldDefinition::create('datetime')
->setLabel(t('Date'))
->setDefaultValue([
'default_date' => 'now',
])
->setDisplayOptions('view', [
'label' => 'above',
'settings' => [
'format_type' => 'long',
],
'type' => 'datetime_default',
'weight' => 1,
])
->setDisplayOptions('form', [
'type' => 'datetime_default',
'weight' => 2,
]);
// @todo Check settings.
$fields['activity_notes'] = BaseFieldDefinition::create('text_long')
->setLabel(t('Notes'))
->setDisplayOptions('view', [
'label' => 'above',
'type' => 'text_default',
'weight' => 2,
])
->setDisplayOptions('form', [
'type' => 'text_textarea',
'weight' => 3,
'settings' => [
'rows' => 5,
],
]);
return $fields;
}
/**
* {@inheritdoc}
*/
public function preSaveRevision(EntityStorageInterface $storage, \stdClass $record) {
parent::preSaveRevision($storage, $record);
$account = \Drupal::currentUser();
$record->uid = $account
->id();
}
/**
* {@inheritdoc}
*/
public function addParticipant(ContactInterface $contact) {
$this
->get('activity_participants')
->appendItem($contact);
}
/**
* {@inheritdoc}
*/
public function getChangedTime() {
return $this->changed;
}
/**
* {@inheritdoc}
*/
public function hasParticipant(ContactInterface $contact) {
foreach ($this->activity_participants as $participant) {
if ($participant->target_id == $contact
->id()) {
return TRUE;
}
}
return FALSE;
}
/**
* {@inheritdoc}
*/
public function label() {
return $this->type->entity
->getPlugin()
->label($this);
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
AccessibleInterface:: |
public | function | Checks data value access. | 9 |
Activity:: |
public | function |
Add a participant to the activity. Overrides ActivityInterface:: |
|
Activity:: |
public static | function |
Provides base field definitions for an entity type. Overrides FieldableEntityInterface:: |
|
Activity:: |
public | function |
Gets the timestamp of the last entity change for the current translation. Overrides EntityChangedTrait:: |
|
Activity:: |
public | function |
Check if participant exists in the activity. Overrides ActivityInterface:: |
|
Activity:: |
public | function |
Gets the label of the entity. Overrides EntityInterface:: |
|
Activity:: |
public | function |
Acts on a revision before it gets saved. Overrides RevisionableInterface:: |
|
CacheableDependencyInterface:: |
public | function | The cache contexts associated with this object. | 34 |
CacheableDependencyInterface:: |
public | function | The maximum age for which this object may be cached. | 34 |
CacheableDependencyInterface:: |
public | function | The cache tags associated with this object. | 27 |
EntityChangedTrait:: |
public | function | Returns the timestamp of the last entity change across all translations. | |
EntityChangedTrait:: |
public | function | Sets the timestamp of the last entity change for the current translation. | |
EntityInterface:: |
public | function | Gets the bundle of the entity. | 2 |
EntityInterface:: |
public static | function | Constructs a new entity object, without permanently saving it. | 2 |
EntityInterface:: |
public | function | Creates a duplicate of the entity. | 2 |
EntityInterface:: |
public | function | Deletes an entity permanently. | 2 |
EntityInterface:: |
public | function | Enforces an entity to be new. | 2 |
EntityInterface:: |
public | function | Returns the cache tags that should be used to invalidate caches. | 2 |
EntityInterface:: |
public | function | Gets the key that is used to store configuration dependencies. | 2 |
EntityInterface:: |
public | function | Gets the configuration dependency name. | 2 |
EntityInterface:: |
public | function | Gets the configuration target identifier for the entity. | 2 |
EntityInterface:: |
public | function | Gets the entity type definition. | 2 |
EntityInterface:: |
public | function | Gets the ID of the type of the entity. | 2 |
EntityInterface:: |
public | function | Gets the original ID. | 2 |
EntityInterface:: |
public | function | Gets a typed data object for this entity object. | 2 |
EntityInterface:: |
public | function | Indicates if a link template exists for a given key. | 2 |
EntityInterface:: |
public | function | Gets the identifier. | 2 |
EntityInterface:: |
public | function | Determines whether the entity is new. | 2 |
EntityInterface:: |
public | function | Gets the language of the entity. | 2 |
EntityInterface:: |
public | function | Deprecated way of generating a link to the entity. See toLink(). | 2 |
EntityInterface:: |
public static | function | Loads an entity. | 2 |
EntityInterface:: |
public static | function | Loads one or more entities. | 2 |
EntityInterface:: |
public | function | Acts on a created entity before hooks are invoked. | 2 |
EntityInterface:: |
public static | function | Acts on deleted entities before the delete hook is invoked. | 2 |
EntityInterface:: |
public static | function | Acts on loaded entities. | 3 |
EntityInterface:: |
public | function | Acts on a saved entity before the insert or update hook is invoked. | 2 |
EntityInterface:: |
public static | function | Changes the values of an entity before it is created. | 2 |
EntityInterface:: |
public static | function | Acts on entities before they are deleted and before hooks are invoked. | 2 |
EntityInterface:: |
public | function | Acts on an entity before the presave hook is invoked. | 2 |
EntityInterface:: |
public | function | Gets a list of entities referenced by this entity. | 2 |
EntityInterface:: |
public | function | Saves an entity permanently. | 2 |
EntityInterface:: |
public | function | Sets the original ID. | 2 |
EntityInterface:: |
public | function | Generates the HTML for a link to this entity. | 2 |
EntityInterface:: |
public | function | Gets the URL object for the entity. | 2 |
EntityInterface:: |
public | function | Gets a list of URI relationships supported by this entity. | 2 |
EntityInterface:: |
public | function | Gets the public URL for this entity. | 2 |
EntityInterface:: |
public | function | Gets the URL object for the entity. | 2 |
EntityInterface:: |
public | function | Gets the entity UUID (Universally Unique Identifier). | 2 |
EntityOwnerTrait:: |
public static | function | Default value callback for 'uid' base field definition. | |
EntityOwnerTrait:: |
public | function | Returns the entity owner's user entity. | |
EntityOwnerTrait:: |
public static | function | Defines 'uid' base field definition. | |
EntityOwnerTrait:: |
public | function | Returns the entity owner's user ID. | |
EntityOwnerTrait:: |
public | function | Sets the entity owner's user entity. | |
EntityOwnerTrait:: |
public | function | Sets the entity owner's user ID. | |
FieldableEntityInterface:: |
public static | function | Provides field definitions for a specific bundle. | 2 |
FieldableEntityInterface:: |
public | function | Gets a field item list. | 1 |
FieldableEntityInterface:: |
public | function | Gets the definition of a contained field. | 1 |
FieldableEntityInterface:: |
public | function | Gets an array of field definitions of all contained fields. | 1 |
FieldableEntityInterface:: |
public | function | Gets an array of all field item lists. | 1 |
FieldableEntityInterface:: |
public | function | Gets an array of field item lists for translatable fields. | 1 |
FieldableEntityInterface:: |
public | function | Determines whether the entity has a field with the given name. | 1 |
FieldableEntityInterface:: |
public | function | Checks whether entity validation is required before saving the entity. | 1 |
FieldableEntityInterface:: |
public | function | Reacts to changes to a field. | 1 |
FieldableEntityInterface:: |
public | function | Sets a field value. | 1 |
FieldableEntityInterface:: |
public | function | Sets whether entity validation is required before saving the entity. | 1 |
FieldableEntityInterface:: |
public | function |
Gets an array of all field values. Overrides EntityInterface:: |
|
FieldableEntityInterface:: |
public | function | Validates the currently set values. | 1 |
RefinableCacheableDependencyInterface:: |
public | function | Adds a dependency on an object: merges its cacheability metadata. | 1 |
RefinableCacheableDependencyInterface:: |
public | function | Adds cache contexts. | 1 |
RefinableCacheableDependencyInterface:: |
public | function | Adds cache tags. | 1 |
RefinableCacheableDependencyInterface:: |
public | function | Merges the maximum age (in seconds) with the existing maximum age. | 1 |
RevisionableInterface:: |
public | function | Gets the loaded Revision ID of the entity. | 1 |
RevisionableInterface:: |
public | function | Gets the revision identifier of the entity. | 1 |
RevisionableInterface:: |
public | function | Checks if this entity is the default revision. | 1 |
RevisionableInterface:: |
public | function | Checks if this entity is the latest revision. | 1 |
RevisionableInterface:: |
public | function | Determines whether a new revision should be created on save. | 1 |
RevisionableInterface:: |
public | function | Enforces an entity to be saved as a new revision. | 1 |
RevisionableInterface:: |
public | function | Updates the loaded Revision ID with the revision ID. | 1 |
RevisionableInterface:: |
public | function | Checks whether the entity object was a default revision when it was saved. | 1 |
SynchronizableInterface:: |
public | function | Returns whether this entity is being changed as part of a synchronization. | 1 |
SynchronizableInterface:: |
public | function | Sets the status of the synchronization flag. | 1 |
TranslatableInterface:: |
public | function | Adds a new translation to the translatable object. | 1 |
TranslatableInterface:: |
public | function | Gets a translation of the data. | 1 |
TranslatableInterface:: |
public | function | Returns the languages the data is translated to. | 1 |
TranslatableInterface:: |
public | function | Returns the translatable object referring to the original language. | 1 |
TranslatableInterface:: |
public | function | Checks there is a translation for the given language code. | 1 |
TranslatableInterface:: |
public | function | Determines if the current translation of the entity has unsaved changes. | 1 |
TranslatableInterface:: |
public | function | Checks whether the translation is the default one. | 1 |
TranslatableInterface:: |
public | function | Checks whether the translation is new. | 1 |
TranslatableInterface:: |
public | function | Returns the translation support status. | 1 |
TranslatableInterface:: |
public | function | Removes the translation identified by the given language code. | 1 |
TranslatableRevisionableInterface:: |
public | function | Checks if untranslatable fields should affect only the default translation. | 1 |
TranslatableRevisionableInterface:: |
public | function | Checks whether this is the latest revision affecting this translation. | 1 |
TranslatableRevisionableInterface:: |
public | function | Checks whether the current translation is affected by the current revision. | 1 |
TranslatableRevisionableInterface:: |
public | function | Checks if the revision translation affected flag value has been enforced. | 1 |
TranslatableRevisionableInterface:: |
public | function | Marks the current revision translation as affected. | 1 |
TranslatableRevisionableInterface:: |
public | function | Enforces the revision translation affected flag value. | 1 |