From: Chris Doten Date: Sat, 4 May 2013 23:16:47 +0000 (+0000) Subject: Removed defunct order_by override from Member/Detail; added campaign functionality... X-Git-Url: https://vcs.fsf.org/?a=commitdiff_plain;h=4fabb77b785d985883cfc54f309aba6f2e1a6ddc;p=civicrm-core.git Removed defunct order_by override from Member/Detail; added campaign functionality to ParticipantListing --- diff --git a/CRM/Report/Form/Event/ParticipantListing.php b/CRM/Report/Form/Event/ParticipantListing.php index bd97ebc42e..c54ab20249 100644 --- a/CRM/Report/Form/Event/ParticipantListing.php +++ b/CRM/Report/Form/Event/ParticipantListing.php @@ -42,7 +42,17 @@ class CRM_Report_Form_Event_ParticipantListing extends CRM_Report_Form_Event { 'Participant'); public $_drilldownReport = array('event/income' => 'Link to Detail Report'); - function __construct() { + function __construct() { + + // Check if CiviCampaign is a) enabled and b) has active campaigns + $config = CRM_Core_Config::singleton(); + $campaignEnabled = in_array("CiviCampaign", $config->enableComponents); + if ($campaignEnabled) { + $getCampaigns = CRM_Campaign_BAO_Campaign::getPermissionedCampaigns(NULL, NULL, TRUE, FALSE, TRUE); + $this->activeCampaigns = $getCampaigns['campaigns']; + asort($this->activeCampaigns); + } + $this->_columns = array( 'civicrm_contact' => array( @@ -69,17 +79,21 @@ class CRM_Report_Form_Event_ParticipantListing extends CRM_Report_Form_Event { ), ), 'grouping' => 'contact-fields', - 'filters' => + 'order_bys' => array( 'sort_name' => - array('title' => ts('Participant Name'), - 'operator' => 'like', + array('title' => ts('Last Name, First Name'), + 'default' => '1', + 'default_weight' => '0', + 'default_order' => 'ASC', ), ), - 'order_bys' => + 'filters' => array( 'sort_name' => - array('title' => ts('Last Name, First Name'), 'default' => '1', 'default_weight' => '0', 'default_order' => 'ASC'), + array('title' => ts('Participant Name'), + 'operator' => 'like', + ), ), ), 'civicrm_email' => @@ -235,9 +249,25 @@ class CRM_Report_Form_Event_ParticipantListing extends CRM_Report_Form_Event { ), ), ); + + // If we have active campaigns add those elements to both the fields and filters + if ($campaignEnabled && !empty($this->activeCampaigns)) { + $this->_columns['civicrm_participant']['fields']['campaign_id'] = array( + 'title' => ts('Campaign'), + 'default' => 'false', + ); + $this->_columns['civicrm_participant']['filters']['campaign_id'] = array('title' => ts('Campaign'), + 'operatorType' => CRM_Report_Form::OP_MULTISELECT, + 'options' => $this->activeCampaigns, + ); + $this->_columns['civicrm_participant']['order_bys']['campaign_id'] = array('title' => ts('Campaign')); + + } + $this->_currencyColumn = 'civicrm_participant_fee_currency'; parent::__construct(); } + function preProcess() { parent::preProcess(); @@ -498,6 +528,14 @@ class CRM_Report_Form_Event_ParticipantListing extends CRM_Report_Form_Event { } } + // Convert campaign_id to campaign title + if (array_key_exists('civicrm_participant_campaign_id', $row)) { + if ($value = $row['civicrm_participant_campaign_id']) { + $rows[$rowNum]['civicrm_participant_campaign_id'] = $this->activeCampaigns[$value]; + $entryFound = TRUE; + } + } + // skip looking further in rows, if first row itself doesn't // have the column we need if (!$entryFound) { diff --git a/CRM/Report/Form/Member/Detail.php b/CRM/Report/Form/Member/Detail.php index e1c7a55365..b9181c269e 100644 --- a/CRM/Report/Form/Member/Detail.php +++ b/CRM/Report/Form/Member/Detail.php @@ -433,11 +433,6 @@ class CRM_Report_Form_Member_Detail extends CRM_Report_Form { $this->_groupBy = " GROUP BY {$this->_aliases['civicrm_contact']}.id, {$this->_aliases['civicrm_membership']}.membership_type_id"; } -// This function overrides the default Form.php orderBy and breaks dynamic order -// function orderBy() { -// $this->_orderBy = " ORDER BY {$this->_aliases['civicrm_contact']}.sort_name, {$this->_aliases['civicrm_contact']}.id, {$this->_aliases['civicrm_membership']}.membership_type_id"; -// } - function postProcess() { $this->beginPostProcess();