X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=CRM%2FCase%2FManagedEntities.php;h=15bc97354f7e0448489900456c68aac7f9966ac9;hb=4732d6b76de6d43cda08b957e53d965f713ef476;hp=461b51f5dafc78929b7c99b7452bf9337fd8dcbd;hpb=35300ebd3b90fd1d73409c4d1b75ffc86a05c728;p=civicrm-core.git diff --git a/CRM/Case/ManagedEntities.php b/CRM/Case/ManagedEntities.php index 461b51f5da..15bc97354f 100644 --- a/CRM/Case/ManagedEntities.php +++ b/CRM/Case/ManagedEntities.php @@ -112,12 +112,23 @@ class CRM_Case_ManagedEntities { if (!isset(Civi::$statics[__CLASS__]['reltypes'])) { $relationshipInfo = CRM_Core_PseudoConstant::relationshipType('label', TRUE, NULL); - Civi::$statics[__CLASS__]['reltypes'] = CRM_Utils_Array::collect(CRM_Case_XMLProcessor::REL_TYPE_CNAME, $relationshipInfo); + foreach ($relationshipInfo as $id => $relTypeDetails) { + Civi::$statics[__CLASS__]['reltypes']["{$id}_a_b"] = $relTypeDetails['label_a_b']; + if ($relTypeDetails['label_a_b'] != $relTypeDetails['label_b_a']) { + Civi::$statics[__CLASS__]['reltypes']["{$id}_b_a"] = $relTypeDetails['label_b_a']; + } + } } $validRelTypes = Civi::$statics[__CLASS__]['reltypes']; $relTypes = $xmlRepo->getAllDeclaredRelationshipTypes(); foreach ($relTypes as $relType) { + // Making assumption that client is the A side of the relationship. + // Relationship label coming from XML, meaning from perspective of + // non-client. + + // These assumptions only apply if a case type is introduced without the + // relationship types already existing. $managed = [ 'module' => 'civicrm', 'name' => "civicase:rel:$relType", @@ -131,8 +142,8 @@ class CRM_Case_ManagedEntities { 'label_a_b' => "$relType is", 'label_b_a' => $relType, 'description' => $relType, - 'contact_type_a' => 'Individual', - 'contact_type_b' => 'Individual', + 'contact_type_a' => NULL, + 'contact_type_b' => NULL, 'contact_sub_type_a' => NULL, 'contact_sub_type_b' => NULL, ],