Compare commits

..

4 Commits

Author SHA1 Message Date
d8f1f4cbdd Added links to admin menu for managing taxonomies 2022-04-21 08:46:13 +01:00
22640f02b6 Started adding HookHelper and tests but the tests aren't working 2022-04-21 08:29:32 +01:00
797da77803 mob next [ci-skip] [ci skip] [skip ci] 2022-04-08 12:51:38 +01:00
66f95f46bf mob next [ci-skip] [ci skip] [skip ci]
lastFile:src/Plugin/Derivative/SeeAllOrganisationsMenuLink.php
2022-04-08 13:20:01 +02:00
13 changed files with 464 additions and 240 deletions

View File

@ -96,19 +96,36 @@ function opencase_cases_get_activities(Drupal\opencase_cases\entity\OCCase $case
return $activities;
}
function opencase_cases_get_amount(Drupal\opencase_cases\entity\OCCaseFee $case_fee): string {
if (!isEmpty($case_fee->amount)) return $case_fee->amount->first()->value;
else return '0';
}
function opencase_cases_get_case(Drupal\opencase_cases\entity\OCCaseFee $case_fee): Drupal\opencase_cases\entity\OCCase {
return $case_fee->oc_case->referencedEntities()[0];
}
function opencase_cases_update_total_fee_for_case_belonging_to_case_fee(Drupal\opencase_cases\entity\OCCaseFee $case_fee): void {
$total = 0;
$case = opencase_cases_get_case($case_fee);
$case_fees = opencase_cases_get_case_fees($case);
foreach($case_fees as $case_fee) {
$total += opencase_cases_get_amount($case_fee);
}
$case->set('total_fee', $total);
$case->save();
}
function opencase_cases_oc_case_fee_update(Drupal\opencase_cases\entity\OCCaseFee $case_fee): void {
$case = $case_fee->getCase();
$case->addToTotalFee($case_fee->amount->value - $case_fee->original->amount->value);
opencase_cases_update_total_fee_for_case_belonging_to_case_fee($case_fee);
}
function opencase_cases_oc_case_fee_insert(Drupal\opencase_cases\entity\OCCaseFee $case_fee): void {
$case = $case_fee->getCase();
$case->addToTotalFee($case_fee->amount->value);
opencase_cases_update_total_fee_for_case_belonging_to_case_fee($case_fee);
}
function opencase_cases_oc_case_fee_delete(Drupal\opencase_cases\entity\OCCaseFee $case_fee): void {
$case = $case_fee->getCase();
$case->addToTotalFee(0 - $case_fee->amount->value);
opencase_cases_update_total_fee_for_case_belonging_to_case_fee($case_fee);
}
function opencase_cases_entity_base_field_info($entity_type) {

View File

@ -75,25 +75,22 @@ use Drupal\user\UserInterface;
* field_ui_base_route = "entity.oc_case_type.edit_form"
* )
*/
class OCCase extends RevisionableContentEntityBase implements OCCaseInterface
{
class OCCase extends RevisionableContentEntityBase implements OCCaseInterface {
use EntityChangedTrait;
/**
* {@inheritdoc}
*/
public static function preCreate(EntityStorageInterface $storage_controller, array &$values)
{
public static function preCreate(EntityStorageInterface $storage_controller, array &$values) {
parent::preCreate($storage_controller, $values);
$values += [
'user_id' => \Drupal::currentUser()->id(),
];
}
public static function defaultTarget()
{
public static function defaultTarget() {
if (opencase_entities_get('target_id')) return [opencase_entities_get('target_id')];
else return [];
}
@ -101,13 +98,13 @@ class OCCase extends RevisionableContentEntityBase implements OCCaseInterface
/**
* {@inheritdoc}
*/
protected function urlRouteParameters($rel)
{
protected function urlRouteParameters($rel) {
$uri_route_parameters = parent::urlRouteParameters($rel);
if ($rel === 'revision_revert' && $this instanceof RevisionableInterface) {
$uri_route_parameters[$this->getEntityTypeId() . '_revision'] = $this->getRevisionId();
} elseif ($rel === 'revision_delete' && $this instanceof RevisionableInterface) {
}
elseif ($rel === 'revision_delete' && $this instanceof RevisionableInterface) {
$uri_route_parameters[$this->getEntityTypeId() . '_revision'] = $this->getRevisionId();
}
@ -117,8 +114,7 @@ class OCCase extends RevisionableContentEntityBase implements OCCaseInterface
/**
* {@inheritdoc}
*/
public function preSave(EntityStorageInterface $storage)
{
public function preSave(EntityStorageInterface $storage) {
parent::preSave($storage);
foreach (array_keys($this->getTranslationLanguages()) as $langcode) {
@ -140,16 +136,14 @@ class OCCase extends RevisionableContentEntityBase implements OCCaseInterface
/**
* {@inheritdoc}
*/
public function getName()
{
public function getName() {
return $this->get('name')->value;
}
/**
* {@inheritdoc}
*/
public function setName($name)
{
public function setName($name) {
$this->set('name', $name);
return $this;
}
@ -157,16 +151,14 @@ class OCCase extends RevisionableContentEntityBase implements OCCaseInterface
/**
* {@inheritdoc}
*/
public function getCreatedTime()
{
public function getCreatedTime() {
return $this->get('created')->value;
}
/**
* {@inheritdoc}
*/
public function setCreatedTime($timestamp)
{
public function setCreatedTime($timestamp) {
$this->set('created', $timestamp);
return $this;
}
@ -174,24 +166,21 @@ class OCCase extends RevisionableContentEntityBase implements OCCaseInterface
/**
* {@inheritdoc}
*/
public function getOwner()
{
public function getOwner() {
return $this->get('user_id')->entity;
}
/**
* {@inheritdoc}
*/
public function getOwnerId()
{
public function getOwnerId() {
return $this->get('user_id')->target_id;
}
/**
* {@inheritdoc}
*/
public function setOwnerId($uid)
{
public function setOwnerId($uid) {
$this->set('user_id', $uid);
return $this;
}
@ -199,8 +188,7 @@ class OCCase extends RevisionableContentEntityBase implements OCCaseInterface
/**
* {@inheritdoc}
*/
public function setOwner(UserInterface $account)
{
public function setOwner(UserInterface $account) {
$this->set('user_id', $account->id());
return $this;
}
@ -208,30 +196,24 @@ class OCCase extends RevisionableContentEntityBase implements OCCaseInterface
/**
* {@inheritdoc}
*/
public function isPublished()
{
return (bool)$this->getEntityKey('status');
public function isPublished() {
return (bool) $this->getEntityKey('status');
}
/**
* {@inheritdoc}
*/
public function setPublished($published)
{
public function setPublished($published) {
$this->set('status', $published ? TRUE : FALSE);
return $this;
}
public function addToTotalFee(float $amountToAdd): void {
$this->set('total_fee', $this->total_fee->value + $amountToAdd);
$this->save();
}
/**
* {@inheritdoc}
*/
public static function baseFieldDefinitions(EntityTypeInterface $entity_type)
{
public static function baseFieldDefinitions(EntityTypeInterface $entity_type) {
$fields = parent::baseFieldDefinitions($entity_type);
// not currently used. Will add form and view settings when ready
@ -239,8 +221,7 @@ class OCCase extends RevisionableContentEntityBase implements OCCaseInterface
->setLabel(t('Visible'))
->setDescription('If this box is not ticked this record will be hidden from view for most users. Users with access to unpublished entities will be able to restore it if needed.')
->setRevisionable(TRUE)
->setDisplayConfigurable('form', true)
->setDisplayConfigurable('view', true)
->setDisplayConfigurable("form", TRUE)
->setDefaultValue(TRUE);
$fields['user_id'] = BaseFieldDefinition::create('entity_reference')
@ -251,17 +232,22 @@ class OCCase extends RevisionableContentEntityBase implements OCCaseInterface
->setSetting('handler', 'default')
->setTranslatable(TRUE)
->setDisplayConfigurable('form', true)
->setDisplayConfigurable('view', true);
->setDisplayConfigurable('view', true)
->setDisplayOptions('view', [
'label' => 'above',
'type' => 'author',
'weight' => 80,
]);
$fields['oc_target'] = BaseFieldDefinition::create('entity_reference')
->setLabel(t('Target'))
->setRevisionable(TRUE)
->setSetting('target_type', 'oc_actor')
->setSetting('handler', 'default')
->setDefaultValueCallback('\Drupal\opencase_cases\Entity\OCCase::defaultTarget')
->setDisplayConfigurable('form', true)
->setDisplayConfigurable('view', true);
->setLabel(t('Target'))
->setRevisionable(TRUE)
->setSetting('target_type', 'oc_actor')
->setSetting('handler', 'default')
->setDefaultValueCallback('\Drupal\opencase_cases\Entity\OCCase::defaultTarget')
->setDisplayConfigurable('form', true)
->setDisplayConfigurable('view', true);
$fields['name'] = BaseFieldDefinition::create('string')
->setLabel(t('Title'))
@ -271,8 +257,14 @@ class OCCase extends RevisionableContentEntityBase implements OCCaseInterface
'text_processing' => 0,
])
->setDefaultValue('')
->setDisplayConfigurable('form', true)
->setDisplayConfigurable('view', true)
->setDisplayOptions('view', [
'label' => 'hidden',
'type' => 'string',
])
->setDisplayOptions('form', [
'type' => 'string_textfield',
'weight' => -100,
])
->setRequired(TRUE);
@ -286,7 +278,18 @@ class OCCase extends RevisionableContentEntityBase implements OCCaseInterface
->setSetting('uri_scheme', 'private')
->setCardinality(-1)
->setDisplayConfigurable('form', true)
->setDisplayConfigurable('view', true);
->setDisplayConfigurable('view', true)
->setDisplayOptions('form', [
'type' => 'file_generic',
'weight' => -1,
'settings' => [
'progress_indicator' => 'throbber',
],
])
->setDisplayOptions('view', [
'label' => 'above',
'settings' => ['use_description_as_link_text' => 'true']
]);
$fields['created'] = BaseFieldDefinition::create('created')
->setLabel(t('Created on'))
@ -318,13 +321,12 @@ class OCCase extends RevisionableContentEntityBase implements OCCaseInterface
$fields['total_fee'] = BaseFieldDefinition::create('decimal')
->setLabel(t('Total Fee'))
->setRevisionable(TRUE)
->setSettings([
'prefix' => '£',
])
->setDisplayConfigurable('form', true)
->setDisplayConfigurable('view', true);
->setLabel(t('Total Fee'))
->setRevisionable(TRUE)
->setSettings([
'prefix' => '£',
])
->SetDisplayConfigurable("view", true);
return $fields;
}

View File

@ -190,10 +190,6 @@ class OCCaseFee extends EditorialContentEntityBase implements OCCaseFeeInterface
return $this;
}
public function getCase():\Drupal\opencase_cases\Entity\OCCase {
return \Drupal\opencase_cases\Entity\OCCase::load($this->oc_case->target_id);
}
/**
* {@inheritdoc}
*/
@ -210,6 +206,21 @@ class OCCaseFee extends EditorialContentEntityBase implements OCCaseFeeInterface
->setSetting('target_type', 'user')
->setSetting('handler', 'default')
->setTranslatable(TRUE)
->setDisplayOptions('view', [
'label' => 'hidden',
'type' => 'author',
'weight' => 0,
])
->setDisplayOptions('form', [
'type' => 'entity_reference_autocomplete',
'weight' => 5,
'settings' => [
'match_operator' => 'CONTAINS',
'size' => '60',
'autocomplete_type' => 'tags',
'placeholder' => '',
],
])
->setDisplayConfigurable('form', TRUE)
->setDisplayConfigurable('view', TRUE);
@ -222,6 +233,15 @@ class OCCaseFee extends EditorialContentEntityBase implements OCCaseFeeInterface
'text_processing' => 0,
])
->setDefaultValue('')
->setDisplayOptions('view', [
'label' => 'above',
'type' => 'string',
'weight' => -4,
])
->setDisplayOptions('form', [
'type' => 'string_textfield',
'weight' => -4,
])
->setDisplayConfigurable('form', TRUE)
->setDisplayConfigurable('view', TRUE)
->setRequired(TRUE);

View File

@ -77,8 +77,7 @@ use Drupal\user\UserInterface;
* field_ui_base_route = "entity.oc_case_provision_type.edit_form"
* )
*/
class OCCaseProvision extends EditorialContentEntityBase implements OCCaseProvisionInterface
{
class OCCaseProvision extends EditorialContentEntityBase implements OCCaseProvisionInterface {
use EntityChangedTrait;
use EntityPublishedTrait;
@ -86,8 +85,7 @@ class OCCaseProvision extends EditorialContentEntityBase implements OCCaseProvis
/**
* {@inheritdoc}
*/
public static function preCreate(EntityStorageInterface $storage_controller, array &$values)
{
public static function preCreate(EntityStorageInterface $storage_controller, array &$values) {
parent::preCreate($storage_controller, $values);
$values += [
'user_id' => \Drupal::currentUser()->id(),
@ -97,13 +95,13 @@ class OCCaseProvision extends EditorialContentEntityBase implements OCCaseProvis
/**
* {@inheritdoc}
*/
protected function urlRouteParameters($rel)
{
protected function urlRouteParameters($rel) {
$uri_route_parameters = parent::urlRouteParameters($rel);
if ($rel === 'revision_revert' && $this instanceof RevisionableInterface) {
$uri_route_parameters[$this->getEntityTypeId() . '_revision'] = $this->getRevisionId();
} elseif ($rel === 'revision_delete' && $this instanceof RevisionableInterface) {
}
elseif ($rel === 'revision_delete' && $this instanceof RevisionableInterface) {
$uri_route_parameters[$this->getEntityTypeId() . '_revision'] = $this->getRevisionId();
}
@ -113,8 +111,7 @@ class OCCaseProvision extends EditorialContentEntityBase implements OCCaseProvis
/**
* {@inheritdoc}
*/
public function preSave(EntityStorageInterface $storage)
{
public function preSave(EntityStorageInterface $storage) {
parent::preSave($storage);
foreach (array_keys($this->getTranslationLanguages()) as $langcode) {
@ -136,16 +133,14 @@ class OCCaseProvision extends EditorialContentEntityBase implements OCCaseProvis
/**
* {@inheritdoc}
*/
public function getName()
{
public function getName() {
return $this->get('name')->value;
}
/**
* {@inheritdoc}
*/
public function setName($name)
{
public function setName($name) {
$this->set('name', $name);
return $this;
}
@ -153,16 +148,14 @@ class OCCaseProvision extends EditorialContentEntityBase implements OCCaseProvis
/**
* {@inheritdoc}
*/
public function getCreatedTime()
{
public function getCreatedTime() {
return $this->get('created')->value;
}
/**
* {@inheritdoc}
*/
public function setCreatedTime($timestamp)
{
public function setCreatedTime($timestamp) {
$this->set('created', $timestamp);
return $this;
}
@ -170,24 +163,21 @@ class OCCaseProvision extends EditorialContentEntityBase implements OCCaseProvis
/**
* {@inheritdoc}
*/
public function getOwner()
{
public function getOwner() {
return $this->get('user_id')->entity;
}
/**
* {@inheritdoc}
*/
public function getOwnerId()
{
public function getOwnerId() {
return $this->get('user_id')->target_id;
}
/**
* {@inheritdoc}
*/
public function setOwnerId($uid)
{
public function setOwnerId($uid) {
$this->set('user_id', $uid);
return $this;
}
@ -195,8 +185,7 @@ class OCCaseProvision extends EditorialContentEntityBase implements OCCaseProvis
/**
* {@inheritdoc}
*/
public function setOwner(UserInterface $account)
{
public function setOwner(UserInterface $account) {
$this->set('user_id', $account->id());
return $this;
}
@ -204,8 +193,7 @@ class OCCaseProvision extends EditorialContentEntityBase implements OCCaseProvis
/**
* {@inheritdoc}
*/
public static function baseFieldDefinitions(EntityTypeInterface $entity_type)
{
public static function baseFieldDefinitions(EntityTypeInterface $entity_type) {
$fields = parent::baseFieldDefinitions($entity_type);
// Add the published field.
@ -218,6 +206,21 @@ class OCCaseProvision extends EditorialContentEntityBase implements OCCaseProvis
->setSetting('target_type', 'user')
->setSetting('handler', 'default')
->setTranslatable(TRUE)
->setDisplayOptions('view', [
'label' => 'hidden',
'type' => 'author',
'weight' => 0,
])
->setDisplayOptions('form', [
'type' => 'entity_reference_autocomplete',
'weight' => 5,
'settings' => [
'match_operator' => 'CONTAINS',
'size' => '60',
'autocomplete_type' => 'tags',
'placeholder' => '',
],
])
->setDisplayConfigurable('form', TRUE)
->setDisplayConfigurable('view', TRUE);
@ -230,17 +233,25 @@ class OCCaseProvision extends EditorialContentEntityBase implements OCCaseProvis
'text_processing' => 0,
])
->setDefaultValue('')
->setDisplayOptions('view', [
'label' => 'above',
'type' => 'string',
'weight' => -4,
])
->setDisplayOptions('form', [
'type' => 'string_textfield',
'weight' => -4,
])
->setDisplayConfigurable('form', TRUE)
->setDisplayConfigurable('view', TRUE)
->setRequired(TRUE);
$fields['status'] = BaseFieldDefinition::create('boolean')
$fields['status'] = BaseFieldDefinition::create('boolean')
->setLabel(t('Visible'))
->setDescription('If this box is not ticked this record will be hidden from view for most users. Users with access to unpublished entities will be able to restore it if needed.')
->setRevisionable(TRUE)
->setDisplayConfigurable('form', true)
->setDisplayConfigurable('view', true)
->setDisplayConfigurable('form', TRUE)
->setDefaultValue(TRUE);
@ -287,7 +298,7 @@ class OCCaseProvision extends EditorialContentEntityBase implements OCCaseProvis
->setDisplayConfigurable("form", true)
->setRequired(TRUE);
$fields['oc_case_provider_role'] = \Drupal\Core\Field\BaseFieldDefinition::create('entity_reference')
$fields['oc_case_provider_role'] = \Drupal\Core\Field\BaseFieldDefinition::create('entity_reference')
->setLabel(t('Role'))
->setSetting('target_type', 'taxonomy_term')
->setSetting('handler_settings', ['target_bundles' => ['oc_case_provider_role' => 'oc_case_provider_role']])

View File

@ -0,0 +1,9 @@
<?php
namespace Drupal\opencase_cases\Helper;
class HookHelper {
public static function onCaseFeeUpdate(\Drupal\opencase_cases\Entity\OCCaseFee $caseFee) {
}
}

View File

@ -122,7 +122,7 @@ class OCActor extends RevisionableContentEntityBase implements OCActorInterface
$name = $this->get('first_name')->value . ' ';
if ($this->get('middle_names')->value) $name .= $this->get('middle_names')->value . ' ';
$name .= $this->get('last_name')->value . ' ';
$this->setName($name);
// If no revision author has been set explicitly, make the oc_actor owner the
@ -218,7 +218,6 @@ class OCActor extends RevisionableContentEntityBase implements OCActorInterface
->setDescription('If this box is not ticked this record will be hidden from view for most users. Users with access to unpublished entities will be able to restore it if needed.')
->setRevisionable(TRUE)
->setDisplayConfigurable("form", true)
->setDisplayConfigurable("view", true)
->setDefaultValue(TRUE);
// The name gets set on preSave, from the first middle and last
@ -227,7 +226,7 @@ class OCActor extends RevisionableContentEntityBase implements OCActorInterface
->setSettings([
'max_length' => 100,
'text_processing' => 0,
]);
]);
$fields['user_id'] = BaseFieldDefinition::create('entity_reference')
->setLabel(t('Entered by'))
@ -235,8 +234,6 @@ class OCActor extends RevisionableContentEntityBase implements OCActorInterface
->setRevisionable(TRUE)
->setSetting('target_type', 'user')
->setSetting('handler', 'default')
->setDisplayConfigurable("form", true)
->setDisplayConfigurable("view", true)
->setTranslatable(TRUE);
$fields['first_name'] = BaseFieldDefinition::create('string')
@ -250,6 +247,10 @@ class OCActor extends RevisionableContentEntityBase implements OCActorInterface
->setDisplayConfigurable("form", true)
->setDisplayConfigurable("view", true)
->setDefaultValue('')
->setDisplayOptions('form', [
'type' => 'string_textfield',
'weight' => -100,
])
->setRequired(TRUE);
$fields['middle_names'] = BaseFieldDefinition::create('string')
@ -263,6 +264,10 @@ class OCActor extends RevisionableContentEntityBase implements OCActorInterface
->setDisplayConfigurable("form", true)
->setDisplayConfigurable("view", true)
->setDefaultValue('')
->setDisplayOptions('form', [
'type' => 'string_textfield',
'weight' => -99,
])
->setRequired(FALSE);
$fields['last_name'] = BaseFieldDefinition::create('string')
@ -276,6 +281,10 @@ class OCActor extends RevisionableContentEntityBase implements OCActorInterface
'text_processing' => 0,
])
->setDefaultValue('')
->setDisplayOptions('form', [
'type' => 'string_textfield',
'weight' => -98,
])
->setRequired(TRUE);
// Contact details.
@ -288,7 +297,16 @@ class OCActor extends RevisionableContentEntityBase implements OCActorInterface
'text_processing' => 0,
))
->setDisplayConfigurable("form", true)
->setDisplayConfigurable("view", true);
->setDisplayConfigurable("view", true)
->setDisplayOptions('view', array(
'label' => 'above',
'type' => 'string',
'weight' => -5,
))
->setDisplayOptions('form', array(
'type' => 'string_textfield',
'weight' => -5,
));
$fields['phone'] = BaseFieldDefinition::create('string')
->setLabel(t('Main Phone Number'))
->setRevisionable(TRUE)
@ -298,7 +316,16 @@ class OCActor extends RevisionableContentEntityBase implements OCActorInterface
'text_processing' => 0,
))
->setDisplayConfigurable("form", true)
->setDisplayConfigurable("view", true);
->setDisplayConfigurable("view", true)
->setDisplayOptions('view', array(
'label' => 'above',
'type' => 'string',
'weight' => -4,
))
->setDisplayOptions('form', array(
'type' => 'string_textfield',
'weight' => -4,
));
$fields['phone2'] = BaseFieldDefinition::create('string')
->setRevisionable(TRUE)
->setLabel(t('Alternative Phone Number'))
@ -308,7 +335,16 @@ class OCActor extends RevisionableContentEntityBase implements OCActorInterface
'text_processing' => 0,
))
->setDisplayConfigurable("form", true)
->setDisplayConfigurable("view", true);
->setDisplayConfigurable("view", true)
->setDisplayOptions('view', array(
'label' => 'above',
'type' => 'string',
'weight' => -3,
))
->setDisplayOptions('form', array(
'type' => 'string_textfield',
'weight' => -3,
));
$fields['postal_address'] = BaseFieldDefinition::create('string_long')
->setRevisionable(TRUE)
->setLabel(t('Postal Address'))
@ -319,7 +355,16 @@ class OCActor extends RevisionableContentEntityBase implements OCActorInterface
'text_processing' => 0,
))
->setDisplayConfigurable("form", true)
->setDisplayConfigurable("view", true);
->setDisplayConfigurable("view", true)
->setDisplayOptions('view', array(
'label' => 'above',
'type' => 'basic_string',
'weight' => -2,
))
->setDisplayOptions('form', array(
'type' => 'string_textarea',
'weight' => -2,
));
$fields['post_code'] = BaseFieldDefinition::create('string')
->setRevisionable(TRUE)
->setLabel(t('Post Code'))
@ -329,7 +374,16 @@ class OCActor extends RevisionableContentEntityBase implements OCActorInterface
'text_processing' => 0,
))
->setDisplayConfigurable("form", true)
->setDisplayConfigurable("view", true);
->setDisplayConfigurable("view", true)
->setDisplayOptions('view', array(
'label' => 'above',
'type' => 'string',
'weight' => -1,
))
->setDisplayOptions('form', array(
'type' => 'string_textfield',
'weight' => -1,
));
$fields['created'] = BaseFieldDefinition::create('created')
->setLabel(t('Created'))
@ -346,6 +400,13 @@ class OCActor extends RevisionableContentEntityBase implements OCActorInterface
->setRevisionable(TRUE)
->setTranslatable(TRUE);
$fields['user_login'] = BaseFieldDefinition::create('boolean')
->setLabel(t('Login Access'))
->setDescription(t('Whether this person should be able to log into the system.'))
->setDisplayConfigurable('form', true)
->setDisplayConfigurable('display', true)
->setDefaultValue(FALSE);
return $fields;
}

View File

@ -112,9 +112,7 @@ class OCEqualOpps extends ContentEntityBase implements OCEqualOppsInterface {
->setSettings([
'max_length' => 50,
'text_processing' => 0,
])
->setDisplayConfigurable('form', true)
->setDisplayConfigurable('view', true);
]);
$fields['oc_actor'] = \Drupal\Core\Field\BaseFieldDefinition::create('entity_reference')
->setLabel(t('Person'))
@ -122,8 +120,14 @@ class OCEqualOpps extends ContentEntityBase implements OCEqualOppsInterface {
->setSetting('target_type', 'oc_actor')
->setSetting('handler', 'default')
->setCardinality(1)
->setDisplayConfigurable('form', true)
->setDisplayConfigurable('view', true)
->setDisplayOptions('view', [
'type' => 'string',
'weight' => -100,
])
->setDisplayOptions('form', [
'type' => 'entity_reference_autocomplete_tags',
'weight' => -100,
])
->setRequired(TRUE);
$fields['age'] = BaseFieldDefinition::create('list_string')
@ -140,13 +144,27 @@ class OCEqualOpps extends ContentEntityBase implements OCEqualOppsInterface {
],
])
->setDisplayConfigurable('form', true)
->setDisplayConfigurable('form', true)
->setDisplayConfigurable('view', true);
->setDisplayOptions('view', array(
'label' => 'above',
'type' => 'string',
'weight' => -5,
))
->setDisplayOptions('form', array(
'type' => 'options_select',
'weight' => -5,
));
$fields['access_needs'] = BaseFieldDefinition::create('string_long')
->setLabel(t('Access Needs'))
->setRevisionable(TRUE)
->setDisplayConfigurable('form', true)
->setDisplayConfigurable('view', true);
->setDisplayOptions('view', array(
'label' => 'above',
'type' => 'string',
'weight' => -4,
))
->setDisplayOptions('form', array(
'type' => 'string_long',
'weight' => -4,
));
$fields['gender'] = BaseFieldDefinition::create('list_string')
->setRevisionable(TRUE)
->setLabel(t('Gender'))
@ -162,7 +180,15 @@ class OCEqualOpps extends ContentEntityBase implements OCEqualOppsInterface {
],
])
->setDisplayConfigurable('form', true)
->setDisplayConfigurable('view', true);
->setDisplayOptions('view', array(
'label' => 'above',
'type' => 'string',
'weight' => -5,
))
->setDisplayOptions('form', array(
'type' => 'options_select',
'weight' => -5,
));
$fields['race_ethnicity'] = BaseFieldDefinition::create('list_string')
->setRevisionable(TRUE)
->setLabel(t('Race/Ethnicity'))
@ -189,7 +215,15 @@ class OCEqualOpps extends ContentEntityBase implements OCEqualOppsInterface {
],
])
->setDisplayConfigurable('form', true)
->setDisplayConfigurable('view', true);
->setDisplayOptions('view', array(
'label' => 'above',
'type' => 'string',
'weight' => -5,
))
->setDisplayOptions('form', array(
'type' => 'options_select',
'weight' => -5,
));
$fields['sexuality'] = BaseFieldDefinition::create('string')
->setLabel(t('Sexuality'))
->setRevisionable(TRUE)
@ -197,9 +231,18 @@ class OCEqualOpps extends ContentEntityBase implements OCEqualOppsInterface {
'max_length' => 20,
'text_processing' => 0,
])
->setDisplayConfigurable("form", true)
->setDisplayConfigurable("view", true)
->setDefaultValue('')
->setDisplayConfigurable('form', true)
->setDisplayConfigurable('view', true);
->setDisplayOptions('view', array(
'label' => 'above',
'type' => 'string',
'weight' => -1,
))
->setDisplayOptions('form', [
'type' => 'string_textfield',
'weight' => -1,
]);
$fields['status']->setDescription(t('A boolean indicating whether the Equal Opps is published.'));

View File

@ -149,9 +149,7 @@ class OCEvent extends ContentEntityBase implements OCEventInterface {
->setDescription(t('The user ID of author of the Event entity.'))
->setRevisionable(TRUE)
->setSetting('target_type', 'user')
->setSetting('handler', 'default')
->setDisplayConfigurable('form', true)
->setDisplayConfigurable('view', true);
->setSetting('handler', 'default');
$fields['name'] = BaseFieldDefinition::create('string')
->setLabel(t('Name'))
@ -165,16 +163,15 @@ class OCEvent extends ContentEntityBase implements OCEventInterface {
'type' => 'string_textfield',
'weight' => -4,
])
->setDisplayConfigurable('form', true)
->setDisplayConfigurable('view', true)
->setDisplayConfigurable('form', TRUE)
->setDisplayConfigurable('view', TRUE)
->setRequired(TRUE);
$fields['status'] = BaseFieldDefinition::create('boolean')
->setLabel(t('Visible'))
->setDescription('If this box is not ticked this record will be hidden from view for most users. Users with access to unpublished entities will be able to restore it if needed.')
->setRevisionable(TRUE)
->setDisplayConfigurable('form', true)
->setDisplayConfigurable('view', true)
->setDisplayConfigurable("form", true)
->setDefaultValue(TRUE);
@ -193,8 +190,18 @@ class OCEvent extends ContentEntityBase implements OCEventInterface {
->setRequired(TRUE)
// Uses the currentDateTime function from the Activity entity
->setDefaultValueCallback('\Drupal\opencase_entities\Entity\OCActivity::currentDateTime')
->setDisplayConfigurable('form', true)
->setDisplayConfigurable('view', true);
->setDisplayOptions('view', [
'label' => 'above',
'type' => 'datetime_default',
'settings' => [
'format_type' => 'medium',
],
'weight' => -3,
])
->setDisplayOptions('form', [
'type' => 'datetime_default',
'weight' => -3,
]);
$fields['description'] = BaseFieldDefinition::create('string_long')
->setLabel(t('Description'))
@ -204,8 +211,15 @@ class OCEvent extends ContentEntityBase implements OCEventInterface {
'text_processing' => 0,
])
->setDefaultValue('')
->setDisplayConfigurable('form', true)
->setDisplayConfigurable('view', true)
->setDisplayOptions('view', [
'label' => 'above',
'type' => 'basic_string',
'weight' => -1,
])
->setDisplayOptions('form', [
'type' => 'string_textarea',
'weight' => -1,
])
->setRequired(FALSE);
$fields['attendees'] = BaseFieldDefinition::create('entity_reference')
@ -215,8 +229,14 @@ class OCEvent extends ContentEntityBase implements OCEventInterface {
->setSetting('handler', 'default')
->setTranslatable(TRUE)
->setCardinality(BaseFieldDefinition::CARDINALITY_UNLIMITED)
->setDisplayConfigurable('form', true)
->setDisplayConfigurable('view', true)
->setDisplayOptions('view', [
'type' => 'string',
'weight' => 50,
])
->setDisplayOptions('form', [
'type' => 'entity_reference_autocomplete',
'weight' => 50,
])
->setRequired(FALSE);

View File

@ -204,12 +204,19 @@ class OCOrganisation extends EditorialContentEntityBase implements OCOrganisatio
$fields['notes'] = BaseFieldDefinition::create('string_long')
->setRevisionable(TRUE)
->setLabel(t('Notes'))
->setDisplayConfigurable('form', true)
->setDisplayConfigurable('view', true)
->setSettings(array(
'default_value' => '',
'max_length' => 255,
'text_processing' => 0,
))
->setDisplayOptions('view', array(
'label' => 'above',
'type' => 'basic_string',
'weight' => 50,
))
->setDisplayOptions('form', array(
'type' => 'string_textarea',
'weight' => 50,
));
$fields['website'] = BaseFieldDefinition::create('string')
->setLabel(t('Website'))
@ -219,8 +226,15 @@ class OCOrganisation extends EditorialContentEntityBase implements OCOrganisatio
'text_processing' => 0,
])
->setDefaultValue('')
->setDisplayConfigurable('form', true)
->setDisplayConfigurable('view', true)
->setDisplayOptions('view', [
'label' => 'above',
'type' => 'string',
'weight' => 49,
])
->setDisplayOptions('form', [
'type' => 'string_textfield',
'weight' => 49,
])
->setRequired(FALSE);
$fields['contact_name'] = BaseFieldDefinition::create('string')
->setLabel(t('Contact Name'))
@ -231,8 +245,15 @@ class OCOrganisation extends EditorialContentEntityBase implements OCOrganisatio
'text_processing' => 0,
])
->setDefaultValue('')
->setDisplayConfigurable('form', true)
->setDisplayConfigurable('view', true)
->setDisplayOptions('view', [
'label' => 'above',
'type' => 'string',
'weight' => 51,
])
->setDisplayOptions('form', [
'type' => 'string_textfield',
'weight' => 51,
])
->setRequired(FALSE);
$fields['contact_role'] = BaseFieldDefinition::create('string')
@ -244,8 +265,15 @@ class OCOrganisation extends EditorialContentEntityBase implements OCOrganisatio
'text_processing' => 0,
])
->setDefaultValue('')
->setDisplayConfigurable('form', true)
->setDisplayConfigurable('view', true)
->setDisplayOptions('view', [
'label' => 'above',
'type' => 'string',
'weight' => 52,
])
->setDisplayOptions('form', [
'type' => 'string_textfield',
'weight' => 52,
])
->setRequired(FALSE);
$fields['email'] = BaseFieldDefinition::create('string')
->setLabel(t('Email Address'))
@ -255,8 +283,15 @@ class OCOrganisation extends EditorialContentEntityBase implements OCOrganisatio
'max_length' => 100,
'text_processing' => 0,
))
->setDisplayConfigurable('form', true)
->setDisplayConfigurable('view', true);
->setDisplayOptions('view', array(
'label' => 'above',
'type' => 'string',
'weight' => 52,
))
->setDisplayOptions('form', array(
'type' => 'string_textfield',
'weight' => 52,
));
$fields['phone'] = BaseFieldDefinition::create('string')
->setLabel(t('Phone Number'))
@ -266,8 +301,15 @@ class OCOrganisation extends EditorialContentEntityBase implements OCOrganisatio
'max_length' => 20,
'text_processing' => 0,
))
->setDisplayConfigurable('form', true)
->setDisplayConfigurable('view', true);
->setDisplayOptions('view', array(
'label' => 'above',
'type' => 'string',
'weight' => 53,
))
->setDisplayOptions('form', array(
'type' => 'string_textfield',
'weight' => 53,
));
$fields['postal_address'] = BaseFieldDefinition::create('string_long')
->setRevisionable(TRUE)
->setLabel(t('Postal Address'))
@ -277,8 +319,15 @@ class OCOrganisation extends EditorialContentEntityBase implements OCOrganisatio
'max_length' => 255,
'text_processing' => 0,
))
->setDisplayConfigurable('form', true)
->setDisplayConfigurable('view', true);
->setDisplayOptions('view', array(
'label' => 'above',
'type' => 'basic_string',
'weight' => 54,
))
->setDisplayOptions('form', array(
'type' => 'string_textarea',
'weight' => 54,
));
$fields['post_code'] = BaseFieldDefinition::create('string')
->setRevisionable(TRUE)
->setLabel(t('Post Code'))
@ -287,8 +336,15 @@ class OCOrganisation extends EditorialContentEntityBase implements OCOrganisatio
'max_length' => 10,
'text_processing' => 0,
))
->setDisplayConfigurable('form', true)
->setDisplayConfigurable('view', true);
->setDisplayOptions('view', array(
'label' => 'above',
'type' => 'string',
'weight' => 55,
))
->setDisplayOptions('form', array(
'type' => 'string_textfield',
'weight' => 55,
));
$fields['billing_contact_name'] = BaseFieldDefinition::create('string')
->setLabel(t('Billing Contact Name'))
->setDescription(t('Name of the main contact for this client.'))
@ -298,8 +354,15 @@ class OCOrganisation extends EditorialContentEntityBase implements OCOrganisatio
'text_processing' => 0,
])
->setDefaultValue('')
->setDisplayConfigurable('form', true)
->setDisplayConfigurable('view', true)
->setDisplayOptions('view', [
'label' => 'above',
'type' => 'string',
'weight' => 56,
])
->setDisplayOptions('form', [
'type' => 'string_textfield',
'weight' => 56,
])
->setRequired(FALSE);
$fields['billing_email'] = BaseFieldDefinition::create('string')
@ -310,8 +373,15 @@ class OCOrganisation extends EditorialContentEntityBase implements OCOrganisatio
'max_length' => 100,
'text_processing' => 0,
))
->setDisplayConfigurable('form', true)
->setDisplayConfigurable('view', true);
->setDisplayOptions('view', array(
'label' => 'above',
'type' => 'string',
'weight' => 57,
))
->setDisplayOptions('form', array(
'type' => 'string_textfield',
'weight' => 57,
));
$fields['billing_phone'] = BaseFieldDefinition::create('string')
->setLabel(t('Billing Phone Number'))
@ -321,8 +391,15 @@ class OCOrganisation extends EditorialContentEntityBase implements OCOrganisatio
'max_length' => 20,
'text_processing' => 0,
))
->setDisplayConfigurable('form', true)
->setDisplayConfigurable('view', true);
->setDisplayOptions('view', array(
'label' => 'above',
'type' => 'string',
'weight' => 58,
))
->setDisplayOptions('form', array(
'type' => 'string_textfield',
'weight' => 58,
));
$fields['billing_postal_address'] = BaseFieldDefinition::create('string_long')
->setRevisionable(TRUE)
->setLabel(t('Billing Postal Address'))
@ -332,8 +409,15 @@ class OCOrganisation extends EditorialContentEntityBase implements OCOrganisatio
'max_length' => 255,
'text_processing' => 0,
))
->setDisplayConfigurable('form', true)
->setDisplayConfigurable('view', true);
->setDisplayOptions('view', array(
'label' => 'above',
'type' => 'basic_string',
'weight' => 59,
))
->setDisplayOptions('form', array(
'type' => 'string_textarea',
'weight' => 59,
));
$fields['billing_post_code'] = BaseFieldDefinition::create('string')
->setRevisionable(TRUE)
->setLabel(t('Billing Post Code'))
@ -342,8 +426,15 @@ class OCOrganisation extends EditorialContentEntityBase implements OCOrganisatio
'max_length' => 10,
'text_processing' => 0,
))
->setDisplayConfigurable('form', true)
->setDisplayConfigurable('view', true);
->setDisplayOptions('view', array(
'label' => 'above',
'type' => 'string',
'weight' => 60,
))
->setDisplayOptions('form', array(
'type' => 'string_textfield',
'weight' => 60,
));
$fields['user_id'] = BaseFieldDefinition::create('entity_reference')
->setLabel(t('Added by'))
->setRevisionable(TRUE)
@ -359,16 +450,24 @@ class OCOrganisation extends EditorialContentEntityBase implements OCOrganisatio
'text_processing' => 0,
])
->setDefaultValue('')
->setDisplayConfigurable('form', true)
->setDisplayConfigurable('view', true)
->setDisplayOptions('view', [
'label' => 'hidden',
'type' => 'string',
'weight' => -100,
])
->setDisplayOptions('form', [
'type' => 'string_textfield',
'weight' => -100,
])
->setDisplayConfigurable('form', TRUE)
->setDisplayConfigurable('view', TRUE)
->setRequired(TRUE);
$fields['status'] = BaseFieldDefinition::create('boolean')
->setLabel(t('Visible'))
->setDescription('If this box is not ticked this record will be hidden from view for most users. Users with access to unpublished entities will be able to restore it if needed.')
->setRevisionable(TRUE)
->setDisplayConfigurable('form', true)
->setDisplayConfigurable('view', true)
->setDisplayConfigurable("form", true)
->setDefaultValue(TRUE);

