Awight has uploaded a new change for review.
https://gerrit.wikimedia.org/r/243052
Change subject: Create campaign option group
......................................................................
Create campaign option group
Also protect from Civi exception when a campaign doesn't exist yet.
Bug: T99838
Change-Id: If7c721251708355f903d921736a784c2f324c742
---
M sites/all/modules/wmf_campaigns/WmfCampaign.php
M sites/all/modules/wmf_campaigns/tests/WmfCampaignTest.php
M sites/all/modules/wmf_campaigns/wmf_campaigns.install
M sites/all/modules/wmf_campaigns/wmf_campaigns.module
4 files changed, 49 insertions(+), 5 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/wikimedia/fundraising/crm
refs/changes/52/243052/1
diff --git a/sites/all/modules/wmf_campaigns/WmfCampaign.php
b/sites/all/modules/wmf_campaigns/WmfCampaign.php
index 21d3901..fc9b853 100644
--- a/sites/all/modules/wmf_campaigns/WmfCampaign.php
+++ b/sites/all/modules/wmf_campaigns/WmfCampaign.php
@@ -6,12 +6,20 @@
protected function __construct() {}
+ /**
+ * @return WmfCampaign|null
+ */
public static function fromKey( $key ) {
- $result = db_select( 'wmf_campaigns_campaign' )
- ->fields( 'wmf_campaigns_campaign' )
- ->condition( 'campaign_key', $key )
- ->execute()
- ->fetchAssoc();
+ try {
+ $result = db_select( 'wmf_campaigns_campaign' )
+ ->fields( 'wmf_campaigns_campaign' )
+ ->condition( 'campaign_key', $key )
+ ->execute()
+ ->fetchAssoc();
+ } catch ( CiviCRM_API3_Exception $ex ) {
+ watchdog( 'wmf_campaigns', "Couldn't find campaign {$key}: " .
$ex->getMessage(), NULL, WATCHDOG_WARNING );
+ return null;
+ }
return WmfCampaign::fromDbRecord( $result );
}
diff --git a/sites/all/modules/wmf_campaigns/tests/WmfCampaignTest.php
b/sites/all/modules/wmf_campaigns/tests/WmfCampaignTest.php
index 912191a..f0407f2 100644
--- a/sites/all/modules/wmf_campaigns/tests/WmfCampaignTest.php
+++ b/sites/all/modules/wmf_campaigns/tests/WmfCampaignTest.php
@@ -6,6 +6,11 @@
* @group WmfCampaigns
*/
class WmfCampaignTest extends BaseWmfDrupalPhpUnitTestCase {
+ public $campaign_custom_field_name;
+ public $campaign_key;
+ public $notification_email;
+ public $contact_id;
+
function setUp() {
parent::setUp();
civicrm_initialize();
@@ -17,6 +22,11 @@
$this->campaign_key = 'fooCamp' . mt_rand();
$this->notification_email = '[email protected]';
+ civicrm_api3( 'OptionValue', 'create', array(
+ 'option_group_id' => WMF_CAMPAIGNS_OPTION_GROUP_NAME,
+ 'name' => $this->campaign_key,
+ ) );
+
$result = civicrm_api3( 'Contact', 'create', array(
'contact_type' => 'Individual',
'first_name' => 'Testes',
diff --git a/sites/all/modules/wmf_campaigns/wmf_campaigns.install
b/sites/all/modules/wmf_campaigns/wmf_campaigns.install
index 70e9cde..3404f4b 100644
--- a/sites/all/modules/wmf_campaigns/wmf_campaigns.install
+++ b/sites/all/modules/wmf_campaigns/wmf_campaigns.install
@@ -1,5 +1,9 @@
<?php
+function wmf_campaigns_install() {
+ wmf_campaigns_update_7000();
+}
+
function wmf_campaigns_schema() {
$schema = array();
@@ -23,3 +27,24 @@
return $schema;
}
+
+/**
+ * Create campaign group
+ */
+function wmf_campaigns_update_7000() {
+ civicrm_initialize();
+
+ $result = civicrm_api3( 'OptionGroup', 'get', array(
+ 'name' => WMF_CAMPAIGNS_OPTION_GROUP_NAME,
+ ) );
+
+ if ( empty( $result['id'] ) ) {
+ $result = civicrm_api3( 'OptionGroup', 'create', array(
+ 'name' => WMF_CAMPAIGNS_OPTION_GROUP_NAME,
+ ) );
+
+ if ( empty( $result['id'] ) ) {
+ throw new RuntimeException( 'Failed to create campaign option
group.' );
+ }
+ }
+}
diff --git a/sites/all/modules/wmf_campaigns/wmf_campaigns.module
b/sites/all/modules/wmf_campaigns/wmf_campaigns.module
index 7801eda..a24128f 100644
--- a/sites/all/modules/wmf_campaigns/wmf_campaigns.module
+++ b/sites/all/modules/wmf_campaigns/wmf_campaigns.module
@@ -3,6 +3,7 @@
use wmf_communication\Mailer;
use wmf_communication\Templating;
+// FIXME: Find the production value dynamically.
const WMF_CAMPAIGNS_OPTION_GROUP_NAME = 'appeal_20080709183729';
/**
--
To view, visit https://gerrit.wikimedia.org/r/243052
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: If7c721251708355f903d921736a784c2f324c742
Gerrit-PatchSet: 1
Gerrit-Project: wikimedia/fundraising/crm
Gerrit-Branch: master
Gerrit-Owner: Awight <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits