Compare commits
	
		
			4 Commits
		
	
	
		
			f1965ff3c1
			...
			refactor
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| d8f1f4cbdd | |||
| 22640f02b6 | |||
| 797da77803 | |||
| 66f95f46bf | 
							
								
								
									
										9
									
								
								modules/opencase_cases/src/Helper/HookHelper.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								modules/opencase_cases/src/Helper/HookHelper.php
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,9 @@ | |||||||
|  | <?php | ||||||
|  |  | ||||||
|  | namespace Drupal\opencase_cases\Helper; | ||||||
|  |  | ||||||
|  | class HookHelper { | ||||||
|  |     public static function onCaseFeeUpdate(\Drupal\opencase_cases\Entity\OCCaseFee $caseFee) { | ||||||
|  |          | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -267,6 +267,7 @@ class OCActivity extends RevisionableContentEntityBase implements OCActivityInte | |||||||
|       ->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.') |       ->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) |       ->setRevisionable(TRUE) | ||||||
|       ->setDisplayConfigurable('form', TRUE) |       ->setDisplayConfigurable('form', TRUE) | ||||||
|  |       ->setDisplayConfigurable('view', true) | ||||||
|       ->setDefaultValue(TRUE); |       ->setDefaultValue(TRUE); | ||||||
|  |  | ||||||
|     $fields['user_id'] = BaseFieldDefinition::create('entity_reference') |     $fields['user_id'] = BaseFieldDefinition::create('entity_reference') | ||||||
| @ -277,10 +278,7 @@ class OCActivity extends RevisionableContentEntityBase implements OCActivityInte | |||||||
|       ->setSetting('handler', 'default') |       ->setSetting('handler', 'default') | ||||||
|       ->setTranslatable(TRUE) |       ->setTranslatable(TRUE) | ||||||
|       ->setDisplayConfigurable('view', true) |       ->setDisplayConfigurable('view', true) | ||||||
|       ->setDisplayOptions('view', [ |       ->setDisplayConfigurable('form', TRUE); | ||||||
|         'label' => 'above', |  | ||||||
|         'type' => 'author', |  | ||||||
|       ]); |  | ||||||
|  |  | ||||||
|     $fields['name'] = BaseFieldDefinition::create('string') |     $fields['name'] = BaseFieldDefinition::create('string') | ||||||
|       ->setLabel(t('Subject')) |       ->setLabel(t('Subject')) | ||||||
| @ -292,15 +290,6 @@ class OCActivity extends RevisionableContentEntityBase implements OCActivityInte | |||||||
|       ->setDefaultValue('') |       ->setDefaultValue('') | ||||||
|       ->setDisplayConfigurable('form', true) |       ->setDisplayConfigurable('form', true) | ||||||
|       ->setDisplayConfigurable('view', true) |       ->setDisplayConfigurable('view', true) | ||||||
|       ->setDisplayOptions('view', [ |  | ||||||
|         'label' => 'hidden', |  | ||||||
|         'type' => 'string', |  | ||||||
|         'weight' => -3, |  | ||||||
|       ]) |  | ||||||
|       ->setDisplayOptions('form', [ |  | ||||||
|         'type' => 'string_textfield', |  | ||||||
|         'weight' => -3, |  | ||||||
|       ]) |  | ||||||
|       ->setRequired(TRUE); |       ->setRequired(TRUE); | ||||||
|  |  | ||||||
|     $fields['description'] = BaseFieldDefinition::create('string_long') |     $fields['description'] = BaseFieldDefinition::create('string_long') | ||||||
| @ -310,7 +299,6 @@ class OCActivity extends RevisionableContentEntityBase implements OCActivityInte | |||||||
|         'max_length' => 50, |         'max_length' => 50, | ||||||
|         'text_processing' => 0, |         'text_processing' => 0, | ||||||
|       ]) |       ]) | ||||||
|       ->setDefaultValue('') |  | ||||||
|       ->setDisplayConfigurable('form', true) |       ->setDisplayConfigurable('form', true) | ||||||
|       ->setDisplayConfigurable('view', true) |       ->setDisplayConfigurable('view', true) | ||||||
|       ->setRequired(FALSE); |       ->setRequired(FALSE); | ||||||
| @ -322,15 +310,7 @@ class OCActivity extends RevisionableContentEntityBase implements OCActivityInte | |||||||
|         'suffix' => 'minutes', |         'suffix' => 'minutes', | ||||||
|       ]) |       ]) | ||||||
|       ->SetDisplayConfigurable("form", true) |       ->SetDisplayConfigurable("form", true) | ||||||
|       ->SetDisplayConfigurable("view", true) |       ->SetDisplayConfigurable("view", true); | ||||||
|       ->setDefaultValue('') |  | ||||||
|       ->setDisplayOptions('view', [ |  | ||||||
|         'label' => 'above', |  | ||||||
|         'weight' => -3, |  | ||||||
|       ]) |  | ||||||
|       ->setDisplayOptions('form', [ |  | ||||||
|         'weight' => -3, |  | ||||||
|       ]); |  | ||||||
|  |  | ||||||
|     $fields['created'] = BaseFieldDefinition::create('created') |     $fields['created'] = BaseFieldDefinition::create('created') | ||||||
|       ->setLabel(t('Created')) |       ->setLabel(t('Created')) | ||||||
|  | |||||||
| @ -1,16 +1,21 @@ | |||||||
| opencase.see_all: | opencase.see_all: | ||||||
|   title: 'See all...' |   title: 'See all...' | ||||||
|   menu_name: opencase  |   menu_name: opencase | ||||||
|   route_name: opencase.opencase_cases_menu |   route_name: opencase.opencase_cases_menu | ||||||
|   weight:  |   weight: | ||||||
| opencase.see_all_people_links: | opencase.see_all_people_links: | ||||||
|   class: Drupal\opencase\Plugin\Menu\SeeAllActorsMenuLink |   class: Drupal\opencase\Plugin\Menu\SeeAllActorsMenuLink | ||||||
|   deriver: Drupal\opencase\Plugin\Derivative\SeeAllActorsMenuLink |   deriver: Drupal\opencase\Plugin\Derivative\SeeAllActorsMenuLink | ||||||
|   menu_name: opencase |   menu_name: opencase | ||||||
|   parent: opencase.see_all |   parent: opencase.see_all | ||||||
|  | opencase.see_all_organisations_links: | ||||||
|  |   class: Drupal\opencase\Plugin\Menu\SeeAllOrganisationsMenuLink | ||||||
|  |   deriver: Drupal\opencase\Plugin\Derivative\SeeAllOrganisationsMenuLink | ||||||
|  |   menu_name: opencase | ||||||
|  |   parent: opencase.see_all | ||||||
| opencase.opencase_add_new_things_menu: | opencase.opencase_add_new_things_menu: | ||||||
|   title: 'Add new...' |   title: 'Add new...' | ||||||
|   menu_name: opencase  |   menu_name: opencase | ||||||
|   route_name: opencase.opencase_add_new_things_menu |   route_name: opencase.opencase_add_new_things_menu | ||||||
|   weight: 1 |   weight: 1 | ||||||
| opencase.add_people_links: | opencase.add_people_links: | ||||||
| @ -38,59 +43,64 @@ opencase.opencase_admin_menu: | |||||||
|   title: 'Administration' |   title: 'Administration' | ||||||
|   description: 'Management and Configuration' |   description: 'Management and Configuration' | ||||||
|   route_name: opencase.opencase_admin_menu |   route_name: opencase.opencase_admin_menu | ||||||
|   menu_name: opencase  |   menu_name: opencase | ||||||
|   weight: 100 |   weight: 100 | ||||||
|  | opencase.manage_taxonomy_links: | ||||||
|  |   class: Drupal\opencase\Plugin\Menu\ManageTaxonomyMenuLink | ||||||
|  |   deriver: Drupal\opencase\Plugin\Derivative\ManageTaxonomyMenuLink | ||||||
|  |   menu_name: opencase | ||||||
|  |   parent: opencase.opencase_admin_menu | ||||||
| opencase.manage_user_logins: | opencase.manage_user_logins: | ||||||
|   title: 'Manage user logins' |   title: 'Manage user logins' | ||||||
|   description: 'Manage who can access the system' |   description: 'Manage who can access the system' | ||||||
|   menu_name: opencase |   menu_name: opencase | ||||||
|   parent: opencase.opencase_admin_menu  |   parent: opencase.opencase_admin_menu | ||||||
|   url: internal:/admin/people |   url: internal:/admin/people | ||||||
|   weight: 0 |   weight: 0 | ||||||
| opencase.manage_organisation_types: | opencase.manage_organisation_types: | ||||||
|   title: 'Manage organisation types' |   title: 'Manage organisation types' | ||||||
|   description: 'Configure types of people and their fields' |   description: 'Configure types of people and their fields' | ||||||
|   menu_name: opencase |   menu_name: opencase | ||||||
|   parent: opencase.opencase_admin_menu  |   parent: opencase.opencase_admin_menu | ||||||
|   url: internal:/admin/opencase/oc_organisation_type |   url: internal:/admin/opencase/oc_organisation_type | ||||||
|   weight: 1 |   weight: 1 | ||||||
| opencase.manage_person_types: | opencase.manage_person_types: | ||||||
|   title: 'Manage person types' |   title: 'Manage person types' | ||||||
|   description: 'Configure types of people and their fields' |   description: 'Configure types of people and their fields' | ||||||
|   menu_name: opencase |   menu_name: opencase | ||||||
|   parent: opencase.opencase_admin_menu  |   parent: opencase.opencase_admin_menu | ||||||
|   url: internal:/admin/opencase/oc_actor_type |   url: internal:/admin/opencase/oc_actor_type | ||||||
|   weight: 1 |   weight: 1 | ||||||
| opencase.manage_activity_types: | opencase.manage_activity_types: | ||||||
|   title: 'Manage activity types' |   title: 'Manage activity types' | ||||||
|   description: 'Configure types of activities and their fields' |   description: 'Configure types of activities and their fields' | ||||||
|   menu_name: opencase |   menu_name: opencase | ||||||
|   parent: opencase.opencase_admin_menu  |   parent: opencase.opencase_admin_menu | ||||||
|   url: internal:/admin/opencase/oc_activity_type |   url: internal:/admin/opencase/oc_activity_type | ||||||
|   weight: 3 |   weight: 3 | ||||||
| opencase.manage_case_fee_types: | opencase.manage_case_fee_types: | ||||||
|   title: 'Manage case fee types' |   title: 'Manage case fee types' | ||||||
|   description: 'Configure types of case fees and their fields' |   description: 'Configure types of case fees and their fields' | ||||||
|   menu_name: opencase |   menu_name: opencase | ||||||
|   parent: opencase.opencase_admin_menu  |   parent: opencase.opencase_admin_menu | ||||||
|   url: internal:/opencase/oc_case_fee_type |   url: internal:/opencase/oc_case_fee_type | ||||||
|   weight: 3 |   weight: 3 | ||||||
| opencase.manage_case_provision_types: | opencase.manage_case_provision_types: | ||||||
|   title: 'Manage case provision types' |   title: 'Manage case provision types' | ||||||
|   description: 'Configure types of case provisions and their fields' |   description: 'Configure types of case provisions and their fields' | ||||||
|   menu_name: opencase |   menu_name: opencase | ||||||
|   parent: opencase.opencase_admin_menu  |   parent: opencase.opencase_admin_menu | ||||||
|   url: internal:/opencase/oc_case_provision_type |   url: internal:/opencase/oc_case_provision_type | ||||||
|   weight: 3 |   weight: 3 | ||||||
| opencase.manage_event_types: | opencase.manage_event_types: | ||||||
|   title: 'Manage event types' |   title: 'Manage event types' | ||||||
|   description: 'Configure types of people and their fields' |   description: 'Configure types of people and their fields' | ||||||
|   menu_name: opencase |   menu_name: opencase | ||||||
|   parent: opencase.opencase_admin_menu  |   parent: opencase.opencase_admin_menu | ||||||
|   url: internal:/admin/opencase/oc_event_type |   url: internal:/admin/opencase/oc_event_type | ||||||
|   weight: 1 |   weight: 1 | ||||||
| opencase.reporting: | opencase.reporting: | ||||||
|   title: 'Reporting' |   title: 'Reporting' | ||||||
|   menu_name: opencase  |   menu_name: opencase | ||||||
|   route_name: opencase.opencase_reporting_menu |   route_name: opencase.opencase_reporting_menu | ||||||
|   weight: 0 |   weight: 0 | ||||||
|  | |||||||
							
								
								
									
										52
									
								
								src/Plugin/Derivative/ManageTaxonomyMenuLink.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								src/Plugin/Derivative/ManageTaxonomyMenuLink.php
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,52 @@ | |||||||
|  | <?php | ||||||
|  |  | ||||||
|  | namespace Drupal\opencase\Plugin\Derivative; | ||||||
|  |  | ||||||
|  | use Drupal\Component\Plugin\Derivative\DeriverBase; | ||||||
|  | use Drupal\Core\Plugin\Discovery\ContainerDeriverInterface; | ||||||
|  | use Drupal\Core\Entity\EntityTypeManagerInterface; | ||||||
|  | use Symfony\Component\DependencyInjection\ContainerInterface; | ||||||
|  |  | ||||||
|  | class ManageTaxonomyMenuLink extends DeriverBase implements ContainerDeriverInterface { | ||||||
|  |  | ||||||
|  |   /** | ||||||
|  |    * @var EntityTypeManagerInterface $entityTypeManager. | ||||||
|  |    */ | ||||||
|  |  | ||||||
|  |   protected $entityTypeManager; | ||||||
|  |    | ||||||
|  |   /** | ||||||
|  |    * Creates a AddEventsMenuLink 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 = []; | ||||||
|  |     $vocabs = $this->entityTypeManager->getStorage('taxonomy_vocabulary')->loadMultiple(); | ||||||
|  |     foreach ($vocabs as $id => $vocab) { | ||||||
|  |       $links[$id] = [ | ||||||
|  |         'title' => 'Manage ' . $vocab->label(), | ||||||
|  |         'route_name' => "entity.taxonomy_vocabulary.overview_form", | ||||||
|  |         'route_parameters' => ['taxonomy_vocabulary' => $vocab->id()] | ||||||
|  |       ] + $base_plugin_definition; | ||||||
|  |     } | ||||||
|  |     return $links; | ||||||
|  |   } | ||||||
|  | } | ||||||
							
								
								
									
										55
									
								
								src/Plugin/Derivative/SeeAllOrganisationsMenuLink.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								src/Plugin/Derivative/SeeAllOrganisationsMenuLink.php
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,55 @@ | |||||||
|  | <?php | ||||||
|  |  | ||||||
|  | namespace Drupal\opencase\Plugin\Derivative; | ||||||
|  |  | ||||||
|  | use Drupal\Component\Plugin\Derivative\DeriverBase; | ||||||
|  | use Drupal\Core\Plugin\Discovery\ContainerDeriverInterface; | ||||||
|  | use Drupal\Core\Entity\EntityTypeManagerInterface; | ||||||
|  | use Symfony\Component\DependencyInjection\ContainerInterface; | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Derivative class that provides the menu links adding various types of organisations | ||||||
|  |  */ | ||||||
|  | class SeeAllOrganisationsMenuLink 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 = []; | ||||||
|  |     $organisationTypes = $this->entityTypeManager->getStorage('oc_organisation_type')->loadMultiple(); | ||||||
|  |     foreach ($organisationTypes as $id => $organisationType) { | ||||||
|  |       $links[$id] = [ | ||||||
|  |         'title' => $organisationType->label(), | ||||||
|  |         'route_name' => "view.organisations.page_1", | ||||||
|  |         'route_parameters' => ['type' => $organisationType->id()] | ||||||
|  |       ] + $base_plugin_definition; | ||||||
|  |     } | ||||||
|  |     return $links; | ||||||
|  |   } | ||||||
|  | } | ||||||
							
								
								
									
										6
									
								
								src/Plugin/Menu/ManageTaxonomyMenuLink.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								src/Plugin/Menu/ManageTaxonomyMenuLink.php
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,6 @@ | |||||||
|  | <?php | ||||||
|  | namespace Drupal\opencase\Plugin\Menu; | ||||||
|  |   | ||||||
|  | use Drupal\Core\Menu\MenuLinkDefault; | ||||||
|  |   | ||||||
|  | class ManageTaxonomyMenuLink extends MenuLinkDefault {} | ||||||
							
								
								
									
										9
									
								
								src/Plugin/Menu/SeeAllOrganisationsMenuLink.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								src/Plugin/Menu/SeeAllOrganisationsMenuLink.php
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,9 @@ | |||||||
|  | <?php | ||||||
|  | namespace Drupal\opencase\Plugin\Menu; | ||||||
|  |  | ||||||
|  | use Drupal\Core\Menu\MenuLinkDefault; | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Represents a menu link for seeing all organisations of various types. | ||||||
|  |  */ | ||||||
|  | class SeeAllOrganisationsMenuLink extends MenuLinkDefault {} | ||||||
							
								
								
									
										16
									
								
								tests/src/Unit/HookHelperTest.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								tests/src/Unit/HookHelperTest.php
									
									
									
									
									
										Normal 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); | ||||||
|  |     }      | ||||||
|  | } | ||||||
		Reference in New Issue
	
	Block a user
	