From 41ced5338d96ce583c59e0dcbdd2de66d81bbba5 Mon Sep 17 00:00:00 2001 From: bluegeek9 <5614-bluegeek9@users.noreply.drupalcode.org> Date: Tue, 24 Oct 2023 23:28:28 +0000 Subject: [PATCH] Issue #3396128: Adds crm fields as properties of the contact --- .gitlab-ci.yml | 2 +- ...display.crm_contact.individual.default.yml | 94 ------------------- ...splay.crm_contact.organization.default.yml | 68 -------------- ...ld.field.crm_contact.individual.emails.yml | 21 ----- ...ield.crm_contact.individual.telephones.yml | 21 ----- ....field.crm_contact.organization.emails.yml | 21 ----- ...ld.crm_contact.organization.telephones.yml | 21 ----- .../field.storage.crm_contact.emails.yml | 18 ---- .../field.storage.crm_contact.telephones.yml | 19 ---- modules/crm_case/src/Entity/CrmCase.php | 1 - .../Field/FieldType/CRMTelephoneItem.php | 1 + src/Entity/CrmContact.php | 32 ++++++- tests/src/Functional/ContactEditFormTest.php | 3 +- 13 files changed, 34 insertions(+), 288 deletions(-) delete mode 100644 config/install/core.entity_form_display.crm_contact.individual.default.yml delete mode 100644 config/install/core.entity_form_display.crm_contact.organization.default.yml delete mode 100644 config/install/field.field.crm_contact.individual.emails.yml delete mode 100644 config/install/field.field.crm_contact.individual.telephones.yml delete mode 100644 config/install/field.field.crm_contact.organization.emails.yml delete mode 100644 config/install/field.field.crm_contact.organization.telephones.yml delete mode 100644 config/install/field.storage.crm_contact.emails.yml delete mode 100644 config/install/field.storage.crm_contact.telephones.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 0733e07..353491d 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -89,7 +89,7 @@ phpunit: - composer install - composer require --dev phpunit/phpunit phpunit/php-code-coverage variables: - _PHPUNIT_EXTRA: "--coverage-cobertura $CI_PROJECT_DIR/coverage.xml --coverage-filter $CI_PROJECT_DIR/$_WEB_ROOT/modules/custom/$CI_PROJECT_NAME --coverage-text --colors=never" + _PHPUNIT_EXTRA: " --coverage-cobertura $CI_PROJECT_DIR/coverage.xml --coverage-filter $CI_PROJECT_DIR/$_WEB_ROOT/modules/custom/$CI_PROJECT_NAME --coverage-text --colors=never" artifacts: reports: coverage_report: diff --git a/config/install/core.entity_form_display.crm_contact.individual.default.yml b/config/install/core.entity_form_display.crm_contact.individual.default.yml deleted file mode 100644 index 5d60f0e..0000000 --- a/config/install/core.entity_form_display.crm_contact.individual.default.yml +++ /dev/null @@ -1,94 +0,0 @@ -langcode: en -status: true -dependencies: - config: - - crm.crm_contact_type.individual - - field.field.crm_contact.individual.emails - - field.field.crm_contact.individual.external_identifiers - - field.field.crm_contact.individual.full_name - - field.field.crm_contact.individual.telephones - module: - - crm_field - - name -id: crm_contact.individual.default -targetEntityType: crm_contact -bundle: individual -mode: default -content: - created: - type: datetime_timestamp - weight: 5 - region: content - settings: { } - third_party_settings: { } - emails: - type: crm_email - weight: 2 - region: content - settings: - foo: bar - third_party_settings: { } - external_identifiers: - type: crm_external_identifier - weight: 4 - region: content - settings: - foo: bar - third_party_settings: { } - full_name: - type: name_default - weight: 0 - region: content - settings: - override_field_settings: false - labels: - title: Title - given: Given - middle: 'Middle name(s)' - family: Family - generational: Generational - credentials: Credentials - widget_layout: stacked - show_component_required_marker: false - credentials_inline: false - size: - title: 6 - given: 20 - middle: 20 - family: 20 - generational: 5 - credentials: 35 - title_display: - title: description - given: description - middle: description - family: description - generational: description - credentials: description - third_party_settings: { } - status: - type: boolean_checkbox - weight: 1 - region: content - settings: - display_label: false - third_party_settings: { } - telephones: - type: crm_telephone - weight: 3 - region: content - settings: - foo: bar - third_party_settings: { } - uid: - type: entity_reference_autocomplete - weight: 3 - region: content - settings: - match_operator: CONTAINS - match_limit: 10 - size: 60 - placeholder: '' - third_party_settings: { } -hidden: - name: true diff --git a/config/install/core.entity_form_display.crm_contact.organization.default.yml b/config/install/core.entity_form_display.crm_contact.organization.default.yml deleted file mode 100644 index 75f789c..0000000 --- a/config/install/core.entity_form_display.crm_contact.organization.default.yml +++ /dev/null @@ -1,68 +0,0 @@ -langcode: en -status: true -dependencies: - config: - - crm.crm_contact_type.organization - - field.field.crm_contact.organization.emails - - field.field.crm_contact.organization.external_identifiers - - field.field.crm_contact.organization.telephones - module: - - crm_field -id: crm_contact.organization.default -targetEntityType: crm_contact -bundle: organization -mode: default -content: - created: - type: datetime_timestamp - weight: 5 - region: content - settings: { } - third_party_settings: { } - emails: - type: crm_email - weight: 2 - region: content - settings: - foo: bar - third_party_settings: { } - external_identifiers: - type: crm_external_identifier - weight: 4 - region: content - settings: - foo: bar - third_party_settings: { } - name: - type: string_textfield - weight: 0 - region: content - settings: - size: 60 - placeholder: '' - third_party_settings: { } - status: - type: boolean_checkbox - weight: 1 - region: content - settings: - display_label: false - third_party_settings: { } - telephones: - type: crm_telephone - weight: 3 - region: content - settings: - foo: bar - third_party_settings: { } - uid: - type: entity_reference_autocomplete - weight: 3 - region: content - settings: - match_operator: CONTAINS - match_limit: 10 - size: 60 - placeholder: '' - third_party_settings: { } -hidden: { } diff --git a/config/install/field.field.crm_contact.individual.emails.yml b/config/install/field.field.crm_contact.individual.emails.yml deleted file mode 100644 index aae788a..0000000 --- a/config/install/field.field.crm_contact.individual.emails.yml +++ /dev/null @@ -1,21 +0,0 @@ -langcode: en -status: true -dependencies: - config: - - crm.crm_contact_type.individual - - field.storage.crm_contact.emails - module: - - crm -id: crm_contact.individual.emails -field_name: emails -entity_type: crm_contact -bundle: individual -label: Emails -description: '' -required: false -translatable: false -default_value: { } -default_value_callback: '' -settings: - bar: example -field_type: crm_email diff --git a/config/install/field.field.crm_contact.individual.telephones.yml b/config/install/field.field.crm_contact.individual.telephones.yml deleted file mode 100644 index dc41b4b..0000000 --- a/config/install/field.field.crm_contact.individual.telephones.yml +++ /dev/null @@ -1,21 +0,0 @@ -langcode: en -status: true -dependencies: - config: - - crm.crm_contact_type.individual - - field.storage.crm_contact.telephones - module: - - crm_field -id: crm_contact.individual.telephones -field_name: telephones -entity_type: crm_contact -bundle: individual -label: Telephones -description: '' -required: false -translatable: true -default_value: { } -default_value_callback: '' -settings: - bar: example -field_type: crm_telephone diff --git a/config/install/field.field.crm_contact.organization.emails.yml b/config/install/field.field.crm_contact.organization.emails.yml deleted file mode 100644 index 6acba3c..0000000 --- a/config/install/field.field.crm_contact.organization.emails.yml +++ /dev/null @@ -1,21 +0,0 @@ -langcode: en -status: true -dependencies: - config: - - crm.crm_contact_type.organization - - field.storage.crm_contact.emails - module: - - crm -id: crm_contact.organization.emails -field_name: emails -entity_type: crm_contact -bundle: organization -label: Emails -description: '' -required: false -translatable: false -default_value: { } -default_value_callback: '' -settings: - bar: example -field_type: crm_email diff --git a/config/install/field.field.crm_contact.organization.telephones.yml b/config/install/field.field.crm_contact.organization.telephones.yml deleted file mode 100644 index 30fa3bc..0000000 --- a/config/install/field.field.crm_contact.organization.telephones.yml +++ /dev/null @@ -1,21 +0,0 @@ -langcode: en -status: true -dependencies: - config: - - crm.crm_contact_type.organization - - field.storage.crm_contact.telephones - module: - - crm_field -id: crm_contact.organization.telephones -field_name: telephones -entity_type: crm_contact -bundle: organization -label: Telephones -description: '' -required: false -translatable: true -default_value: { } -default_value_callback: '' -settings: - bar: example -field_type: crm_telephone diff --git a/config/install/field.storage.crm_contact.emails.yml b/config/install/field.storage.crm_contact.emails.yml deleted file mode 100644 index a1d2fe3..0000000 --- a/config/install/field.storage.crm_contact.emails.yml +++ /dev/null @@ -1,18 +0,0 @@ -langcode: en -status: true -dependencies: - module: - - crm -id: crm_contact.emails -field_name: emails -entity_type: crm_contact -type: crm_email -settings: - foo: '' -module: crm -locked: false -cardinality: -1 -translatable: true -indexes: { } -persist_with_no_fields: false -custom_storage: false diff --git a/config/install/field.storage.crm_contact.telephones.yml b/config/install/field.storage.crm_contact.telephones.yml deleted file mode 100644 index 42f429f..0000000 --- a/config/install/field.storage.crm_contact.telephones.yml +++ /dev/null @@ -1,19 +0,0 @@ -langcode: en -status: true -dependencies: - module: - - crm - - crm_field -id: crm_contact.telephones -field_name: telephones -entity_type: crm_contact -type: crm_telephone -settings: - foo: example -module: crm_field -locked: false -cardinality: -1 -translatable: true -indexes: { } -persist_with_no_fields: false -custom_storage: false diff --git a/modules/crm_case/src/Entity/CrmCase.php b/modules/crm_case/src/Entity/CrmCase.php index 74fb09f..cd98200 100644 --- a/modules/crm_case/src/Entity/CrmCase.php +++ b/modules/crm_case/src/Entity/CrmCase.php @@ -88,7 +88,6 @@ class CrmCase extends RevisionableContentEntityBase implements CrmCaseInterface public static function baseFieldDefinitions(EntityTypeInterface $entity_type) { $fields = parent::baseFieldDefinitions($entity_type); - // dpm(array_keys($fields)); $fields['bundle']->setLabel(t('Type')) ->setDisplayOptions('view', [ 'type' => 'text_default', diff --git a/modules/crm_field/src/Plugin/Field/FieldType/CRMTelephoneItem.php b/modules/crm_field/src/Plugin/Field/FieldType/CRMTelephoneItem.php index 1454349..1a99970 100644 --- a/modules/crm_field/src/Plugin/Field/FieldType/CRMTelephoneItem.php +++ b/modules/crm_field/src/Plugin/Field/FieldType/CRMTelephoneItem.php @@ -16,6 +16,7 @@ use Drupal\Core\TypedData\DataDefinition; * id = "crm_telephone", * label = @Translation("CRM Telephone"), * category = @Translation("General"), + * no_ui = TRUE, * default_widget = "crm_telephone", * default_formatter = "crm_telephone_default" * ) diff --git a/src/Entity/CrmContact.php b/src/Entity/CrmContact.php index a02ddd6..6cdd434 100644 --- a/src/Entity/CrmContact.php +++ b/src/Entity/CrmContact.php @@ -121,8 +121,38 @@ class CrmContact extends EditorialContentEntityBase implements CrmContactInterfa ->setLabel(t('Sort Name')) ->setSetting('max_length', 255); + $fields['emails'] = BaseFieldDefinition::create('crm_email') + ->setLabel(t('Emails')) + ->setRevisionable(TRUE) + ->setCardinality(-1) + ->setDisplayOptions('form', [ + 'type' => 'crm_email', + ]) + ->setDisplayConfigurable('form', TRUE) + ->setDisplayOptions('view', [ + 'label' => 'hidden', + 'type' => 'string', + 'weight' => -5, + ]) + ->setDisplayConfigurable('view', TRUE); + + $fields['telephones'] = BaseFieldDefinition::create('crm_telephone') + ->setLabel(t('Telephones')) + ->setRevisionable(TRUE) + ->setCardinality(-1) + ->setDisplayOptions('form', [ + 'type' => 'crm_telephone', + ]) + ->setDisplayConfigurable('form', TRUE) + ->setDisplayOptions('view', [ + 'label' => 'hidden', + 'type' => 'string', + 'weight' => -5, + ]) + ->setDisplayConfigurable('view', TRUE); + $fields['uid'] - ->setLabel(t('Authored by')) + ->setLabel(t('Owned by')) ->setDescription(t('The username of the content author.')) ->setRevisionable(TRUE) ->setDisplayOptions('view', [ diff --git a/tests/src/Functional/ContactEditFormTest.php b/tests/src/Functional/ContactEditFormTest.php index 5874a62..418272e 100644 --- a/tests/src/Functional/ContactEditFormTest.php +++ b/tests/src/Functional/ContactEditFormTest.php @@ -187,8 +187,7 @@ class ContactEditFormTest extends ContactTestBase { $contact = $this->drupalGetContactByName($edit['name[0][value]']); $this->drupalGet("crm/contact/" . $contact->id() . "/edit"); - $this->assertSession()->pageTextContains('Enabled'); - + // $this->assertSession()->pageTextContains('Enabled'); } } -- GitLab