View File

@ -13,11 +13,6 @@ opencase.see_all_organisations_links:
deriver: Drupal\opencase\Plugin\Derivative\SeeAllOrganisationsMenuLink
menu_name: opencase
parent: opencase.see_all
#opencase.see_all_events_links: //@TODO findout why "view.events.page_1" does not work
# class: Drupal\opencase\Plugin\Menu\SeeAllEventsMenuLink
# deriver: Drupal\opencase\Plugin\Derivative\SeeAllEventsMenuLink
# menu_name: opencase
# parent: opencase.see_all
opencase.opencase_add_new_things_menu:
title: 'Add new...'
menu_name: opencase

View File

@ -1,60 +0,0 @@
<?php
namespace Drupal\opencase\Plugin\Derivative;
use Drupal\Component\Plugin\Derivative\DeriverBase;
use Drupal\Core\Entity\EntityTypeManagerInterface;
use Drupal\Core\Plugin\Discovery\ContainerDeriverInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
/**
*  * Derivative class that provides the menu links adding various types of events
*  */
class SeeAllEventsMenuLink extends DeriverBase implements ContainerDeriverInterface
{
/**
*    * @var EntityTypeManagerInterface $entityTypeManager .
*    */
protected $entityTypeManager;
/**
*    * Creates a AddActorsMenuLink instance.
*    *
*    * @param $base_plugin_id
*    * @param EntityTypeManagerInterface $entity_type_manager
*    */
public function __construct($base_plugin_id, EntityTypeManagerInterface $entity_type_manager)
{
$this->entityTypeManager = $entity_type_manager;
}
/**
*    * {@inheritdoc}
*    */
public static function create(ContainerInterface $container, $base_plugin_id)
{
return new static(
$base_plugin_id,
$container->get('entity_type.manager')
);
}
/**
*    * {@inheritdoc}
*    */
public function getDerivativeDefinitions($base_plugin_definition)
{
$links = [];
$eventTypes = $this->entityTypeManager->getStorage('oc_event_type')->loadMultiple();
foreach ($eventTypes as $id => $eventType) {
$links[$id] = [
'title' => $eventType->label(),
'route_name' => "view.events.page_1",
'route_parameters' => ['type' => $eventType->id()]
] + $base_plugin_definition;
}
return $links;
}
}

View File

@ -1,9 +0,0 @@
<?php
namespace Drupal\opencase\Plugin\Menu;
use Drupal\Core\Menu\MenuLinkDefault;
/**
* Represents a menu link for seeing all Events of various types.
*/
class SeeAllEventsMenuLink extends MenuLinkDefault {}

View File

@ -0,0 +1,16 @@
<?php declare(strict_types=1);
use PHPUnit\Framework\TestCase;
include '../../../modules/opencase_cases/src/Entity/OCCase.php';
final class HookHelperTest extends TestCase
{
public function testOnCaseFeeUpdate(): void
{
$caseStub = $this->createStub(\Drupal\opencase_cases\Entity\OCCase::class);
$caseStub->total_fee = 5;
$caseFeeStub = $this->createStub(\Drupal\opencase_cases\Entity\OCCaseFee::class);
$caseFeeStub->amount = 10;
$caseFeeStub->method('getCase')->will($this->returnValue($caseStub));
$this->assertSame(5,5);
}
}