Remove apparent copy & paste from Contribution pdf letter function
authoreileen <emcnaughton@wikimedia.org>
Tue, 27 Apr 2021 06:52:29 +0000 (18:52 +1200)
committereileen <emcnaughton@wikimedia.org>
Tue, 27 Apr 2021 23:38:15 +0000 (11:38 +1200)
I have done a bit of digging and I can't see any way these url parameters could be passed in
to this form. I also can't think of any reason, other than our old friend copy
& paste, for us to be retrieving activity or case in the url

I kept the isSingle logic but redirected it to focus on a single contribution which
is something we do want

CRM/Contribute/Form/Task/PDFLetter.php
CRM/Contribute/Form/Task/TaskTrait.php

index 246990ecaabd972641afe3de4774f1abe5198c27..6bfe80dab3413c8195a3ba763747e69c2b826a1f 100644 (file)
@@ -37,26 +37,8 @@ class CRM_Contribute_Form_Task_PDFLetter extends CRM_Contribute_Form_Task {
   public function preProcess() {
     $this->skipOnHold = $this->skipDeceased = FALSE;
     CRM_Contact_Form_Task_PDFLetterCommon::preProcess($this);
-    // store case id if present
-    $this->_caseId = CRM_Utils_Request::retrieve('caseid', 'CommaSeparatedIntegers', $this, FALSE);
-    if (!empty($this->_caseId) && strpos($this->_caseId, ',')) {
-      $this->_caseIds = explode(',', $this->_caseId);
-      unset($this->_caseId);
-    }
-
-    // retrieve contact ID if this is 'single' mode
-    $cid = CRM_Utils_Request::retrieve('cid', 'CommaSeparatedIntegers', $this, FALSE);
-
-    $this->_activityId = CRM_Utils_Request::retrieve('id', 'Positive', $this, FALSE);
-
-    if ($cid) {
-      CRM_Contact_Form_Task_PDFLetterCommon::preProcessSingle($this, $cid);
-      $this->_single = TRUE;
-    }
-    else {
-      parent::preProcess();
-    }
-    $this->assign('single', $this->_single);
+    parent::preProcess();
+    $this->assign('single', $this->isSingle());
   }
 
   /**
index 6dedf99ec371c50fd00d86e2f78887cfb7c2582b..9f57723b72f7875c5d5d7676094509771e093ba9 100644 (file)
@@ -138,4 +138,13 @@ trait CRM_Contribute_Form_Task_TaskTrait {
     return ' civicrm_contribution.id IN ( ' . implode(',', $this->getIDs()) . ' ) ';
   }
 
+  /**
+   * Is only one entity being processed?
+   *
+   * @return false
+   */
+  public function isSingle() {
+    return $this->_single ?? FALSE;
+  }
+
 }