diff --git a/config/install/taxonomy.vocabulary.oc_fee_category.yml b/config/install/taxonomy.vocabulary.oc_fee_category.yml new file mode 100644 index 0000000..842c389 --- /dev/null +++ b/config/install/taxonomy.vocabulary.oc_fee_category.yml @@ -0,0 +1,8 @@ +uuid: 93a96bb4-da95-4d69-be37-d1477624f849 +langcode: en +status: true +dependencies: { } +name: 'Fee categories' +vid: oc_fee_category +description: '' +weight: 0 diff --git a/modules/opencase_cases/opencase_cases.install b/modules/opencase_cases/opencase_cases.install index 7025221..7ecfaed 100644 --- a/modules/opencase_cases/opencase_cases.install +++ b/modules/opencase_cases/opencase_cases.install @@ -1,4 +1,20 @@ 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); + + + \Drupal::entityDefinitionUpdateManager() + ->installFieldStorageDefinition('oc_target', 'oc_case', 'opencase_cases', $field_storage_definition); +} function opencase_cases_update_8025() { //check if the table exists first. If not, then create the entity. @@ -10,7 +26,7 @@ function opencase_cases_update_8025() { } function opencase_cases_update_8026() { - $storage_definition = \Drupal\Core\Field\BaseFieldDefinition::create('entity_reference') + $storage_definition = 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']]) diff --git a/modules/opencase_cases/src/Entity/OCCase.php b/modules/opencase_cases/src/Entity/OCCase.php index b2d5746..0eb68cf 100644 --- a/modules/opencase_cases/src/Entity/OCCase.php +++ b/modules/opencase_cases/src/Entity/OCCase.php @@ -89,6 +89,12 @@ class OCCase extends RevisionableContentEntityBase implements OCCaseInterface { ]; } + + public static function defaultTarget() { + if (opencase_entities_get('target_id')) return [opencase_entities_get('target_id')]; + else return []; + } + /** * {@inheritdoc} */ @@ -202,6 +208,8 @@ class OCCase extends RevisionableContentEntityBase implements OCCaseInterface { return $this; } + + /** * {@inheritdoc} */ @@ -230,6 +238,17 @@ class OCCase extends RevisionableContentEntityBase implements OCCaseInterface { '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); + $fields['name'] = BaseFieldDefinition::create('string') ->setLabel(t('Title')) ->setRevisionable(TRUE) diff --git a/modules/opencase_entities/opencase_entities.module b/modules/opencase_entities/opencase_entities.module index 8ab4e58..2acaca4 100644 --- a/modules/opencase_entities/opencase_entities.module +++ b/modules/opencase_entities/opencase_entities.module @@ -91,7 +91,7 @@ function opencase_entities_theme() { * so that it can be used as a default callback for an entity reference field. */ function opencase_entities_get($key) { - \Drupal::request()->query->get($key); + return \Drupal::request()->query->get($key); } /** diff --git a/opencase.links.menu.yml b/opencase.links.menu.yml index 8691d08..4a0a3c8 100644 --- a/opencase.links.menu.yml +++ b/opencase.links.menu.yml @@ -63,6 +63,20 @@ opencase.manage_activity_types: parent: opencase.opencase_admin_menu url: internal:/admin/opencase/oc_activity_type weight: 3 +opencase.manage_case_fee_types: + title: 'Manage case fee types' + description: 'Configure types of case fees and their fields' + menu_name: opencase + parent: opencase.opencase_admin_menu + url: internal:/admin/opencase/oc_case_fee_type + weight: 3 +opencase.manage_case_provision_types: + title: 'Manage case provision types' + description: 'Configure types of case provisions and their fields' + menu_name: opencase + parent: opencase.opencase_admin_menu + url: internal:/admin/opencase/oc_case_provision_type + weight: 3 opencase.manage_event_types: title: 'Manage event types' description: 'Configure types of people and their fields'