dev/core#2650 upgrade membership tokens to the new format
authorEileen McNaughton <emcnaughton@wikimedia.org>
Tue, 14 Sep 2021 21:00:00 +0000 (09:00 +1200)
committerEileen McNaughton <emcnaughton@wikimedia.org>
Tue, 14 Sep 2021 21:00:00 +0000 (09:00 +1200)
CRM/Core/Form/Task/PDFLetterCommon.php
CRM/Core/SelectValues.php
CRM/Member/Tokens.php
CRM/Upgrade/Incremental/php/FiveFortyThree.php
tests/phpunit/CRM/Utils/TokenConsistencyTest.php

index b7762ccdc0cfc701992e7258ffc04aff8a96d3ee..1f6845ac28e67bc74ead0c52894b1ac69fe8e5dc 100644 (file)
@@ -201,6 +201,8 @@ class CRM_Core_Form_Task_PDFLetterCommon {
     $deprecatedTokens = [
       '{case.status_id}' => '{case.status_id:label}',
       '{case.case_type_id}' => '{case.case_type_id:label}',
+      '{membership.status}' => '{membership.status_id:label}',
+      '{membership.type}' => '{membership.membership_type_id:label}',
     ];
     $tokenErrors = [];
     foreach ($deprecatedTokens as $token => $replacement) {
index 65509d23ea4222c063a2374ad91d9079ed71655d..1d091c4e50cf4501fe2a4738bfd4c414c2f2f66d 100644 (file)
@@ -523,11 +523,11 @@ class CRM_Core_SelectValues {
    *
    * @return array
    */
-  public static function membershipTokens() {
+  public static function membershipTokens(): array {
     return [
       '{membership.id}' => ts('Membership ID'),
-      '{membership.status}' => ts('Membership Status'),
-      '{membership.type}' => ts('Membership Type'),
+      '{membership.status_id:label}' => ts('Membership Status'),
+      '{membership.membership_type_id:label}' => ts('Membership Type'),
       '{membership.start_date}' => ts('Membership Start Date'),
       '{membership.join_date}' => ts('Membership Join Date'),
       '{membership.end_date}' => ts('Membership End Date'),
index 8aff36f7ae13be055d8d3296e3b3fca9bbd2042b..cf883bfeca1a693806ae62d721c87a6edc7e64e4 100644 (file)
@@ -46,8 +46,6 @@ class CRM_Member_Tokens extends CRM_Core_EntityTokens {
         'join_date' => ts('Membership Join Date'),
         'start_date' => ts('Membership Start Date'),
         'end_date' => ts('Membership End Date'),
-        'status' => ts('Membership Status'),
-        'type' => ts('Membership Type'),
         'status_id:label' => ts('Membership Status'),
         'membership_type_id:label' => ts('Membership Type'),
       ],
@@ -77,9 +75,8 @@ class CRM_Member_Tokens extends CRM_Core_EntityTokens {
     // FIXME: `select('e.*')` seems too broad.
     $e->query
       ->select('e.*')
-      ->select('mt.minimum_fee as fee, e.id as id , e.join_date, e.start_date, e.end_date, membership_type_id as Membership__membership_type_id, status_id as Membership__status_id, ms.name as status, mt.name as type')
-      ->join('mt', '!casMailingJoinType civicrm_membership_type mt ON e.membership_type_id = mt.id')
-      ->join('ms', '!casMailingJoinType civicrm_membership_status ms ON e.status_id = ms.id');
+      ->select('mt.minimum_fee as fee, e.id as id , e.join_date, e.start_date, e.end_date, membership_type_id as Membership__membership_type_id, status_id as Membership__status_id')
+      ->join('mt', '!casMailingJoinType civicrm_membership_type mt ON e.membership_type_id = mt.id');
   }
 
   /**
index d37671092b02d9aa570cfe5b369249c1c493e5bd..2dfd87c610c5999d3b96f75d09346c5f4e77ffda 100644 (file)
@@ -68,6 +68,12 @@ class CRM_Upgrade_Incremental_php_FiveFortyThree extends CRM_Upgrade_Incremental
     $this->addTask('Replace legacy last_name smarty token in Online contribution workflow template',
       'updateMessageToken', 'contribution_online_receipt', '$last_name', 'contact.last_name', $rev
     );
+    $this->addTask('Replace membership status token in action schedule',
+      'updateActionScheduleToken', 'membership.status', 'membership.status_id:label', $rev
+    );
+    $this->addTask('Replace membership type token in action schedule',
+      'updateActionScheduleToken', 'membership.type', 'membership.membership_type_id:label', $rev
+    );
   }
 
   /**
index b3a08b28737621811e0448de18432005707bc689..142a35e4939e75982914d06a62d852c58ed59954 100644 (file)
@@ -401,8 +401,8 @@ Check';
   public function getMembershipTokens(): array {
     return [
       '{membership.id}' => 'Membership ID',
-      '{membership.status}' => 'Membership Status',
-      '{membership.type}' => 'Membership Type',
+      '{membership.status_id:label}' => 'Membership Status',
+      '{membership.membership_type_id:label}' => 'Membership Type',
       '{membership.start_date}' => 'Membership Start Date',
       '{membership.join_date}' => 'Membership Join Date',
       '{membership.end_date}' => 'Membership End Date',