CRM-18139: Notification needed when using Batch Update of Participants via Profile...
authoryashodha <yashodha.chaku@webaccessglobal.com>
Wed, 25 May 2016 10:58:59 +0000 (16:28 +0530)
committeryashodha <yashodha.chaku@webaccessglobal.com>
Wed, 25 May 2016 10:58:59 +0000 (16:28 +0530)
----------------------------------------
* CRM-18139: Notification needed when using Batch Update of Participants via Profile (currently only when using Change Participant Status function)
  https://issues.civicrm.org/jira/browse/CRM-18139

CRM/Event/Form/Task/Batch.php
CRM/Event/Form/Task/ParticipantStatus.php
templates/CRM/Event/Form/Task/Batch.tpl

index 68b1b374c9eb3081ce4d90ff825cf343a753178d..4464c74d3d0294b9368102f7650b0d40692b4afb 100644 (file)
@@ -105,8 +105,9 @@ class CRM_Event_Form_Task_Batch extends CRM_Event_Form_Task {
     $this->_fields = array();
     $this->_fields = CRM_Core_BAO_UFGroup::getFields($ufGroupId, FALSE, CRM_Core_Action::VIEW);
     if (array_key_exists('participant_status', $this->_fields)) {
-      CRM_Event_Form_Task_ParticipantStatus::assignToTemplate('statusChangeBatch');
-    }  
+      $this->assign('statusProfile', 1);
+      $this->assignToTemplate();
+    }
 
     // remove file type field and then limit fields
     $suppressFields = FALSE;
@@ -514,4 +515,18 @@ class CRM_Event_Form_Task_Batch extends CRM_Event_Form_Task {
     return $statusId;
   }
 
+  /**
+   * Assign the minimal set of variables to the template.
+   */
+  public function assignToTemplate() {
+    $notifyingStatuses = array('Pending from waitlist', 'Pending from approval', 'Expired', 'Cancelled');
+    $notifyingStatuses = array_intersect($notifyingStatuses, CRM_Event_PseudoConstant::participantStatus());
+    $statuses = implode(', ', $notifyingStatuses);
+    $status = ts('Participants whose status is changed FROM Pending Pay Later TO Registered or Attended will receive a confirmation email and their payment status will be set to completed. If this is notyou want to do, you can change their participant status by editing their event registration record directly.');
+    if (!empty($notifyingStatuses)) {
+      $status .= '<br />' . ts("Participants whose status is changed TO any of the following will be automatically notified via email: %1", array(1 => $statuses));
+    }
+    $this->assign('status', $status);
+  }
+
 }
index a6fed6dbfe637ecd4bb0f64d8314461cfb199b75..78e06cba3e36cad094acd25f9455f28f8586a9bb 100644 (file)
@@ -49,21 +49,10 @@ class CRM_Event_Form_Task_ParticipantStatus extends CRM_Event_Form_Task_Batch {
       ) + $statuses
     );
 
+    $this->assign('context', 'statusChange');
     # CRM-4321: display info on users being notified if any of the below statuses is enabled
-    self::assignToTemplate('statusChange');
-
+    parent::assignToTemplate();
     parent::buildQuickForm();
   }
 
-  public function assignToTemplate($context) {
-    $notifyingStatuses = array('Pending from waitlist', 'Pending from approval', 'Expired', 'Cancelled');
-    $notifyingStatuses = array_intersect($notifyingStatuses, CRM_Event_PseudoConstant::participantStatus());
-    $statuses = implode(', ', $notifyingStatuses);
-    $status = ts('Participants whose status is changed FROM Pending Pay Later TO Registered or Attended will receive a confirmation email and their payment status will be set to completed. If this is not you want to do, you can change their participant status by editing their event registration record directly.');
-    if (!empty($notifyingStatuses)) {
-      $status .= '<br />' .ts("Participants whose status is changed TO any of the following will be automatically notified via email: %1", array(1 => $statuses));
-    }
-    $this->assign('status', $status);
-    $this->assign('context', $context);
-  }
 }
index a45a39b67e8ea657810cebb3c7b9da87a2427527..7625d3222a6a331ef2feb22b7fbe6ac1d10a833b 100644 (file)
@@ -31,7 +31,7 @@
       {$form.status_change.html}  {help id="id-status_change"}
       <div class="status">{$status}</div>
     {else}
-      {if $context EQ 'statusChangeBatch'} {* Update Participant Status in batch task *}
+      {if $statusProfile EQ 1} {* Update Participant Status in batch task *}
         <div class="status">{$status}</div>
       {/if}
       {ts}Update field values for each participant as needed. To set a field to the same value for ALL rows, enter that value for the first participation and then click the