[MediaWiki-commits] [Gerrit] Schema migration for source metadata - change (wikimedia...crm)

2014-01-03 Thread Mwalker (Code Review)
Mwalker has submitted this change and it was merged.

Change subject: Schema migration for source metadata
..


Schema migration for source metadata

Change-Id: If0997e93fdd4d63e519a46387b8a123361988ef4
---
M sites/all/modules/wmf_common/wmf_civicrm/wmf_civicrm.install
1 file changed, 46 insertions(+), 0 deletions(-)

Approvals:
  Mwalker: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/sites/all/modules/wmf_common/wmf_civicrm/wmf_civicrm.install 
b/sites/all/modules/wmf_common/wmf_civicrm/wmf_civicrm.install
index 6ff8bb8..0115c24 100644
--- a/sites/all/modules/wmf_common/wmf_civicrm/wmf_civicrm.install
+++ b/sites/all/modules/wmf_common/wmf_civicrm/wmf_civicrm.install
@@ -16,6 +16,7 @@
 wmf_civicrm_update_6009();
 wmf_civicrm_update_6010();
 wmf_civicrm_update_6011();
+wmf_civicrm_update_6012();
 }
 
 /**
@@ -541,3 +542,48 @@
 drupal_set_message("Key already exists?: " + $ex->getMessage());
 }
 }
+
+/**
+ * Add source metadata fields
+ */
+function wmf_civicrm_update_6012()
+{
+$api = wmf_civicrm_bootstrap_civi();
+$api->CustomGroup->get(array(
+'name' => 'contribution_extra',
+));
+$values = $api->values();
+$custom_group = array_pop($values);
+
+$success = $api->CustomField->create(array(
+'custom_group_id' => $custom_group->id,
+'name' => 'source_app',
+'column_name' => 'source_app',
+'label' => ts('Source Name'),
+'data_type' => 'String',
+'html_type' => 'Text',
+'is_active' => 1,
+'is_searchable' => 1,
+'is_view' => 1,
+));
+if (!$success) {
+$ret[] = array( 'success' => false, 'query' => $api->errorMsg() );
+}
+
+$success = $api->CustomField->create(array(
+'custom_group_id' => $custom_group->id,
+'name' => 'source_job',
+'column_name' => 'source_job',
+'label' => ts('Source Job ID'),
+'data_type' => 'String',
+'html_type' => 'Text',
+'is_active' => 1,
+'is_searchable' => 1,
+'is_view' => 1,
+));
+if (!$success) {
+$ret[] = array( 'success' => false, 'query' => $api->errorMsg() );
+}
+
+return array();
+}

-- 
To view, visit https://gerrit.wikimedia.org/r/104167
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: If0997e93fdd4d63e519a46387b8a123361988ef4
Gerrit-PatchSet: 1
Gerrit-Project: wikimedia/fundraising/crm
Gerrit-Branch: master
Gerrit-Owner: Adamw 
Gerrit-Reviewer: Katie Horn 
Gerrit-Reviewer: Mwalker 
Gerrit-Reviewer: jenkins-bot

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Output another copy of stats in JSON format - change (wikimedia...tools)

2014-01-03 Thread Mwalker (Code Review)
Mwalker has submitted this change and it was merged.

Change subject: Output another copy of stats in JSON format
..


Output another copy of stats in JSON format

Change-Id: Ib75d9d90ec30d560c294b4cbef1f7455fb632719
---
M FundraiserStatisticsGen/fundstatgen.py
1 file changed, 16 insertions(+), 7 deletions(-)

Approvals:
  Mwalker: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/FundraiserStatisticsGen/fundstatgen.py 
b/FundraiserStatisticsGen/fundstatgen.py
index a80d1d3..1ab437e 100644
--- a/FundraiserStatisticsGen/fundstatgen.py
+++ b/FundraiserStatisticsGen/fundstatgen.py
@@ -8,6 +8,7 @@
 
 import MySQLdb as db
 import csv
+import json
 from optparse import OptionParser
 from ConfigParser import SafeConfigParser
 import logging
@@ -47,14 +48,14 @@
 (years, pivot) = pivotDataByYear(stats)
 
 logging.info("Writing year data output files...")
-createSingleOutFile(stats, 'date', workingDir + '/donationdata-vs-day.csv')
+createSingleOutFile(stats, 'date', workingDir + '/donationdata-vs-day')
 createOutputFiles(pivot, 'date', workingDir + '/yeardata-day-vs-', years)
 
 logging.info("Running per campaign query...")
 pcStats = getPerCampaignData(hostname, port, username, password, database)
 
 logging.info("Writing campaign data output files...")
-createSingleOutFile(pcStats, ('medium', 'campaign'), workingDir + 
'/campaign-vs-amount.csv')
+createSingleOutFile(pcStats, ('medium', 'campaign'), workingDir + 
'/campaign-vs-amount')
 
 
 def getPerYearData(host, port, username, password, database):
@@ -158,8 +159,8 @@
 usdmax = float(usdmax)
 
 data[(medium, campaign)] = {
-'start_date': start,
-'stop_date': stop,
+'start_date': start.isoformat(),
+'stop_date': stop.isoformat(),
 'count': count,
 'sum': sum,
 'avg': usdavg,
@@ -218,10 +219,10 @@
 """
 reports = stats.keys()
 for report in reports:
-createSingleOutFile(stats[report], firstcol, basename + report + 
'.csv', colnames)
+createSingleOutFile(stats[report], firstcol, basename + report, 
colnames)
 
 
-def createSingleOutFile(stats, firstcols, filename, colnames = None):
+def createSingleOutFile(stats, firstcols, basefilename, colnames = None):
 """
 Creates a single report file from a keyed dict
 
@@ -242,10 +243,12 @@
 else:
 firstcols = list(firstcols)
 
-f = file(filename, 'w')
+csvfilename = basefilename + ".csv"
+f = file(csvfilename, 'w')
 csvf = csv.writer(f)
 csvf.writerow(firstcols + colnames)
 
+alldata = []
 for linekey in sorted(stats.keys()):
 if isinstance(linekey, basestring):
 linekeyl = [linekey]
@@ -253,9 +256,15 @@
 linekeyl = list(linekey)
 
 rowdata = [stats[linekey][col] for col in colindices]
+alldata.append(linekeyl + rowdata)
 csvf.writerow(linekeyl + rowdata)
 f.close()
 
+jsonfilename = basefilename + ".json"
+f = file(jsonfilename, 'w')
+mapstats = [ dict(zip(firstcols + colnames, line)) for line in alldata ]
+json.dump(mapstats, f)
+f.close()
 
 if __name__ == "__main__":
 logging.getLogger().setLevel(logging.DEBUG)

-- 
To view, visit https://gerrit.wikimedia.org/r/105254
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Ib75d9d90ec30d560c294b4cbef1f7455fb632719
Gerrit-PatchSet: 1
Gerrit-Project: wikimedia/fundraising/tools
Gerrit-Branch: master
Gerrit-Owner: Adamw 
Gerrit-Reviewer: Mwalker 
Gerrit-Reviewer: Ssmith 
Gerrit-Reviewer: jenkins-bot

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Ensure the PayPal API connection will timeout - change (wikimedia...tools)

2013-12-30 Thread Mwalker (Code Review)
Mwalker has submitted this change and it was merged.

Change subject: Ensure the PayPal API connection will timeout
..


Ensure the PayPal API connection will timeout

Change-Id: Ifb451afb00934228ce11b19b657ef5f90cdf0c7f
---
M audit/paypal/paypal_api.py
1 file changed, 2 insertions(+), 2 deletions(-)

Approvals:
  Mwalker: Looks good to me, approved



diff --git a/audit/paypal/paypal_api.py b/audit/paypal/paypal_api.py
index 7659922..0c3efa2 100644
--- a/audit/paypal/paypal_api.py
+++ b/audit/paypal/paypal_api.py
@@ -56,5 +56,5 @@
 # will behave as a constructor
 return self.do_open(self.getConnection, req)
 
-def getConnection(self, host, timeout=300):
-return httplib.HTTPSConnection(host, key_file=self.key, 
cert_file=self.cert)
+def getConnection(self, host, timeout=20):
+return httplib.HTTPSConnection(host, key_file=self.key, 
cert_file=self.cert, timeout=timeout)

-- 
To view, visit https://gerrit.wikimedia.org/r/104702
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Ifb451afb00934228ce11b19b657ef5f90cdf0c7f
Gerrit-PatchSet: 1
Gerrit-Project: wikimedia/fundraising/tools
Gerrit-Branch: master
Gerrit-Owner: Adamw 
Gerrit-Reviewer: Katie Horn 
Gerrit-Reviewer: Mwalker 
Gerrit-Reviewer: Ssmith 
Gerrit-Reviewer: jenkins-bot

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Explicit about which date we log - change (wikimedia...tools)

2013-12-30 Thread Mwalker (Code Review)
Mwalker has submitted this change and it was merged.

Change subject: Explicit about which date we log
..


Explicit about which date we log

The constructed message could have been normalized to use recurring keys by
this point, so we cannot depend on out['date'].

Change-Id: Ie63820c092331d077fcf66cfbf70aec7eeedeb78
---
M audit/paypal/TrrFile.py
1 file changed, 1 insertion(+), 1 deletion(-)

Approvals:
  Mwalker: Looks good to me, approved



diff --git a/audit/paypal/TrrFile.py b/audit/paypal/TrrFile.py
index 0551944..c2ff81f 100644
--- a/audit/paypal/TrrFile.py
+++ b/audit/paypal/TrrFile.py
@@ -106,7 +106,7 @@
 return
 
 if self.crm.transaction_exists(gateway_txn_id=out['gateway_txn_id'], 
gateway='paypal'):
-
log.info("-Duplicate\t{id}\t{date}\t{type}".format(id=out['gateway_txn_id'], 
date=out['date'], type=queue))
+
log.info("-Duplicate\t{id}\t{date}\t{type}".format(id=out['gateway_txn_id'], 
date=row['Transaction Initiation Date'], type=queue))
 return
 
 if 'last_name' not in out and queue != 'refund':

-- 
To view, visit https://gerrit.wikimedia.org/r/104690
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Ie63820c092331d077fcf66cfbf70aec7eeedeb78
Gerrit-PatchSet: 1
Gerrit-Project: wikimedia/fundraising/tools
Gerrit-Branch: master
Gerrit-Owner: Adamw 
Gerrit-Reviewer: Katie Horn 
Gerrit-Reviewer: Mwalker 
Gerrit-Reviewer: Ssmith 
Gerrit-Reviewer: jenkins-bot

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] /me learns some python - change (wikimedia...tools)

2013-12-30 Thread Mwalker (Code Review)
Mwalker has submitted this change and it was merged.

Change subject: /me learns some python
..


/me learns some python

Change-Id: I44c4e29406bd4c7a59a7dc80692d9f9aefae2e0e
---
M audit/paypal/ppreport.py
1 file changed, 1 insertion(+), 1 deletion(-)

Approvals:
  Mwalker: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/audit/paypal/ppreport.py b/audit/paypal/ppreport.py
index bfb8704..28a3f6e 100644
--- a/audit/paypal/ppreport.py
+++ b/audit/paypal/ppreport.py
@@ -28,7 +28,7 @@
 elif row[0] == 'FH':
 pass
 elif row[0] == 'SH':
-start_date, end_date = row[1:2]
+start_date, end_date = row[1:3]
 log.info("Report file covers date range {start} to 
{end}".format(start=start_date, end=end_date))
 elif row[0] == 'CH':
 column_headers = ['Column Type'] + row[1:]

-- 
To view, visit https://gerrit.wikimedia.org/r/104572
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I44c4e29406bd4c7a59a7dc80692d9f9aefae2e0e
Gerrit-PatchSet: 1
Gerrit-Project: wikimedia/fundraising/tools
Gerrit-Branch: master
Gerrit-Owner: Adamw 
Gerrit-Reviewer: Katie Horn 
Gerrit-Reviewer: Mwalker 
Gerrit-Reviewer: jenkins-bot

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Improvements for Thank You - change (wikimedia...crm)

2013-12-27 Thread Mwalker (Code Review)
Mwalker has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/104181


Change subject: Improvements for Thank You
..

Improvements for Thank You

* Templates now
** use contact ID instead of contribution ID
** are pretty printed

* Thank you itself now correctly uses the List-Unsubscribe header

Change-Id: I7f59ccae3b774e72f7f21db3c7ee4ad83619a20a
---
M sites/all/modules/thank_you/generators/RenderTranslatedPage.php
M sites/all/modules/thank_you/generators/ThankYou2012.php
M sites/all/modules/thank_you/generators/ThankYou20131202.php
M sites/all/modules/thank_you/thank_you.module
4 files changed, 5 insertions(+), 4 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/wikimedia/fundraising/crm 
refs/changes/81/104181/1

diff --git a/sites/all/modules/thank_you/generators/RenderTranslatedPage.php 
b/sites/all/modules/thank_you/generators/RenderTranslatedPage.php
index 24cc017..7f7b4e9 100644
--- a/sites/all/modules/thank_you/generators/RenderTranslatedPage.php
+++ b/sites/all/modules/thank_you/generators/RenderTranslatedPage.php
@@ -289,10 +289,11 @@
 
// Save it, not outputting the freaking  header and 
 tags
$result = array();
+   $dom->formatOutput = true;
foreach( $dom->firstChild->childNodes as $node ) {
$result[] = $dom->saveXML( $node );
}
-   return implode( "\n", $result );
+   return implode( "\n\n", $result );
}
 
/**
diff --git a/sites/all/modules/thank_you/generators/ThankYou2012.php 
b/sites/all/modules/thank_you/generators/ThankYou2012.php
index 84863a7..5944463 100644
--- a/sites/all/modules/thank_you/generators/ThankYou2012.php
+++ b/sites/all/modules/thank_you/generators/ThankYou2012.php
@@ -9,7 +9,7 @@
'/\[given name\]/' => '{{contact.first_name}}',
'/\[date\]/' => '{{contribution.receive_date}}',
'/\[amount\]/' => 
'{{contribution.contribution_source|l10n_currency(locale)}}',
-   '/\[contributionId\]/' => '{{contribution.id}}',
+   '/\[contributionId\]/' => '{{contribution.contact_id}}',
 
'/\[ifRecurring\]/' => '{% if recurring %}',
'/\[endifRecurring\]/' => '{% endif %}',
diff --git a/sites/all/modules/thank_you/generators/ThankYou20131202.php 
b/sites/all/modules/thank_you/generators/ThankYou20131202.php
index 570f5aa..c1e2623 100644
--- a/sites/all/modules/thank_you/generators/ThankYou20131202.php
+++ b/sites/all/modules/thank_you/generators/ThankYou20131202.php
@@ -9,7 +9,7 @@
'/\[given name\]/' => '{{contact.first_name}}',
'/\[date\]/' => '{{contribution.receive_date}}',
'/\[amount\]/' => 
'{{contribution.contribution_source|l10n_currency(locale)}}',
-   '/\[contributionId\]/' => '{{contribution.id}}',
+   '/\[contributionId\]/' => '{{contribution.contact_id}}',
 
'/\[ifRecurring\]/' => '{% if recurring %}',
'/\[endifRecurring\]/' => '{% endif %}',
diff --git a/sites/all/modules/thank_you/thank_you.module 
b/sites/all/modules/thank_you/thank_you.module
index b9bf5fe..d06167f 100644
--- a/sites/all/modules/thank_you/thank_you.module
+++ b/sites/all/modules/thank_you/thank_you.module
@@ -342,7 +342,7 @@
 
$email_success = $mailer->send(
$email,
-   array( 'List-Unsubscribe' => build_unsub_link( 
$contribution_id, $email['to_address'], $language) )
+   array( 'List-Unsubscribe' => '<' . build_unsub_link( 
$contribution_id, $email['to_address'], $language) . '>' )
);
 
} catch (phpmailerException $e) {

-- 
To view, visit https://gerrit.wikimedia.org/r/104181
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I7f59ccae3b774e72f7f21db3c7ee4ad83619a20a
Gerrit-PatchSet: 1
Gerrit-Project: wikimedia/fundraising/crm
Gerrit-Branch: master
Gerrit-Owner: Mwalker 

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Source metadata in queue message headers - change (wikimedia...tools)

2013-12-27 Thread Mwalker (Code Review)
Mwalker has submitted this change and it was merged.

Change subject: Source metadata in queue message headers
..


Source metadata in queue message headers

Change-Id: Ic44bb38885c962bb8aa75c93958fce71b7b49b50
---
M queue/stomp_wrap.py
1 file changed, 4 insertions(+), 0 deletions(-)

Approvals:
  Mwalker: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/queue/stomp_wrap.py b/queue/stomp_wrap.py
index 5cf4f08..f8c515e 100644
--- a/queue/stomp_wrap.py
+++ b/queue/stomp_wrap.py
@@ -1,6 +1,8 @@
 from process.globals import config
 from process.logging import Logger as log
 
+import os, os.path
+import sys
 import json
 from stompy import Stomp as DistStomp
 
@@ -25,6 +27,8 @@
 return
 
 meta = {
+'source-app': os.path.basename(sys.argv[0]),
+'source-pid': os.getpid(),
 'destination': config.stomp.queues[queue_key],
 'persistent': 'true',
 }

-- 
To view, visit https://gerrit.wikimedia.org/r/104157
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Ic44bb38885c962bb8aa75c93958fce71b7b49b50
Gerrit-PatchSet: 1
Gerrit-Project: wikimedia/fundraising/tools
Gerrit-Branch: master
Gerrit-Owner: Adamw 
Gerrit-Reviewer: Katie Horn 
Gerrit-Reviewer: Mwalker 
Gerrit-Reviewer: jenkins-bot

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Make this run on python2.6 - change (wikimedia...tools)

2013-12-27 Thread Mwalker (Code Review)
Mwalker has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/104169


Change subject: Make this run on python2.6
..

Make this run on python2.6

Change-Id: Ia124b4185df844086e0fe3fba88ef38e93a3aaef
---
M FundraiserStatisticsGen/fundstatgen.py
1 file changed, 6 insertions(+), 1 deletion(-)


  git pull ssh://gerrit.wikimedia.org:29418/wikimedia/fundraising/tools 
refs/changes/69/104169/1

diff --git a/FundraiserStatisticsGen/fundstatgen.py 
b/FundraiserStatisticsGen/fundstatgen.py
index 3fd3e46..a80d1d3 100644
--- a/FundraiserStatisticsGen/fundstatgen.py
+++ b/FundraiserStatisticsGen/fundstatgen.py
@@ -259,7 +259,12 @@
 
 if __name__ == "__main__":
 logging.getLogger().setLevel(logging.DEBUG)
-logging.captureWarnings(True)
+
+try:
+logging.captureWarnings(True)
+except:
+# Damn; python 2.6; just ignore it
+pass
 
 # Log to console
 console = logging.StreamHandler()

-- 
To view, visit https://gerrit.wikimedia.org/r/104169
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ia124b4185df844086e0fe3fba88ef38e93a3aaef
Gerrit-PatchSet: 1
Gerrit-Project: wikimedia/fundraising/tools
Gerrit-Branch: master
Gerrit-Owner: Mwalker 

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Better translations for he and ro - change (wikimedia...crm)

2013-12-27 Thread Mwalker (Code Review)
Mwalker has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/104163


Change subject: Better translations for he and ro
..

Better translations for he and ro

Change-Id: I32897fd9ca14fc67dc5c9ad08d93418d84c07c43
---
M sites/all/modules/thank_you/templates/html/thank_you.he.html
M sites/all/modules/thank_you/templates/html/thank_you.ro.html
2 files changed, 21 insertions(+), 11 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/wikimedia/fundraising/crm 
refs/changes/63/104163/1

diff --git a/sites/all/modules/thank_you/templates/html/thank_you.he.html 
b/sites/all/modules/thank_you/templates/html/thank_you.he.html
index 367e740..f0f18ae 100644
--- a/sites/all/modules/thank_you/templates/html/thank_you.he.html
+++ b/sites/all/modules/thank_you/templates/html/thank_you.he.html
@@ -1,4 +1,4 @@
-שלום $firstname,
+שלום {{contact.first_name}},
 עשייתך יוצאת מן הכלל. תודה רבה על תמיכתך בויקימדיה,
 ארגון ללא כוונות רווח המתפעל את אתר ויקיפדיה ביחד עם
 פרויקטים כדוגמתה.
diff --git a/sites/all/modules/thank_you/templates/html/thank_you.ro.html 
b/sites/all/modules/thank_you/templates/html/thank_you.ro.html
index 9dbcd18..696810c 100644
--- a/sites/all/modules/thank_you/templates/html/thank_you.ro.html
+++ b/sites/all/modules/thank_you/templates/html/thank_you.ro.html
@@ -1,5 +1,4 @@
-/ATTENTION, TRANSLATION HAS NO DIACRITICS /ATENȚIE, DIACRITICELE NU AU FOST 
PUSE Dragă
-{{contact.first_name}},
+Dragă {{contact.first_name}},
 Esti nemaipomenit(a). MULTUMIM pentru suportul acordat Fundatiei Wikimedia, 
organizatia
 non-profit care intretine Wikipedia si proiectele ei.
 Donatia aceasta acopera nu numai costul dumneavoastra de a folosi 
Wikipedia, dar si costul altor
@@ -40,11 +39,20 @@
 https://donate.wikimedia.org/";>donate.wikimedia.org
 Multi angajatori contribuie cu sume care egaleaza contributiile 
angajatilor, dubland astfel
 donatia dv.: va rugam sa verificati daca firma la care lucrati are un program 
corporativ de donatii
-prin care contribuie cu sume egale cu cele donate de angajati. Ne puteti 
urmari pe Twitter,
-identi.ca sau Google+, sa ne dat like pe Facebook si sa ne cititi blogul. Aici 
este raportul annual
-al Fundatiei Wikimedia pentru 2011-2012, planul annual 2013-2014 si planul 
strategic pentru cinci
-ani. De asemenea, acum puteti cumpara produse Wikipedia.
-Pentru evidenta dumneavoastra: Donatia dv., numar, data, suma.
+prin care contribuie cu sume egale cu cele donate de angajati. Ne puteti 
urmari pe https://twitter.com/Wikipedia";>Twitter, https://identi.ca/wikipedia";>identi.ca sau https://plus.google.com/+Wikipedia/posts";>Google+, sa ne dat like pe 
https://www.facebook.com/wikipedia";>Facebook si https://blog.wikimedia.org";>sa ne
+cititi blogul. Aici este https://wikimediafoundation.org/wiki/Annual_Report";>raportul
+annual al Fundatiei Wikimedia pentru 2011-2012, http://wikimediafoundation.org/wiki/2013-2014_Annual_Plan_Questions_and_Answers";>planul
 annual
+2013-2014 si https://wikimediafoundation.org/wiki/Wikimedia_Movement_Strategic_Plan_Summary";>planul
+strategic pentru cinci ani. De asemenea, acum puteti cumpara produse 
Wikipedia: https://shop.wikimedia.org";>shop.wikimedia.org.
+Pentru evidenta dumneavoastra: Donatia dv., numar {{contribution.id}}, data
+{{contribution.receive_date}}, suma 
{{contribution.contribution_source|l10n_currency(locale)}}.
 {% if recurring %} Aceasta donatie este parte a unei contributii banesti 
recurente. Lunar se va
 debita o plata de catre Fundatia Wikimedia pana cand dv. ne veti notifica sa 
ne oprim. Daca doriti
 sa anulati platile, va rugam sa cititi instructiunile noastre de anulare. {% 
endif %}
@@ -57,8 +65,10 @@
 participa:Fiind unul dintre donatorii nostri, dorim sa va informam 
despre activitatile
 comunitatii noastre cat si despre cei care strang fonduri pentru comunitatea 
noastra. In
 eventualitatea in care nu doriti sa primiti astfel de e-mail-uri de la noi, va 
rugam sa apasati aici
-mai jos si va vom sterge din lista.Abonare/Dezabonare
+mai jos si va vom sterge din lista.Abonare/Dezabonare
 
 
-Va rugam sa ne ajutati sa traducem acest e-mail.
\ No newline at end of file
+Va rugam sa ne ajutati sa https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-Fundraising%2FTranslation%2FThank_you_email_20131202";>traducem
+acest e-mail.
\ No newline at end of file

-- 
To view, visit https://gerrit.wikimedia.org/r/104163
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I32897fd9ca14fc67dc5c9ad08d93418d84c07c43
Gerrit-PatchSet: 1
Gerrit-Project: wikimedia/fundraising/crm
Gerrit-Branch: master
Gerrit-Owner: Mwalker 

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Replace usage of SpecialPage::getTitle with getPageTitle - change (mediawiki...CentralNotice)

2013-12-26 Thread Mwalker (Code Review)
Mwalker has submitted this change and it was merged.

Change subject: Replace usage of SpecialPage::getTitle with getPageTitle
..


Replace usage of SpecialPage::getTitle with getPageTitle

Was deprecated in 1.23, see Icdcf5d5295ef5e7f08b1d403e0c123f78738fd40

Change-Id: Icb1dca1b63365bdc7a5c948c5b2761ea563b045d
---
M special/SpecialCentralNotice.php
M special/SpecialCentralNoticeBanners.php
2 files changed, 9 insertions(+), 9 deletions(-)

Approvals:
  Mwalker: Looks good to me, approved



diff --git a/special/SpecialCentralNotice.php b/special/SpecialCentralNotice.php
index 84872cd..6eea3b3 100644
--- a/special/SpecialCentralNotice.php
+++ b/special/SpecialCentralNotice.php
@@ -169,7 +169,7 @@
 
// If there were no errors, reload the page to 
prevent duplicate form submission
if ( !$this->centralNoticeError ) {
-   $out->redirect( 
$this->getTitle()->getLocalUrl() );
+   $out->redirect( 
$this->getPageTitle()->getLocalUrl() );
return;
}
} else {
@@ -406,7 +406,7 @@
// Name
$rowCells .= Html::rawElement( 'td', array(),
Linker::link(
-   $this->getTitle(),
+   $this->getPageTitle(),
htmlspecialchars( 
$row->not_name ),
array(),
array(
@@ -551,7 +551,7 @@
// Form for adding a campaign
$htmlOut .= Xml::openElement( 'form', array( 'method' 
=> 'post' ) );
$htmlOut .= Xml::element( 'h2', null, $this->msg( 
'centralnotice-add-notice' )->text() );
-   $htmlOut .= Html::hidden( 'title', 
$this->getTitle()->getPrefixedText() );
+   $htmlOut .= Html::hidden( 'title', 
$this->getPageTitle()->getPrefixedText() );
$htmlOut .= Html::hidden( 'method', 'addCampaign' );
 
$htmlOut .= Xml::openElement( 'table', array( 
'cellpadding' => 9 ) );
@@ -805,7 +805,7 @@
 
// If there were no errors, reload the 
page to prevent duplicate form submission
if ( !$this->centralNoticeError ) {
-   $this->getOutput()->redirect( 
$this->getTitle()->getLocalUrl( array(
+   $this->getOutput()->redirect( 
$this->getPageTitle()->getLocalUrl( array(
'method' => 
'listNoticeDetail',
'notice' => 
$notice
) ) );
@@ -826,7 +826,7 @@
$htmlOut .= Xml::openElement( 'form',
array(
'method' => 'post',
-   'action' => 
$this->getTitle()->getLocalUrl( array(
+   'action' => 
$this->getPageTitle()->getLocalUrl( array(
'method' => 'listNoticeDetail',
'notice' => $notice
) )
diff --git a/special/SpecialCentralNoticeBanners.php 
b/special/SpecialCentralNoticeBanners.php
index 0ea9222..22a76f2 100644
--- a/special/SpecialCentralNoticeBanners.php
+++ b/special/SpecialCentralNoticeBanners.php
@@ -191,7 +191,7 @@
 
// --- Add all the banners via the fancy pager object ---
$pager = new CNBannerPager(
-   $this->getTitle(),
+   $this->getPageTitle(),
'banner-list',
array(
 'applyTo' => array(
@@ -496,7 +496,7 @@
'class' => 'HTMLInfoField',
'disabled' => !$this->editable,
'label-raw' => Linker::link(
-   $this->getTitle( 
"preview/{$this->bannerName}" ),
+   $this->getPageTitle( 
"preview/{$this->bannerName}" ),
$this->msg( 
'centralnotice-preview-all-template-translations' )->escaped()
),
'default' => implode( ', ', 
$liveMessageNames ),

[MediaWiki-commits] [Gerrit] kick out unknown refund events - change (wikimedia...tools)

2013-12-26 Thread Mwalker (Code Review)
Mwalker has submitted this change and it was merged.

Change subject: kick out unknown refund events
..


kick out unknown refund events

Change-Id: Ib5db100d39a4794b4f2f135946312eddac714125
---
M audit/paypal/TrrFile.py
1 file changed, 3 insertions(+), 0 deletions(-)

Approvals:
  Mwalker: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/audit/paypal/TrrFile.py b/audit/paypal/TrrFile.py
index 60be67e..643fe9b 100644
--- a/audit/paypal/TrrFile.py
+++ b/audit/paypal/TrrFile.py
@@ -95,6 +95,9 @@
 out['type'] = 'refund'
 elif row['Transaction Event Code'] == 'T1201':
 out['type'] = 'chargeback'
+else:
+log.info("Not handling auxiliary refund event of type 
{type}".format(type=row['Transaction Event Code']))
+return
 
 queue = 'refund'
 

-- 
To view, visit https://gerrit.wikimedia.org/r/103893
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Ib5db100d39a4794b4f2f135946312eddac714125
Gerrit-PatchSet: 1
Gerrit-Project: wikimedia/fundraising/tools
Gerrit-Branch: master
Gerrit-Owner: Adamw 
Gerrit-Reviewer: Mwalker 
Gerrit-Reviewer: jenkins-bot

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] currrrghency - change (wikimedia...tools)

2013-12-26 Thread Mwalker (Code Review)
Mwalker has submitted this change and it was merged.

Change subject: cughency
..


cughency

Change-Id: If6d71eda929f50184cef52674463ec3a6ed78560
---
M audit/paypal/TrrFile.py
1 file changed, 1 insertion(+), 0 deletions(-)

Approvals:
  Mwalker: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/audit/paypal/TrrFile.py b/audit/paypal/TrrFile.py
index c384129..60be67e 100644
--- a/audit/paypal/TrrFile.py
+++ b/audit/paypal/TrrFile.py
@@ -133,6 +133,7 @@
 'subscr_id': msg['subscr_id'],
 'payment_date': msg['date'],
 'payer_email': msg['email'],
+'mc_currency': msg['currency'],
 'mc_gross': msg['gross'],
 'mc_fee': msg['fee'],
 'address_street': "\n".join([msg['street_address'], 
msg['supplemental_address_1']]),

-- 
To view, visit https://gerrit.wikimedia.org/r/103892
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: If6d71eda929f50184cef52674463ec3a6ed78560
Gerrit-PatchSet: 1
Gerrit-Project: wikimedia/fundraising/tools
Gerrit-Branch: master
Gerrit-Owner: Adamw 
Gerrit-Reviewer: Mwalker 
Gerrit-Reviewer: jenkins-bot

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] implement https client certificates for the PayPal api - change (wikimedia...tools)

2013-12-26 Thread Mwalker (Code Review)
Mwalker has submitted this change and it was merged.

Change subject: implement https client certificates for the PayPal api
..


implement https client certificates for the PayPal api

Change-Id: Ibe6a6d069f18f963e54baaf7d5872e815e8bcc67
---
M audit/paypal/TrrFile.py
M audit/paypal/paypal_api.py
2 files changed, 32 insertions(+), 5 deletions(-)

Approvals:
  Mwalker: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/audit/paypal/TrrFile.py b/audit/paypal/TrrFile.py
index 9538b57..08fa5e9 100644
--- a/audit/paypal/TrrFile.py
+++ b/audit/paypal/TrrFile.py
@@ -146,5 +146,5 @@
 api = PaypalApiClassic()
 response = api.call('GetTransactionDetails', TRANSACTIONID=txn_id)
 if 'FIRSTNAME' not in response:
-raise RuntimeError("Failed to get transaction details for 
{id}".format(id=txn_id))
+raise RuntimeError("Failed to get transaction details for {id}, 
repsonse: {response}".format(id=txn_id, response=response))
 return (response['FIRSTNAME'][0], response['LASTNAME'][0])
diff --git a/audit/paypal/paypal_api.py b/audit/paypal/paypal_api.py
index f8c8071..7659922 100644
--- a/audit/paypal/paypal_api.py
+++ b/audit/paypal/paypal_api.py
@@ -1,5 +1,6 @@
 from process.globals import config
 
+import httplib
 import urllib
 import urllib2
 import urlparse
@@ -16,9 +17,6 @@
 }
 if 'signature' in config.api:
 params['SIGNATURE'] = config.api.signature
-elif 'certificate_path' in config.api:
-# TODO
-pass
 
 params.update(kw)
 
@@ -26,8 +24,37 @@
 url = config.api.url + "?" + query
 
 req = urllib2.Request(url)
-out = urllib2.urlopen(req)
+
+handlers = []
+
+# just for debugging DEBUGGING...
+#httplib.HTTPConnection.debuglevel = 3
+#httplib.HTTPSConnection.debuglevel = 3
+
+if 'certificate_path' in config.api:
+
#handlers.append(HTTPSClientAuthHandler(config.api.certificate_path, 
config.api.certificate_path, debuglevel=2))
+
handlers.append(HTTPSClientAuthHandler(config.api.certificate_path, 
config.api.certificate_path))
+
+opener = urllib2.build_opener(*handlers)
+out = opener.open(req)
 
 result = urlparse.parse_qs(out.read())
 
 return result
+
+# from 
http://stackoverflow.com/questions/1875052/using-paired-certificates-with-urllib2
+
+class HTTPSClientAuthHandler(urllib2.HTTPSHandler):
+def __init__(self, key, cert, **kw):
+urllib2.HTTPSHandler.__init__(self, **kw)
+self.key = key
+self.cert = cert
+
+def https_open(self, req):
+# Rather than pass in a reference to a connection class, we pass in
+# a reference to a function which, for all intents and purposes,
+# will behave as a constructor
+return self.do_open(self.getConnection, req)
+
+def getConnection(self, host, timeout=300):
+return httplib.HTTPSConnection(host, key_file=self.key, 
cert_file=self.cert)

-- 
To view, visit https://gerrit.wikimedia.org/r/103859
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Ibe6a6d069f18f963e54baaf7d5872e815e8bcc67
Gerrit-PatchSet: 1
Gerrit-Project: wikimedia/fundraising/tools
Gerrit-Branch: master
Gerrit-Owner: Adamw 
Gerrit-Reviewer: Katie Horn 
Gerrit-Reviewer: Mwalker 
Gerrit-Reviewer: jenkins-bot

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Support version 8 of the TRR format - change (wikimedia...tools)

2013-12-24 Thread Mwalker (Code Review)
Mwalker has submitted this change and it was merged.

Change subject: Support version 8 of the TRR format
..


Support version 8 of the TRR format

Change-Id: I034ea958eb70af92c4f23c47a79ca67ca9ef111b
---
M audit/paypal/TrrFile.py
M audit/paypal/ppreport.py
2 files changed, 24 insertions(+), 11 deletions(-)

Approvals:
  Mwalker: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/audit/paypal/TrrFile.py b/audit/paypal/TrrFile.py
index 480b2cf..9538b57 100644
--- a/audit/paypal/TrrFile.py
+++ b/audit/paypal/TrrFile.py
@@ -12,7 +12,7 @@
 from paypal_api import PaypalApiClassic
 
 class TrrFile(object):
-VERSION=4
+VERSION = [4, 8]
 stomp = None
 
 @staticmethod
@@ -58,11 +58,11 @@
 if row['Fee Currency'] and row['Gross Transaction Currency'] != 
row['Fee Currency']:
 raise RuntimeError("Failed to import because multiple 
currencies for one transaction is not handled.")
 
-if 'Consumer Given Name' in row:
-out['first_name'] = row['Consumer Given Name']
+if 'First Name' in row:
+out['first_name'] = row['First Name']
 
-if 'Consumer Family Name' in row:
-out['last_name'] = row['Consumer Family Name']
+if 'Last Name' in row:
+out['last_name'] = row['Last Name']
 
 if 'Payment Source' in row:
 out['payment_method'] = row['Payment Source']
@@ -98,6 +98,10 @@
 
 queue = 'refund'
 
+if not queue:
+log.debug("Ignoring event of class {type}".format(type=event_type))
+return
+
 if self.crm.transaction_exists(gateway_txn_id=out['gateway_txn_id'], 
gateway='paypal'):
 log.debug("Not sending duplicate transaction 
{id}".format(id=out['gateway_txn_id']))
 return
@@ -105,10 +109,7 @@
 if 'last_name' not in out:
 out['first_name'], out['last_name'] = 
self.fetch_donor_name(out['gateway_txn_id'])
 
-if queue:
-self.send(queue, out)
-else:
-log.debug("Ignoring event of class {type}".format(type=event_type))
+self.send(queue, out)
 
 def send(self, queue, msg):
 if not self.stomp:
@@ -125,6 +126,7 @@
 out = {
 'gateway': 'paypal',
 'txn_type': 'subscr_payment',
+'gateway_txn_id': msg['gateway_txn_id'],
 'txn_id': msg['gateway_txn_id'],
 'subscr_id': msg['subscr_id'],
 'payment_date': msg['date'],
diff --git a/audit/paypal/ppreport.py b/audit/paypal/ppreport.py
index 28d47b2..f8f5857 100644
--- a/audit/paypal/ppreport.py
+++ b/audit/paypal/ppreport.py
@@ -8,11 +8,22 @@
 )
 
 def read(path, version, callback):
-with io.open(path, 'r', encoding='utf-16') as csvfile:
+try:
+read_encoded(path, version, callback, encoding='utf-16')
+except UnicodeError:
+read_encoded(path, version, callback, encoding='utf-8-sig')
+
+def read_encoded(path, version, callback, encoding):
+# Coerce to a list
+if not hasattr(version, 'extend'):
+version = [version]
+
+with io.open(path, 'r', encoding=encoding) as csvfile:
 plainreader = unicode_csv_reader(csvfile, **dialect)
+
 for row in plainreader:
 if row[0] == 'RH':
-if int(row[4]) != version:
+if int(row[4]) not in version:
 raise RuntimeError("This file uses an unexpected format 
revision: {version}".format(version=row[4]))
 elif row[0] == 'FH':
 pass

-- 
To view, visit https://gerrit.wikimedia.org/r/103510
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I034ea958eb70af92c4f23c47a79ca67ca9ef111b
Gerrit-PatchSet: 1
Gerrit-Project: wikimedia/fundraising/tools
Gerrit-Branch: master
Gerrit-Owner: Adamw 
Gerrit-Reviewer: Katie Horn 
Gerrit-Reviewer: Mwalker 
Gerrit-Reviewer: jenkins-bot

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Pull donor names from Paypal, check Civi for existence - change (wikimedia...tools)

2013-12-23 Thread Mwalker (Code Review)
Mwalker has submitted this change and it was merged.

Change subject: Pull donor names from Paypal, check Civi for existence
..


Pull donor names from Paypal, check Civi for existence

Change-Id: Idf1cef0a2b6529d752abc6f943b890d318dfe4c4
---
M audit/paypal/SarFile.py
M audit/paypal/TrrFile.py
M audit/paypal/config.yaml.example
M audit/paypal/history.py
A audit/paypal/paypal_api.py
M civicrm/civicrm.py
6 files changed, 83 insertions(+), 21 deletions(-)

Approvals:
  Mwalker: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/audit/paypal/SarFile.py b/audit/paypal/SarFile.py
index 27c3b3a..c24887e 100644
--- a/audit/paypal/SarFile.py
+++ b/audit/paypal/SarFile.py
@@ -6,6 +6,7 @@
 from process.logging import Logger as log
 from queue.stomp_wrap import Stomp
 import ppreport
+from civicrm.civicrm import Civicrm
 
 class SarFile(object):
 VERSION=2
@@ -18,6 +19,7 @@
 
 def __init__(self, path):
 self.path = path
+self.crm = Civicrm(config.civicrm_db)
 
 def parse(self):
 ppreport.read(self.path, self.VERSION, self.parse_line)
@@ -47,6 +49,9 @@
 
 if row['Subscription Action Type'] == 'S':
 out['txn_type'] = 'subscr_signup'
+if self.crm.subscription_exists(out['subscr_id']):
+log.info("Skipping duplicate subscription signup.")
+return
 elif row['Subscription Action Type'] == 'S0100':
 log.info("Ignoring subscription modification")
 elif row['Subscription Action Type'] == 'S0200':
diff --git a/audit/paypal/TrrFile.py b/audit/paypal/TrrFile.py
index 1352df6..480b2cf 100644
--- a/audit/paypal/TrrFile.py
+++ b/audit/paypal/TrrFile.py
@@ -4,8 +4,12 @@
 '''
 
 from process.logging import Logger as log
+from process.globals import config
 from queue.stomp_wrap import Stomp
 import ppreport
+
+from civicrm.civicrm import Civicrm
+from paypal_api import PaypalApiClassic
 
 class TrrFile(object):
 VERSION=4
@@ -18,6 +22,7 @@
 
 def __init__(self, path):
 self.path = path
+self.crm = Civicrm(config.civicrm_db)
 
 def parse(self):
 ppreport.read(self.path, self.VERSION, self.parse_line)
@@ -93,6 +98,13 @@
 
 queue = 'refund'
 
+if self.crm.transaction_exists(gateway_txn_id=out['gateway_txn_id'], 
gateway='paypal'):
+log.debug("Not sending duplicate transaction 
{id}".format(id=out['gateway_txn_id']))
+return
+
+if 'last_name' not in out:
+out['first_name'], out['last_name'] = 
self.fetch_donor_name(out['gateway_txn_id'])
+
 if queue:
 self.send(queue, out)
 else:
@@ -127,3 +139,10 @@
 }
 
 return out
+
+def fetch_donor_name(self, txn_id):
+api = PaypalApiClassic()
+response = api.call('GetTransactionDetails', TRANSACTIONID=txn_id)
+if 'FIRSTNAME' not in response:
+raise RuntimeError("Failed to get transaction details for 
{id}".format(id=txn_id))
+return (response['FIRSTNAME'][0], response['LASTNAME'][0])
diff --git a/audit/paypal/config.yaml.example b/audit/paypal/config.yaml.example
index 8746a5f..1c46414 100644
--- a/audit/paypal/config.yaml.example
+++ b/audit/paypal/config.yaml.example
@@ -17,4 +17,19 @@
 donations: /queue/donations
 recurring: /queue/recurring
 
+api:
+url: "https://api-3t.sandbox.paypal.com/nvp";
+username: YOURS
+password: YO
+# only include one of {signature, certificate_path}
+signature: PROVIDEDBYPAYPAL
+#certificate_path:
+
+civicrm_db:
+host: localhost
+user: USER
+passwd: PW
+db: civicrmYOURS
+debug: false
+
 no_effect: 0
diff --git a/audit/paypal/history.py b/audit/paypal/history.py
index 0c65372..9cec2e6 100755
--- a/audit/paypal/history.py
+++ b/audit/paypal/history.py
@@ -36,7 +36,7 @@
 log("*** Dummy mode! Not injecting stomp messages ***")
 
 messaging = Stomp(config)
-civi = Civicrm(config)
+civi = Civicrm(config.items('Db'))
 
 locale.setlocale(locale.LC_NUMERIC, "")
 
diff --git a/audit/paypal/paypal_api.py b/audit/paypal/paypal_api.py
new file mode 100644
index 000..f8c8071
--- /dev/null
+++ b/audit/paypal/paypal_api.py
@@ -0,0 +1,33 @@
+from process.globals import config
+
+import urllib
+import urllib2
+import urlparse
+
+class PaypalApiClassic(object):
+VERSION = '98.0' # pseudo-random guess
+
+def call(self, cmd, **kw):
+params = {
+'PWD': config.api.password,
+'USER': config.api.username,
+'METHOD': cmd,
+'VERSION': self.VERSION,
+}
+if 'signature' in config.api:
+params['SIGNATURE'] = config.api.signature
+elif 'certificate_path' in config.api:
+# TODO
+pass
+
+params.update(kw)
+
+query = urllib.urlencode(params)
+url = config.api.url + "?" + q

[MediaWiki-commits] [Gerrit] Update and add to tests - change (wikimedia...crm)

2013-12-18 Thread Mwalker (Code Review)
Mwalker has submitted this change and it was merged.

Change subject: Update and add to tests
..


Update and add to tests

Note that the BaseTestCase uses a transaction on the Civi database connection 
-- if you are testing pre-transactional wmf_civicrm, please comment out these 
lines.

Change-Id: I3478be6b7a1d7c8ddb92ccc47a01bc7af4e96dbc
---
M sites/all/modules/offline2civicrm/offline2civicrm.info
A sites/all/modules/offline2civicrm/tests/ContributionConversion.test
M sites/all/modules/queue2civicrm/tests/simpletest/BaseTestCase.php
M sites/all/modules/queue2civicrm/tests/simpletest/PaypalRecurring.test
A sites/all/modules/wmf_common/wmf_civicrm/tests/Refund.test
M sites/all/modules/wmf_common/wmf_civicrm/wmf_civicrm.info
6 files changed, 242 insertions(+), 25 deletions(-)

Approvals:
  Mwalker: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/sites/all/modules/offline2civicrm/offline2civicrm.info 
b/sites/all/modules/offline2civicrm/offline2civicrm.info
index 5093b93..bfb1889 100644
--- a/sites/all/modules/offline2civicrm/offline2civicrm.info
+++ b/sites/all/modules/offline2civicrm/offline2civicrm.info
@@ -11,3 +11,4 @@
 files[] = ChecksImportLog.php
 files[] = ContributionConversion.php
 files[] = CsvBatchFile.php
+files[] = tests/ContributionConversion.test 
diff --git 
a/sites/all/modules/offline2civicrm/tests/ContributionConversion.test 
b/sites/all/modules/offline2civicrm/tests/ContributionConversion.test
new file mode 100644
index 000..4b4a8fb
--- /dev/null
+++ b/sites/all/modules/offline2civicrm/tests/ContributionConversion.test
@@ -0,0 +1,83 @@
+ 'ContributionConversion',
+'group' => 'Wikimedia',
+'description' => 'Convert single contributions to recurring',
+);
+}
+
+public function setUp() {
+parent::setUp();
+
+$api = civicrm_api_classapi();
+$api->Contact->Create( array(
+'contact_type' => 'Individual',
+'email' => 'f...@example.com',
+'version' => 3,
+) );
+$this->contact_id = $api->id;
+
+$this->gateway_txn_id = "NaN-" . mt_rand();
+$this->transaction = WmfTransaction::from_unique_id( "GLOBALCOLLECT 
{$this->gateway_txn_id}" );
+
+$api->Contribution->Create( array(
+'contact_id' => $this->contact_id,
+'trxn_id' => $this->transaction->get_unique_id(),
+'contribution_type' => 'Cash',
+'total_amount' => '20.01',
+'receive_date' => wmf_common_date_unix_to_sql( time() ),
+'version' => 3,
+) );
+$this->contribution_id = $api->id;
+
+wmf_civicrm_set_custom_field_values( $this->contribution_id, array(
+'original_amount' => '20.01',
+'original_currency' => 'USD',
+) );
+}
+
+public function tearDown() {
+$api = civicrm_api_classapi();
+
+$api->Contribution->Delete( array(
+'id' => $this->contribution_id,
+'version' => 3,
+) );
+
+$api->Contact->Delete( array(
+'id' => $this->contact_id,
+'version' => 3,
+) );
+
+parent::tearDown();
+}
+
+public function testMakeRecurring() {
+ContributionConversion::makeRecurring( $this->transaction );
+
+$contributions = wmf_civicrm_get_contributions_from_gateway_id( 
$this->transaction->gateway, $this->transaction->gateway_txn_id );
+$this->assertNotNull( $contributions[0]['contribution_recur_id'],
+"Became a recurring contribution" );
+}
+
+public function testMakeRecurringCancelled() {
+ContributionConversion::makeRecurring( $this->transaction, true );
+
+$contributions = wmf_civicrm_get_contributions_from_gateway_id( 
$this->transaction->gateway, $this->transaction->gateway_txn_id );
+
+$api = civicrm_api_classapi();
+$api->ContributionRecur->Get( array(
+'id' => $contributions[0]['contribution_recur_id'],
+
+'version' => 3,
+) );
+$contribution_recur = $api->values[0];
+$this->assertNotNull( $contribution_recur->cancel_date,
+"Marked as cancelled" );
+}
+}
diff --git a/sites/all/modules/queue2civicrm/tests/simpletest/BaseTestCase.php 
b/sites/all/modules/queue2civicrm/tests/simpletest/BaseTestCase.php
index 628f53c..8eb0409 100644
--- a/sites/all/modules/queue2civicrm/tests/simpletest/BaseTestCase.php
+++ b/sites/all/modules/queue2civicrm/tests/simpletest/BaseTestCase.php
@@ -3,20 +3,21 @@
  * Set up schemas and constants.
  */
 class BaseTestCase extends DrupalWebTestCase {
-public function setUp() {
-// This is basically a terrible hack: we are using the "development"
-// civicrm database configured in civicrm.settings.php, and avoid the
-// overhead of creating a new test db by protecting with a transaction.
-// It probab

[MediaWiki-commits] [Gerrit] Move common dequeue error handling into Queue::dequeue_loop - change (wikimedia...crm)

2013-12-18 Thread Mwalker (Code Review)
Mwalker has submitted this change and it was merged.

Change subject: Move common dequeue error handling into Queue::dequeue_loop
..


Move common dequeue error handling into Queue::dequeue_loop

Change-Id: I991373f805d0a768d60cd4addfcddd68a144d886
---
M sites/all/modules/queue2civicrm/queue2civicrm.module
M sites/all/modules/queue2civicrm/recurring/recurring.module
M sites/all/modules/queue2civicrm/refund/wmf_refund_qc.module
M sites/all/modules/queue2civicrm/unsubscribe/wmf_unsubscribe_qc.module
M sites/all/modules/wmf_common/Queue.php
M sites/all/modules/wmf_common/WmfException.php
6 files changed, 66 insertions(+), 195 deletions(-)

Approvals:
  Mwalker: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/sites/all/modules/queue2civicrm/queue2civicrm.module 
b/sites/all/modules/queue2civicrm/queue2civicrm.module
index adf2522..3aead0c 100644
--- a/sites/all/modules/queue2civicrm/queue2civicrm.module
+++ b/sites/all/modules/queue2civicrm/queue2civicrm.module
@@ -174,7 +174,7 @@
   $processed = queue2civicrm_stomp()->dequeue_loop(
   variable_get('queue2civicrm_subscription', '/queue/test'),
   variable_get( 'queue2civicrm_batch', 0 ),
-  'queue2civicrm_process_message'
+  'queue2civicrm_import'
   );
 
   // allow for other modules to handle their own related batch processing
@@ -210,49 +210,6 @@
   else {
 watchdog('queue2civicrm', 'No contributions processed.');
   }
-}
-
-/**
- * Remove one item from the queue and process it.
- */
-function queue2civicrm_process_message($msg) {
-$q = queue2civicrm_stomp();
-try {
-$msg_orig = $msg;
-queue2civicrm_import($msg);
-$q->ack($msg_orig);
-}
-catch (WmfException $ex) {
-watchdog('queue2civicrm', 'something went wrong during import: 
'.$ex->getMessage(), NULL, WATCHDOG_ERROR);
-
-if ($ex->isRejectMessage()) {
-$error = "\nRemoving failed message from the queue: \n" . 
print_r($msg_orig, true);
-$q->reject($msg_orig, $ex);
-watchdog('queue2civicrm', $error, NULL, WATCHDOG_ERROR);
-}
-
-if ( !$ex->isNoEmail() ){
-if ( $ex->isRejectMessage() ) {
-$msg = $q->item_url( $msg_orig );
-}
-// TODO: else protect PII in some other way
-wmf_common_failmail( 'queue2civicrm', $ex, $msg );
-}
-
-if ($ex->isFatal()) {
-$error = "Halting Process.";
-watchdog('queue2civicrm', $error, NULL, WATCHDOG_ERROR);
-
-throw $ex;
-}
-}
-catch (Exception $ex) {
-$error = 'UNHANDLED ERROR. Halting Process. exception: ' . 
$ex->getMessage() . "\nStack Trace: " . print_r( $ex->getTrace(), true);
-watchdog('queue2civicrm', $error, NULL, WATCHDOG_ERROR);
-wmf_common_failmail( 'queue2civicrm', $error, $msg );
-
-throw $ex;
-}
 }
 
 /**
diff --git a/sites/all/modules/queue2civicrm/recurring/recurring.module 
b/sites/all/modules/queue2civicrm/recurring/recurring.module
index 7c7376a..f16a38f 100644
--- a/sites/all/modules/queue2civicrm/recurring/recurring.module
+++ b/sites/all/modules/queue2civicrm/recurring/recurring.module
@@ -99,7 +99,7 @@
   $recurring_processed = queue2civicrm_stomp()->dequeue_loop(
   variable_get( 'recurring_subscription', '/queue/test_recurring' ),
   variable_get( 'recurring_batch', 0 ),
-  'recurring_process_msg'
+  'recurring_import'
   );
 
   if ($recurring_processed > 0) {
@@ -110,61 +110,6 @@
   }
   
   return $recurring_processed;
-}
-
-/**
- * Process one item from the queue.
- * 
- * This is verry similar to queue2civicrm_dequeue, but it is more clearly 
named ;)
- * and supports option dequeueing depending on return status of import 
function.
- * 
- * @see recurring_import for status code information 
- */
-function recurring_process_msg($msg) {
-  $msg_orig = $msg;
-  $q = queue2civicrm_stomp();
-  try {
-recurring_import($msg);
-$q->ack($msg_orig);
-  } catch ( RequeueError $ex ) {
-// We failed to process the message for some reason or another
-// So... we queue a new message (the original plus a time delay and count 
header)
-// and ACK the original
-$ret = $q->requeueWithDelay($msg_orig);
-
-if ($ret) {
-  $q->ack($msg_orig);
-} else {
-  throw new WmfException("STOMP_BAD_CONNECTION", "Failed to requeue a 
recurring message");
-}
-  } catch ( WmfException $ex ) {
-watchdog('recurring', 'something went wrong during import: ' . 
$ex->getMessage(), NULL, WATCHDOG_ERROR);
-
-if ($ex->isRejectMessage()) {
-  $error = "\nRemoving failed message from the queue: \n" . 
print_r($msg_orig, TRUE);
-  $q->reject($msg_orig, $ex);
-  watchdog('queue2civicrm', $error, NULL, WATCHDOG_ERROR);
-}
-
-if (!$ex->isNoEmail()) {
-  if ( $ex->isRejectMessage() ) {
-$msg = $q->item_url( $msg_orig );
-  

[MediaWiki-commits] [Gerrit] Make a schema upgrade more idempotent - change (wikimedia...crm)

2013-12-18 Thread Mwalker (Code Review)
Mwalker has submitted this change and it was merged.

Change subject: Make a schema upgrade more idempotent
..


Make a schema upgrade more idempotent

Change-Id: Ic378f5f7cb18b5b9764c77cf252af1921407ead3
---
M sites/all/modules/offline2civicrm/offline2civicrm.install
1 file changed, 20 insertions(+), 11 deletions(-)

Approvals:
  Mwalker: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/sites/all/modules/offline2civicrm/offline2civicrm.install 
b/sites/all/modules/offline2civicrm/offline2civicrm.install
index c0598d8..bd6f70c 100644
--- a/sites/all/modules/offline2civicrm/offline2civicrm.install
+++ b/sites/all/modules/offline2civicrm/offline2civicrm.install
@@ -67,18 +67,27 @@
 throw new Exception("Missing custom group 'Gift Information', " . 
$api->errorMsg());
 }
 
-$success = $api->CustomField->create(array(
+$api->CustomField->Get( array(
 'custom_group_id' => $custom_group->id,
 'name' => 'import_batch_number',
-'column_name' => 'import_batch_number',
-'label' => ts('Batch Number'),
-'data_type' => 'String',
-'html_type' => 'Text',
-'is_active' => 1,
-'is_searchable' => 1,
-'is_view' => 1,
-));
-if (!$success) {
-throw new Exception($api->errorMsg());
+'version' => 3,
+) );
+$result = $api->values();
+
+if ( empty($result) ) {
+$success = $api->CustomField->create(array(
+'custom_group_id' => $custom_group->id,
+'name' => 'import_batch_number',
+'column_name' => 'import_batch_number',
+'label' => ts('Batch Number'),
+'data_type' => 'String',
+'html_type' => 'Text',
+'is_active' => 1,
+'is_searchable' => 1,
+'is_view' => 1,
+));
+if (!$success) {
+throw new Exception($api->errorMsg());
+}
 }
 }

-- 
To view, visit https://gerrit.wikimedia.org/r/102336
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Ic378f5f7cb18b5b9764c77cf252af1921407ead3
Gerrit-PatchSet: 1
Gerrit-Project: wikimedia/fundraising/crm
Gerrit-Branch: master
Gerrit-Owner: Adamw 
Gerrit-Reviewer: Mwalker 
Gerrit-Reviewer: jenkins-bot

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Process each message in a DB transaction (controlled by glob... - change (wikimedia...crm)

2013-12-18 Thread Mwalker (Code Review)
Mwalker has submitted this change and it was merged.

Change subject: Process each message in a DB transaction (controlled by global 
setting)
..


Process each message in a DB transaction (controlled by global setting)

Change-Id: Id1b280cf11c1a10d301bd9a5e1392f0a8ec302f5
---
M sites/all/modules/wmf_common/Queue.php
1 file changed, 47 insertions(+), 8 deletions(-)

Approvals:
  Mwalker: Looks good to me, approved



diff --git a/sites/all/modules/wmf_common/Queue.php 
b/sites/all/modules/wmf_common/Queue.php
index ede476e..569b398 100644
--- a/sites/all/modules/wmf_common/Queue.php
+++ b/sites/all/modules/wmf_common/Queue.php
@@ -74,14 +74,10 @@
 watchdog( 'wmf_common', t('Feeding raw queue message to %callback 
: %msg', array( '%callback' => print_r($callback, TRUE), '%msg' => 
print_r($msg, TRUE) ) ), NULL, WATCHDOG_INFO );
 
 set_time_limit( 60 );
-try {
-$callback( $msg );
-$processed++;
-}
-catch ( Exception $ex ) {
-watchdog( 'wmf_common', "Aborting dequeue loop after 
successfully processing {$processed} messages.", NULL, WATCHDOG_INFO );
-throw $ex;
-}
+
+$this->transactionalCall( $callback, $msg );
+
+$processed++;
 }
 
 $con->unsubscribe( $queue );
@@ -116,6 +112,49 @@
 return $messages;
 }
 
+/**
+ * Call the message processing callback and perform common error handling
+ *
+ * TODO: move the remaining error handling in here
+ */
+protected function transactionalCall( $callback, $msg ) {
+// FIXME: this will not be configurable in the future,
+// we will want to use transactions all tha time.
+$transactional = variable_get( 'wmf_common_transactional', FALSE );
+
+if ( $transactional ) {
+watchdog( 'wmf_common', "Beginning DB transaction", NULL, 
WATCHDOG_INFO );
+$drupal_transaction = db_transaction( 'dequeue_default', array( 
'target' => 'default' ) );
+$ct_transaction = db_transaction( 'dequeue_donations', array( 
'target' => 'donations' ) );
+$crm_transaction = db_transaction( 'dequeue_civicrm', array( 
'target' => 'civicrm' ) );
+$native_civi_transaction = new CRM_Core_Transaction();
+}
+
+try {
+// Do the right thing
+$callback( $msg );
+}
+catch ( Exception $ex ) {
+watchdog( 'wmf_common', "Aborting DB transaction.", NULL, 
WATCHDOG_INFO );
+if ( $transactional ) {
+$native_civi_transaction->rollback();
+$crm_transaction->rollback();
+$ct_transaction->rollback();
+$drupal_transaction->rollback();
+}
+
+throw $ex;
+}
+
+if ( $transactional ) {
+watchdog( 'wmf_common', "Committing DB transaction", NULL, 
WATCHDOG_INFO );
+$native_civi_transaction->commit();
+unset( $crm_transaction );
+unset( $ct_transaction );
+unset( $drupal_transaction );
+}
+}
+
 function getByCorrelationId( $queue, $correlationId ) {
 $con = $this->getFreshConnection();
 $properties = array(

-- 
To view, visit https://gerrit.wikimedia.org/r/99743
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Id1b280cf11c1a10d301bd9a5e1392f0a8ec302f5
Gerrit-PatchSet: 6
Gerrit-Project: wikimedia/fundraising/crm
Gerrit-Branch: master
Gerrit-Owner: Adamw 
Gerrit-Reviewer: Adamw 
Gerrit-Reviewer: Katie Horn 
Gerrit-Reviewer: Mwalker 
Gerrit-Reviewer: jenkins-bot

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] (FR #917) Convert dangerous queries to strictly use the Civi... - change (wikimedia...crm)

2013-12-18 Thread Mwalker (Code Review)
Mwalker has submitted this change and it was merged.

Change subject: (FR #917) Convert dangerous queries to strictly use the Civi db 
connection
..


(FR #917) Convert dangerous queries to strictly use the Civi db connection

Change-Id: Ie4f2271ca42dd5fe81fd553dd29140e320e3ce04
---
M sites/all/modules/queue2civicrm/recurring/recurring.module
M sites/all/modules/queue2civicrm/refund/wmf_refund_qc.module
M sites/all/modules/queue2civicrm/unsubscribe/wmf_unsubscribe_qc.module
M sites/all/modules/wmf_common/wmf_civicrm/wmf_civicrm.module
4 files changed, 96 insertions(+), 94 deletions(-)

Approvals:
  Mwalker: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/sites/all/modules/queue2civicrm/recurring/recurring.module 
b/sites/all/modules/queue2civicrm/recurring/recurring.module
index 5b21732..7c7376a 100644
--- a/sites/all/modules/queue2civicrm/recurring/recurring.module
+++ b/sites/all/modules/queue2civicrm/recurring/recurring.module
@@ -509,18 +509,20 @@
 /**
  * Get recurring record in CiviCRM for the given subscriber id
  * @param int $subscr_id
- * @return object
+ * @return object|false
  */
 function recurring_get_recur_record( $subscr_id ) {
-  $query = "SELECT * FROM civicrm_contribution_recur WHERE trxn_id = :id";
+  $query = "SELECT * FROM civicrm_contribution_recur WHERE trxn_id = %1";
 
-  $dbs = wmf_civicrm_get_dbs();
-  $dbs->push( 'civicrm' );
-  $recur_record = db_query( $query, array( ':id' => $subscr_id ) )->fetch();
-  $dbs->pop();
-  
-  watchdog( 'recurring', 'Recurring record: %recur_record', array( 
'%recur_record' => print_r( $recur_record, true )), WATCHDOG_DEBUG );
-  return $recur_record;
+  $dao = CRM_Core_DAO::executeQuery( $query, array(
+1 => array( $subscr_id, 'String' ),
+  ) );
+
+  if ( !$dao->fetch() ) {
+return false;
+  }
+
+  return $dao;
 }
 
 /**
@@ -735,24 +737,26 @@
 return $msg[ 'custom' ];
   } elseif ( $msg[ 'txn_type' ] == 'subscr_payment' ) {
 $contribution_tracking_id = null;
-$contrib_ids = array(); // for holding related contribtion ids
-
-$dbs = wmf_civicrm_get_dbs();
-$dbs->push( 'civicrm' );
-// determine if we already have a contrib tracking id for related 
contribs, working backwards from recur record
-$query = "SELECT id FROM civicrm_contribution_recur WHERE trxn_id = :id";
-$recur_id = db_query( $query, array( ':id' => $msg[ 'subscr_id' ] ) 
)->fetchField();
 
-if ( $recur_id ) { // we potentially have related contributions
+// determine if we already have a contrib tracking id for related 
contribs, working backwards from recur record
+$recurring_record = recurring_get_recur_record( $msg['subscr_id'] );
+
+if ( $recurring_record ) { // we potentially have related contributions
+  $recur_id = $recurring_record->id;
   // find related contribution ids
-  $query = "SELECT id FROM civicrm_contribution WHERE 
contribution_recur_id = :id";
-  $result = db_query( $query, array( ':id' => $recur_id ) );
-  foreach ( $result as $row ) {
-array_push( $contrib_ids, $row->id );
+
+  $query = "SELECT id FROM civicrm_contribution WHERE 
contribution_recur_id = %1";
+  $dao = CRM_Core_DAO::executeQuery( $query, array(
+'1' => array( $recur_id, 'Integer' ),
+  ) );
+  $contrib_ids = array();
+  while ( $dao->fetch() ) {
+array_push( $contrib_ids, $dao->id );
   }
-  
+
   if ( count( $contrib_ids )) { // if we've got any related contributions
 // see if a record already exists
+$dbs = wmf_civicrm_get_dbs();
 $dbs->push( 'donations' );
 $id_list = implode( ",", $contrib_ids );
 $query = "SELECT id FROM {contribution_tracking} WHERE contribution_id 
IN ( {$id_list} )";
@@ -763,7 +767,6 @@
   }
 }
 
-$dbs->push( 'default' );
 // if we still don't have a contribution tracking id, we're gonna have to 
make one
 if ( !$contribution_tracking_id ) {
   // if we already have previous contributions, we should create a contrib 
id connected with the first contrib
diff --git a/sites/all/modules/queue2civicrm/refund/wmf_refund_qc.module 
b/sites/all/modules/queue2civicrm/refund/wmf_refund_qc.module
index 04e0491..3805541 100644
--- a/sites/all/modules/queue2civicrm/refund/wmf_refund_qc.module
+++ b/sites/all/modules/queue2civicrm/refund/wmf_refund_qc.module
@@ -73,6 +73,8 @@
  * @ref drush_refund_queue_consume
  */
 function refund_batch_process() {
+  civicrm_api_classapi(); # hah
+
   watchdog('refund', 'Executing: refund_batch_process');
 
   $q = queue2civicrm_stomp();
diff --git 
a/sites/all/modules/queue2civicrm/unsubscribe/wmf_unsubscribe_qc.module 
b/sites/all/modules/queue2civicrm/unsubscribe/wmf_unsubscribe_qc.module
index bae0217..fc6e3c5 100644
--- a/sites/all/modules/queue2civicrm/unsubscribe/wmf_unsubscribe_qc.module
+++ b/sites/all/modules/queue2civicrm/unsubscribe/wmf_unsubscribe_

[MediaWiki-commits] [Gerrit] (FR #1249) Make schema match production - change (wikimedia...crm)

2013-12-18 Thread Mwalker (Code Review)
Mwalker has submitted this change and it was merged.

Change subject: (FR #1249) Make schema match production
..


(FR #1249) Make schema match production

Change-Id: Ia2ad7edc745ae050b2b47a15984e328c3f22b28f
---
M sites/all/modules/contribution_tracking/contribution_tracking.install
1 file changed, 2 insertions(+), 2 deletions(-)

Approvals:
  Mwalker: Looks good to me, approved
  jenkins-bot: Verified



diff --git 
a/sites/all/modules/contribution_tracking/contribution_tracking.install 
b/sites/all/modules/contribution_tracking/contribution_tracking.install
index 2bc3388..3210bd7 100644
--- a/sites/all/modules/contribution_tracking/contribution_tracking.install
+++ b/sites/all/modules/contribution_tracking/contribution_tracking.install
@@ -30,7 +30,7 @@
 'type' => 'int',
 'size' => 'tiny',
 'unsigned' => true,
-'not null' => true
+'not null' => false
   ),
   'utm_source' => array(
 'type' => 'varchar',
@@ -56,7 +56,7 @@
 'type' => 'int',
 'size' => 'tiny',
'unsigned' => true,
-'not null' => true,
+'not null' => false,
   ),
   'language' => array(
 'type' => 'varchar',

-- 
To view, visit https://gerrit.wikimedia.org/r/102356
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Ia2ad7edc745ae050b2b47a15984e328c3f22b28f
Gerrit-PatchSet: 1
Gerrit-Project: wikimedia/fundraising/crm
Gerrit-Branch: master
Gerrit-Owner: Adamw 
Gerrit-Reviewer: Mwalker 
Gerrit-Reviewer: jenkins-bot

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] (FR #1093) Support queue item download - change (wikimedia...crm)

2013-12-18 Thread Mwalker (Code Review)
Mwalker has submitted this change and it was merged.

Change subject: (FR #1093) Support queue item download
..


(FR #1093) Support queue item download

Sort of cheesy to assume JSON encoding--but--it's true for all of our
messages, so moving right along...

Change-Id: I05a8a7416d2f703d23edf735628149a45447bd57
---
M sites/all/modules/wmf_common/wmf_common.module
1 file changed, 26 insertions(+), 6 deletions(-)

Approvals:
  Mwalker: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/sites/all/modules/wmf_common/wmf_common.module 
b/sites/all/modules/wmf_common/wmf_common.module
index 6b4b8c6..1a62060 100644
--- a/sites/all/modules/wmf_common/wmf_common.module
+++ b/sites/all/modules/wmf_common/wmf_common.module
@@ -80,6 +80,11 @@
 'page callback' => 'drupal_get_form',
 'page arguments' => array( 'wmf_common_queue_item_form', 1, 2 ),
   );
+  $items['queue/%/%/download'] = array(
+'access arguments' => array( 'manipulate queues' ),
+'page callback' => 'wmf_common_queue_item_download',
+'page arguments' => array( 1, 2 ),
+  );
 
   return $items;
 }
@@ -285,11 +290,10 @@
   '#type' => 'submit',
   '#value' => t( 'Resend' ),
 );
-  # TODO
-  #  $form['download'] = array(
-  #'#type' => 'submit',
-  #'#value' => t( 'Download' ),
-  #  );
+$form['download'] = array(
+  '#type' => 'submit',
+  '#value' => t( 'Download' ),
+);
 $form['delete'] = array(
   '#type' => 'submit',
   '#value' => t( 'Delete' ),
@@ -330,7 +334,23 @@
 $msg = $q->getByAnyId( "{$queue}-damaged", $correlationId );
 $q->ack( $msg );
 drupal_set_message( t( 'Successfully removed message %id.', array( '%id' 
=> $correlationId ) ) );
-$form_state['redirect'] = "queue/{$queue}-damaged/";
+$form_state['redirect'] = "queue/damaged";
+break;
+  case $form_state['values']['download']:
+$form_state['redirect'] = 
"queue/{$queue}-damaged/{$correlationId}/download";
 break;
   }
 }
+
+function wmf_common_queue_item_download( $queue, $correlationId ) {
+  $queue = preg_replace( '/[^-_a-z]/', '', $queue );
+  $correlationId = preg_replace( '/[^-a-zA-Z0-9:]/', '', $correlationId );
+
+  $q = queue2civicrm_stomp();
+  $msg = $q->getByAnyId( $queue, $correlationId );
+
+  $name = mime_header_encode( "{$correlationId}.json" );
+  drupal_add_http_header( 'Content-Type', 'application/json' );
+  drupal_add_http_header( 'Content-Disposition', "attachment; 
filename=\"{$name}\"" );
+  echo( $msg->body );
+}

-- 
To view, visit https://gerrit.wikimedia.org/r/100419
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I05a8a7416d2f703d23edf735628149a45447bd57
Gerrit-PatchSet: 2
Gerrit-Project: wikimedia/fundraising/crm
Gerrit-Branch: master
Gerrit-Owner: Adamw 
Gerrit-Reviewer: Mwalker 
Gerrit-Reviewer: jenkins-bot

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Bugfixes and error handling for commit dcbfae0f15689b2e48cc8... - change (wikimedia...crm)

2013-12-17 Thread Mwalker (Code Review)
Mwalker has submitted this change and it was merged.

Change subject: Bugfixes and error handling for commit 
dcbfae0f15689b2e48cc811af6db04ce5a3ca10f
..


Bugfixes and error handling for commit dcbfae0f15689b2e48cc811af6db04ce5a3ca10f

Change-Id: Ic5901b2876de1bd58ddcd29aeaf393bdfa38f76e
---
M sites/all/modules/queue2civicrm/recurring/recurring.module
M sites/all/modules/wmf_common/wmf_civicrm/recurring.inc
2 files changed, 20 insertions(+), 18 deletions(-)

Approvals:
  Mwalker: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/sites/all/modules/queue2civicrm/recurring/recurring.module 
b/sites/all/modules/queue2civicrm/recurring/recurring.module
index 7a26c35..5b21732 100644
--- a/sites/all/modules/queue2civicrm/recurring/recurring.module
+++ b/sites/all/modules/queue2civicrm/recurring/recurring.module
@@ -213,10 +213,10 @@
   
   // route the message to the appropriate handler depending on transaction type
   if ( isset( $msg[ 'txn_type' ] ) && in_array( $msg[ 'txn_type' ], 
$txn_subscr_payment ) ) {
-if ( wmf_civicrm_get_contributions_from_gateway_id( $msg['gateway'], 
$msg['gateway_txn_id'] ) !== false ){
+if ( wmf_civicrm_get_contributions_from_gateway_id( $msg['gateway'], 
$msg['gateway_txn_id'] ) ) {
   watchdog( 'recurring', 'Duplicate contribution: ' . print_r( $msg, true 
) );
   throw new WmfException( 'DUPLICATE_CONTRIBUTION', "Contribution already 
exists. Ignoring message." );
-}  
+}
 recurring_import_subscr_payment( $msg );
   } elseif ( isset( $msg[ 'txn_type' ] ) && in_array( $msg[ 'txn_type' ], 
$txn_subscr_acct ) ) {
 recurring_import_subscr_acct( $msg );
@@ -380,7 +380,7 @@
   );
 
   if ( !$api->ContributionRecur->Create( $insert_params ) ) {
-throw new WmfException( 'IMPORT_CONTRIB', 'Failed inserting subscriber 
signup for subscriber id: ' . print_r( $msg['subscr_id'], true ));
+throw new WmfException( 'IMPORT_CONTRIB', 'Failed inserting subscriber 
signup for subscriber id: ' . print_r( $msg['subscr_id'], true ) . ': ' . 
$api->errorMsg() );
   } else {
 watchdog( 'recurring', 'Succesfully inserted subscription signup for 
subscriber id: %subscr_id ', array( '%subscr_id' => print_r( $msg[ 'subscr_id' 
], true )), WATCHDOG_NOTICE );
   }
@@ -399,7 +399,7 @@
   
   $api = civicrm_api_classapi();
   $update_params = array(
-'trxn_id' => $msg['subscr_id'],
+'id' => $recur_record->id,
 
 'cancel_date' => wmf_common_date_unix_to_civicrm( $msg[ 'cancel_date' ] ), 
 'end_date' => wmf_common_date_unix_to_civicrm( $msg[ 'cancel_date' ] ), 
@@ -407,7 +407,7 @@
 'version' => 3,
   );
   if ( !$api->ContributionRecur->Create( $update_params ) ) {
-throw new WmfException( 'INVALID_RECURRING', 'There was a problem updating 
the subscription for cancelation for subscriber id: ' . print_r( $msg[ 
'subscr_id' ], true ));
+throw new WmfException( 'INVALID_RECURRING', 'There was a problem updating 
the subscription for cancelation for subscriber id: ' . print_r( $msg[ 
'subscr_id' ], true ) . ": " . $api->errorMsg() );
   } else {
 watchdog( 'recurring', 'Succesfuly cancelled subscription for subscriber 
id %subscr_id', array( '%subscr_id' => print_r( $msg[ 'subscr_id' ], true )), 
WATCHDOG_NOTICE );
   }
@@ -426,14 +426,13 @@
 
   $api = civicrm_api_classapi();
   $update_params = array(
-'trxn_id' => $msg['subscr_id'],
-
+'id' => $recur_record->id,
 'end_date' => wmf_common_date_unix_to_civicrm( time() ),
 
 'version' => 3,
   );
   if ( !$api->ContributionRecur->Create( $update_params ) ) {
-throw new WmfException( 'INVALID_RECURRING', 'There was a problem updating 
the subscription for EOT for subscription id: %subscr_id' . print_r( $msg[ 
'subscr_id' ], true ));
+throw new WmfException( 'INVALID_RECURRING', 'There was a problem updating 
the subscription for EOT for subscription id: %subscr_id' . print_r( $msg[ 
'subscr_id' ], true ) . ": " . $api->errorMsg() );
   } else {
 watchdog( 'recurring', 'Succesfuly ended subscription for subscriber id: 
%subscr_id ', array( '%subscr_id' => print_r( $msg[ 'subscr_id' ], true )), 
WATCHDOG_NOTICE );
   }
@@ -455,7 +454,7 @@
 
   $api = civicrm_api_classapi();
   $update_params = array(
-'trxn_id' => $msg['subscr_id'],
+'id' => $recur_record->id,
 
 'amount' => $msg[ 'original_gross' ],
 'frequency_unit' => $msg[ 'frequency_unit' ],
@@ -467,9 +466,9 @@
 'version' => 3,
   );
   if ( !$api->ContributionRecur->Create( $update_params ) ) {
-throw new WmfException( 'INVALID_RECURRING', 'There was a problem updating 
the subscription record for subscription id ' . print_r( $msg['subscr_id'], 
true ) );
+throw new WmfException( 'INVALID_RECURRING', 'There was a problem updating 
the subscription record for subscription id ' . print_r( $msg['subscr_id'], 
true ) . ": " . $api->errorMsg() );
   }
-   
+
   // update the contact
   $contact = wmf_ci

[MediaWiki-commits] [Gerrit] Collection Renderer (Now a module!) - change (operations/puppet)

2013-12-17 Thread Mwalker (Code Review)
Mwalker has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/102352


Change subject: Collection Renderer (Now a module!)
..

Collection Renderer (Now a module!)

Change-Id: I3c95af9a64a7d5830687cf3657c9afa6635a680f
---
M manifests/role/deployment.pp
D manifests/role/ocg.pp
A manifests/role/ocg_collection.pp
A modules/ocg_collection/README
A modules/ocg_collection/files/logrotate
R modules/ocg_collection/files/ocg-collection.conf
A modules/ocg_collection/manifests/decommission.pp
A modules/ocg_collection/manifests/init.pp
A modules/ocg_collection/manifests/service.pp
A modules/ocg_collection/templates/mw-collection-ocg.js.erb
10 files changed, 230 insertions(+), 107 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/operations/puppet 
refs/changes/52/102352/1

diff --git a/manifests/role/deployment.pp b/manifests/role/deployment.pp
index a395341..c1d3ad0 100644
--- a/manifests/role/deployment.pp
+++ b/manifests/role/deployment.pp
@@ -91,6 +91,13 @@
 'grain'=> 'eventlogging',
 'upstream' => 
'https://gerrit.wikimedia.org/r/mediawiki/extensions/EventLogging',
 },
+'ocg/collection' => {
+'grain' => 'ocg_collection',
+'upstream'  => 
'https://gerrit.wikimedia.org/r/mediawiki/services/ocg-collection/deploy',
+'checkout_module_calls' => {
+'service.restart' => ['ocg-collection'] 
+},
+},
 'fluoride/fluoride'  => {
 'grain'=> 'fluoride',
 'upstream' => 
'https://gerrit.wikimedia.org/r/mediawiki/tools/fluoride',
@@ -110,20 +117,6 @@
 'analytics/kraken'   => {
 'grain'=> 'analytics-kraken',
 'upstream' => 'https://gerrit.wikimedia.org/r/p/analytics/kraken',
-},
-'ocg/collection' => {
-'grain' => 'ocg-collection',
-'upstream'  => 
'https://gerrit.wikimedia.org/r/mediawiki/extensions/Collection/OfflineContentGenerator',
-'checkout_module_calls' => {
-'service.restart' => ['ocg-collection'] 
-},
-},
-'ocg/config' => {
-'grain' => 'ocg',
-'upstream'  => 
'https://gerrit.wikimedia.org/r/operations/ocg-config',
-'checkout_module_calls' => {
-'service.restart' => ['ocg-collection'] 
-},
 },
 'scholarships/scholarships'  => {
 'grain'=> 'scholarships',
diff --git a/manifests/role/ocg.pp b/manifests/role/ocg.pp
deleted file mode 100644
index 3d7459d..000
--- a/manifests/role/ocg.pp
+++ /dev/null
@@ -1,91 +0,0 @@
-# vim: set ts=4 et sw=4:
-# role/ocg.pp
-# offline content generator
-
-# Virtual resources for the monitoring server
-@monitor_group { "ocg_eqiad": description => "offline content generator eqiad" 
}
-
-class role::ocg {
-system::role { "ocg": description => "offline content generator base" }
-
-deployment::target { 'ocg': }
-
-include standard
-
-package {
-[ 'nodejs' ]:
-ensure => latest;
-}
-
-file { '/etc/ocg':
-ensure  => link,
-target  => '/srv/deployment/ocg/config/'
-}
-}
-
-class role::ocg::test {
-system::role { "ocg-test": description => "offline content generator 
testing" }
-
-class { 'redis':
-maxmemory => '500Mb',
-password  => $passwords::redis::ocg_test_password,
-}
-}
-
-class role::ocg::collection {
-system::role { "ocg-collection": description => "offline concent generator 
for Collection extension" }
-
-deployment::target { 'ocg-collection': }
-
-package { [
-'imagemagick',
-'inkscape',
-'latex-xcolor',
-'lmodern',
-'texlive-fonts-recommended',
-'texlive-latex-recommended',
-'texlive-xetex',
-'unzip',
-'zip',
-]: ensure => latest;
-}
-
-file { '/var/lib/ocg':
-ensure => directory,
-owner  => ocg,
-group  => wikidev,
-mode   => '2775',
-}
-
-file { '/var/lib/ocg/collection':
-ensure => link,
-target => '/srv/deployment/ocg/collection',
-}
-
-file { '/etc/init/ocg-collection.conf':
-ensure => present,
-owner  => root,
-group  => root,
-mode   => '0555',
-source => 'puppet:///files/misc/ocg-collection.conf',
-}
-
-generic::systemuser { 'ocg':
-name  => 'ocg',
-default_group => 'ocg',
-home  => '/var/lib/ocg',
-}
-
-service { 'ocg-collection':
-ensure => running,
-hasstatus  => false,
-hasrestart => false,
-enable => true,
-require=> File['/etc/init/ocg-collection.conf'],
-}
-
-monitor_service { 'ocg-collection':
-description   => 'Offline Content Generation - Collection',
-  

[MediaWiki-commits] [Gerrit] (FR #751) paypal nightly auditing - change (wikimedia...tools)

2013-12-17 Thread Mwalker (Code Review)
Mwalker has submitted this change and it was merged.

Change subject: (FR #751) paypal nightly auditing
..


(FR #751) paypal nightly auditing

Change-Id: I3ecb4aff2de708f4288312e7caaf4a4403fc8230
---
A audit/paypal/SarFile.py
A audit/paypal/TrrFile.py
A audit/paypal/__init__.py
A audit/paypal/config.yaml.example
A audit/paypal/download_nightly
M audit/paypal/history.py
A audit/paypal/parse_nightly
A audit/paypal/ppreport.py
A audit/paypal/unicode_csv_reader.py
A queue/__init__.py
A queue/stomp_wrap.py
A sftp/__init__.py
A sftp/client.py
13 files changed, 438 insertions(+), 37 deletions(-)

Approvals:
  Mwalker: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/audit/paypal/SarFile.py b/audit/paypal/SarFile.py
new file mode 100644
index 000..27c3b3a
--- /dev/null
+++ b/audit/paypal/SarFile.py
@@ -0,0 +1,63 @@
+'''Parser for Paypal Subscription Agreement Report files
+
+See 
https://www.paypalobjects.com/webstatic/en_US/developer/docs/pdf/PP_LRD_SubscribeAgmntRprt.pdf
+'''
+
+from process.logging import Logger as log
+from queue.stomp_wrap import Stomp
+import ppreport
+
+class SarFile(object):
+VERSION=2
+stomp = None
+
+@staticmethod
+def handle(path):
+obj = SarFile(path)
+obj.parse()
+
+def __init__(self, path):
+self.path = path
+
+def parse(self):
+ppreport.read(self.path, self.VERSION, self.parse_line)
+
+def parse_line(self, row):
+names = row['Subscription Payer Name'].split(' ')
+
+out = {
+'subscr_id': row['Subscription ID'],
+'mc_currency': row['Subscription Currency'],
+'mc_amount3': float(row['Period 3 Amount']) / 100,
+'period3': row['Subscription Period 3'],
+'subscr_date': row['Subscription Creation Date'],
+'payer_email': row['Subscription Payer email address'],
+'first_name': names[0],
+'last_name': " ".join(names[1:]),
+'address_street': row['Shipping Address Line1'],
+'address_city': row['Shipping Address City'],
+'address_zip': row['Shipping Address Zip'],
+'address_state': row['Shipping Address State'],
+'address_country_code': row['Shipping Address Country'],
+'gateway': 'paypal',
+}
+
+if row['Subscription Period 3'] != "1 M":
+raise RuntimeError("Unknown subscription period 
{period}".format(period=row['Subscription Period 3']))
+
+if row['Subscription Action Type'] == 'S':
+out['txn_type'] = 'subscr_signup'
+elif row['Subscription Action Type'] == 'S0100':
+log.info("Ignoring subscription modification")
+elif row['Subscription Action Type'] == 'S0200':
+out['txn_type'] = 'subscr_cancel'
+elif row['Subscription Action Type'] == 'S0300':
+out['txn_type'] = 'subscr_eot'
+
+self.send(out)
+
+def send(self, msg):
+if not self.stomp:
+self.stomp = Stomp()
+
+self.stomp.send(msg, 'recurring')
diff --git a/audit/paypal/TrrFile.py b/audit/paypal/TrrFile.py
new file mode 100644
index 000..1352df6
--- /dev/null
+++ b/audit/paypal/TrrFile.py
@@ -0,0 +1,129 @@
+'''Parser for Transaction Detail Report files
+
+See 
https://www.paypalobjects.com/webstatic/en_US/developer/docs/pdf/PP_LRD_Gen_TransactionDetailReport.pdf
+'''
+
+from process.logging import Logger as log
+from queue.stomp_wrap import Stomp
+import ppreport
+
+class TrrFile(object):
+VERSION=4
+stomp = None
+
+@staticmethod
+def handle(path):
+obj = TrrFile(path)
+obj.parse()
+
+def __init__(self, path):
+self.path = path
+
+def parse(self):
+ppreport.read(self.path, self.VERSION, self.parse_line)
+
+def parse_line(self, row):
+if row['Billing Address Line1']:
+addr_prefix = 'Billing Address '
+else:
+addr_prefix = 'Shipping Address '
+
+out = {
+'gateway_txn_id': row['Transaction ID'],
+'date': row['Transaction Initiation Date'],
+'settled_date': row['Transaction Completion Date'],
+'gross': float(row['Gross Transaction Amount']) / 100.0,
+'currency': row['Gross Transaction Currency'],
+'gateway_status': row['Transactional Status'],
+'gateway': 'paypal',
+'note': row['Transaction Note'],
+'email': row['Payer\'s Account ID'],
+
+'street_address': row[addr_prefix + 'Line1'],
+'supplemental_address_1': row[addr_prefix + 'Line2'],
+'city': row[addr_prefix + 'City'],
+'state_province': row[addr_prefix + 'State'],
+'postal_code': row[addr_prefix + 'Zip'],
+'country': row[addr_prefix + 'Country'],
+}
+
+if row['Fee Amount']:
+out['fee'] = float(row['

[MediaWiki-commits] [Gerrit] Really fixed this time -- also it now doesn't repeat as much... - change (wikimedia...tools)

2013-12-13 Thread Mwalker (Code Review)
Mwalker has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/101474


Change subject: Really fixed this time -- also it now doesn't repeat as much 
work
..

Really fixed this time -- also it now doesn't repeat as much work

Change-Id: Icdb36999324338d3483720e027f50d42b260b0fc
---
M silverpop_export.sql
1 file changed, 42 insertions(+), 30 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/wikimedia/fundraising/tools 
refs/changes/74/101474/1

diff --git a/silverpop_export.sql b/silverpop_export.sql
index 0a43cdc..60a6226 100755
--- a/silverpop_export.sql
+++ b/silverpop_export.sql
@@ -1,13 +1,12 @@
 SET autocommit = 1;
 
-DROP TABLE IF EXISTS silverpop_export;
-DROP TABLE IF EXISTS silverpop_unsubscribe_export;
 DROP TABLE IF EXISTS silverpop_export_dedupe_email;
+DROP TABLE IF EXISTS silverpop_export_dedupe_contact;
 DROP TABLE IF EXISTS silverpop_export_stat;
 
-CREATE TABLE silverpop_export(
-  id int unsigned PRIMARY KEY AUTO_INCREMENT,
-  
+CREATE TABLE IF NOT EXISTS silverpop_export(
+  id int unsigned PRIMARY KEY,  -- This is actually civicrm_email.id
+
   -- Step 1 exported fields
   contact_id int unsigned,
   first_name varchar(128),
@@ -15,7 +14,7 @@
   preferred_language varchar(5),
   email varchar(255),
   opted_out tinyint(1),
-  
+
   -- Step 5 lifetime statistics
   has_recurred_donation tinyint(1),
   highest_usd_amount decimal(20,2),
@@ -29,46 +28,54 @@
   is_2011_donor tinyint(1),
   is_2012_donor tinyint(1),
   is_2013_donor tinyint(1),
-  
+
   -- Step 6 latest contribution
   last_ctid int unsigned,
   latest_currency varchar(3),
   latest_native_amount decimal(20,2),
   latest_usd_amount decimal(20,2),
   latest_donation datetime,
-  
+
   -- Step 7 Address information
   city varchar(128),
   country varchar(2),
   postal_code varchar(128),
-  
+
   -- Step 8 Geonames lookup of timezone
   tzoffset float,
-  
-  -- Step 10 Unsubcribe hash generation
-  unsub_hash varchar(255)
-);
-CREATE INDEX spex_contact_id ON silverpop_export(contact_id);
-CREATE INDEX spex_email ON silverpop_export(email);
-CREATE INDEX spex_city ON silverpop_export(city);
-CREATE INDEX spex_country ON silverpop_export(country);
-CREATE INDEX spex_postal ON silverpop_export(postal_code);
-CREATE INDEX spex_opted_out ON silverpop_export(opted_out);
 
--- STEP 1: Populate the temporary table with all contacts that have an
--- email address
+  -- Step 10 Unsubcribe hash generation
+  unsub_hash varchar(255),
+
+  INDEX spex_contact_id (contact_id),
+  INDEX spex_email (email),
+  INDEX spex_city (city),
+  INDEX spex_country (country),
+  INDEX spex_postal (postal_code),
+  INDEX spex_opted_out (opted_out)
+);
+
+-- STEP 1: Populate, or append to, the storage table all contacts that
+-- have an email address. ID is civicrm_email.id which allows us to
+-- retain work we've already done across runs.
 SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
 START TRANSACTION;
 INSERT INTO silverpop_export
-  (contact_id, email, first_name, last_name, preferred_language, opted_out)
+  (id, contact_id, email, first_name, last_name, preferred_language, opted_out)
   SELECT
-e.contact_id, e.email, c.first_name, c.last_name,
+e.id, e.contact_id, e.email, c.first_name, c.last_name,
 IF(SUBSTRING(c.preferred_language, 1, 1) = '_', 'en', 
SUBSTRING(c.preferred_language, 1, 2)),
 (c.is_deleted OR c.is_opt_out OR c.do_not_mail)
-  FROM civicrm.civicrm_email e, civicrm.civicrm_contact c
+  FROM civicrm.civicrm_email e
+  LEFT JOIN civicrm.civicrm_contact c ON e.contact_id = c.id
   WHERE
-e.email IS NOT NULL AND e.email != '' AND
-e.contact_id = c.id;
+e.email IS NOT NULL AND e.email != ''
+  ON DUPLICATE KEY UPDATE
+email = e.email,
+first_name = c.first_name,
+last_name = c.last_name,
+preferred_language = IF(SUBSTRING(c.preferred_language, 1, 1) = '_', 'en', 
SUBSTRING(c.preferred_language, 1, 2)),
+opted_out = (c.is_deleted OR c.is_opt_out OR c.do_not_mail);
 COMMIT;
 SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;
 
@@ -183,7 +190,7 @@
 ex.is_2013_donor = IF(exs.cnt_2013 > 0, 1, 0)
   WHERE
 ex.id = exs.exid;
-  
+
 -- STEP 6: Populate information about the most recent contribution
 SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
 START TRANSACTION;
@@ -207,7 +214,11 @@
 ex.city = addr.city,
 ex.country = ctry.iso_code,
 ex.postal_code = addr.postal_code
-  WHERE ex.contact_id = addr.contact_id AND addr.country_id = ctry.id AND 
ex.opted_out = 0;
+  WHERE
+ex.tzoffset IS NULL AND
+ex.contact_id = addr.contact_id AND
+addr.country_id = ctry.id AND
+ex.opted_out = 0;
 COMMIT;
 SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;
 
@@ -217,6 +228,7 @@
   SET ex.tzoffset = tz.offset
   WHERE
 ex.opted_out = 0 AND
+ex.tzoffset is NULL AND
 ex.postal_code IS NOT NULL AND
 ex.country IN ('FR', 'US', 'RU', 'AU', 'GB', 'CA', 'NZ', 'BR', 'ID', 'MX', 
'

[MediaWiki-commits] [Gerrit] I think I fixed the unsubscribe bugs... - change (wikimedia...tools)

2013-12-13 Thread Mwalker (Code Review)
Mwalker has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/101455


Change subject: I think I fixed the unsubscribe bugs...
..

I think I fixed the unsubscribe bugs...

Change-Id: I14f3ca940f3fd7864d82765c08c97f2e21df9105
---
M silverpop_export.sql
1 file changed, 33 insertions(+), 19 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/wikimedia/fundraising/tools 
refs/changes/55/101455/1

diff --git a/silverpop_export.sql b/silverpop_export.sql
index c4952a4..0a43cdc 100755
--- a/silverpop_export.sql
+++ b/silverpop_export.sql
@@ -1,7 +1,10 @@
-SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
+SET autocommit = 1;
 
 DROP TABLE IF EXISTS silverpop_export;
 DROP TABLE IF EXISTS silverpop_unsubscribe_export;
+DROP TABLE IF EXISTS silverpop_export_dedupe_email;
+DROP TABLE IF EXISTS silverpop_export_stat;
+
 CREATE TABLE silverpop_export(
   id int unsigned PRIMARY KEY AUTO_INCREMENT,
   
@@ -54,16 +57,20 @@
 
 -- STEP 1: Populate the temporary table with all contacts that have an
 -- email address
+SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
+START TRANSACTION;
 INSERT INTO silverpop_export
   (contact_id, email, first_name, last_name, preferred_language, opted_out)
   SELECT
 e.contact_id, e.email, c.first_name, c.last_name,
 IF(SUBSTRING(c.preferred_language, 1, 1) = '_', 'en', 
SUBSTRING(c.preferred_language, 1, 2)),
-c.is_deleted OR c.is_opt_out
+(c.is_deleted OR c.is_opt_out OR c.do_not_mail)
   FROM civicrm.civicrm_email e, civicrm.civicrm_contact c
   WHERE
 e.email IS NOT NULL AND e.email != '' AND
 e.contact_id = c.id;
+COMMIT;
+SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;
 
 -- STEP 2: Deduplicate rows that have the same email address, we will
 -- have to merge in more data later, but this is >500k rows we're
@@ -73,10 +80,11 @@
   (id INT PRIMARY KEY AUTO_INCREMENT, email varchar(255), maxid int, opted_out 
tinyint(1));
 
 INSERT INTO silverpop_export_dedupe_email (email, maxid, opted_out)
-   SELECT email, max(id) maxid, max(opted_out) opted_out FROM silverpop_export
- FORCE INDEX (spex_email)
- GROUP BY email
- HAVING count(*) > 1;
+   SELECT email, max(id) maxid, max(opted_out) opted_out
+ FROM silverpop_export
+   FORCE INDEX (spex_email)
+   GROUP BY email
+   HAVING count(*) > 1;
 
 DELETE silverpop_export FROM silverpop_export, silverpop_export_dedupe_email
   WHERE
@@ -86,9 +94,7 @@
 UPDATE silverpop_export ex, silverpop_export_dedupe_email de
   SET ex.opted_out = 1
   WHERE
-de.opted_out = 1 AND de.maxid = ex.contact_id;
-
-DROP TABLE silverpop_export_dedupe_email;
+de.opted_out = 1 AND de.maxid = ex.id;
 
 -- STEP 3: Deduplicate rows that have the same contact ID because they'll
 -- generate the same result (> 50k rows)
@@ -110,14 +116,11 @@
 UPDATE silverpop_export ex, silverpop_export_dedupe_contact dc
   SET ex.opted_out = 1
   WHERE
-dc.opted_out = 1 AND dc.maxid = ex.contact_id;
-
-DROP TABLE silverpop_export_dedupe_contact;
+dc.opted_out = 1 AND dc.maxid = ex.id;
 
 -- STEP 4 Was updating opt outs; but I've merged that into steps 2 and 3
 
 -- STEP 5: Create an aggregate table from a full contribution table scan
-DROP TABLE IF EXISTS silverpop_export_stat;
 CREATE TABLE silverpop_export_stat (
   id INT PRIMARY KEY AUTO_INCREMENT,
   email varchar(255),
@@ -139,6 +142,8 @@
   cnt_2013 tinyint
 );
 
+SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
+START TRANSACTION;
 INSERT INTO silverpop_export_stat
   (email, exid, max_ctid, max_amount_usd, total_usd, cnt_total, 
has_recurred_donation,
 cnt_2006, cnt_2007, cnt_2008, cnt_2009, cnt_2010, cnt_2011, cnt_2012, 
cnt_2013)
@@ -154,9 +159,12 @@
 SUM(IF('2011-07-1' < ct.receive_date AND ct.receive_date < '2012-07-01', 
1, 0)),
 SUM(IF('2012-07-1' < ct.receive_date AND ct.receive_date < '2013-07-01', 
1, 0)),
 SUM(IF('2013-07-1' < ct.receive_date AND ct.receive_date < '2014-07-01', 
1, 0))
-  FROM silverpop_export ex, civicrm.civicrm_email e, 
civicrm.civicrm_contribution ct
-  WHERE e.email=ex.email AND e.contact_id=ct.contact_id AND ex.opted_out = 0
+  FROM silverpop_export ex
+  LEFT OUTER JOIN civicrm.civicrm_email e ON e.contact_id=ex.contact_id AND 
e.email=ex.email
+  LEFT OUTER JOIN civicrm.civicrm_contribution ct ON 
ct.contact_id=ex.contact_id
   GROUP BY e.email;
+COMMIT;
+SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;
 
 UPDATE silverpop_export ex, silverpop_export_stat exs
   SET
@@ -175,10 +183,10 @@
 ex.is_2013_donor = IF(exs.cnt_2013 > 0, 1, 0)
   WHERE
 ex.id = exs.exid;
-
-DROP TABLE silverpop_export_stat;
   
 -- STEP 6: Populate information about the most recent contribution
+SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
+START TRANSACTION;
 UPDATE silverpop_export ex, civicrm.civicrm_contribution ct
 SET
   latest_currency = SUBSTRING(ct.source, 1, 3),
@@ -188,18 +196,24 @@
 WHERE
   ex.last_ctid = ct.id AND
   ex.

[MediaWiki-commits] [Gerrit] Adding already existing samarium files - change (wikimedia...DataDashboard)

2013-12-13 Thread Mwalker (Code Review)
Mwalker has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/101246


Change subject: Adding already existing samarium files
..

Adding already existing samarium files

Change-Id: Ia7b1dd29fd0e40b7400d47c3908396a2f7694195
---
A public_html/Case_study_2013-02-27.csv
A public_html/PPBannerCounts.csv
A public_html/donationdata-country-breakdown.csv
A public_html/donationdata-method-breakdown.csv
A public_html/index.html
A public_html/style.css
6 files changed, 93,381 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/wikimedia/fundraising/DataDashboard 
refs/changes/46/101246/1


-- 
To view, visit https://gerrit.wikimedia.org/r/101246
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ia7b1dd29fd0e40b7400d47c3908396a2f7694195
Gerrit-PatchSet: 1
Gerrit-Project: wikimedia/fundraising/DataDashboard
Gerrit-Branch: master
Gerrit-Owner: Mwalker 

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Filter out non online donations - change (wikimedia...tools)

2013-12-12 Thread Mwalker (Code Review)
Mwalker has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/101172


Change subject: Filter out non online donations
..

Filter out non online donations

Change-Id: Ib9aa05882447e21148fdccca1f7da5ac2f9cddd0
---
M FundraiserStatisticsGen/fundstatgen.py
1 file changed, 12 insertions(+), 10 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/wikimedia/fundraising/tools 
refs/changes/72/101172/1

diff --git a/FundraiserStatisticsGen/fundstatgen.py 
b/FundraiserStatisticsGen/fundstatgen.py
index 1638d84..3fd3e46 100644
--- a/FundraiserStatisticsGen/fundstatgen.py
+++ b/FundraiserStatisticsGen/fundstatgen.py
@@ -69,16 +69,18 @@
 cur = con.cursor()
 cur.execute("""
 SELECT
-  DATE_FORMAT(receive_date, "%Y-%m-%d") as receive_date,
-  SUM(IF(total_amount >= 0, total_amount, 0)) as credit,
-  SUM(IF(total_amount >= 0, 1, 0)) as credit_count,
-  SUM(IF(total_amount < 0, total_amount, 0)) as refund,
-  SUM(IF(total_amount < 0, 1, 0)) as refund_count,
-  AVG(IF(total_amount >= 0, total_amount, 0)) as `avg`,
-  MAX(total_amount)
-FROM civicrm_contribution
-WHERE receive_date >= '2006-01-01'
-GROUP BY DATE_FORMAT(receive_date, "%Y-%m-%d") ASC;
+  DATE_FORMAT(con.receive_date, "%Y-%m-%d") as receive_date,
+  SUM(IF(con.total_amount >= 0, total_amount, 0)) as credit,
+  SUM(IF(con.total_amount >= 0, 1, 0)) as credit_count,
+  SUM(IF(con.total_amount < 0, total_amount, 0)) as refund,
+  SUM(IF(con.total_amount < 0, 1, 0)) as refund_count,
+  AVG(IF(con.total_amount >= 0, total_amount, 0)) as `avg`,
+  MAX(con.total_amount)
+FROM civicrm_contribution con, drupal.contribution_tracking ct
+WHERE
+  con.id=ct.contribution_id AND
+  receive_date >= '2006-01-01'
+GROUP BY DATE_FORMAT(con.receive_date, "%Y-%m-%d") ASC;
 """)
 
 data = {}

-- 
To view, visit https://gerrit.wikimedia.org/r/101172
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ib9aa05882447e21148fdccca1f7da5ac2f9cddd0
Gerrit-PatchSet: 1
Gerrit-Project: wikimedia/fundraising/tools
Gerrit-Branch: master
Gerrit-Owner: Mwalker 

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Make YTD Values Actually YTD - change (wikimedia...tools)

2013-12-12 Thread Mwalker (Code Review)
Mwalker has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/101168


Change subject: Make YTD Values Actually YTD
..

Make YTD Values Actually YTD

And fix a logging bug.

Change-Id: Id50226aa138d8d0a563d8910a32b50b76a529e53
---
M FundraiserStatisticsGen/fundstatgen.py
1 file changed, 5 insertions(+), 2 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/wikimedia/fundraising/tools 
refs/changes/68/101168/1

diff --git a/FundraiserStatisticsGen/fundstatgen.py 
b/FundraiserStatisticsGen/fundstatgen.py
index 7c77a55..1638d84 100644
--- a/FundraiserStatisticsGen/fundstatgen.py
+++ b/FundraiserStatisticsGen/fundstatgen.py
@@ -38,6 +38,8 @@
 password = config.get('MySQL', 'password')
 database = config.get('MySQL', 'schema')
 
+logging.debug("Will connect to MySQL using: %s@%s:%d", username, hostname, 
port)
+
 logging.info("Running per year query...")
 stats = getPerYearData(hostname, port, username, password, database)
 
@@ -94,6 +96,7 @@
 max = float(max)
 
 if cyear != year:
+cyear = year
 ytdCreditSum = 0
 ytdRefundSum = 0
 ytdCreditSum += credit_sum
@@ -259,12 +262,12 @@
 # Log to console
 console = logging.StreamHandler()
 
console.setFormatter(logging.Formatter('%(levelname)s:%(filename)s:%(lineno)d 
-- %(message)s'))
-logging.addHandler(console)
+logging.getLogger().addHandler(console)
 
 # Log to syslog
 syslog = SysLogHandler(address='/dev/log')
 syslog.setFormatter(logging.Formatter('%(asctime)-15s 
%(levelname)s:%(filename)s:%(lineno)d -- %(message)s'))
-logging.addHandler(syslog)
+logging.getLogger().addHandler(syslog)
 
 # Run the program
 try:

-- 
To view, visit https://gerrit.wikimedia.org/r/101168
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Id50226aa138d8d0a563d8910a32b50b76a529e53
Gerrit-PatchSet: 1
Gerrit-Project: wikimedia/fundraising/tools
Gerrit-Branch: master
Gerrit-Owner: Mwalker 

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Updating Collection to deploy branch - change (mediawiki/core)

2013-12-12 Thread Mwalker (Code Review)
Mwalker has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/101145


Change subject: Updating Collection to deploy branch
..

Updating Collection to deploy branch

Change-Id: Id5aaecec8d9517e55ae5ad8c0c690cb544fb9bb7
---
M extensions/Collection
1 file changed, 0 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core 
refs/changes/45/101145/1

diff --git a/extensions/Collection b/extensions/Collection
index 39c731c..488d8da 16
--- a/extensions/Collection
+++ b/extensions/Collection
-Subproject commit 39c731cc596894e3c04b648afadb3d9a04d6a848
+Subproject commit 488d8daad500f4d9e9b400b6568ba170b54b0a70

-- 
To view, visit https://gerrit.wikimedia.org/r/101145
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Id5aaecec8d9517e55ae5ad8c0c690cb544fb9bb7
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: wmf/1.23wmf7
Gerrit-Owner: Mwalker 

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Switching Collection to deploy branch - change (mediawiki/core)

2013-12-12 Thread Mwalker (Code Review)
Mwalker has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/101143


Change subject: Switching Collection to deploy branch
..

Switching Collection to deploy branch

Change-Id: I157fcb21cf31d648eb6ba28e634f400369f1d0c6
---
M extensions/Collection
1 file changed, 0 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core 
refs/changes/43/101143/1

diff --git a/extensions/Collection b/extensions/Collection
index a4f97e4..488d8da 16
--- a/extensions/Collection
+++ b/extensions/Collection
-Subproject commit a4f97e428d32f4e6bf5adf88d628df9e49b4f075
+Subproject commit 488d8daad500f4d9e9b400b6568ba170b54b0a70

-- 
To view, visit https://gerrit.wikimedia.org/r/101143
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I157fcb21cf31d648eb6ba28e634f400369f1d0c6
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: wmf/1.23wmf6
Gerrit-Owner: Mwalker 

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Change Collection to a deploy branch - change (mediawiki...release)

2013-12-12 Thread Mwalker (Code Review)
Mwalker has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/101108


Change subject: Change Collection to a deploy branch
..

Change Collection to a deploy branch

Master is not currently working but it doesn't make a huge amount
of sense to revert the offending commit there because it's working
for some other code... so! reverted it in this branch and as soon
as I figure out why it breaks production mwlib I'll change back
to normal deployments.

Bug: 58151
Change-Id: I944b8406465ea4e5697f3969b8fc91135b6bc8f4
---
M make-wmf-branch/default.conf
1 file changed, 1 insertion(+), 1 deletion(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/tools/release 
refs/changes/08/101108/1

diff --git a/make-wmf-branch/default.conf b/make-wmf-branch/default.conf
index efd6646..704f00b 100644
--- a/make-wmf-branch/default.conf
+++ b/make-wmf-branch/default.conf
@@ -30,7 +30,6 @@
'ClientSide',
'CodeEditor',
'CodeReview',
-   'Collection',
'CommonsMetadata',
'CommunityVoice',
'ConfirmEdit',
@@ -164,6 +163,7 @@
 # a string (use that exact commit hash)
 $specialExtensions = array(
'CentralNotice' => 'wmf_deploy',
+   'Collection' => 'wmf_deploy',
'DataValues' => 'mw1.23-wmf6',
'DataTypes' => 'mw1.23-wmf6',
'Diff' => 'mw1.23-wmf6',

-- 
To view, visit https://gerrit.wikimedia.org/r/101108
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I944b8406465ea4e5697f3969b8fc91135b6bc8f4
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/tools/release
Gerrit-Branch: master
Gerrit-Owner: Mwalker 

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] log to syslog - change (wikimedia...tools)

2013-12-12 Thread Mwalker (Code Review)
Mwalker has submitted this change and it was merged.

Change subject: log to syslog
..


log to syslog

Change-Id: Ic174b3ad2c685bb9c33ad1f3c71c2a2d0211f9df
---
M FundraiserStatisticsGen/fundstatgen.py
1 file changed, 31 insertions(+), 8 deletions(-)

Approvals:
  Mwalker: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/FundraiserStatisticsGen/fundstatgen.py 
b/FundraiserStatisticsGen/fundstatgen.py
index 37a935f..7c77a55 100644
--- a/FundraiserStatisticsGen/fundstatgen.py
+++ b/FundraiserStatisticsGen/fundstatgen.py
@@ -1,11 +1,17 @@
 #!/usr/bin/python
 
-import sys
+"""
+Fundraiser Statistics Generation
+
+Queries the CiviCRM database to
+"""
+
 import MySQLdb as db
 import csv
 from optparse import OptionParser
 from ConfigParser import SafeConfigParser
-from operator import itemgetter
+import logging
+from logging.handlers import SysLogHandler
 
 def main():
 # Extract any command line options
@@ -32,20 +38,20 @@
 password = config.get('MySQL', 'password')
 database = config.get('MySQL', 'schema')
 
-print("Running per year query...")
+logging.info("Running per year query...")
 stats = getPerYearData(hostname, port, username, password, database)
 
-print("Pivoting data into year/day form...")
+logging.info("Pivoting data into year/day form...")
 (years, pivot) = pivotDataByYear(stats)
 
-print("Writing year data output files...")
+logging.info("Writing year data output files...")
 createSingleOutFile(stats, 'date', workingDir + '/donationdata-vs-day.csv')
 createOutputFiles(pivot, 'date', workingDir + '/yeardata-day-vs-', years)
 
-print("Running per campaign query...")
+logging.info("Running per campaign query...")
 pcStats = getPerCampaignData(hostname, port, username, password, database)
 
-print("Writing campaign data output files...")
+logging.info("Writing campaign data output files...")
 createSingleOutFile(pcStats, ('medium', 'campaign'), workingDir + 
'/campaign-vs-amount.csv')
 
 
@@ -247,4 +253,21 @@
 
 
 if __name__ == "__main__":
-main()
+logging.getLogger().setLevel(logging.DEBUG)
+logging.captureWarnings(True)
+
+# Log to console
+console = logging.StreamHandler()
+
console.setFormatter(logging.Formatter('%(levelname)s:%(filename)s:%(lineno)d 
-- %(message)s'))
+logging.addHandler(console)
+
+# Log to syslog
+syslog = SysLogHandler(address='/dev/log')
+syslog.setFormatter(logging.Formatter('%(asctime)-15s 
%(levelname)s:%(filename)s:%(lineno)d -- %(message)s'))
+logging.addHandler(syslog)
+
+# Run the program
+try:
+main()
+except Exception as ex:
+logging.exception('Unexpected exception! Death is me.')

-- 
To view, visit https://gerrit.wikimedia.org/r/99700
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Ic174b3ad2c685bb9c33ad1f3c71c2a2d0211f9df
Gerrit-PatchSet: 1
Gerrit-Project: wikimedia/fundraising/tools
Gerrit-Branch: master
Gerrit-Owner: Mwalker 
Gerrit-Reviewer: Adamw 
Gerrit-Reviewer: Mwalker 
Gerrit-Reviewer: jenkins-bot

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Update for unsubscribe information - change (wikimedia...tools)

2013-12-12 Thread Mwalker (Code Review)
Mwalker has submitted this change and it was merged.

Change subject: Update for unsubscribe information
..


Update for unsubscribe information

Change-Id: Icdace5cc4814412e2d00668860a49ecd57ef4180
---
M silverpop_export.sql
1 file changed, 45 insertions(+), 26 deletions(-)

Approvals:
  Mwalker: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/silverpop_export.sql b/silverpop_export.sql
index 24da369..c4952a4 100755
--- a/silverpop_export.sql
+++ b/silverpop_export.sql
@@ -1,4 +1,7 @@
+SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
+
 DROP TABLE IF EXISTS silverpop_export;
+DROP TABLE IF EXISTS silverpop_unsubscribe_export;
 CREATE TABLE silverpop_export(
   id int unsigned PRIMARY KEY AUTO_INCREMENT,
   
@@ -8,6 +11,7 @@
   last_name varchar(128),
   preferred_language varchar(5),
   email varchar(255),
+  opted_out tinyint(1),
   
   -- Step 5 lifetime statistics
   has_recurred_donation tinyint(1),
@@ -31,9 +35,9 @@
   latest_donation datetime,
   
   -- Step 7 Address information
-  city varchar(64),
+  city varchar(128),
   country varchar(2),
-  postal_code varchar(16),
+  postal_code varchar(128),
   
   -- Step 8 Geonames lookup of timezone
   tzoffset float,
@@ -46,29 +50,30 @@
 CREATE INDEX spex_city ON silverpop_export(city);
 CREATE INDEX spex_country ON silverpop_export(country);
 CREATE INDEX spex_postal ON silverpop_export(postal_code);
+CREATE INDEX spex_opted_out ON silverpop_export(opted_out);
 
 -- STEP 1: Populate the temporary table with all contacts that have an
 -- email address
 INSERT INTO silverpop_export
-  (contact_id, email, first_name, last_name, preferred_language)
+  (contact_id, email, first_name, last_name, preferred_language, opted_out)
   SELECT
 e.contact_id, e.email, c.first_name, c.last_name,
-IF(SUBSTRING(c.preferred_language, 1, 1) = '_', 'en', 
SUBSTRING(c.preferred_language, 1, 2))
+IF(SUBSTRING(c.preferred_language, 1, 1) = '_', 'en', 
SUBSTRING(c.preferred_language, 1, 2)),
+c.is_deleted OR c.is_opt_out
   FROM civicrm.civicrm_email e, civicrm.civicrm_contact c
   WHERE
 e.email IS NOT NULL AND e.email != '' AND
-e.contact_id = c.id AND
-c.is_deleted = 0 AND c.is_opt_out = 0;
+e.contact_id = c.id;
 
 -- STEP 2: Deduplicate rows that have the same email address, we will
 -- have to merge in more data later, but this is >500k rows we're
 -- getting rid of here which is more better than taking them all the way
 -- through.
 CREATE TABLE silverpop_export_dedupe_email
-  (id INT PRIMARY KEY AUTO_INCREMENT, email varchar(255), maxid int);
+  (id INT PRIMARY KEY AUTO_INCREMENT, email varchar(255), maxid int, opted_out 
tinyint(1));
 
-INSERT INTO silverpop_export_dedupe_email (email, maxid)
-   SELECT email, max(id) maxid FROM silverpop_export
+INSERT INTO silverpop_export_dedupe_email (email, maxid, opted_out)
+   SELECT email, max(id) maxid, max(opted_out) opted_out FROM silverpop_export
  FORCE INDEX (spex_email)
  GROUP BY email
  HAVING count(*) > 1;
@@ -77,16 +82,22 @@
   WHERE
 silverpop_export.email = silverpop_export_dedupe_email.email AND
 silverpop_export.id != silverpop_export_dedupe_email.maxid;
-  
+
+UPDATE silverpop_export ex, silverpop_export_dedupe_email de
+  SET ex.opted_out = 1
+  WHERE
+de.opted_out = 1 AND de.maxid = ex.contact_id;
+
 DROP TABLE silverpop_export_dedupe_email;
 
 -- STEP 3: Deduplicate rows that have the same contact ID because they'll
 -- generate the same result (> 50k rows)
 CREATE TABLE silverpop_export_dedupe_contact
-  (id int PRIMARY KEY AUTO_INCREMENT, contact_id int, maxid int);
+  (id int PRIMARY KEY AUTO_INCREMENT, contact_id int, maxid int, opted_out 
tinyint(1));
+CREATE INDEX spexdc_optedout ON silverpop_export_dedupe_contact(opted_out);
   
-INSERT INTO silverpop_export_dedupe_contact (contact_id, maxid)
-  SELECT contact_id, max(id) maxid FROM silverpop_export
+INSERT INTO silverpop_export_dedupe_contact (contact_id, maxid, opted_out)
+  SELECT contact_id, max(id) maxid, max(opted_out) opted_out FROM 
silverpop_export
 FORCE INDEX (spex_contact_id)
   GROUP BY contact_id
   HAVING count(*) > 1;
@@ -96,13 +107,14 @@
 silverpop_export.contact_id = silverpop_export_dedupe_contact.contact_id 
AND
 silverpop_export.id != silverpop_export_dedupe_contact.maxid;
 
+UPDATE silverpop_export ex, silverpop_export_dedupe_contact dc
+  SET ex.opted_out = 1
+  WHERE
+dc.opted_out = 1 AND dc.maxid = ex.contact_id;
+
 DROP TABLE silverpop_export_dedupe_contact;
 
--- STEP 4 Update every email address with every contact and opt them out
-DELETE ex
-FROM silverpop_export ex, civicrm.civicrm_email e USE INDEX(UI_email), 
civicrm.civicrm_contact c
-WHERE
-  ex.email = e.email AND e.contact_id = c.id AND c.is_opt_out = 1;
+-- STEP 4 Was updating opt outs; but I've merged that into steps 2 and 3
 
 -- STEP 5: Create an aggregate table from a full contribution table scan
 

[MediaWiki-commits] [Gerrit] Save current form to the form stack - change (mediawiki...DonationInterface)

2013-12-11 Thread Mwalker (Code Review)
Mwalker has submitted this change and it was merged.

Change subject: Save current form to the form stack
..


Save current form to the form stack

...when using redirect gateway transactions.

Change-Id: I3785d1c68702f7de6ba2689179d60fa521a740a5
---
M gateway_common/gateway.adapter.php
1 file changed, 5 insertions(+), 1 deletion(-)

Approvals:
  Mwalker: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/gateway_common/gateway.adapter.php 
b/gateway_common/gateway.adapter.php
index 2354d90..07f721d 100644
--- a/gateway_common/gateway.adapter.php
+++ b/gateway_common/gateway.adapter.php
@@ -990,7 +990,11 @@
$this->dataObj->updateContributionTracking( defined( 
'OWA' ) );
 
if ( $this->getCommunicationType() === 'redirect' ) {
-   wfRunHooks( 'GatewayHandoff', array( $this ) );
+   wfRunHooks( 'GatewayHandoff', array ( $this ) );
+
+   //in the event that we have a redirect 
transaction that never displays the form,
+   //save this most recent one before we leave.
+   $this->session_pushRapidHTMLForm( 
$this->getData_Unstaged_Escaped( 'ffname' ) );
 
$this->transaction_results = array(
'status' => TRUE,

-- 
To view, visit https://gerrit.wikimedia.org/r/100726
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I3785d1c68702f7de6ba2689179d60fa521a740a5
Gerrit-PatchSet: 2
Gerrit-Project: mediawiki/extensions/DonationInterface
Gerrit-Branch: master
Gerrit-Owner: Katie Horn 
Gerrit-Reviewer: Mwalker 
Gerrit-Reviewer: jenkins-bot

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] More ffname cleanup. Now checks the form array in the donor'... - change (mediawiki...DonationInterface)

2013-12-10 Thread Mwalker (Code Review)
Mwalker has submitted this change and it was merged.

Change subject: More ffname cleanup. Now checks the form array in the donor's 
session to see if a form has been successfully loaded on a previous click, and 
if so, defaults to that ffname.
..


More ffname cleanup.
Now checks the form array in the donor's session to see if a form
has been successfully loaded on a previous click, and if so,
defaults to that ffname.

Change-Id: I926901de74672eb088cf3cb2670d1dc32e24f0e3
---
M gateway_common/gateway.adapter.php
1 file changed, 6 insertions(+), 0 deletions(-)

Approvals:
  Mwalker: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/gateway_common/gateway.adapter.php 
b/gateway_common/gateway.adapter.php
index 2ad61bd..2354d90 100644
--- a/gateway_common/gateway.adapter.php
+++ b/gateway_common/gateway.adapter.php
@@ -3118,6 +3118,12 @@
 
if ( !is_null( $ffname ) && GatewayFormChooser::isValidForm( 
$ffname, $country, $currency, $payment_method, $payment_submethod, $recurring, 
$gateway ) ) {
return;
+   } else if ( $this->session_getLastRapidHTMLForm() ) { //This 
will take care of it if this is an ajax request, or a 3rd party return hit
+   $new_ff = $this->session_getLastRapidHTMLForm();
+   $this->addData( array ( 'ffname' => $new_ff ) );
+
+   //and debug log a little
+   $this->log( "Setting form to last successful 
('$new_ff')", LOG_DEBUG );
} else if ( GatewayFormChooser::isValidForm( $ffname . 
"-$country", $country, $currency, $payment_method, $payment_submethod, 
$recurring, $gateway ) ) {
//if the country-specific version exists, use that.
$this->addData( array ( 'ffname' => $ffname . 
"-$country" ) );

-- 
To view, visit https://gerrit.wikimedia.org/r/100702
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I926901de74672eb088cf3cb2670d1dc32e24f0e3
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/DonationInterface
Gerrit-Branch: master
Gerrit-Owner: Katie Horn 
Gerrit-Reviewer: Mwalker 
Gerrit-Reviewer: jenkins-bot

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Adding contact information for recurring subscriptions in pa... - change (wikimedia...crm)

2013-12-10 Thread Mwalker (Code Review)
Mwalker has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/100703


Change subject: Adding contact information for recurring subscriptions in paypal
..

Adding contact information for recurring subscriptions in paypal

Change-Id: Ica5053b2f49a59460373b47ee635cf3f62db7d3c
---
M sites/all/modules/queue2civicrm/recurring/recurring.module
1 file changed, 11 insertions(+), 7 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/wikimedia/fundraising/crm 
refs/changes/03/100703/1

diff --git a/sites/all/modules/queue2civicrm/recurring/recurring.module 
b/sites/all/modules/queue2civicrm/recurring/recurring.module
index 94264f7..f5b7046 100644
--- a/sites/all/modules/queue2civicrm/recurring/recurring.module
+++ b/sites/all/modules/queue2civicrm/recurring/recurring.module
@@ -282,10 +282,14 @@
 $contact = wmf_civicrm_message_contact_update( $msg, $contact[ 'id' ] );
   
 // Insert the location record
-$location = wmf_civicrm_message_location_insert( $msg, $contact );
-  
-// Tag contact for review
-$tag = wmf_civicrm_tag_contact_for_review( $contact );
+wmf_civicrm_message_location_insert( $msg, $contact );
+
+   // Tag contact for review
+   try {
+ $tag = wmf_civicrm_tag_contact_for_review( $contact );
+   } catch (WmfException $ex) {
+ // XXX copying old logic, continues without a review tag
+   }
   }
 
   // update subscription record with next payment date
@@ -355,12 +359,12 @@
   
   // create contact record
   $contact = wmf_civicrm_message_contact_insert( $msg );
-  
+
   // Insert the location record
-  //$location = wmf_civicrm_message_location_insert( $msg, $contact );
+  wmf_civicrm_message_location_update( $msg, $contact );
   
   // Tag contact for review
-  //$tag = wmf_civicrm_tag_contact_for_review( $contact );
+  $tag = wmf_civicrm_tag_contact_for_review( $contact );
   
   $dbs = wmf_civicrm_get_dbs();
   $dbs->push( 'civicrm' );

-- 
To view, visit https://gerrit.wikimedia.org/r/100703
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ica5053b2f49a59460373b47ee635cf3f62db7d3c
Gerrit-PatchSet: 1
Gerrit-Project: wikimedia/fundraising/crm
Gerrit-Branch: master
Gerrit-Owner: Mwalker 

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] More debug lines near the formchooser logic. This should hel... - change (mediawiki...DonationInterface)

2013-12-10 Thread Mwalker (Code Review)
Mwalker has submitted this change and it was merged.

Change subject: More debug lines near the formchooser logic. This should help 
debug a problem we're only seeing in prod. Easy to turn off by setting the 
appropriate gateway LogDebug global to false.
..


More debug lines near the formchooser logic.
This should help debug a problem we're only seeing in prod.
Easy to turn off by setting the appropriate gateway LogDebug
global to false.

Change-Id: I1c66ff842047576985a42a1deaee0e5282e90564
---
M gateway_common/gateway.adapter.php
1 file changed, 29 insertions(+), 0 deletions(-)

Approvals:
  Mwalker: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/gateway_common/gateway.adapter.php 
b/gateway_common/gateway.adapter.php
index ae8bb0e..2ad61bd 100644
--- a/gateway_common/gateway.adapter.php
+++ b/gateway_common/gateway.adapter.php
@@ -3133,6 +3133,35 @@
//now construct a useful error message
$message = "ffname '$ffname' is invalid. Assigning 
ffname '$new_ff'. utm_source = '$utm', referrer = '$ref'";
$this->log( $this->getLogMessagePrefix() . $message, 
LOG_ERR );
+
+   //Turn these off by setting the LogDebug global to 
false.
+   $this->log( "GET: " . json_encode( $_GET ), LOG_DEBUG );
+   $this->log( "POST: " . json_encode( $_POST ), LOG_DEBUG 
);
+
+   $dontwannalog = array (
+   'user_ip',
+   'server_ip',
+   'descriptor',
+   'account_name',
+   'account_number',
+   'authorization_id',
+   'bank_check_digit',
+   'bank_name',
+   'bank_code',
+   'branch_code',
+   'country_code_bank',
+   'date_collect',
+   'direct_debit_text',
+   'iban',
+   'fiscal_number',
+   );
+
+   foreach ( $data as $key => $val ) {
+   if ( in_array( $key, $dontwannalog ) ) {
+   unset( $data[$key] );
+   }
+   }
+   $this->log( "Truncated DonationData: " . json_encode( 
$data ), LOG_DEBUG );
}
}
 

-- 
To view, visit https://gerrit.wikimedia.org/r/100623
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I1c66ff842047576985a42a1deaee0e5282e90564
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/DonationInterface
Gerrit-Branch: master
Gerrit-Owner: Katie Horn 
Gerrit-Reviewer: Mwalker 
Gerrit-Reviewer: jenkins-bot

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] GlobalCollect listener - change (wikimedia...SmashPig)

2013-12-09 Thread Mwalker (Code Review)
Mwalker has submitted this change and it was merged.

Change subject: GlobalCollect listener
..


GlobalCollect listener

Change-Id: I6320086b974761e4f13c4e7725ccdc40054c7d8a
---
A PaymentProviders/GlobalCollect/Actions/IncomingMessage.php
A PaymentProviders/GlobalCollect/ExpatriatedMessages/GlobalCollectMessage.php
A PaymentProviders/GlobalCollect/ExpatriatedMessages/PaymentMessage.php
A PaymentProviders/GlobalCollect/GlobalCollectListener.php
A PaymentProviders/GlobalCollect/Messages/NormalizedMessage.php
A PaymentProviders/GlobalCollect/Tests/Data/PSC/PaymentNoCCDetails.json
A PaymentProviders/GlobalCollect/Tests/Data/PSC/PaymentWithCCDetails.json
A PaymentProviders/GlobalCollect/Tests/inject.py
M config_defaults.php
9 files changed, 241 insertions(+), 0 deletions(-)

Approvals:
  Mwalker: Verified; Looks good to me, approved



diff --git a/PaymentProviders/GlobalCollect/Actions/IncomingMessage.php 
b/PaymentProviders/GlobalCollect/Actions/IncomingMessage.php
new file mode 100644
index 000..2163e70
--- /dev/null
+++ b/PaymentProviders/GlobalCollect/Actions/IncomingMessage.php
@@ -0,0 +1,23 @@
+getDestinationQueue();
+
+   if ( $destinationQueue ) {
+   $queue = Configuration::getDefaultConfig()->obj( 
"data-store/{$destinationQueue}" );
+   $queueMsg = $msg->normalizeForQueue();
+
+   $queue->addObject( $queueMsg );
+   } else {
+   $class = get_class( $msg );
+   Logger::warning( "Ignoring message of type {$class}", 
$msg );
+   }
+
+   return true;
+   }
+}
diff --git 
a/PaymentProviders/GlobalCollect/ExpatriatedMessages/GlobalCollectMessage.php 
b/PaymentProviders/GlobalCollect/ExpatriatedMessages/GlobalCollectMessage.php
new file mode 100644
index 000..22bcf9b
--- /dev/null
+++ 
b/PaymentProviders/GlobalCollect/ExpatriatedMessages/GlobalCollectMessage.php
@@ -0,0 +1,53 @@
+fields as $key => $info ) {
+   // Allow mixed list/hash
+   if ( is_numeric( $key ) ) {
+   $key = $info;
+   $info = array();
+   }
+   $fieldInfo[$key] = $info;
+   }
+   return $fieldInfo;
+   }
+
+   public function constructFromValues( array $values ) {
+   foreach ( $this->getFieldInfo() as $key => $info ) {
+   $upperKey = str_replace( '_', '', strtoupper( $key ) );
+   $this->$key = (array_key_exists( $upperKey, $values ) ? 
$values[$upperKey] : '');
+   }
+   }
+
+   /**
+* Do common normalizations.  Subclasses should perform normalizations
+* specific to that message type.
+*
+* @return array associative queue message thing
+*/
+   public function normalizeForQueue() {
+   $queueMsg = new NormalizedMessage();
+
+   foreach ( $this->getFieldInfo() as $key => $info ) {
+   $destKey = (array_key_exists( 'map', $info ) ? 
$info['map'] : $key );
+   $queueMsg->$destKey = $this->$key;
+   }
+
+   $queueMsg->gateway = 'globalcollect';
+   $queueMsg->correlationId = 
"{$queueMsg->gateway}-{$queueMsg->order_id}";
+
+   return $queueMsg;
+   }
+
+   public function validate() {
+   return !empty( $this->order_id );
+   }
+
+   abstract function getDestinationQueue();
+}
diff --git 
a/PaymentProviders/GlobalCollect/ExpatriatedMessages/PaymentMessage.php 
b/PaymentProviders/GlobalCollect/ExpatriatedMessages/PaymentMessage.php
new file mode 100644
index 000..17befeb
--- /dev/null
+++ b/PaymentProviders/GlobalCollect/ExpatriatedMessages/PaymentMessage.php
@@ -0,0 +1,38 @@
+ array('map' => 'gross'),
+   'attempt_id',
+   'currency_code' => array('map' => 'currency'),
+   'effort_id',
+   'merchant_id',
+   'order_id',
+   'payment_method_id',
+   'payment_product_id' => array('map' => 'payment_product'),
+   'payment_reference',
+   'received_date' => array('map' => 'date'),
+   'status_date',
+   'status_id',
+   );
+
+   public function getDestinationQueue() {
+   // XXX
+   return 'verified';
+   }
+}
diff --git a/PaymentProviders/GlobalCollect/GlobalCollectListener.php 
b/PaymentProviders/GlobalCollect/GlobalCollectListener.php
new file mode 100644
index 000..830316a
--- /dev/null
+++ b/PaymentProviders/GlobalCollect/GlobalCollectListener.php
@@ -0,0 +1,47 @@
+constructFromValues( $request->getValues() );
+
+   $this->success = true;
+
+   return array( $message );
+   }
+
+   /**
+

[MediaWiki-commits] [Gerrit] Revert "Log an obnoxious amount of debug data via the form c... - change (mediawiki...DonationInterface)

2013-12-07 Thread Mwalker (Code Review)
Mwalker has submitted this change and it was merged.

Change subject: Revert "Log an obnoxious amount of debug data via the form 
chooser." This served its purpose, and we don't need it anymore.
..


Revert "Log an obnoxious amount of debug data via the form chooser."
This served its purpose, and we don't need it anymore.

This reverts commit a204940200b24d1f8a007e730517f459959ec2d1.

Change-Id: Ib1f619e6600df65f39ac891dbf8f0d057f6ff04a
---
M special/GatewayFormChooser.php
1 file changed, 0 insertions(+), 29 deletions(-)

Approvals:
  Mwalker: Looks good to me, approved



diff --git a/special/GatewayFormChooser.php b/special/GatewayFormChooser.php
index 82fe55d..aae8e5b 100644
--- a/special/GatewayFormChooser.php
+++ b/special/GatewayFormChooser.php
@@ -66,17 +66,6 @@
 
$redirectURL = self::buildPaymentsFormURL( $form, $params );
 
-   $debug_mess = __FUNCTION__;
-   $ctid = @$GET['contribution_tracking_id'];
-   if ( !is_null( $ctid ) ) {
-   $debug_mess .= " $ctid";
-   }
-   $debug_mess .= " GatewayFormChooser built URL '$redirectURL' 
for country '$country', currency '$currency', method '$paymentMethod', 
submethod '$paymentSubMethod', recurring: '$recurring', gateway '$gateway'.";
-   GatewayAdapter::log( $debug_mess, LOG_DEBUG );
-
-   error_log( $debug_mess );
-
-
// Perform the redirection
$this->getOutput()->redirect( $redirectURL );
}
@@ -281,15 +270,6 @@
$forms = self::getAllValidForms( $country, $currency, 
$payment_method, $payment_submethod, $recurring, $gateway );
$form = self::pickOneForm( $forms, $currency, $country );
 
-   //done playing.
-   $debug_mess = __FUNCTION__;
-   $ctid = @$GET['contribution_tracking_id'];
-   if ( !is_null( $ctid ) ) {
-   $debug_mess .= " $ctid";
-   }
-   $debug_mess .= " Selected '$form' for country '$country', 
currency '$currency', method '$payment_method', submethod '$payment_submethod', 
recurring: '$recurring', gateway '$gateway'.";
-   GatewayAdapter::log( $debug_mess, LOG_DEBUG );
-
//TODO:
//This here, would be an excellent place to default to
//"sorry, we don't support that thing you're trying to do."
@@ -358,15 +338,6 @@
if ( is_array( $forms ) && array_key_exists( $ffname, $forms ) 
) {
return true;
}
-
-   $debug_mess = __FUNCTION__;
-   $ctid = @$GET['contribution_tracking_id'];
-   if ( !is_null( $ctid ) ) {
-   $debug_mess .= " $ctid";
-   }
-   $debug_mess .= " Form '$ffname' found to be invalid for country 
'$country', currency '$currency', method '$payment_method', submethod 
'$payment_submethod', recurring: '$recurring', gateway '$gateway'.";
-   GatewayAdapter::log( $debug_mess, LOG_DEBUG );
-
return false;
}
 

-- 
To view, visit https://gerrit.wikimedia.org/r/100118
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Ib1f619e6600df65f39ac891dbf8f0d057f6ff04a
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/DonationInterface
Gerrit-Branch: master
Gerrit-Owner: Katie Horn 
Gerrit-Reviewer: Mwalker 
Gerrit-Reviewer: jenkins-bot

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] (FR #917) Never use Drupal db connection on Civi tables - change (wikimedia...crm)

2013-12-06 Thread Mwalker (Code Review)
Mwalker has submitted this change and it was merged.

Change subject: (FR #917) Never use Drupal db connection on Civi tables
..


(FR #917) Never use Drupal db connection on Civi tables

Unfortunately, we need to go in this direction to use DB transactions.

Change-Id: Iff0c2617b12693330f002e8323509f4dcc77968d
---
M sites/all/modules/offline2civicrm/ContributionConversion.php
M sites/all/modules/queue2civicrm/recurring/recurring.module
M sites/all/modules/wmf_common/wmf_civicrm/recurring.inc
M sites/all/modules/wmf_common/wmf_civicrm/wmf_civicrm.module
4 files changed, 69 insertions(+), 55 deletions(-)

Approvals:
  Mwalker: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/sites/all/modules/offline2civicrm/ContributionConversion.php 
b/sites/all/modules/offline2civicrm/ContributionConversion.php
index 5644ec4..b51189a 100644
--- a/sites/all/modules/offline2civicrm/ContributionConversion.php
+++ b/sites/all/modules/offline2civicrm/ContributionConversion.php
@@ -17,11 +17,15 @@
 'cancel' => $cancel,
 );
 wmf_civicrm_message_contribution_recur_insert( $synth_msg, 
$contribution['contact_id'], $contribution );
-$dbs = wmf_civicrm_get_dbs();
-$dbs->push( 'civicrm' );
-$result = db_update( 'civicrm_contribution' )->fields( array(
+$api = civicrm_api_classapi();
+$update_params = array(
+'id' => $contribution['id'],
+
 'trxn_id' => $contribution['trxn_id'],
-) )->condition( 'id', $contribution['id'] )->execute();
+
+'version' => 3,
+);
+$api->Contribution->Create( $update_params );
 }
 }
 
diff --git a/sites/all/modules/queue2civicrm/recurring/recurring.module 
b/sites/all/modules/queue2civicrm/recurring/recurring.module
index 94264f7..ec76a2a 100644
--- a/sites/all/modules/queue2civicrm/recurring/recurring.module
+++ b/sites/all/modules/queue2civicrm/recurring/recurring.module
@@ -289,12 +289,14 @@
   }
 
   // update subscription record with next payment date
-  $dbs = wmf_civicrm_get_dbs();
-  $dbs->push( 'civicrm' );
-  db_update( 'civicrm_contribution_recur' )->fields( array(
-'next_sched_contribution' => wmf_common_date_unix_to_civicrm( strtotime( 
"+" . $recur_record->frequency_interval . " " . $recur_record->frequency_unit, 
$msg[ 'payment_date' ] ))
-  ) )->condition( 'id', $recur_record->id )->execute();
-  $dbs->pop();
+  $api = civicrm_api_classapi();
+  $update_params = array(
+'next_sched_contribution' => wmf_common_date_unix_to_civicrm( strtotime( 
"+" . $recur_record->frequency_interval . " " . $recur_record->frequency_unit, 
$msg[ 'payment_date' ] )),
+'id' => $recur_record->id,
+
+'version' => 3,
+  );
+  $api->ContributionRecur->Create( $update_params );
   
   // construct an array of useful info to invocations of queue2civicrm_import
   $contribution_info = array(
@@ -362,9 +364,8 @@
   // Tag contact for review
   //$tag = wmf_civicrm_tag_contact_for_review( $contact );
   
-  $dbs = wmf_civicrm_get_dbs();
-  $dbs->push( 'civicrm' );
-  $result = db_insert( 'civicrm_contribution_recur' )->fields( array(
+  $api = civicrm_api_classapi();
+  $insert_params = array(
 'contact_id' => $contact[ 'id' ],
 'currency' => $msg[ 'original_currency' ],
 'amount' => $msg[ 'original_gross' ],
@@ -374,9 +375,11 @@
 'start_date' => wmf_common_date_unix_to_civicrm( $msg[ 'start_date' ] ),
 'create_date' => wmf_common_date_unix_to_civicrm( $msg[ 'create_date' ] ),
 'trxn_id' => $msg[ 'subscr_id' ],
-  ) )->execute();
+
+'version' => 3,
+  );
 
-  if ( !$result ) {
+  if ( !$api->ContributionRecur->Create( $insert_params ) ) {
 throw new WmfException( 'IMPORT_CONTRIB', 'Failed inserting subscriber 
signup for subscriber id: ' . print_r( $msg['subscr_id'], true ));
   } else {
 watchdog( 'recurring', 'Succesfully inserted subscription signup for 
subscriber id: %subscr_id ', array( '%subscr_id' => print_r( $msg[ 'subscr_id' 
], true )), WATCHDOG_NOTICE );
@@ -394,14 +397,16 @@
 throw new WmfException( 'INVALID_RECURRING', 'Subscription account does 
not exist' );
   }
   
-  $dbs = wmf_civicrm_get_dbs();
-  $dbs->push( 'civicrm' );
-  $result = db_update( 'civicrm_contribution_recur' )->fields( array(
+  $api = civicrm_api_classapi();
+  $update_params = array(
+'trxn_id' => $msg['subscr_id'],
+
 'cancel_date' => wmf_common_date_unix_to_civicrm( $msg[ 'cancel_date' ] ), 
 'end_date' => wmf_common_date_unix_to_civicrm( $msg[ 'cancel_date' ] ), 
-  ) )->condition( 'trxn_id', $msg[ 'subscr_id' ] )->execute();
 
-  if ( !$result ) {
+'version' => 3,
+  );
+  if ( !$api->ContributionRecur->Create( $update_params ) ) {
 throw new WmfException( 'INVALID_RECURRING', 'There was a problem updating 
the subscription for cancelation for subscriber id: ' . print_r( $msg[ 
'subscr_id' ], true ));
   } else {
 watchdog( 'recurri

[MediaWiki-commits] [Gerrit] Log an obnoxious amount of debug data via the form chooser. ... - change (mediawiki...DonationInterface)

2013-12-06 Thread Mwalker (Code Review)
Mwalker has submitted this change and it was merged.

Change subject: Log an obnoxious amount of debug data via the form chooser. 
Meant to be temporary: This should go away as soon as we have demystified 
ourselves.
..


Log an obnoxious amount of debug data via the form chooser.
Meant to be temporary: This should go away as soon as we have
demystified ourselves.

Change-Id: I5d9de01a667f5620e3ef2dbe4e04a3cc313562c2
---
M special/GatewayFormChooser.php
1 file changed, 29 insertions(+), 0 deletions(-)

Approvals:
  Mwalker: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/special/GatewayFormChooser.php b/special/GatewayFormChooser.php
index aae8e5b..82fe55d 100644
--- a/special/GatewayFormChooser.php
+++ b/special/GatewayFormChooser.php
@@ -66,6 +66,17 @@
 
$redirectURL = self::buildPaymentsFormURL( $form, $params );
 
+   $debug_mess = __FUNCTION__;
+   $ctid = @$GET['contribution_tracking_id'];
+   if ( !is_null( $ctid ) ) {
+   $debug_mess .= " $ctid";
+   }
+   $debug_mess .= " GatewayFormChooser built URL '$redirectURL' 
for country '$country', currency '$currency', method '$paymentMethod', 
submethod '$paymentSubMethod', recurring: '$recurring', gateway '$gateway'.";
+   GatewayAdapter::log( $debug_mess, LOG_DEBUG );
+
+   error_log( $debug_mess );
+
+
// Perform the redirection
$this->getOutput()->redirect( $redirectURL );
}
@@ -270,6 +281,15 @@
$forms = self::getAllValidForms( $country, $currency, 
$payment_method, $payment_submethod, $recurring, $gateway );
$form = self::pickOneForm( $forms, $currency, $country );
 
+   //done playing.
+   $debug_mess = __FUNCTION__;
+   $ctid = @$GET['contribution_tracking_id'];
+   if ( !is_null( $ctid ) ) {
+   $debug_mess .= " $ctid";
+   }
+   $debug_mess .= " Selected '$form' for country '$country', 
currency '$currency', method '$payment_method', submethod '$payment_submethod', 
recurring: '$recurring', gateway '$gateway'.";
+   GatewayAdapter::log( $debug_mess, LOG_DEBUG );
+
//TODO:
//This here, would be an excellent place to default to
//"sorry, we don't support that thing you're trying to do."
@@ -338,6 +358,15 @@
if ( is_array( $forms ) && array_key_exists( $ffname, $forms ) 
) {
return true;
}
+
+   $debug_mess = __FUNCTION__;
+   $ctid = @$GET['contribution_tracking_id'];
+   if ( !is_null( $ctid ) ) {
+   $debug_mess .= " $ctid";
+   }
+   $debug_mess .= " Form '$ffname' found to be invalid for country 
'$country', currency '$currency', method '$payment_method', submethod 
'$payment_submethod', recurring: '$recurring', gateway '$gateway'.";
+   GatewayAdapter::log( $debug_mess, LOG_DEBUG );
+
return false;
}
 

-- 
To view, visit https://gerrit.wikimedia.org/r/99791
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I5d9de01a667f5620e3ef2dbe4e04a3cc313562c2
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/DonationInterface
Gerrit-Branch: master
Gerrit-Owner: Katie Horn 
Gerrit-Reviewer: Mwalker 
Gerrit-Reviewer: jenkins-bot

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Unborking the payments form chooser - change (mediawiki...DonationInterface)

2013-12-06 Thread Mwalker (Code Review)
Mwalker has submitted this change and it was merged.

Change subject: Unborking the payments form chooser
..


Unborking the payments form chooser

Change-Id: If3b88dfd0e10b43e7c48dcdc41f1959928daee66
---
M gateway_common/gateway.adapter.php
M gateway_forms/RapidHtml.php
M special/GatewayFormChooser.php
3 files changed, 14 insertions(+), 3 deletions(-)

Approvals:
  Mwalker: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/gateway_common/gateway.adapter.php 
b/gateway_common/gateway.adapter.php
index 2cc8be1..ae8bb0e 100644
--- a/gateway_common/gateway.adapter.php
+++ b/gateway_common/gateway.adapter.php
@@ -3095,6 +3095,11 @@
 
$ffname = $data['ffname'];
 
+   //easy stuff first:
+   if ( $this->isValidSpecialForm( $ffname ) ) {
+   return;
+   }
+
 // 'country' might = 'XX'
$country = $data['country'];
if ( $country === 'XX' ) {
@@ -3118,7 +3123,7 @@
$this->addData( array ( 'ffname' => $ffname . 
"-$country" ) );
 
//I'm only doing this for serious legacy purposes. This 
mess needs to stop itself. To help with the mess-stopping...
-   $message = "ffname '$ffname' was invalid, but the 
country-specific '$ffname . -$country' works. utm_source = '$utm', referrer = 
'$ref'";
+   $message = "ffname '$ffname' was invalid, but the 
country-specific '$ffname-$country' works. utm_source = '$utm', referrer = 
'$ref'";
$this->log( $this->getLogMessagePrefix() . $message, 
LOG_WARNING );
} else {
//Invalid form. Go get one that is valid, and squak in 
the error logs.
diff --git a/gateway_forms/RapidHtml.php b/gateway_forms/RapidHtml.php
index d1f05cf..c000f46 100644
--- a/gateway_forms/RapidHtml.php
+++ b/gateway_forms/RapidHtml.php
@@ -126,7 +126,7 @@
$this->set_html_file_path( $ffname );
} catch ( MWException $mwe ) {
$message = 
$this->gateway->getLogMessagePrefix() . "Could not load form '$ffname'";
-   $this->log( $message, LOG_ERR );
+   $this->gateway->log( $message, LOG_ERR );
}
}
 
diff --git a/special/GatewayFormChooser.php b/special/GatewayFormChooser.php
index a81523f..aae8e5b 100644
--- a/special/GatewayFormChooser.php
+++ b/special/GatewayFormChooser.php
@@ -238,7 +238,13 @@
continue;
}
}
-   
+
+   // NES.
+   // ...but actually yes.
+   if ( $recurring === 'false' || $recurring === '0' ) {
+   $recurring = false;
+   }
+
//filter on recurring
if ( DataValidator::value_appears_in( 'recurring', 
$meta ) !== ( bool ) $recurring ) {
unset( $forms[$name] );

-- 
To view, visit https://gerrit.wikimedia.org/r/99772
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: If3b88dfd0e10b43e7c48dcdc41f1959928daee66
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/DonationInterface
Gerrit-Branch: master
Gerrit-Owner: Katie Horn 
Gerrit-Reviewer: Mwalker 
Gerrit-Reviewer: jenkins-bot

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Update for unsubscribe information - change (wikimedia...tools)

2013-12-06 Thread Mwalker (Code Review)
Mwalker has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/99770


Change subject: Update for unsubscribe information
..

Update for unsubscribe information

Change-Id: Icdace5cc4814412e2d00668860a49ecd57ef4180
---
M silverpop_export.sql
1 file changed, 41 insertions(+), 24 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/wikimedia/fundraising/tools 
refs/changes/70/99770/1

diff --git a/silverpop_export.sql b/silverpop_export.sql
index 24da369..0eea9bf 100755
--- a/silverpop_export.sql
+++ b/silverpop_export.sql
@@ -1,4 +1,5 @@
 DROP TABLE IF EXISTS silverpop_export;
+DROP TABLE IF EXISTS silverpop_unsubscribe_export;
 CREATE TABLE silverpop_export(
   id int unsigned PRIMARY KEY AUTO_INCREMENT,
   
@@ -8,6 +9,7 @@
   last_name varchar(128),
   preferred_language varchar(5),
   email varchar(255),
+  opted_out tinyint(1),
   
   -- Step 5 lifetime statistics
   has_recurred_donation tinyint(1),
@@ -46,29 +48,30 @@
 CREATE INDEX spex_city ON silverpop_export(city);
 CREATE INDEX spex_country ON silverpop_export(country);
 CREATE INDEX spex_postal ON silverpop_export(postal_code);
+CREATE INDEX spex_opted_out ON silverpop_export(opted_out);
 
 -- STEP 1: Populate the temporary table with all contacts that have an
 -- email address
 INSERT INTO silverpop_export
-  (contact_id, email, first_name, last_name, preferred_language)
+  (contact_id, email, first_name, last_name, preferred_language, opted_out)
   SELECT
 e.contact_id, e.email, c.first_name, c.last_name,
-IF(SUBSTRING(c.preferred_language, 1, 1) = '_', 'en', 
SUBSTRING(c.preferred_language, 1, 2))
+IF(SUBSTRING(c.preferred_language, 1, 1) = '_', 'en', 
SUBSTRING(c.preferred_language, 1, 2)),
+c.is_deleted OR c.is_opt_out
   FROM civicrm.civicrm_email e, civicrm.civicrm_contact c
   WHERE
 e.email IS NOT NULL AND e.email != '' AND
-e.contact_id = c.id AND
-c.is_deleted = 0 AND c.is_opt_out = 0;
+e.contact_id = c.id;
 
 -- STEP 2: Deduplicate rows that have the same email address, we will
 -- have to merge in more data later, but this is >500k rows we're
 -- getting rid of here which is more better than taking them all the way
 -- through.
 CREATE TABLE silverpop_export_dedupe_email
-  (id INT PRIMARY KEY AUTO_INCREMENT, email varchar(255), maxid int);
+  (id INT PRIMARY KEY AUTO_INCREMENT, email varchar(255), maxid int, opted_out 
tinyint(1));
 
-INSERT INTO silverpop_export_dedupe_email (email, maxid)
-   SELECT email, max(id) maxid FROM silverpop_export
+INSERT INTO silverpop_export_dedupe_email (email, maxid, opted_out)
+   SELECT email, max(id) maxid, max(opted_out) opted_out FROM silverpop_export
  FORCE INDEX (spex_email)
  GROUP BY email
  HAVING count(*) > 1;
@@ -77,16 +80,22 @@
   WHERE
 silverpop_export.email = silverpop_export_dedupe_email.email AND
 silverpop_export.id != silverpop_export_dedupe_email.maxid;
-  
+
+UPDATE silverpop_export ex, silverpop_export_dedupe_email de
+  SET ex.opted_out = 1
+  WHERE
+de.opted_out = 1 AND de.maxid = ex.contact_id;
+
 DROP TABLE silverpop_export_dedupe_email;
 
 -- STEP 3: Deduplicate rows that have the same contact ID because they'll
 -- generate the same result (> 50k rows)
 CREATE TABLE silverpop_export_dedupe_contact
-  (id int PRIMARY KEY AUTO_INCREMENT, contact_id int, maxid int);
+  (id int PRIMARY KEY AUTO_INCREMENT, contact_id int, maxid int, opted_out 
tinyint(1));
+CREATE INDEX spexdc_optedout ON silverpop_export_dedupe_contact(opted_out);
   
-INSERT INTO silverpop_export_dedupe_contact (contact_id, maxid)
-  SELECT contact_id, max(id) maxid FROM silverpop_export
+INSERT INTO silverpop_export_dedupe_contact (contact_id, maxid, opted_out)
+  SELECT contact_id, max(id) maxid, max(opted_out) opted_out FROM 
silverpop_export
 FORCE INDEX (spex_contact_id)
   GROUP BY contact_id
   HAVING count(*) > 1;
@@ -96,13 +105,14 @@
 silverpop_export.contact_id = silverpop_export_dedupe_contact.contact_id 
AND
 silverpop_export.id != silverpop_export_dedupe_contact.maxid;
 
+UPDATE silverpop_export ex, silverpop_export_dedupe_contact dc
+  SET ex.opted_out = 1
+  WHERE
+dc.opted_out = 1 AND dc.maxid = ex.contact_id;
+
 DROP TABLE silverpop_export_dedupe_contact;
 
--- STEP 4 Update every email address with every contact and opt them out
-DELETE ex
-FROM silverpop_export ex, civicrm.civicrm_email e USE INDEX(UI_email), 
civicrm.civicrm_contact c
-WHERE
-  ex.email = e.email AND e.contact_id = c.id AND c.is_opt_out = 1;
+-- STEP 4 Was updating opt outs; but I've merged that into steps 2 and 3
 
 -- STEP 5: Create an aggregate table from a full contribution table scan
 DROP TABLE IF EXISTS silverpop_export_stat;
@@ -143,7 +153,7 @@
 SUM(IF('2012-07-1' < ct.receive_date AND ct.receive_date < '2013-07-01', 
1, 0)),
 SUM(IF('2013-07-1' < ct.receive_date AND ct.receive_date < '2014-07-01', 
1, 0))
   FROM silverpop_export ex, civicrm.c

[MediaWiki-commits] [Gerrit] log to syslog - change (wikimedia...tools)

2013-12-06 Thread Mwalker (Code Review)
Mwalker has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/99700


Change subject: log to syslog
..

log to syslog

Change-Id: Ic174b3ad2c685bb9c33ad1f3c71c2a2d0211f9df
---
M FundraiserStatisticsGen/fundstatgen.py
1 file changed, 31 insertions(+), 8 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/wikimedia/fundraising/tools 
refs/changes/00/99700/1

diff --git a/FundraiserStatisticsGen/fundstatgen.py 
b/FundraiserStatisticsGen/fundstatgen.py
index 37a935f..7c77a55 100644
--- a/FundraiserStatisticsGen/fundstatgen.py
+++ b/FundraiserStatisticsGen/fundstatgen.py
@@ -1,11 +1,17 @@
 #!/usr/bin/python
 
-import sys
+"""
+Fundraiser Statistics Generation
+
+Queries the CiviCRM database to
+"""
+
 import MySQLdb as db
 import csv
 from optparse import OptionParser
 from ConfigParser import SafeConfigParser
-from operator import itemgetter
+import logging
+from logging.handlers import SysLogHandler
 
 def main():
 # Extract any command line options
@@ -32,20 +38,20 @@
 password = config.get('MySQL', 'password')
 database = config.get('MySQL', 'schema')
 
-print("Running per year query...")
+logging.info("Running per year query...")
 stats = getPerYearData(hostname, port, username, password, database)
 
-print("Pivoting data into year/day form...")
+logging.info("Pivoting data into year/day form...")
 (years, pivot) = pivotDataByYear(stats)
 
-print("Writing year data output files...")
+logging.info("Writing year data output files...")
 createSingleOutFile(stats, 'date', workingDir + '/donationdata-vs-day.csv')
 createOutputFiles(pivot, 'date', workingDir + '/yeardata-day-vs-', years)
 
-print("Running per campaign query...")
+logging.info("Running per campaign query...")
 pcStats = getPerCampaignData(hostname, port, username, password, database)
 
-print("Writing campaign data output files...")
+logging.info("Writing campaign data output files...")
 createSingleOutFile(pcStats, ('medium', 'campaign'), workingDir + 
'/campaign-vs-amount.csv')
 
 
@@ -247,4 +253,21 @@
 
 
 if __name__ == "__main__":
-main()
+logging.getLogger().setLevel(logging.DEBUG)
+logging.captureWarnings(True)
+
+# Log to console
+console = logging.StreamHandler()
+
console.setFormatter(logging.Formatter('%(levelname)s:%(filename)s:%(lineno)d 
-- %(message)s'))
+logging.addHandler(console)
+
+# Log to syslog
+syslog = SysLogHandler(address='/dev/log')
+syslog.setFormatter(logging.Formatter('%(asctime)-15s 
%(levelname)s:%(filename)s:%(lineno)d -- %(message)s'))
+logging.addHandler(syslog)
+
+# Run the program
+try:
+main()
+except Exception as ex:
+logging.exception('Unexpected exception! Death is me.')

-- 
To view, visit https://gerrit.wikimedia.org/r/99700
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ic174b3ad2c685bb9c33ad1f3c71c2a2d0211f9df
Gerrit-PatchSet: 1
Gerrit-Project: wikimedia/fundraising/tools
Gerrit-Branch: master
Gerrit-Owner: Mwalker 

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] FR #1113 Treat a subpage like it's a language - change (mediawiki...LandingCheck)

2013-12-05 Thread Mwalker (Code Review)
Mwalker has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/99613


Change subject: FR #1113 Treat a subpage like it's a language
..

FR #1113 Treat a subpage like it's a language

This will allow thank you pages to be treated like landing
pages.

Change-Id: I64d407e226beb32e977219764fd3bee7433f66f0
---
M SpecialLandingCheck.php
1 file changed, 12 insertions(+), 5 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/LandingCheck 
refs/changes/13/99613/1

diff --git a/SpecialLandingCheck.php b/SpecialLandingCheck.php
index 63d4e48..2d2be0d 100644
--- a/SpecialLandingCheck.php
+++ b/SpecialLandingCheck.php
@@ -26,14 +26,21 @@

public function execute( $sub ) {
global $wgRequest, $wgPriorityCountries;
-   
+
+   // If we have a subpage; assume it's a language like an 
internationalized page
+   $language = 'en';
+   $path = explode( '/', $sub );
+   if ( Language::isValidCode( $path[count($path) - 1] ) ) {
+   $language = $sub;
+   }
+
// Pull in query string parameters
-   $language = $wgRequest->getVal( 'language', 'en' );
+   $language = $wgRequest->getVal( 'language', $language );
$this->basic = $wgRequest->getBool( 'basic' );
$country = $wgRequest->getVal( 'country' );
 
// if the language is false-ish, set to default
-   if( !$language ){
+   if( !$language ) {
$language = 'en';
}
 
@@ -165,8 +172,8 @@
'utm_medium' => $wgRequest->getVal( 'utm_medium' ),
'utm_campaign' => $wgRequest->getVal( 'utm_campaign' ),
'utm_key' => $wgRequest->getVal( 'utm_key' ),
-   'language' => $wgRequest->getVal( 'language', 'en'),
-   'uselang' => $wgRequest->getVal( 'language', 'en'), // 
for {{int:xxx}} rendering
+   'language' => $language,
+   'uselang' => $language, // for {{int:xxx}} rendering
'country' => $country,
'referrer' => $wgRequest->getHeader( 'referer' )
) );

-- 
To view, visit https://gerrit.wikimedia.org/r/99613
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I64d407e226beb32e977219764fd3bee7433f66f0
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/LandingCheck
Gerrit-Branch: master
Gerrit-Owner: Mwalker 

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] FR #1113 Rather more intelligent thank you link generation - change (mediawiki...DonationInterface)

2013-12-05 Thread Mwalker (Code Review)
Mwalker has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/99612


Change subject: FR #1113 Rather more intelligent thank you link generation
..

FR #1113 Rather more intelligent thank you link generation

Merge new components with old components.

Change-Id: Ie444228bb46680a0f5da2af257bf8f398075831f
---
M gateway_common/gateway.adapter.php
1 file changed, 19 insertions(+), 15 deletions(-)


  git pull 
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/DonationInterface 
refs/changes/12/99612/1

diff --git a/gateway_common/gateway.adapter.php 
b/gateway_common/gateway.adapter.php
index 89c1c5d..7882e9e 100644
--- a/gateway_common/gateway.adapter.php
+++ b/gateway_common/gateway.adapter.php
@@ -351,8 +351,8 @@
}
 
/**
-* getThankYouPage should either return a full page url, or false. 
-* @global type $wgLang
+* getThankYouPage should either return a full page url, or false.
+*
 * @return mixed Page URL in string format, or false if none is set. 
 */
public function getThankYouPage() {
@@ -395,23 +395,27 @@
/**
 * For pages we intend to redirect to. This function will take either a 
full 
 * URL or a page title, and turn it into a URL with the appropriate 
language 
-* appended onto the end. 
+* appended onto the end.
+*
 * @param string $url Either a wiki page title, or a URL to an external 
wiki 
-* page title. 
-* @return string A URL  
+* page title.
+*
+* @return string A URL
 */
-   protected function appendLanguageAndMakeURL( $url ){
+   protected function appendLanguageAndMakeURL( $url ) {
$language = $this->getData_Unstaged_Escaped( 'language' );
-   //make sure we don't already have the language in there...
-   $dirs = explode('/', $url);
-   if ( !is_array($dirs) || !in_array( $language, $dirs ) ){
-   $url = $url . "/$language";
-   }

-   if ( strpos( $url, 'http' ) === 0) { 
-   return $url;
-   } else { //this isn't a url yet.
-   $returnTitle = Title::newFromText( $url );
+   if ( ( strpos( $url, 'http' ) === 0 ) || ( strpos( $url, '//' ) 
=== 0 ) ) {
+   return http_build_url(
+   wfParseUrl( $url ),
+   array(
+'path' => $language,
+   ),
+   HTTP_URL_JOIN_PATH
+   );
+   } else {
+   // this isn't a url yet, must be a mediawiki page
+   $returnTitle = Title::newFromText( "{$url}/{$language}" 
);
$url = $returnTitle->getFullURL();
return $url;
}

-- 
To view, visit https://gerrit.wikimedia.org/r/99612
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ie444228bb46680a0f5da2af257bf8f398075831f
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/DonationInterface
Gerrit-Branch: master
Gerrit-Owner: Mwalker 

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] (FR #1238) Always throw an exception, do not display the fat... - change (wikimedia...civicrm)

2013-12-05 Thread Mwalker (Code Review)
Mwalker has submitted this change and it was merged.

Change subject: (FR #1238) Always throw an exception, do not display the fatal 
error page.
..


(FR #1238) Always throw an exception, do not display the fatal error page.

Change-Id: I9960f05fdb371158f907962b389708fdcceff51e
---
M CRM/Core/Error.php
1 file changed, 2 insertions(+), 2 deletions(-)

Approvals:
  Mwalker: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/CRM/Core/Error.php b/CRM/Core/Error.php
index 9abb2a6..c98cb63 100644
--- a/CRM/Core/Error.php
+++ b/CRM/Core/Error.php
@@ -77,7 +77,7 @@
* If modeException == true, errors are raised as exception instead of 
returning civicrm_errors
* @static
*/
-  public static $modeException = NULL;
+  public static $modeException = true;
 
   /**
* singleton function used to manage this object.
@@ -780,7 +780,7 @@
*/
   public static function setCallback($callback = NULL) {
 if (!$callback) {
-  $callback = array('CRM_Core_Error', 'handle');
+  $callback = array('CRM_Core_Error', 'exceptionHandler');
 }
 $GLOBALS['_PEAR_default_error_mode'] = PEAR_ERROR_CALLBACK;
 $GLOBALS['_PEAR_default_error_options'] = $callback;

-- 
To view, visit https://gerrit.wikimedia.org/r/99319
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I9960f05fdb371158f907962b389708fdcceff51e
Gerrit-PatchSet: 1
Gerrit-Project: wikimedia/fundraising/crm/civicrm
Gerrit-Branch: master
Gerrit-Owner: Adamw 
Gerrit-Reviewer: Mwalker 
Gerrit-Reviewer: jenkins-bot

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] DI to master - change (mediawiki/core)

2013-12-05 Thread Mwalker (Code Review)
Mwalker has submitted this change and it was merged.

Change subject: DI to master
..


DI to master

Change-Id: I238a3241f4e8ae069e434c01b1c8675fdb47acd1
---
M extensions/DonationInterface
1 file changed, 0 insertions(+), 0 deletions(-)

Approvals:
  Mwalker: Verified; Looks good to me, approved



diff --git a/extensions/DonationInterface b/extensions/DonationInterface
index 5ddb538..49772ac 16
--- a/extensions/DonationInterface
+++ b/extensions/DonationInterface
-Subproject commit 5ddb538a34d0bd027f060a61554adbd0e939375a
+Subproject commit 49772ac6ddb607d423adddc6eb99917a95b8a9a9

-- 
To view, visit https://gerrit.wikimedia.org/r/99581
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I238a3241f4e8ae069e434c01b1c8675fdb47acd1
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: fundraising/1.22
Gerrit-Owner: Mwalker 
Gerrit-Reviewer: Mwalker 

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] DI to master - change (mediawiki/core)

2013-12-05 Thread Mwalker (Code Review)
Mwalker has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/99581


Change subject: DI to master
..

DI to master

Change-Id: I238a3241f4e8ae069e434c01b1c8675fdb47acd1
---
M extensions/DonationInterface
1 file changed, 0 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core 
refs/changes/81/99581/1

diff --git a/extensions/DonationInterface b/extensions/DonationInterface
index 5ddb538..49772ac 16
--- a/extensions/DonationInterface
+++ b/extensions/DonationInterface
-Subproject commit 5ddb538a34d0bd027f060a61554adbd0e939375a
+Subproject commit 49772ac6ddb607d423adddc6eb99917a95b8a9a9

-- 
To view, visit https://gerrit.wikimedia.org/r/99581
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I238a3241f4e8ae069e434c01b1c8675fdb47acd1
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: fundraising/1.22
Gerrit-Owner: Mwalker 

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Revert "cleanup rapid js base form error handling" This chan... - change (mediawiki...DonationInterface)

2013-12-05 Thread Mwalker (Code Review)
Mwalker has submitted this change and it was merged.

Change subject: Revert "cleanup rapid js base form error handling" This change 
broke low amount error messaging on amazon and paypal interstitial pages.
..


Revert "cleanup rapid js base form error handling"
This change broke low amount error messaging on amazon and paypal
interstitial pages.

This reverts commit 0841eb1c5dd868bed05e4a0b3891dfc0c6dd655c.

Change-Id: Ibddef837f474161f278bfc58e19c245688607b2b
---
M gateway_forms/rapidhtml/js/basicForm.js
1 file changed, 25 insertions(+), 14 deletions(-)

Approvals:
  Mwalker: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/gateway_forms/rapidhtml/js/basicForm.js 
b/gateway_forms/rapidhtml/js/basicForm.js
index 46885ef..b9fe785 100644
--- a/gateway_forms/rapidhtml/js/basicForm.js
+++ b/gateway_forms/rapidhtml/js/basicForm.js
@@ -6,24 +6,35 @@
var billingErrorString = "";
var paymentErrorString = "";
 
-   // lookup formatted errors to display
-   var searchVars = [ amountErrors, billingErrors, paymentErrors ];
-   var errorMessages = [];
-   for ( var errorFields in searchVars ) {
-   for ( var field in errorFields ) {
-   if ( errorFields[field] ) {
-   errorMessages.push( errorFields[field] );
-   }
-   }
-   }
-   errorString = errorMessages.join( "" );
+   // generate formatted errors to display
+   var temp = [];
+   for ( var e in amountErrors )
+   if ( amountErrors[e] != "" )
+   temp[temp.length] = amountErrors[e];
+   amountErrorString = temp.join( "" );
 
-   if ( errorString ) {
-   $( "#topError" ).html( errorString );
+   temp = [];
+   for ( var f in billingErrors )
+   if ( billingErrors[f] != "" )
+   temp[temp.length] = billingErrors[f];
+   billingErrorString = temp.join( "" );
+
+   temp = [];
+   for ( var g in paymentErrors )
+   if ( paymentErrors[g] != "" )
+   temp[temp.length] = paymentErrors[g];
+   paymentErrorString = temp.join( "" );
+
+   // show the errors
+   if ( amountErrorString != "" ) {
+   $( "#topError" ).html( amountErrorString );
+   } else if ( billingErrorString != "" ) {
+   $( "#topError" ).html( billingErrorString );
+   } else if ( paymentErrorString != "" ) {
+   $( "#topError" ).html( paymentErrorString );
}
 
$( "#paymentContinueBtn" ).click( function() {
-   // FIXME: generalize validation
if ( validateAmount() ) {
document.payment.action = actionURL;
document.payment.submit();

-- 
To view, visit https://gerrit.wikimedia.org/r/99575
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Ibddef837f474161f278bfc58e19c245688607b2b
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/DonationInterface
Gerrit-Branch: master
Gerrit-Owner: Katie Horn 
Gerrit-Reviewer: Mwalker 
Gerrit-Reviewer: jenkins-bot

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Adding a special form definition for VN. This form will only... - change (mediawiki/core)

2013-12-05 Thread Mwalker (Code Review)
Mwalker has submitted this change and it was merged.

Change subject: Adding a special form definition for VN. This form will only 
allow USD in VN, until Globalcollect sorts out VND.
..


Adding a special form definition for VN.
This form will only allow USD in VN, until Globalcollect sorts out
VND.

Change-Id: Ie4f99c4185ca67d3961deb8380d94204b2612ded
---
M DonationInterfaceFormSettings.php
1 file changed, 11 insertions(+), 0 deletions(-)

Approvals:
  Mwalker: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/DonationInterfaceFormSettings.php 
b/DonationInterfaceFormSettings.php
index be2c467..49323ec 100644
--- a/DonationInterfaceFormSettings.php
+++ b/DonationInterfaceFormSettings.php
@@ -333,6 +333,17 @@
'countries' => array('-' => 'VN')
 );
 
+/* Special case for Vietnam while GC is still having problems.
+ * In the meantime: Visa & Mastercard, USD-only.
+ */
+$forms_whitelist['cc-vietnam'] = array (
+   'file' => $form_dirs['gc'] . '/cc/cc-vm.html',
+   'gateway' => 'globalcollect',
+   'payment_methods' => array ( 'cc' => array ( 'visa', 'mc' ) ),
+   'countries' => array ( '+' => 'VN' ),
+   'currencies' => array ( '+' => 'USD' ),
+);
+
 
 /
  * Name and Email-Only Test *

-- 
To view, visit https://gerrit.wikimedia.org/r/99442
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Ie4f99c4185ca67d3961deb8380d94204b2612ded
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: fundraising/1.22
Gerrit-Owner: Katie Horn 
Gerrit-Reviewer: Mwalker 
Gerrit-Reviewer: jenkins-bot

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Disabling all form classes other than RapidHTML, and setting... - change (mediawiki...DonationInterface)

2013-12-05 Thread Mwalker (Code Review)
Mwalker has submitted this change and it was merged.

Change subject: Disabling all form classes other than RapidHTML, and setting 
RapidHTML to be the new default.
..


Disabling all form classes other than RapidHTML, and setting
RapidHTML to be the new default.

Change-Id: I6c5b0b757da5768f4e54807d7c3dedfcf469ce65
---
M DonationInterface.php
1 file changed, 1 insertion(+), 3 deletions(-)

Approvals:
  Mwalker: Verified; Looks good to me, approved



diff --git a/DonationInterface.php b/DonationInterface.php
index 94ee9c6..810b9f8 100644
--- a/DonationInterface.php
+++ b/DonationInterface.php
@@ -106,8 +106,6 @@
 
 //load all possible form classes
 $wgAutoloadClasses['Gateway_Form'] = $donationinterface_dir . 
'gateway_forms/Form.php';
-$wgAutoloadClasses['Gateway_Form_TwoStepTwoColumn'] = $donationinterface_dir . 
'gateway_forms/TwoStepTwoColumn.php';
-$wgAutoloadClasses['Gateway_Form_TwoStepTwoColumnLetter'] = 
$donationinterface_dir . 'gateway_forms/TwoStepTwoColumnLetter.php';
 $wgAutoloadClasses['Gateway_Form_RapidHtml'] = $donationinterface_dir . 
'gateway_forms/RapidHtml.php';
 
 //GlobalCollect gateway classes
@@ -232,7 +230,7 @@
 
 $wgDonationInterfaceCSSVersion = 1;
 $wgDonationInterfaceTimeout = 5;
-$wgDonationInterfaceDefaultForm = 'TwoStepTwoColumnLetter';
+$wgDonationInterfaceDefaultForm = 'RapidHtml';
 
 /**
  * A string or array of strings for making tokens more secure

-- 
To view, visit https://gerrit.wikimedia.org/r/99555
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I6c5b0b757da5768f4e54807d7c3dedfcf469ce65
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/DonationInterface
Gerrit-Branch: master
Gerrit-Owner: Katie Horn 
Gerrit-Reviewer: Mwalker 

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Make status updates work again - change (mediawiki...OfflineContentGenerator)

2013-12-04 Thread Mwalker (Code Review)
Mwalker has submitted this change and it was merged.

Change subject: Make status updates work again
..


Make status updates work again

Change-Id: I44892322865e0cd505c9291824d88b02dce2d9eb
---
M latex_renderer
M lib/backend.js
2 files changed, 2 insertions(+), 4 deletions(-)

Approvals:
  Mwalker: Verified; Looks good to me, approved



diff --git a/latex_renderer b/latex_renderer
index 8ab4115..abcfd17 16
--- a/latex_renderer
+++ b/latex_renderer
-Subproject commit 8ab41158d0502bc71fd34be966348614fee28867
+Subproject commit abcfd174a68e6680206386af37c712a34027f3c4
diff --git a/lib/backend.js b/lib/backend.js
index 1b2f480..20f3e5e 100644
--- a/lib/backend.js
+++ b/lib/backend.js
@@ -159,8 +159,7 @@
});
child.on('message', function(message, handle) {
try {
-   var msgObj = JSON.parse(message);
-   jd.updateBundling(jobDetails, msgObj.file, 
msgObj.status, msgObj.percent);
+   jd.updateBundling(jobDetails, message.file, 
message.status, message.percent);
redisClient.hset(config.get('redis:status_set_name'), 
jobDetails.collectionId, JSON.stringify(jobDetails));
} catch (err) {
// Pass
@@ -218,8 +217,7 @@
});
child.on('message', function(message, handle) {
try {
-   var msgObj = JSON.parse(message);
-   jd.updateRendering(jobDetails, msgObj.file, 
msgObj.status, msgObj.percent);
+   jd.updateRendering(jobDetails, message.file, 
message.status, message.percent);
redisClient.hset(config.get('redis:status_set_name'), 
jobDetails.collectionId, JSON.stringify(jobDetails));
} catch (err) {
// Pass

-- 
To view, visit https://gerrit.wikimedia.org/r/99295
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I44892322865e0cd505c9291824d88b02dce2d9eb
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Collection/OfflineContentGenerator
Gerrit-Branch: master
Gerrit-Owner: Mwalker 
Gerrit-Reviewer: Mwalker 

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Make status updates work again - change (mediawiki...OfflineContentGenerator)

2013-12-04 Thread Mwalker (Code Review)
Mwalker has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/99295


Change subject: Make status updates work again
..

Make status updates work again

Change-Id: I44892322865e0cd505c9291824d88b02dce2d9eb
---
M latex_renderer
M lib/backend.js
2 files changed, 2 insertions(+), 4 deletions(-)


  git pull 
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Collection/OfflineContentGenerator
 refs/changes/95/99295/1

diff --git a/latex_renderer b/latex_renderer
index 8ab4115..abcfd17 16
--- a/latex_renderer
+++ b/latex_renderer
-Subproject commit 8ab41158d0502bc71fd34be966348614fee28867
+Subproject commit abcfd174a68e6680206386af37c712a34027f3c4
diff --git a/lib/backend.js b/lib/backend.js
index 1b2f480..20f3e5e 100644
--- a/lib/backend.js
+++ b/lib/backend.js
@@ -159,8 +159,7 @@
});
child.on('message', function(message, handle) {
try {
-   var msgObj = JSON.parse(message);
-   jd.updateBundling(jobDetails, msgObj.file, 
msgObj.status, msgObj.percent);
+   jd.updateBundling(jobDetails, message.file, 
message.status, message.percent);
redisClient.hset(config.get('redis:status_set_name'), 
jobDetails.collectionId, JSON.stringify(jobDetails));
} catch (err) {
// Pass
@@ -218,8 +217,7 @@
});
child.on('message', function(message, handle) {
try {
-   var msgObj = JSON.parse(message);
-   jd.updateRendering(jobDetails, msgObj.file, 
msgObj.status, msgObj.percent);
+   jd.updateRendering(jobDetails, message.file, 
message.status, message.percent);
redisClient.hset(config.get('redis:status_set_name'), 
jobDetails.collectionId, JSON.stringify(jobDetails));
} catch (err) {
// Pass

-- 
To view, visit https://gerrit.wikimedia.org/r/99295
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I44892322865e0cd505c9291824d88b02dce2d9eb
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Collection/OfflineContentGenerator
Gerrit-Branch: master
Gerrit-Owner: Mwalker 

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Updating required packages - change (mediawiki...latex_renderer)

2013-12-04 Thread Mwalker (Code Review)
Mwalker has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/99294


Change subject: Updating required packages
..

Updating required packages

Change-Id: I8b0ed3ab55b8ac5035c08f81bcd77bfe0cf74ae4
---
M README.md
1 file changed, 2 insertions(+), 1 deletion(-)


  git pull 
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Collection/OfflineContentGenerator/latex_renderer
 refs/changes/94/99294/1

diff --git a/README.md b/README.md
index 0f4a139..ac02cb0 100644
--- a/README.md
+++ b/README.md
@@ -21,7 +21,8 @@
 ```
 apt-get install texlive-xetex texlive-latex-recommended \
texlive-fonts-recommended texlive-lang-all latex-xcolor \
-   imagemagick librsvg2-bin unzip
+   imagemagick librsvg2-bin unzip texlive-latex-extra \
+   texlive-fonts-recommended
 ```
 
 Note that up-to-date LaTeX `hyperref` and `fontspec` packages are

-- 
To view, visit https://gerrit.wikimedia.org/r/99294
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I8b0ed3ab55b8ac5035c08f81bcd77bfe0cf74ae4
Gerrit-PatchSet: 1
Gerrit-Project: 
mediawiki/extensions/Collection/OfflineContentGenerator/latex_renderer
Gerrit-Branch: master
Gerrit-Owner: Mwalker 

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Updating required packages - change (mediawiki...latex_renderer)

2013-12-04 Thread Mwalker (Code Review)
Mwalker has submitted this change and it was merged.

Change subject: Updating required packages
..


Updating required packages

Change-Id: I8b0ed3ab55b8ac5035c08f81bcd77bfe0cf74ae4
---
M README.md
1 file changed, 2 insertions(+), 1 deletion(-)

Approvals:
  Mwalker: Verified; Looks good to me, approved



diff --git a/README.md b/README.md
index 0f4a139..ac02cb0 100644
--- a/README.md
+++ b/README.md
@@ -21,7 +21,8 @@
 ```
 apt-get install texlive-xetex texlive-latex-recommended \
texlive-fonts-recommended texlive-lang-all latex-xcolor \
-   imagemagick librsvg2-bin unzip
+   imagemagick librsvg2-bin unzip texlive-latex-extra \
+   texlive-fonts-recommended
 ```
 
 Note that up-to-date LaTeX `hyperref` and `fontspec` packages are

-- 
To view, visit https://gerrit.wikimedia.org/r/99294
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I8b0ed3ab55b8ac5035c08f81bcd77bfe0cf74ae4
Gerrit-PatchSet: 1
Gerrit-Project: 
mediawiki/extensions/Collection/OfflineContentGenerator/latex_renderer
Gerrit-Branch: master
Gerrit-Owner: Mwalker 
Gerrit-Reviewer: Mwalker 

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Minor fixes from the test box - change (mediawiki...OfflineContentGenerator)

2013-12-04 Thread Mwalker (Code Review)
Mwalker has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/99291


Change subject: Minor fixes from the test box
..

Minor fixes from the test box

Change-Id: I5707d9c56e5f6f72eb3a8ef14a30b5e905339144
---
M bundler
M defaults.json
M latex_renderer
M lib/backend.js
4 files changed, 2 insertions(+), 3 deletions(-)


  git pull 
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Collection/OfflineContentGenerator
 refs/changes/91/99291/1

diff --git a/bundler b/bundler
index edeb84d..29319fd 16
--- a/bundler
+++ b/bundler
-Subproject commit edeb84d91e8da02ddb6a62d0241d594c016d71da
+Subproject commit 29319fd0ac90bd1f8f2606c8eb2a926569e7332c
diff --git a/defaults.json b/defaults.json
index 86c5121..8458e05 100644
--- a/defaults.json
+++ b/defaults.json
@@ -22,13 +22,13 @@
},
"backend": {
"bundler": {
-   "bin": "./bundler/bin/mw-bundler",
+   "bin": "./bundler/bin/mw-ocg-bundler",
"parsoid_api": "http://localhost/";,
"parsoid_prefix": "localhost"
},
"writers": {
"rdf2latex": {
-   "bin": "./latex_renderer/bin/mw-latexer",
+   "bin": "./latex_renderer/bin/mw-ocg-latexer",
"extension": ".pdf"
}
},
diff --git a/latex_renderer b/latex_renderer
index d45073d..8ab4115 16
--- a/latex_renderer
+++ b/latex_renderer
-Subproject commit d45073d248832812f1fd9a127264906a44f73bc0
+Subproject commit 8ab41158d0502bc71fd34be966348614fee28867
diff --git a/lib/backend.js b/lib/backend.js
index 9b4bc11..1b2f480 100644
--- a/lib/backend.js
+++ b/lib/backend.js
@@ -207,7 +207,6 @@
renderFile
);
child = child_process.fork(config.get('backend:writers:' + writer + 
':bin'), [
-   '-t',
'-o', renderFile,
bundleFile
]);

-- 
To view, visit https://gerrit.wikimedia.org/r/99291
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I5707d9c56e5f6f72eb3a8ef14a30b5e905339144
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Collection/OfflineContentGenerator
Gerrit-Branch: master
Gerrit-Owner: Mwalker 

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Minor fixes from the test box - change (mediawiki...OfflineContentGenerator)

2013-12-04 Thread Mwalker (Code Review)
Mwalker has submitted this change and it was merged.

Change subject: Minor fixes from the test box
..


Minor fixes from the test box

Change-Id: I5707d9c56e5f6f72eb3a8ef14a30b5e905339144
---
M bundler
M defaults.json
M latex_renderer
M lib/backend.js
4 files changed, 2 insertions(+), 3 deletions(-)

Approvals:
  Mwalker: Verified; Looks good to me, approved



diff --git a/bundler b/bundler
index edeb84d..29319fd 16
--- a/bundler
+++ b/bundler
-Subproject commit edeb84d91e8da02ddb6a62d0241d594c016d71da
+Subproject commit 29319fd0ac90bd1f8f2606c8eb2a926569e7332c
diff --git a/defaults.json b/defaults.json
index 86c5121..8458e05 100644
--- a/defaults.json
+++ b/defaults.json
@@ -22,13 +22,13 @@
},
"backend": {
"bundler": {
-   "bin": "./bundler/bin/mw-bundler",
+   "bin": "./bundler/bin/mw-ocg-bundler",
"parsoid_api": "http://localhost/";,
"parsoid_prefix": "localhost"
},
"writers": {
"rdf2latex": {
-   "bin": "./latex_renderer/bin/mw-latexer",
+   "bin": "./latex_renderer/bin/mw-ocg-latexer",
"extension": ".pdf"
}
},
diff --git a/latex_renderer b/latex_renderer
index d45073d..8ab4115 16
--- a/latex_renderer
+++ b/latex_renderer
-Subproject commit d45073d248832812f1fd9a127264906a44f73bc0
+Subproject commit 8ab41158d0502bc71fd34be966348614fee28867
diff --git a/lib/backend.js b/lib/backend.js
index 9b4bc11..1b2f480 100644
--- a/lib/backend.js
+++ b/lib/backend.js
@@ -207,7 +207,6 @@
renderFile
);
child = child_process.fork(config.get('backend:writers:' + writer + 
':bin'), [
-   '-t',
'-o', renderFile,
bundleFile
]);

-- 
To view, visit https://gerrit.wikimedia.org/r/99291
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I5707d9c56e5f6f72eb3a8ef14a30b5e905339144
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Collection/OfflineContentGenerator
Gerrit-Branch: master
Gerrit-Owner: Mwalker 
Gerrit-Reviewer: Mwalker 

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Updating versions of dependencies - change (mediawiki...latex_renderer)

2013-12-04 Thread Mwalker (Code Review)
Mwalker has submitted this change and it was merged.

Change subject: Updating versions of dependencies
..


Updating versions of dependencies

Change-Id: I00cf00f56c26c54421a8325e9bf07085ad6c9750
---
M package.json
1 file changed, 1 insertion(+), 1 deletion(-)

Approvals:
  Mwalker: Verified; Looks good to me, approved



diff --git a/package.json b/package.json
index 8c91414..e615e5e 100644
--- a/package.json
+++ b/package.json
@@ -21,7 +21,7 @@
 "domino": "~1.0.13",
 "easyimage": "~0.1.3",
 "es6-shim": "~0.9.1",
-"gammalatex": "gammasoft/latex#0a16ea053e456062129f30e2a021485383001caa",
+"gammalatex": "~0.0.6",
 "readable-stream": "~1.1.9",
 "request": "~2.27.0",
 "sqlite3": "~2.1.19",

-- 
To view, visit https://gerrit.wikimedia.org/r/99289
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I00cf00f56c26c54421a8325e9bf07085ad6c9750
Gerrit-PatchSet: 1
Gerrit-Project: 
mediawiki/extensions/Collection/OfflineContentGenerator/latex_renderer
Gerrit-Branch: master
Gerrit-Owner: Mwalker 
Gerrit-Reviewer: Mwalker 

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Updating versions of dependencies - change (mediawiki...latex_renderer)

2013-12-04 Thread Mwalker (Code Review)
Mwalker has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/99289


Change subject: Updating versions of dependencies
..

Updating versions of dependencies

Change-Id: I00cf00f56c26c54421a8325e9bf07085ad6c9750
---
M package.json
1 file changed, 1 insertion(+), 1 deletion(-)


  git pull 
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Collection/OfflineContentGenerator/latex_renderer
 refs/changes/89/99289/1

diff --git a/package.json b/package.json
index 8c91414..e615e5e 100644
--- a/package.json
+++ b/package.json
@@ -21,7 +21,7 @@
 "domino": "~1.0.13",
 "easyimage": "~0.1.3",
 "es6-shim": "~0.9.1",
-"gammalatex": "gammasoft/latex#0a16ea053e456062129f30e2a021485383001caa",
+"gammalatex": "~0.0.6",
 "readable-stream": "~1.1.9",
 "request": "~2.27.0",
 "sqlite3": "~2.1.19",

-- 
To view, visit https://gerrit.wikimedia.org/r/99289
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I00cf00f56c26c54421a8325e9bf07085ad6c9750
Gerrit-PatchSet: 1
Gerrit-Project: 
mediawiki/extensions/Collection/OfflineContentGenerator/latex_renderer
Gerrit-Branch: master
Gerrit-Owner: Mwalker 

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] (FR #1066) Overly specific hack to bubble up DB_Error details - change (wikimedia...civicrm)

2013-12-04 Thread Mwalker (Code Review)
Mwalker has submitted this change and it was merged.

Change subject: (FR #1066) Overly specific hack to bubble up DB_Error details
..


(FR #1066) Overly specific hack to bubble up DB_Error details

Change-Id: I374ad4be818548c63278f50fd03b890b5ada01bf
---
M CRM/Core/Error.php
M api/api.php
M api/v3/utils.php
3 files changed, 20 insertions(+), 9 deletions(-)

Approvals:
  Mwalker: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/CRM/Core/Error.php b/CRM/Core/Error.php
index 852bd8f..9abb2a6 100644
--- a/CRM/Core/Error.php
+++ b/CRM/Core/Error.php
@@ -158,6 +158,7 @@
 $error['type']   = $pearError->getType();
 $error['user_info']  = $pearError->getUserInfo();
 $error['to_string']  = $pearError->toString();
+# FIXME: db-specific error codes are already captured in 
PEAR_Error.userInfo
 if (function_exists('mysql_error') &&
   mysql_error()
 ) {
diff --git a/api/api.php b/api/api.php
index 128f992..b4ee8f4 100644
--- a/api/api.php
+++ b/api/api.php
@@ -113,7 +113,7 @@
   return 0;
 }
 $data = array();
-$err = civicrm_api3_create_error($e->getMessage(), $data, $apiRequest);
+$err = civicrm_api3_create_error($e, $data, $apiRequest);
 if (CRM_Utils_Array::value('debug', $apiRequest['params'])) {
   $err['trace'] = $e->getTraceSafe();
 }
@@ -133,7 +133,7 @@
   return 0;
 }
 $data = $e->getExtraParams();
-$err = civicrm_api3_create_error($e->getMessage(), $data, $apiRequest, 
$e->getCode());
+$err = civicrm_api3_create_error($e, $data, $apiRequest, $e->getCode());
 if (CRM_Utils_Array::value('debug', 
CRM_Utils_Array::value('params',$apiRequest))) {
   $err['trace'] = $e->getTraceAsString();
 }
@@ -147,7 +147,7 @@
   return 0;
 }
 $data = array();
-$err = civicrm_api3_create_error($e->getMessage(), $data, $apiRequest, 
$e->getCode());
+$err = civicrm_api3_create_error($e, $data, $apiRequest, $e->getCode());
 if (CRM_Utils_Array::value('debug', $apiRequest['params'])) {
   $err['trace'] = $e->getTraceAsString();
 }
diff --git a/api/v3/utils.php b/api/v3/utils.php
index a205814..f0eb07d 100644
--- a/api/v3/utils.php
+++ b/api/v3/utils.php
@@ -152,7 +152,21 @@
 }
   }
   $data['is_error'] = 1;
-  $data['error_message'] = $msg;
+  if (is_callable(array($msg, 'getMessage'))) {
+$data['error_message'] = $msg->getMessage();
+
+// Digging into causes is an unfortunate hack.  begin hack.
+if (is_callable(array($msg, 'getCause'))) {
+  $msg = $msg->getCause();
+
+  if (is_callable(array($msg, 'getDebugInfo'))) {
+$data['debuginfo'] = json_encode($msg->getDebugInfo());
+  }
+}
+// 
+  } else {
+$data['error_message'] = $msg;
+  }
   if (is_array($dao) && isset($dao['params']) && is_array($dao['params']) && 
CRM_Utils_Array::value('api.has_parent', $dao['params'])) {
 throw new Exception('Error in call to ' . $dao['entity'] . '_' . 
$dao['action'] . ' : ' . $msg);
   }
@@ -1218,13 +1232,9 @@
 
 return civicrm_api3_create_success($creates, $params);
   }
-  catch(PEAR_Exception$e) {
-$tx->rollback();
-return civicrm_api3_create_error($e->getMessage());
-  }
   catch(Exception$e) {
 $tx->rollback();
-return civicrm_api3_create_error($e->getMessage());
+return civicrm_api3_create_error($e);
   }
 }
 

-- 
To view, visit https://gerrit.wikimedia.org/r/99286
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I374ad4be818548c63278f50fd03b890b5ada01bf
Gerrit-PatchSet: 1
Gerrit-Project: wikimedia/fundraising/crm/civicrm
Gerrit-Branch: master
Gerrit-Owner: Adamw 
Gerrit-Reviewer: Mwalker 
Gerrit-Reviewer: jenkins-bot

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] quit logging at OCD level - change (wikimedia...tools)

2013-12-04 Thread Mwalker (Code Review)
Mwalker has submitted this change and it was merged.

Change subject: quit logging at OCD level
..


quit logging at OCD level

The match is recorded in the DB with the job ID, so we're good for
getting infos later.

Change-Id: Ieba04e77f309779a33cc45f77a09517dae8f0e09
---
M dedupe/review_queue.py
1 file changed, 1 insertion(+), 1 deletion(-)

Approvals:
  Mwalker: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/dedupe/review_queue.py b/dedupe/review_queue.py
index 5f721b1..52c9d66 100644
--- a/dedupe/review_queue.py
+++ b/dedupe/review_queue.py
@@ -8,7 +8,7 @@
 
 @staticmethod
 def addMatch(job_id, oldId, newId, action, match):
-log.info("Found a match: {old} -> {new} : {match}".format(old=oldId, 
new=newId, match=match))
+#log.info("Found a match: {old} -> {new} : {match}".format(old=oldId, 
new=newId, match=match))
 db.get_db(config.drupal_schema).execute("""
 INSERT INTO donor_review_queue
 SET

-- 
To view, visit https://gerrit.wikimedia.org/r/99241
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Ieba04e77f309779a33cc45f77a09517dae8f0e09
Gerrit-PatchSet: 1
Gerrit-Project: wikimedia/fundraising/tools
Gerrit-Branch: master
Gerrit-Owner: Adamw 
Gerrit-Reviewer: Mwalker 
Gerrit-Reviewer: jenkins-bot

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] log my jobId - change (wikimedia...tools)

2013-12-04 Thread Mwalker (Code Review)
Mwalker has submitted this change and it was merged.

Change subject: log my jobId
..


log my jobId

Change-Id: I9392855801955cef02a211d1720487d9e6c2bd52
---
M dedupe/review_job.py
1 file changed, 2 insertions(+), 0 deletions(-)

Approvals:
  Mwalker: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/dedupe/review_job.py b/dedupe/review_job.py
index 1a02453..df9abcb 100644
--- a/dedupe/review_job.py
+++ b/dedupe/review_job.py
@@ -1,3 +1,4 @@
+from process.logging import Logger as log
 from process.globals import config
 from database import db
 
@@ -9,3 +10,4 @@
 dbc = db.get_db(config.drupal_schema)
 dbc.execute(sql, (name, ))
 self.id = dbc.last_insert_id()
+log.info("This job has ID %d" % self.id)

-- 
To view, visit https://gerrit.wikimedia.org/r/99242
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I9392855801955cef02a211d1720487d9e6c2bd52
Gerrit-PatchSet: 1
Gerrit-Project: wikimedia/fundraising/tools
Gerrit-Branch: master
Gerrit-Owner: Adamw 
Gerrit-Reviewer: Mwalker 
Gerrit-Reviewer: jenkins-bot

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Updating DonationInterface - change (mediawiki/core)

2013-12-03 Thread Mwalker (Code Review)
Mwalker has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/98904


Change subject: Updating DonationInterface
..

Updating DonationInterface

Change-Id: I22976529515bcd6ad8a7a514847e1dc87def0949
---
M extensions/DonationInterface
1 file changed, 0 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core 
refs/changes/04/98904/1

diff --git a/extensions/DonationInterface b/extensions/DonationInterface
index 19188fe..5ddb538 16
--- a/extensions/DonationInterface
+++ b/extensions/DonationInterface
-Subproject commit 19188fe2df2d110edeb4d5534c95eb64fb8970ea
+Subproject commit 5ddb538a34d0bd027f060a61554adbd0e939375a

-- 
To view, visit https://gerrit.wikimedia.org/r/98904
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I22976529515bcd6ad8a7a514847e1dc87def0949
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: fundraising/1.22
Gerrit-Owner: Mwalker 

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Updating DonationInterface - change (mediawiki/core)

2013-12-03 Thread Mwalker (Code Review)
Mwalker has submitted this change and it was merged.

Change subject: Updating DonationInterface
..


Updating DonationInterface

Change-Id: I22976529515bcd6ad8a7a514847e1dc87def0949
---
M extensions/DonationInterface
1 file changed, 0 insertions(+), 0 deletions(-)

Approvals:
  Mwalker: Verified; Looks good to me, approved



diff --git a/extensions/DonationInterface b/extensions/DonationInterface
index 19188fe..5ddb538 16
--- a/extensions/DonationInterface
+++ b/extensions/DonationInterface
-Subproject commit 19188fe2df2d110edeb4d5534c95eb64fb8970ea
+Subproject commit 5ddb538a34d0bd027f060a61554adbd0e939375a

-- 
To view, visit https://gerrit.wikimedia.org/r/98904
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I22976529515bcd6ad8a7a514847e1dc87def0949
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: fundraising/1.22
Gerrit-Owner: Mwalker 
Gerrit-Reviewer: Mwalker 

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Updating thank you templates - change (wikimedia...crm)

2013-12-03 Thread Mwalker (Code Review)
Mwalker has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/98891


Change subject: Updating thank you templates
..

Updating thank you templates

Change-Id: I52f4150fa676d7809c3a0804fcaf5aeb4192c7ba
---
M sites/all/modules/thank_you/templates/html/thank_you.de.html
M sites/all/modules/thank_you/templates/html/thank_you.en.html
M sites/all/modules/thank_you/templates/html/thank_you.zh.html
3 files changed, 112 insertions(+), 117 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/wikimedia/fundraising/crm 
refs/changes/91/98891/1

diff --git a/sites/all/modules/thank_you/templates/html/thank_you.de.html 
b/sites/all/modules/thank_you/templates/html/thank_you.de.html
index 68ec424..e5f8693 100644
--- a/sites/all/modules/thank_you/templates/html/thank_you.de.html
+++ b/sites/all/modules/thank_you/templates/html/thank_you.de.html
@@ -1,86 +1,74 @@
-Liebe(r) {{contact.first_name}},
-
-danke, dass Sie an die Wikimedia Foundation gespendet haben. Sie sind 
großartig!
-
-Es ist leicht, unsere Spendenbanner nicht zu beachten, und ich bin wirklich 
froh, dass
-Sie das nicht getan haben. So zahlt Wikipedia ihre Rechnungen --- durch 
Menschen wie Sie,
-die uns Geld spenden, so dass wir die Seite für jeden überall auf der Welt 
weiterhin
-kostenlos zugänglich machen können.
-
-Viele Menschen sagen mir, sie spenden für Wikipedia, weil sie sie nützlich 
finden.
-Sie vertrauen auf Wikipedia, auch wenn sie nicht perfekt ist, denn sie wissen, 
dass sie
-für sie geschrieben ist. Wikipedia ist nicht dafür gedacht, jemandes PR-Plan 
zu nützen
-oder eine spezielle Ideologie zu stärken oder Sie von irgendetwas überzeugen, 
das nicht
-wahr ist. Unser Ziel ist es, die Wahrheit zu sagen, und wir können dies dank 
Ihnen. Weil
-Sie diese Site finanziell unterstützen, bleiben wir unabhängig und in der 
Lage, das zu
-liefern, was Sie von Wikipedia brauchen und wollen. Genauso, wie es sein 
sollte.
-
-Sie sollten wissen: Ihre Spende deckt nicht nur unsere eigenen Kosten. Der
-durchschnittliche Spender zahlt für seine Benutzung der Wikipedia und zudem 
für die
-Kosten Hunderter anderer Leute. Ihre Spende sorgt dafür, dass Wikipedia für ein
-ehrgeiziges Mädchen in Bangalore zugänglich ist, das sich selbst das 
Programmieren
-beibringt. Für einen Heimarbeiter mittleren Alters aus Wien, bei dem gerade das
-Parkinson-Syndrom diagnostiziert worden ist. Für einen Schriftsteller, der das 
England
-der 1850er-Jahre erforscht. Für einen Zehnjährigen in San Salvador, der gerade 
Carl
-Sagan für sich entdeckt hat.
-
-Im Namen dieser Menschen und der halben Milliarde anderer Leser der 
Wikipedia und ihrer
-Schwesterseiten und -projekte danke ich Ihnen dafür, dass Sie sich mit uns 
darum
-bemühen, das gesamte Wissen der Menschheit für jeden verfügbar zu machen. Ihre 
Spende
-macht die Welt zu einem besseren Ort. Vielen Dank.
-
-Die meisten Menschen wissen nicht, dass Wikipedia nicht profitorientiert 
ist. Bitte
-leiten Sie diese E-Mail an einige Ihrer Freunde weiter, um auch sie zu einer 
Spende zu
-ermutigen. Und wenn Sie Interesse haben, sollten sie versuchen, neue 
Informationen in die
-Wikipedia einzutragen. Falls Sie einen Schreibfehler oder einen anderen 
kleinen Fehler
-entdecken, bitte verbessern sie ihn, und wenn Sie den Eindruck haben, dass 
etwas fehlt,
-bitte ergänzen Sie es.
-
-Ich schätze Ihr Vertrauen in uns und verspreche Ihnen, dass wir Ihr Geld 
sinnvoll
-verwenden werden.
-
-Danke,
+Sehr geehrter {{contact.first_name}},
+Sie sind fantastisch. VIELEN DANK für die Unterstützung der Wikimedia 
Foundation, welche
+gemeinnützig die Wikipedia und ihre Schwesterprojekte unterhält.
+Ihre Spende deckt nicht nur die Kosten die bei Ihrer Nutzung der Wikipedia 
entstehen, sondern
+auch die Kosten anderer Wikipedia-Nutzer.
+Wie der pensionierte Farmer im Norden New Yorks, der mit Wikipedia die 
Wissenschaft des Schlamms
+studiert und der Student in Kuala Lumpur, welcher die Wissenschaft der 
organischen Chemie erforscht.
+Der britische Mechaniker der, nachdem er sich bei einem Unfall den Rücken 
brach, Wikipedia
+verwendet um sich zum Web-Entwickler umzuschulen. Oder der Beamte in Finnland, 
der eine
+Offline-Version der Wikipedia für eine kleine Schule in Ghana entwickelt hat. 
Und der Familienvater
+der in Mexico City seine Töchter am Wochenende mit ins Museum nimmt und 
Wikipedia nutzt um ihnen zu
+helfen zu verstehen, was sie dort sehen.
+Die Aufgabe der Wikipedia ist es, alles menschliche Wissen, jedem Menschen 
auf der Welt in seiner
+Sprache zur Verfügung zu stellen. Dies ist ein sehr wagemutiges Vorhaben, aber 
mit 30 Millionen
+Artikeln in 287 Sprachen kann ich sagen, dass wir dank Ihnen und vielen 
Menschen wie Ihnen auf einem
+guten Weg sind.
+Im Namen der Wikimedia Foundation, und einer halben Milliarde 
Wikipedia-Lesern auf der ganzen
+Welt: Danke. Weil Sie helfen die Betriebskosten zu decken kann die Wikipedia 
werbefrei und
+unabhängig

[MediaWiki-commits] [Gerrit] Fix to allow the RapidError form to work with amazon payments - change (mediawiki...DonationInterface)

2013-12-02 Thread Mwalker (Code Review)
Mwalker has submitted this change and it was merged.

Change subject: Fix to allow the RapidError form to work with amazon payments
..


Fix to allow the RapidError form to work with amazon payments

Change-Id: I122ba25da7826d4878f5ee50abdbcde3f06f
---
M amazon_gateway/amazon_gateway.body.php
M gateway_common/gateway.adapter.php
2 files changed, 22 insertions(+), 1 deletion(-)

Approvals:
  Mwalker: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/amazon_gateway/amazon_gateway.body.php 
b/amazon_gateway/amazon_gateway.body.php
index c82fddd..c87ac32 100644
--- a/amazon_gateway/amazon_gateway.body.php
+++ b/amazon_gateway/amazon_gateway.body.php
@@ -65,7 +65,12 @@
$this->getOutput()->redirect( 
$this->adapter->getFailPage() );
}
} else {
-   $this->log( 'Failed to process gateway return. 
Tokens bad or no status.', LOG_ERR );
+   $specialform = $this->getRequest()->getText( 
'ffname', null );
+   if ( !is_null( $specialform ) && 
$this->adapter->isValidSpecialForm( $specialform ) ){
+   $this->displayForm();
+   } else {
+   $this->log( 'Failed to process gateway 
return. Tokens bad or no status.', LOG_ERR );
+   }
}
}
}
diff --git a/gateway_common/gateway.adapter.php 
b/gateway_common/gateway.adapter.php
index 2a43ee4..89c1c5d 100644
--- a/gateway_common/gateway.adapter.php
+++ b/gateway_common/gateway.adapter.php
@@ -3068,4 +3068,20 @@
return $params;
}
 
+   /**
+* isValidSpecialForm: Tells us if the ffname supplied is a valid
+* special form for the current gateway.
+* @var string $ffname The form name we want to try
+* @return boolean True if this is a valid special form, otherwise false
+*/
+   public function isValidSpecialForm( $ffname ){
+   $defn = GatewayFormChooser::getFormDefinition( $ffname );
+   if ( is_array( $defn ) &&
+   DataValidator::value_appears_in( 
$this->getIdentifier(), $defn['gateway'] ) &&
+   array_key_exists( 'special_type', $defn ) ){
+   return true;
+   }
+   return false;
+   }
+
 }

-- 
To view, visit https://gerrit.wikimedia.org/r/98738
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I122ba25da7826d4878f5ee50abdbcde3f06f
Gerrit-PatchSet: 4
Gerrit-Project: mediawiki/extensions/DonationInterface
Gerrit-Branch: master
Gerrit-Owner: Katie Horn 
Gerrit-Reviewer: Mwalker 
Gerrit-Reviewer: jenkins-bot

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Changing banner expiration to 10 months - change (operations/mediawiki-config)

2013-12-02 Thread Mwalker (Code Review)
Mwalker has submitted this change and it was merged.

Change subject: Changing banner expiration to 10 months
..


Changing banner expiration to 10 months

Change-Id: I9e2f2492324f4b003c7ae592f6ed10dee8c37cba
---
M wmf-config/CommonSettings.php
M wmf-config/InitialiseSettings.php
2 files changed, 9 insertions(+), 11 deletions(-)

Approvals:
  Mwalker: Looks good to me, approved



diff --git a/wmf-config/CommonSettings.php b/wmf-config/CommonSettings.php
index 9841dfc..e89e8b6 100644
--- a/wmf-config/CommonSettings.php
+++ b/wmf-config/CommonSettings.php
@@ -1434,13 +1434,15 @@
 
// Bug 49905
$wgNoticeUseLanguageConversion = true;
-}
-
-// Set CentralNotice banner hide cookie; Needs to be enabled for all wikis 
that display banners ~awjr 2011-11-07
-if ( $wmgSetNoticeHideBannersExpiration && $wmgUseCentralNotice ) {
-   // Expire the cookie on 2012-12-26. If this is in the past
-   // Special:HideBanners will set it to 2 weeks from today.
-   $wgNoticeHideBannersExpiration = 135648;
+   
+   // *** Hide Cookies ***
+   // A little bit of historical breadcrumbs:
+   // In 2012 we expired cookies on 2012-12-26, then everyone had
+   // a two week expiration until 2013-01-22 whereupon we introduced
+   // a year long expiration. For the 2013 fundraiser starting
+   // 2013-12-02 we're now using a 10 month expiration.
+   $wgNoticeCookieShortExpiry = 1209600; // 2 weeks
+   $wgNoticeCookieLongExpiry = 2592; // 10 months
 }
 
 // Load our site-specific l10n extensions
diff --git a/wmf-config/InitialiseSettings.php 
b/wmf-config/InitialiseSettings.php
index 31b7b5c..cc22d72 100644
--- a/wmf-config/InitialiseSettings.php
+++ b/wmf-config/InitialiseSettings.php
@@ -3955,10 +3955,6 @@
'metawiki' => true,
 ),
 
-'wmgSetNoticeHideBannersExpiration' => array(
-   'default' => true,
-),
-
 // For CentralNotice project pickers
 'wmgNoticeProject' => array(
'advisorywiki' => 'wikimedia',

-- 
To view, visit https://gerrit.wikimedia.org/r/98723
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I9e2f2492324f4b003c7ae592f6ed10dee8c37cba
Gerrit-PatchSet: 2
Gerrit-Project: operations/mediawiki-config
Gerrit-Branch: master
Gerrit-Owner: Mwalker 
Gerrit-Reviewer: Mwalker 
Gerrit-Reviewer: jenkins-bot

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Changing banner expiration to 10 months - change (operations/mediawiki-config)

2013-12-02 Thread Mwalker (Code Review)
Mwalker has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/98723


Change subject: Changing banner expiration to 10 months
..

Changing banner expiration to 10 months

Change-Id: I9e2f2492324f4b003c7ae592f6ed10dee8c37cba
---
M wmf-config/CommonSettings.php
M wmf-config/InitialiseSettings.php
2 files changed, 9 insertions(+), 4 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/operations/mediawiki-config 
refs/changes/23/98723/1

diff --git a/wmf-config/CommonSettings.php b/wmf-config/CommonSettings.php
index 9841dfc..0d78eba 100644
--- a/wmf-config/CommonSettings.php
+++ b/wmf-config/CommonSettings.php
@@ -1434,6 +1434,15 @@
 
// Bug 49905
$wgNoticeUseLanguageConversion = true;
+   
+   // *** Hide Cookies ***
+   // A little bit of historical breadcrumbs:
+   // In 2012 we expired cookies on 2012-12-26, then everyone had
+   // a two week expiration until 2013-01-22 whereupon we introduced
+   // a year long expiration. For the 2013 fundraiser starting
+   // 2013-12-02 we're now using a 10 month expiration.
+   $wgNoticeCookieShortExpiry = 1209600; // 2 weeks
+   $wgNoticeCookieLongExpiry = 2592; // 10 months
 }
 
 // Set CentralNotice banner hide cookie; Needs to be enabled for all wikis 
that display banners ~awjr 2011-11-07
diff --git a/wmf-config/InitialiseSettings.php 
b/wmf-config/InitialiseSettings.php
index 31b7b5c..cc22d72 100644
--- a/wmf-config/InitialiseSettings.php
+++ b/wmf-config/InitialiseSettings.php
@@ -3955,10 +3955,6 @@
'metawiki' => true,
 ),
 
-'wmgSetNoticeHideBannersExpiration' => array(
-   'default' => true,
-),
-
 // For CentralNotice project pickers
 'wmgNoticeProject' => array(
'advisorywiki' => 'wikimedia',

-- 
To view, visit https://gerrit.wikimedia.org/r/98723
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I9e2f2492324f4b003c7ae592f6ed10dee8c37cba
Gerrit-PatchSet: 1
Gerrit-Project: operations/mediawiki-config
Gerrit-Branch: master
Gerrit-Owner: Mwalker 

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Add the List-Unsubscribe Header - change (wikimedia...crm)

2013-12-02 Thread Mwalker (Code Review)
Mwalker has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/98708


Change subject: Add the List-Unsubscribe Header
..

Add the List-Unsubscribe Header

Per https://support.google.com/mail/answer/81126?hl=en gmail
really likes it if we provide a List-Unsubscribe header. This
may help us for long term deliverability.

Change-Id: I07a100349244169cbc7d848ba58a5b2876bd34c7
---
M sites/all/modules/thank_you/thank_you.module
M sites/all/modules/wmf_common/wmf_communication/Mailer.php
2 files changed, 22 insertions(+), 11 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/wikimedia/fundraising/crm 
refs/changes/08/98708/1

diff --git a/sites/all/modules/thank_you/thank_you.module 
b/sites/all/modules/thank_you/thank_you.module
index 7d51a62..b9bf5fe 100644
--- a/sites/all/modules/thank_you/thank_you.module
+++ b/sites/all/modules/thank_you/thank_you.module
@@ -340,7 +340,10 @@
}
watchdog("thank_you", "Sending ty email to: " . 
$email['to_address'], array(), WATCHDOG_INFO);
 
-   $email_success = $mailer->send( $email );
+   $email_success = $mailer->send(
+   $email,
+   array( 'List-Unsubscribe' => build_unsub_link( 
$contribution_id, $email['to_address'], $language) )
+   );
 
} catch (phpmailerException $e) {
 //TODO: don't assume phpmailer
@@ -613,14 +616,6 @@
 and $transaction->is_recurring
 and time() < mktime( 0, 0, 0, 5, 17, 2012);
 
-   $unsub_params = array(
-   "p" => "thankyou",
-   "c" => $contribution['id'],
-   "e" => $contact['email'],
-   "h" => sha1( $contribution['id'] . $contact['email'] . 
WMF_UNSUB_SALT ),
-   "uselang" => $language,
-   );
-
// Format the datestamp
$date = strtotime( $contribution['receive_date'] );
if ( $country === 'US' && strftime( "%m-%d" ) === '01-01' ) {
@@ -635,7 +630,7 @@
 "contribution" => $contribution,
 "recurring" => $recurring,
 "misseddonations" => $misseddonations,
-"unsubscribe_link" => variable_get( 'thank_you_unsubscribe_url', '' ) 
. '?' . http_build_query( $unsub_params, '', '&' ),
+"unsubscribe_link" => build_unsub_link( $contribution['id'], 
$contact['email'], $language ),
"language" => $language,
"country" => $country,
"locale" => "{$language}_{$country}",
@@ -651,4 +646,16 @@
 return $template->render( 'html' );
 }
 
+function build_unsub_link( $contributionId, $emailAddr, $language ) {
+   $unsub_params = array(
+   "p" => "thankyou",
+   "c" => $contributionId,
+   "e" => $emailAddr,
+   "h" => sha1( $contributionId . $emailAddr . WMF_UNSUB_SALT ),
+   "uselang" => $language,
+   );
+
+   return variable_get( 'thank_you_unsubscribe_url', '' ) . '?' . 
http_build_query( $unsub_params, '', '&' );
+}
+
 class ThankYouException extends Exception{};
diff --git a/sites/all/modules/wmf_common/wmf_communication/Mailer.php 
b/sites/all/modules/wmf_common/wmf_communication/Mailer.php
index 1408109..a73c8c4 100644
--- a/sites/all/modules/wmf_common/wmf_communication/Mailer.php
+++ b/sites/all/modules/wmf_common/wmf_communication/Mailer.php
@@ -37,7 +37,7 @@
 require_once( $path );
 }
 
-function send( $email ) {
+function send( $email, $headers = array() ) {
 watchdog( 'wmf_communication', t( "Sending an email to :to_address, 
using PHPMailer", array( ':to_address' => $email['to_address'] ) ), 
WATCHDOG_DEBUG );
 
 $mailer = new \PHPMailer( true );
@@ -50,6 +50,10 @@
 
 $mailer->AddAddress( $email['to_address'], $email['to_name'] );
 
+   foreach ($headers as $header => $value) {
+   $mailer->AddCustomHeader( "$header: $value" );
+   }
+
 $mailer->Subject = $email['subject'];
 # n.b. - must set AltBody after MsgHTML(), or the text will be 
overwritten.
 $mailer->MsgHTML( $email['html'] );

-- 
To view, visit https://gerrit.wikimedia.org/r/98708
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I07a100349244169cbc7d848ba58a5b2876bd34c7
Gerrit-PatchSet: 1
Gerrit-Project: wikimedia/fundraising/crm
Gerrit-Branch: master
Gerrit-Owner: Mwalker 

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] New thank you message - change (wikimedia...crm)

2013-12-02 Thread Mwalker (Code Review)
Mwalker has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/98705


Change subject: New thank you message
..

New thank you message

Change-Id: Ic523b7e34fc7be54ba2bb4c8394bdaab9a857c9d
---
A sites/all/modules/thank_you/generators/ThankYou20131202.php
M sites/all/modules/thank_you/make_thank_you.drush.inc
M sites/all/modules/thank_you/templates/html/thank_you.en.html
M sites/all/modules/thank_you/templates/html/thank_you.vi.html
M sites/all/modules/thank_you/thank_you.info
5 files changed, 177 insertions(+), 167 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/wikimedia/fundraising/crm 
refs/changes/05/98705/1

diff --git a/sites/all/modules/thank_you/generators/ThankYou20131202.php 
b/sites/all/modules/thank_you/generators/ThankYou20131202.php
new file mode 100644
index 000..570f5aa
--- /dev/null
+++ b/sites/all/modules/thank_you/generators/ThankYou20131202.php
@@ -0,0 +1,35 @@
+title = 
'Fundraising/Translation/Thank_you_email_20131202';
+   $this->proto_file = __DIR__ . 
'/../templates/html/thank_you.$1.html';
+
+   $this->substitutions = array(
+   '/\[given name\]/' => '{{contact.first_name}}',
+   '/\[date\]/' => '{{contribution.receive_date}}',
+   '/\[amount\]/' => 
'{{contribution.contribution_source|l10n_currency(locale)}}',
+   '/\[contributionId\]/' => '{{contribution.id}}',
+
+   '/\[ifRecurring\]/' => '{% if recurring %}',
+   '/\[endifRecurring\]/' => '{% endif %}',
+
+   '/\[#twitter ((?:(?!\]).)*)\]/' => 'https://twitter.com/Wikipedia";>$1',
+   '/\[#identica ((?:(?!\]).)*)\]/' => 'https://identi.ca/wikipedia";>$1',
+   '/\[#google ((?:(?!\]).)*)\]/' => 'https://plus.google.com/+Wikipedia/posts";>$1',
+   '/\[#facebook ((?:(?!\]).)*)\]/' => 'https://www.facebook.com/wikipedia";>$1',
+   '/\[#blog ((?:(?!\]).)*)\]/' => 'https://blog.wikimedia.org";>$1',
+   // TODO: DO WE HAVE TRANSLATIONS FOR THE ANNUAL REPORT
+   '/\[#annual ((?:(?!\]).)*)\]/' => 'https://wikimediafoundation.org/wiki/Annual_Report";>$1',
+   // TODO: DO WE HAVE TRANSLATIONS FOR THE ANNUAL PLAN
+   '/\[#plan ((?:(?!\]).)*)\]/' => 'http://wikimediafoundation.org/wiki/2013-2014_Annual_Plan_Questions_and_Answers";>$1',
+   // TODO: DO WE HAVE TRANSLATIONS FOR THE 5-YEAR, 
STRATEGIC PLAN
+   '/\[#strategic ((?:(?!\]).)*)\]/' => 'https://wikimediafoundation.org/wiki/Wikimedia_Movement_Strategic_Plan_Summary";>$1',
+   '/\[#shop ((?:(?!\]).)*)\]/' => 'https://shop.wikimedia.org";>$1',
+   '/\[#unsubscribe ((?:(?!\]).)*)\]/' => '$1',
+   '/\[#recurringCancel ((?:(?!\]).)*)\]/' => 'https://wikimediafoundation.org/wiki/Special:LandingCheck?landing_page=Cancel_or_change_recurring_payments&basic=true&country={{
 country }}&language={{ language }}">$1',
+   '/\[#translate ((?:(?!\]).)*)\]/' => 'https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-Fundraising%2FTranslation%2FThank_you_email_20131202";>$1',
+   '/\[#donate ((?:(?!\]).)*)\]/' => 'https://donate.wikimedia.org/";>$1',
+   );
+   }
+}
\ No newline at end of file
diff --git a/sites/all/modules/thank_you/make_thank_you.drush.inc 
b/sites/all/modules/thank_you/make_thank_you.drush.inc
index c4a4415..6a2f779 100644
--- a/sites/all/modules/thank_you/make_thank_you.drush.inc
+++ b/sites/all/modules/thank_you/make_thank_you.drush.inc
@@ -12,6 +12,11 @@
 
 
 function drush_make_thank_you() {
+   // Do this one first so we get old established email templates
$ty2012 = new \thank_you\generators\ThankYou2012();
$ty2012->execute();
+
+   // And then have any new ones overwrite
+   $ty2013 = new \thank_you\generators\ThankYou20131202();
+   $ty2013->execute();
 }
diff --git a/sites/all/modules/thank_you/templates/html/thank_you.en.html 
b/sites/all/modules/thank_you/templates/html/thank_you.en.html
index 271d80a..eea8de6 100644
--- a/sites/all/modules/thank_you/templates/html/thank_you.en.html
+++ b/sites/all/modules/thank_you/templates/html/thank_you.en.html
@@ -1,81 +1,67 @@
 Dear {{contact.first_name}},
-
-Thank you for donating to the Wikimedia Foundation. You are wonderful!
-
-It's easy to ignore our fundraising banners, and I'm really glad you 
didn't. This is
-how Wikipedia pays its bills --- people like you giving us money, so we can 
keep the site
-freely available for everyone around the world.
-
-People tell me they donate to Wikipedia because they find it useful, and 
they trust it
-because even though it's not perfect, they know it's written for them.

[MediaWiki-commits] [Gerrit] Improve status reporting. - change (mediawiki...latex_renderer)

2013-11-26 Thread Mwalker (Code Review)
Mwalker has submitted this change and it was merged.

Change subject: Improve status reporting.
..


Improve status reporting.

Add more granular status reporting; refactor the 'status' module.

Change-Id: I83457a8b5424d3bc035ee4870047c2c7531ea7c7
---
M lib/db.js
M lib/index.js
M lib/status.js
3 files changed, 112 insertions(+), 42 deletions(-)

Approvals:
  Mwalker: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/lib/db.js b/lib/db.js
index d331321..3e0668d 100644
--- a/lib/db.js
+++ b/lib/db.js
@@ -28,6 +28,18 @@
}).then(function() { return db; });
 };
 
+// Returns a promise for the number of keys (used to compute status 
percentages)
+Db.prototype.count = function() {
+   return this.db.then(function(db) {
+   return P.call(
+   db.get, db,
+   "SELECT count() AS count FROM kv_table;"
+   );
+   }).then(function(row) {
+   return row.count;
+   });
+};
+
 // Returns a promise for the value.
 Db.prototype.get = function(key, nojson) {
return this.db.then(function(db) {
diff --git a/lib/index.js b/lib/index.js
index cb9cc45..c78c63e 100644
--- a/lib/index.js
+++ b/lib/index.js
@@ -8,7 +8,6 @@
 var gammalatex = require('gammalatex');
 var guard = require('when/guard');
 var path = require('path');
-var status = require('./status');
 var stream = require('stream');
 var tmp = require('tmp');
 var url = require('url');
@@ -23,6 +22,7 @@
 var Db = require('./db');
 var DomUtil = require('./domutil');
 var P = require('./p');
+var StatusReporter = require('./status');
 
 var STD_HEADER = [
"%!TEX TS-program = xelatex",
@@ -532,17 +532,15 @@
 // return a promise for the builddir and control file contents
 // (after the bundle has been unpacked)
 var unpackBundle = function(options) {
-   var metabook, builddir;
+   var metabook, builddir, status = options.status;
 
-   status.createStage(0);
+   status.createStage(0, 'Unpacking content bundle');
 
// first create a temporary directory
return P.call(tmp.dir, tmp, {
prefix: json.name,
unsafeCleanup: !(options.debug || options.latex)
}).then(function(_builddir) {
-   status.report('Reading data bundle for document construction');
-
builddir = _builddir;
// make bundle and latex subdirs
return when.join(
@@ -552,7 +550,6 @@
}).then(function() {
// now unpack the zip archive
var bundledir = path.join(builddir, 'bundle');
-   options.log('Unpacking bundle in', bundledir);
return P.spawn('unzip', [ path.resolve( options.bundle ) ], {
cwd: bundledir
});
@@ -643,23 +640,27 @@
 // return a promise for a map from file resource URLs to on-disk filenames
 // (after image processing / renaming has been done)
 var processImages = function(metabook, builddir, options) {
-   options.log('Processing images');
+   var status = options.status;
var imagedir = path.join(builddir, 'bundle', 'images');
var imagemap = new Map();
var imagedb = new Db(
path.join(builddir, 'bundle', 'imageinfo.db'), { readonly: true 
}
);
-   var p = when.resolve();
-
-   status.createStage(imagedb.length);
+   var p = imagedb.count().then(function(n) {
+   status.createStage(n, 'Processing media files');
+   });
return imagedb.forEach(function(key, val) {
-   status.report('Processing media files for inclusion', 
val.filename);
+   var filename = val.filename;
+   p = p.then(function() {
+   // status reporting is serialized
+   status.report(null, filename || '');
+   });
+   if (!filename) { return; }
if (!/^https?:\/\//.test(key)) {
// compatibility with pediapress format
key = val.resource;
}
-   var filename = val.filename;
-   if (!filename) { return; }
+   // conversion/rename happens in parallel (new promise 'pp')
var pp = when.resolve({ imagedir: imagedir, filename: filename 
});
// convert gifs to pngs
if (val.mime === 'image/gif') {
@@ -687,8 +688,19 @@
});
 };
 
+// count total # of items (used for status reporting)
+var countItems = function(item) {
+   return (item.items || []).reduce(function(sum, item) {
+   return sum + countItems(item);
+   }, 1);
+};
+
 // Return an empty promise after the output.tex file has been written.
 var generateLatex = function(metabook, builddir, imagemap, options) {
+   var status = options.status;
+   status.createStage(countItems(metabook), 

[MediaWiki-commits] [Gerrit] Stating that OCG is an upstart job and setting config repo - change (operations/puppet)

2013-11-25 Thread Mwalker (Code Review)
Mwalker has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/97681


Change subject: Stating that OCG is an upstart job and setting config repo
..

Stating that OCG is an upstart job and setting config repo

Change-Id: Ic5eddc5b09b38ba4b018ac5afeea4b12bf38192f
---
M manifests/role/deployment.pp
M manifests/role/ocg.pp
2 files changed, 2 insertions(+), 1 deletion(-)


  git pull ssh://gerrit.wikimedia.org:29418/operations/puppet 
refs/changes/81/97681/1

diff --git a/manifests/role/deployment.pp b/manifests/role/deployment.pp
index cb91a87..55297c7 100644
--- a/manifests/role/deployment.pp
+++ b/manifests/role/deployment.pp
@@ -117,7 +117,7 @@
 },
 'ocg/config' => {
 'grain' => 'ocg',
-'upstream'  => 
'https://gerrit.wikimedia.org/r/operations/ocg-config',
+'upstream'  => 
'https://gerrit.wikimedia.org/r/operations/software/ocg-config',
 'checkout_module_calls' => {
 'service.restart' => ['ocg-collection'] 
 },
diff --git a/manifests/role/ocg.pp b/manifests/role/ocg.pp
index 3d7459d..f436105 100644
--- a/manifests/role/ocg.pp
+++ b/manifests/role/ocg.pp
@@ -77,6 +77,7 @@
 }
 
 service { 'ocg-collection':
+   provider   => upstart,
 ensure => running,
 hasstatus  => false,
 hasrestart => false,

-- 
To view, visit https://gerrit.wikimedia.org/r/97681
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ic5eddc5b09b38ba4b018ac5afeea4b12bf38192f
Gerrit-PatchSet: 1
Gerrit-Project: operations/puppet
Gerrit-Branch: production
Gerrit-Owner: Mwalker 

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Updated ThankYou templates - change (wikimedia...crm)

2013-11-25 Thread Mwalker (Code Review)
Mwalker has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/97666


Change subject: Updated ThankYou templates
..

Updated ThankYou templates

Change-Id: I12b805b0dadb99950f4833d092db682aa03ba4b8
---
M sites/all/modules/thank_you/templates/html/thank_you.ar.html
M sites/all/modules/thank_you/templates/html/thank_you.ast.html
M sites/all/modules/thank_you/templates/html/thank_you.az.html
M sites/all/modules/thank_you/templates/html/thank_you.ca.html
M sites/all/modules/thank_you/templates/html/thank_you.cs.html
M sites/all/modules/thank_you/templates/html/thank_you.cy.html
M sites/all/modules/thank_you/templates/html/thank_you.da.html
M sites/all/modules/thank_you/templates/html/thank_you.de.html
M sites/all/modules/thank_you/templates/html/thank_you.egl.html
M sites/all/modules/thank_you/templates/html/thank_you.en.html
M sites/all/modules/thank_you/templates/html/thank_you.eo.html
M sites/all/modules/thank_you/templates/html/thank_you.es.html
M sites/all/modules/thank_you/templates/html/thank_you.fr.html
M sites/all/modules/thank_you/templates/html/thank_you.gl.html
M sites/all/modules/thank_you/templates/html/thank_you.he.html
M sites/all/modules/thank_you/templates/html/thank_you.hu.html
M sites/all/modules/thank_you/templates/html/thank_you.id.html
M sites/all/modules/thank_you/templates/html/thank_you.it.html
M sites/all/modules/thank_you/templates/html/thank_you.ja.html
M sites/all/modules/thank_you/templates/html/thank_you.mn.html
M sites/all/modules/thank_you/templates/html/thank_you.ms.html
M sites/all/modules/thank_you/templates/html/thank_you.mt.html
M sites/all/modules/thank_you/templates/html/thank_you.nb.html
M sites/all/modules/thank_you/templates/html/thank_you.nl.html
M sites/all/modules/thank_you/templates/html/thank_you.ro.html
M sites/all/modules/thank_you/templates/html/thank_you.ru.html
M sites/all/modules/thank_you/templates/html/thank_you.so.html
M sites/all/modules/thank_you/templates/html/thank_you.sr.html
M sites/all/modules/thank_you/templates/html/thank_you.sv.html
M sites/all/modules/thank_you/templates/html/thank_you.te.html
M sites/all/modules/thank_you/templates/html/thank_you.th.html
M sites/all/modules/thank_you/templates/html/thank_you.vi.html
M sites/all/modules/thank_you/templates/html/thank_you.zh-cn.html
M sites/all/modules/thank_you/templates/html/thank_you.zh-hans.html
M sites/all/modules/thank_you/templates/html/thank_you.zh-hant.html
M sites/all/modules/thank_you/templates/html/thank_you.zh.html
36 files changed, 1,653 insertions(+), 2,430 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/wikimedia/fundraising/crm 
refs/changes/66/97666/1


-- 
To view, visit https://gerrit.wikimedia.org/r/97666
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I12b805b0dadb99950f4833d092db682aa03ba4b8
Gerrit-PatchSet: 1
Gerrit-Project: wikimedia/fundraising/crm
Gerrit-Branch: master
Gerrit-Owner: Mwalker 

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] (FR #1144) Damaged queue navigator - change (wikimedia...crm)

2013-11-25 Thread Mwalker (Code Review)
Mwalker has submitted this change and it was merged.

Change subject: (FR #1144) Damaged queue navigator
..


(FR #1144) Damaged queue navigator

Change-Id: I0aa2465cb945b3a5c13bdb5761a8b36a9b373a55
---
M sites/all/modules/wmf_common/Queue.php
M sites/all/modules/wmf_common/wmf_common.module
2 files changed, 70 insertions(+), 1 deletion(-)

Approvals:
  Mwalker: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/sites/all/modules/wmf_common/Queue.php 
b/sites/all/modules/wmf_common/Queue.php
index 3001f9c..ec79b1a 100644
--- a/sites/all/modules/wmf_common/Queue.php
+++ b/sites/all/modules/wmf_common/Queue.php
@@ -351,7 +351,11 @@
 function item_url( $msg ) {
 global $base_url;
 $queue = str_replace('/queue/', '', $msg->headers['destination'] );
-$correlationId = $msg->headers['correlation-id'];
+if ( !empty( $msg->headers['correlation-id'] ) ) {
+$correlationId = $msg->headers['correlation-id'];
+} else {
+$correlationId = $msg->headers['message-id'];
+}
 return "{$base_url}/queue/{$queue}/{$correlationId}";
 }
 
diff --git a/sites/all/modules/wmf_common/wmf_common.module 
b/sites/all/modules/wmf_common/wmf_common.module
index 808f707..6b4b8c6 100644
--- a/sites/all/modules/wmf_common/wmf_common.module
+++ b/sites/all/modules/wmf_common/wmf_common.module
@@ -69,6 +69,12 @@
 'page callback'=> 'drupal_get_form',
 'page arguments'   => array( 'wmf_common_settings' ),
   );
+  $items['queue/damaged'] = array(
+'title' => 'Browse all damaged messages',
+'access arguments' => array( 'manipulate queues' ),
+'page callback' => 'drupal_get_form',
+'page arguments' => array( 'wmf_common_queue_browser_form' ),
+  );
   $items['queue/%/%'] = array(
 'access arguments' => array( 'manipulate queues' ),
 'page callback' => 'drupal_get_form',
@@ -172,6 +178,65 @@
   return system_settings_form($form);
 }
 
+function wmf_common_queue_browser_form( $form, &$form_state ) {
+  $q = queue2civicrm_stomp();
+
+  # TODO: collect these using a hook
+  $queues = array(
+variable_get( 'queue2civicrm_subscription' ),
+variable_get( 'recurring_subscription' ),
+variable_get( 'refund_queue' ),
+variable_get( 'unsubscribe_queue' ),
+  );
+
+  # semi-FIXME: not actually paging
+  $allMsgs = array();
+  $pageSize = 100;
+  foreach ( $queues as $queue ) {
+$msgs = $q->peekMultiple( "{$queue}-damaged", $pageSize );
+$pageSize -= count( $msgs );
+$allMsgs = array_merge( $allMsgs, $msgs );
+  }
+
+  $rows = array();
+  foreach ( $allMsgs as $msg ) {
+$damaged_queue = str_replace( '/queue/', '', $msg->headers['destination'] 
);
+$queue = str_replace( '-damaged', '', $damaged_queue );
+if ( !empty( $msg->headers['correlation-id'] ) ) {
+  $id = $msg->headers['correlation-id'];
+} else {
+  $id = $msg->headers['message-id'];
+}
+
+$rows[] = array(
+  $msg->headers['error'],
+  $queue,
+  l( $id, $q->item_url( $msg ) ),
+);
+  }
+
+
+  $table_html = theme_table( array(
+'header' => array(
+  'Error',
+  'Queue',
+  'ID',
+),
+'rows' => $rows,
+'empty' => 'Nothing in the damaged queues!  Be very suspicious...',
+'attributes' => array(),
+'caption' => t( 'Damaged messages' ),
+'colgroups' => array(),
+'sticky' => true,
+  ) ).theme( 'pager' );
+
+  $form['table'] = array(
+'#markup' => $table_html,
+  );
+
+  return $form;
+}
+
 function wmf_common_queue_item_form( $form, &$form_state, $queue, 
$correlationId ) {
   $q = queue2civicrm_stomp();
 

-- 
To view, visit https://gerrit.wikimedia.org/r/96685
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I0aa2465cb945b3a5c13bdb5761a8b36a9b373a55
Gerrit-PatchSet: 3
Gerrit-Project: wikimedia/fundraising/crm
Gerrit-Branch: master
Gerrit-Owner: Adamw 
Gerrit-Reviewer: Adamw 
Gerrit-Reviewer: Katie Horn 
Gerrit-Reviewer: Mwalker 
Gerrit-Reviewer: jenkins-bot

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] API for peeking at head messages in a queue - change (wikimedia...crm)

2013-11-25 Thread Mwalker (Code Review)
Mwalker has submitted this change and it was merged.

Change subject: API for peeking at head messages in a queue
..


API for peeking at head messages in a queue

Change-Id: Id40d52d42a2348c15f0252016d55eeb256082f4a
---
M sites/all/modules/wmf_common/Queue.php
1 file changed, 26 insertions(+), 0 deletions(-)

Approvals:
  Mwalker: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/sites/all/modules/wmf_common/Queue.php 
b/sites/all/modules/wmf_common/Queue.php
index 66e4de1..3001f9c 100644
--- a/sites/all/modules/wmf_common/Queue.php
+++ b/sites/all/modules/wmf_common/Queue.php
@@ -115,6 +115,32 @@
 unset( $drupal_transaction );
 }
 
+/**
+ * Preview several messages from the head of a queue, without ack'ing.
+ */
+function peekMultiple( $queue, $count ) {
+# TODO: prefetchPolicy, timeout as params?
+
+$queue = $this->normalizeQueueName( $queue );
+$con = $this->getFreshConnection();
+
+$con->setReadTimeout( 1 );
+# FIXME: probably the wrong value--does this buffer include msgs not
+# specific to our subscription?
+$con->prefetchSize = $count;
+
+$con->subscribe( $queue, array( 'ack' => 'client' ) );
+$messages = array();
+while ( $con->hasFrameToRead() && $count-- >= 0 ) {
+$msg = $con->readFrame();
+if ( !$msg ) {
+break;
+}
+$messages[] = $msg;
+}
+return $messages;
+}
+
 function getByCorrelationId( $queue, $correlationId ) {
 $con = $this->getFreshConnection();
 $properties = array(

-- 
To view, visit https://gerrit.wikimedia.org/r/96820
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Id40d52d42a2348c15f0252016d55eeb256082f4a
Gerrit-PatchSet: 2
Gerrit-Project: wikimedia/fundraising/crm
Gerrit-Branch: master
Gerrit-Owner: Adamw 
Gerrit-Reviewer: Mwalker 
Gerrit-Reviewer: jenkins-bot

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Stomp readTimeout actually does anything - change (wikimedia...crm)

2013-11-25 Thread Mwalker (Code Review)
Mwalker has submitted this change and it was merged.

Change subject: Stomp readTimeout actually does anything
..


Stomp readTimeout actually does anything

Change-Id: I3d2387f0f61a914511461be4ec1b98d1ef0e7479
---
M sites/all/modules/queue2civicrm/Stomp.php
1 file changed, 3 insertions(+), 2 deletions(-)

Approvals:
  Mwalker: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/sites/all/modules/queue2civicrm/Stomp.php 
b/sites/all/modules/queue2civicrm/Stomp.php
index 23198ac..75134da 100644
--- a/sites/all/modules/queue2civicrm/Stomp.php
+++ b/sites/all/modules/queue2civicrm/Stomp.php
@@ -64,7 +64,7 @@
 protected $_username = '';
 protected $_password = '';
 protected $_sessionId;
-protected $_read_timeout_seconds = 60;
+protected $_read_timeout_seconds = 5;
 protected $_read_timeout_milliseconds = 0;
 
 /**
@@ -515,7 +515,8 @@
 return false;
 }
 
-stream_set_timeout($this->_socket, 5);
+stream_set_timeout($this->_socket,
+$this->_read_timeout_seconds + $this->_read_timeout_milliseconds / 
1000.0);
 $rb = 1024;
 $data = '';
 do {

-- 
To view, visit https://gerrit.wikimedia.org/r/96818
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I3d2387f0f61a914511461be4ec1b98d1ef0e7479
Gerrit-PatchSet: 1
Gerrit-Project: wikimedia/fundraising/crm
Gerrit-Branch: master
Gerrit-Owner: Adamw 
Gerrit-Reviewer: Mwalker 
Gerrit-Reviewer: jenkins-bot

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] (FR #1228) Stupid typo was killing recurring queue consume - change (wikimedia...crm)

2013-11-25 Thread Mwalker (Code Review)
Mwalker has submitted this change and it was merged.

Change subject: (FR #1228) Stupid typo was killing recurring queue consume
..


(FR #1228) Stupid typo was killing recurring queue consume

We were pulling something like the entire contribution_tracking db,
then converting to an associative array ;)

Change-Id: Ibb4335a0dd5b25daf3a76887d0bd2cf2204b5a2e
---
M sites/all/modules/wmf_common/wmf_civicrm/tracking.inc
1 file changed, 1 insertion(+), 0 deletions(-)

Approvals:
  Mwalker: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/sites/all/modules/wmf_common/wmf_civicrm/tracking.inc 
b/sites/all/modules/wmf_common/wmf_civicrm/tracking.inc
index dbdebb9..87526f5 100644
--- a/sites/all/modules/wmf_common/wmf_civicrm/tracking.inc
+++ b/sites/all/modules/wmf_common/wmf_civicrm/tracking.inc
@@ -55,6 +55,7 @@
 if ( array_key_exists( 'contribution_tracking_id', $msg ) ) {
 return db_select( 'contribution_tracking', 'contribution_tracking' )
 ->fields( 'contribution_tracking' )
+->condition( 'id', $msg['contribution_tracking_id'] )
 ->execute()
 ->fetchAssoc();
 } else {

-- 
To view, visit https://gerrit.wikimedia.org/r/97662
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Ibb4335a0dd5b25daf3a76887d0bd2cf2204b5a2e
Gerrit-PatchSet: 1
Gerrit-Project: wikimedia/fundraising/crm
Gerrit-Branch: master
Gerrit-Owner: Adamw 
Gerrit-Reviewer: Mwalker 
Gerrit-Reviewer: jenkins-bot

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Updating CN to master - change (mediawiki/core)

2013-11-25 Thread Mwalker (Code Review)
Mwalker has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/97646


Change subject: Updating CN to master
..

Updating CN to master

Change-Id: Ic673196ada9933bca255f21b7db55c446b77885d
---
M extensions/CentralNotice
1 file changed, 0 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core 
refs/changes/46/97646/1

diff --git a/extensions/CentralNotice b/extensions/CentralNotice
index 9bc43e2..7c82639 16
--- a/extensions/CentralNotice
+++ b/extensions/CentralNotice
-Subproject commit 9bc43e2c934d55044b6f2bf7e8652c98c1371489
+Subproject commit 7c8263972bb083c48b16e2d334ca5697eb6167a4

-- 
To view, visit https://gerrit.wikimedia.org/r/97646
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ic673196ada9933bca255f21b7db55c446b77885d
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: wmf/1.23wmf4
Gerrit-Owner: Mwalker 

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Fix aggbyTime time format for google docs - change (wikimedia...tools)

2013-11-25 Thread Mwalker (Code Review)
Mwalker has submitted this change and it was merged.

Change subject: Fix aggbyTime time format for google docs
..


Fix aggbyTime time format for google docs

Change-Id: I5bdc35fd806ea0b069d1e51ec5e47aac6ffa58fc
---
M SquidRipper/aggByTime.py
1 file changed, 2 insertions(+), 2 deletions(-)

Approvals:
  Mwalker: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/SquidRipper/aggByTime.py b/SquidRipper/aggByTime.py
index af7e886..abefe1c 100644
--- a/SquidRipper/aggByTime.py
+++ b/SquidRipper/aggByTime.py
@@ -67,7 +67,7 @@
 if ptime + (2 * interval) < ctime:
 for dataline in data[ptime]:
 sys.stdout.write("%s\t%s\t%s\n" % (
-
datetime.fromtimestamp(ptime).strftime('%y-%m-%dT%H:%M:%S'),
+
datetime.fromtimestamp(ptime).strftime('%Y-%m-%d %H:%M:%S'),
 colNameSep.join(dataline),
 data[ptime][dataline] * multiplier
 ))
@@ -85,7 +85,7 @@
 sys.stdout.write("\n")
 
 for ptime in sorted(data.keys()):
-outline = 
[datetime.fromtimestamp(ptime).strftime('%y-%m-%dT%H:%M:%S')]
+outline = [datetime.fromtimestamp(ptime).strftime('%Y-%m-%d 
%H:%M:%S')]
 for cols in uniqueCols:
 if cols in data[ptime]:
 outline.append(str(data[ptime][cols] * multiplier))

-- 
To view, visit https://gerrit.wikimedia.org/r/97550
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I5bdc35fd806ea0b069d1e51ec5e47aac6ffa58fc
Gerrit-PatchSet: 1
Gerrit-Project: wikimedia/fundraising/tools
Gerrit-Branch: master
Gerrit-Owner: Mwalker 
Gerrit-Reviewer: Mwalker 
Gerrit-Reviewer: jenkins-bot

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Fix aggbyTime time format for google docs - change (wikimedia...tools)

2013-11-25 Thread Mwalker (Code Review)
Mwalker has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/97550


Change subject: Fix aggbyTime time format for google docs
..

Fix aggbyTime time format for google docs

Change-Id: I5bdc35fd806ea0b069d1e51ec5e47aac6ffa58fc
---
M SquidRipper/aggByTime.py
1 file changed, 2 insertions(+), 2 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/wikimedia/fundraising/tools 
refs/changes/50/97550/1

diff --git a/SquidRipper/aggByTime.py b/SquidRipper/aggByTime.py
index af7e886..abefe1c 100644
--- a/SquidRipper/aggByTime.py
+++ b/SquidRipper/aggByTime.py
@@ -67,7 +67,7 @@
 if ptime + (2 * interval) < ctime:
 for dataline in data[ptime]:
 sys.stdout.write("%s\t%s\t%s\n" % (
-
datetime.fromtimestamp(ptime).strftime('%y-%m-%dT%H:%M:%S'),
+
datetime.fromtimestamp(ptime).strftime('%Y-%m-%d %H:%M:%S'),
 colNameSep.join(dataline),
 data[ptime][dataline] * multiplier
 ))
@@ -85,7 +85,7 @@
 sys.stdout.write("\n")
 
 for ptime in sorted(data.keys()):
-outline = 
[datetime.fromtimestamp(ptime).strftime('%y-%m-%dT%H:%M:%S')]
+outline = [datetime.fromtimestamp(ptime).strftime('%Y-%m-%d 
%H:%M:%S')]
 for cols in uniqueCols:
 if cols in data[ptime]:
 outline.append(str(data[ptime][cols] * multiplier))

-- 
To view, visit https://gerrit.wikimedia.org/r/97550
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I5bdc35fd806ea0b069d1e51ec5e47aac6ffa58fc
Gerrit-PatchSet: 1
Gerrit-Project: wikimedia/fundraising/tools
Gerrit-Branch: master
Gerrit-Owner: Mwalker 

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Force ltr direction on the time selector - change (mediawiki...CentralNotice)

2013-11-25 Thread Mwalker (Code Review)
Mwalker has submitted this change and it was merged.

Change subject: Force ltr direction on the time selector
..


Force ltr direction on the time selector

Change-Id: Ib6ff4618024a6aa90a19ba8a80845123fbae0ec7
---
M modules/ext.centralNotice.adminUi/centralnotice.css
M special/SpecialCentralNotice.php
2 files changed, 17 insertions(+), 3 deletions(-)

Approvals:
  Mwalker: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/modules/ext.centralNotice.adminUi/centralnotice.css 
b/modules/ext.centralNotice.adminUi/centralnotice.css
index ca885d3..5624efd 100644
--- a/modules/ext.centralNotice.adminUi/centralnotice.css
+++ b/modules/ext.centralNotice.adminUi/centralnotice.css
@@ -37,6 +37,9 @@
 #preferences .cn-date-column {
white-space:nowrap;
 }
+#preferences td.cn-timepicker {
+   text-align: left; /* To ensure RTL flipping */
+}
 #preferences input#clone {
margin-left:0.25em;
 }
diff --git a/special/SpecialCentralNotice.php b/special/SpecialCentralNotice.php
index befcdac..84872cd 100644
--- a/special/SpecialCentralNotice.php
+++ b/special/SpecialCentralNotice.php
@@ -230,6 +230,17 @@
}
}
 
+   protected function timeSelectorTd( $prefix, $editable, $timestamp = 
null ) {
+   return Xml::tags(
+   'td',
+   array(
+   'dir' => 'ltr', // Time is left-to-right in all 
languages
+   'class' => 'cn-timepicker',
+   ),
+   $this->timeSelector( $prefix, $editable, $timestamp )
+   );
+   }
+
protected function timeSelector( $prefix, $editable, $timestamp = null 
) {
if ( $editable ) {
$minutes = $this->paddedRange( 0, 59 );
@@ -559,7 +570,7 @@
// Start Time
$htmlOut .= Xml::openElement( 'tr' );
$htmlOut .= Xml::tags( 'td', array(), $this->msg( 
'centralnotice-start-time' )->escaped() );
-   $htmlOut .= Xml::tags( 'td', array(), 
$this->timeSelector( 'start', $this->editable, $start ) );
+   $htmlOut .= $this->timeSelectorTd( 'start', 
$this->editable, $start );
$htmlOut .= Xml::closeElement( 'tr' );
// Project
$htmlOut .= Xml::openElement( 'tr' );
@@ -930,7 +941,7 @@
// Start Time
$htmlOut .= Xml::openElement( 'tr' );
$htmlOut .= Xml::tags( 'td', array(), $this->msg( 
'centralnotice-start-time' )->escaped() );
-   $htmlOut .= Xml::tags( 'td', array(), 
$this->timeSelector( 'start', $this->editable, $start ) );
+   $htmlOut .= $this->timeSelectorTd( 'start', 
$this->editable, $start );
$htmlOut .= Xml::closeElement( 'tr' );
// End Date
$htmlOut .= Xml::openElement( 'tr' );
@@ -940,7 +951,7 @@
// End Time
$htmlOut .= Xml::openElement( 'tr' );
$htmlOut .= Xml::tags( 'td', array(), $this->msg( 
'centralnotice-end-time' )->escaped() );
-   $htmlOut .= Xml::tags( 'td', array(), 
$this->timeSelector( 'end', $this->editable, $end ) );
+   $htmlOut .= $this->timeSelectorTd( 'end', 
$this->editable, $end );
$htmlOut .= Xml::closeElement( 'tr' );
// Project
$htmlOut .= Xml::openElement( 'tr' );

-- 
To view, visit https://gerrit.wikimedia.org/r/94611
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Ib6ff4618024a6aa90a19ba8a80845123fbae0ec7
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/CentralNotice
Gerrit-Branch: master
Gerrit-Owner: Amire80 
Gerrit-Reviewer: Mwalker 
Gerrit-Reviewer: jenkins-bot

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Allow query campaign api to work for campaigns with space in... - change (mediawiki...CentralNotice)

2013-11-25 Thread Mwalker (Code Review)
Mwalker has submitted this change and it was merged.

Change subject: Allow query campaign api to work for campaigns with space in 
their names
..


Allow query campaign api to work for campaigns with space in their names

Bug: 57373
Change-Id: I0cdaabea1a9bf6aa87ebcc4250c1633deccfb625
---
M api/ApiCentralNoticeQueryCampaign.php
1 file changed, 1 insertion(+), 1 deletion(-)

Approvals:
  PiRSquared17: Looks good to me, but someone else must approve
  Mwalker: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/api/ApiCentralNoticeQueryCampaign.php 
b/api/ApiCentralNoticeQueryCampaign.php
index ca4adfb..e5a22bc 100644
--- a/api/ApiCentralNoticeQueryCampaign.php
+++ b/api/ApiCentralNoticeQueryCampaign.php
@@ -6,7 +6,7 @@
 * @var string sanitize campaign name
 * FIXME: the string is apparently unrestricted in Special:CentralNotice
 */
-   const CAMPAIGNS_FILTER = '/[a-zA-Z0-9_|\-]+/';
+   const CAMPAIGNS_FILTER = '/[a-zA-Z0-9 _|\-]+/';
 
public function execute() {
// Obtain the ApiResults object from the base

-- 
To view, visit https://gerrit.wikimedia.org/r/97170
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I0cdaabea1a9bf6aa87ebcc4250c1633deccfb625
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/CentralNotice
Gerrit-Branch: master
Gerrit-Owner: Aude 
Gerrit-Reviewer: Adamw 
Gerrit-Reviewer: Mwalker 
Gerrit-Reviewer: PiRSquared17 
Gerrit-Reviewer: jenkins-bot

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Further expand Status unit tests - change (mediawiki/core)

2013-11-25 Thread Mwalker (Code Review)
Mwalker has submitted this change and it was merged.

Change subject: Further expand Status unit tests
..


Further expand Status unit tests

When writing these I came accross a case that doesnt
quite seem right (I have left room for the test case
with a comment explaining)

Status now only has 4 untested methods

Change-Id: I61acf141de9f786793e8413d2d2ebb95e27e004d
---
M tests/phpunit/includes/StatusTest.php
1 file changed, 100 insertions(+), 5 deletions(-)

Approvals:
  Mwalker: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/tests/phpunit/includes/StatusTest.php 
b/tests/phpunit/includes/StatusTest.php
index 4f64e4f..21d0b02 100644
--- a/tests/phpunit/includes/StatusTest.php
+++ b/tests/phpunit/includes/StatusTest.php
@@ -245,7 +245,7 @@
}
 
/**
-* @dataProvider provideGetWikiText
+* @dataProvider provideGetWikiTextAndHtml
 * @covers Status::getWikiText
 * @todo test long and short context messages generated through this 
method
 *   this can not really be done now due to use of 
wfMessage()->plain()
@@ -256,11 +256,22 @@
}
 
/**
+* @dataProvider provideGetWikiTextAndHtml
+* @covers Status::getHtml
+* @todo test long and short context messages generated through this 
method
+*   this can not really be done now due to use of 
$this->getWikiText using wfMessage()->plain()
+*   It is possible to mock such methods but only if namespaces are 
used
+*/
+   public function testGetHtml( Status $status, $expected ) {
+   $this->assertEquals( $expected, $status->getHTML() );
+   }
+
+   /**
 * @return array of arrays with values;
 *0 => status object
 *1 => expected string (with no context)
 */
-   public static function provideGetWikiText() {
+   public static function provideGetWikiTextAndHtml() {
$testCases = array();
 
$testCases[ 'GoodStatus' ] = array(
@@ -308,12 +319,96 @@
return $testCases;
}
 
-   //todo test getMessage
+   /**
+* @dataProvider provideGetMessage
+* @covers Status::getMessage
+* @todo test long and short context messages generated through this 
method
+*/
+   public function testGetMessage( Status $status, $expectedParams = 
array(), $expectedKey ) {
+   $message = $status->getMessage();
+   $this->assertInstanceOf( 'Message', $message );
+   $this->assertEquals( $expectedParams, $message->getParams() );
+   $this->assertEquals( $expectedKey, $message->getKey() );
+   }
+
+   /**
+* @return array of arrays with values;
+*0 => status object
+*1 => expected Message Params (with no context)
+*/
+   public static function provideGetMessage() {
+   $testCases = array();
+
+   $testCases[ 'GoodStatus' ] = array(
+   new Status(),
+   array( "Status::getMessage called for a good result, 
this is incorrect\n" ),
+   'internalerror_info'
+   );
+
+   $status = new Status();
+   $status->ok = false;
+   $testCases[ 'GoodButNoError' ] = array(
+   $status,
+   array( "Status::getMessage: Invalid result object: no 
error text but not OK\n" ),
+   'internalerror_info'
+   );
+
+   $status = new Status();
+   $status->warning( 'fooBar!' );
+   $testCases[ '1StringWarning' ] = array(
+   $status,
+   array(),
+   "fooBar!"
+   );
+
+   //NOTE: this seems to return a string instead of a Message 
object...
+// $status = new Status();
+// $status->warning( 'fooBar!' );
+// $status->warning( 'fooBar2!' );
+// $testCases[ '2StringWarnings' ] = array(
+// $status,
+// array(),
+// ''
+// );
+
+   $status = new Status();
+   $status->warning( new Message( 'fooBar!', array( 'foo', 'bar' ) 
 ) );
+   $testCases[ '1MessageWarning' ] = array(
+   $status,
+   array( 'foo', 'bar' ),
+   "fooBar!",
+   );
+
+   //NOTE: this seems to return a string instead of a Message 
object...
+// $status = new Status();
+// $status->warning( new Message( 'fooBar!', array( 'foo', 'bar' ) 
) );
+// $status->warning( new Message( 'fooBar2!' ) );
+// $testCases[ '2MessageWarnings' ] = array(
+// $status,
+// arr

[MediaWiki-commits] [Gerrit] Add final tests for the Status class - change (mediawiki/core)

2013-11-25 Thread Mwalker (Code Review)
Mwalker has submitted this change and it was merged.

Change subject: Add final tests for the Status class
..


Add final tests for the Status class

This class now should have roughly 100%
unit test coverage! =]

Change-Id: I11383bb2c2a29c7c233d49680b5de560d2b31ee6
---
M tests/phpunit/includes/StatusTest.php
1 file changed, 65 insertions(+), 4 deletions(-)

Approvals:
  Mwalker: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/tests/phpunit/includes/StatusTest.php 
b/tests/phpunit/includes/StatusTest.php
index 21d0b02..67a9a22 100644
--- a/tests/phpunit/includes/StatusTest.php
+++ b/tests/phpunit/includes/StatusTest.php
@@ -126,6 +126,7 @@
 * @dataProvider provideMockMessageDetails
 * @covers Status::warning
 * @covers Status::getWarningsArray
+* @covers Status::getStatusArray
 */
public function testWarningWithMessage( $mockDetails ) {
$status = new Status();
@@ -147,6 +148,7 @@
 * @dataProvider provideMockMessageDetails
 * @covers Status::error
 * @covers Status::getErrorsArray
+* @covers Status::getStatusArray
 */
public function testErrorWithMessage( $mockDetails ) {
$status = new Status();
@@ -406,9 +408,68 @@
$this->assertEquals( $newMessage, $status->errors[0]['message'] 
);
}
 
-   //todo test getErrorMessage
-   //todo test getErrorMessageArray
-   //todo test getStatusArray
-   //todo test getErrorsByType
+   /**
+* @covers Status::getErrorMessage
+*/
+   public function testGetErrorMessage() {
+   $method = new ReflectionMethod( 'Status', 'getErrorMessage' );
+   $method->setAccessible(true);
+   $status = new Status();
+   $key = 'foo';
+   $params = array( 'bar' );
+
+   /** @var Message $message */
+   $message = $method->invoke( $status, array_merge( array( $key 
), $params ) );
+   $this->assertInstanceOf( 'Message', $message );
+   $this->assertEquals( $key, $message->getKey() );
+   $this->assertEquals( $params, $message->getParams() );
+   }
+
+   /**
+* @covers Status::getErrorMessageArray
+*/
+   public function testGetErrorMessageArray() {
+   $method = new ReflectionMethod( 'Status', 
'getErrorMessageArray' );
+   $method->setAccessible(true);
+   $status = new Status();
+   $key = 'foo';
+   $params = array( 'bar' );
+
+   /** @var Message[] $messageArray */
+   $messageArray = $method->invoke(
+   $status,
+   array(
+   array_merge( array( $key ), $params ),
+   array_merge( array( $key ), $params )
+   )
+   );
+
+   $this->assertInternalType( 'array', $messageArray );
+   $this->assertCount( 2, $messageArray );
+   foreach( $messageArray as $message ) {
+   $this->assertInstanceOf( 'Message', $message );
+   $this->assertEquals( $key, $message->getKey() );
+   $this->assertEquals( $params, $message->getParams() );
+   }
+   }
+
+   /**
+* @covers Status::getErrorsByType
+*/
+   public function testGetErrorsByType() {
+   $status = new Status();
+   $warning = new Message( 'warning111' );
+   $error = new Message( 'error111' );
+   $status->warning( $warning );
+   $status->error( $error );
+
+   $warnings = $status->getErrorsByType( 'warning' );
+   $errors = $status->getErrorsByType( 'error' );
+
+   $this->assertCount( 1, $warnings );
+   $this->assertCount( 1, $errors );
+   $this->assertEquals( $warning, $warnings[0]['message'] );
+   $this->assertEquals( $error, $errors[0]['message'] );
+   }
 
 }

-- 
To view, visit https://gerrit.wikimedia.org/r/96286
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I11383bb2c2a29c7c233d49680b5de560d2b31ee6
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Addshore 
Gerrit-Reviewer: Aude 
Gerrit-Reviewer: Mwalker 
Gerrit-Reviewer: jenkins-bot

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Update README; describe node packages with binary dependencies. - change (mediawiki...OfflineContentGenerator)

2013-11-25 Thread Mwalker (Code Review)
Mwalker has submitted this change and it was merged.

Change subject: Update README; describe node packages with binary dependencies.
..


Update README; describe node packages with binary dependencies.

Change-Id: Ia68fdc56a27c9c29a88ad412796310b3ae80be5c
---
M README.md
1 file changed, 13 insertions(+), 2 deletions(-)

Approvals:
  Mwalker: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/README.md b/README.md
index b9d1742..1da72c5 100644
--- a/README.md
+++ b/README.md
@@ -1,8 +1,19 @@
-Installation on Ubuntu
---
+# OfflineContentGenerator
 
+## Installation on Ubuntu
+
+```
 ln -s /mw-collection-ocg.conf /etc/init
 initctl reload-configuration
 service mw-collection-ocg start
+```
 
+## Binary node modules
+The following node binary modules are required:
+* hiredis
+* rconsole
+* sleep
+* sqlite3 (for `bundler` and `latex_renderer`)
 
+Be aware of these when deploying to a new node version or machine
+architecture.  You may need to `npm rebuild `.

-- 
To view, visit https://gerrit.wikimedia.org/r/96911
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Ia68fdc56a27c9c29a88ad412796310b3ae80be5c
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Collection/OfflineContentGenerator
Gerrit-Branch: master
Gerrit-Owner: Cscott 
Gerrit-Reviewer: Anomie 
Gerrit-Reviewer: Mwalker 
Gerrit-Reviewer: jenkins-bot

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Reference correct i18n parameter - change (mediawiki...Collection)

2013-11-22 Thread Mwalker (Code Review)
Mwalker has submitted this change and it was merged.

Change subject: Reference correct i18n parameter
..


Reference correct i18n parameter

Change-Id: I77d85352893d70bcde5669444deab18198d30b94
---
M Collection.i18n.php
1 file changed, 1 insertion(+), 1 deletion(-)

Approvals:
  Mwalker: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/Collection.i18n.php b/Collection.i18n.php
index b643d74..94ffedd 100644
--- a/Collection.i18n.php
+++ b/Collection.i18n.php
@@ -119,7 +119,7 @@
'coll-rendering_failed_title' => 'Rendering failed',
'coll-rendering_failed_text'  => "Generation of the 
document file has failed.
 
-$2",
+$1",
'coll-rendering_failed_status'=> "Status: $1",
'coll-failed_page_info_text_article' => 
'{{MediaWiki:Coll-helppage}}/Rendering page info text',
'coll-failed_collection_info_text_article' => 
'{{MediaWiki:Coll-helppage}}/Rendering collection info text',

-- 
To view, visit https://gerrit.wikimedia.org/r/96974
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I77d85352893d70bcde5669444deab18198d30b94
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Collection
Gerrit-Branch: OCG
Gerrit-Owner: Mwalker 
Gerrit-Reviewer: Mwalker 
Gerrit-Reviewer: jenkins-bot

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Reference correct i18n parameter - change (mediawiki...Collection)

2013-11-22 Thread Mwalker (Code Review)
Mwalker has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/96974


Change subject: Reference correct i18n parameter
..

Reference correct i18n parameter

Change-Id: I77d85352893d70bcde5669444deab18198d30b94
---
M Collection.i18n.php
1 file changed, 1 insertion(+), 1 deletion(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Collection 
refs/changes/74/96974/1

diff --git a/Collection.i18n.php b/Collection.i18n.php
index b643d74..94ffedd 100644
--- a/Collection.i18n.php
+++ b/Collection.i18n.php
@@ -119,7 +119,7 @@
'coll-rendering_failed_title' => 'Rendering failed',
'coll-rendering_failed_text'  => "Generation of the 
document file has failed.
 
-$2",
+$1",
'coll-rendering_failed_status'=> "Status: $1",
'coll-failed_page_info_text_article' => 
'{{MediaWiki:Coll-helppage}}/Rendering page info text',
'coll-failed_collection_info_text_article' => 
'{{MediaWiki:Coll-helppage}}/Rendering collection info text',

-- 
To view, visit https://gerrit.wikimedia.org/r/96974
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I77d85352893d70bcde5669444deab18198d30b94
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Collection
Gerrit-Branch: OCG
Gerrit-Owner: Mwalker 

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Report status - change (mediawiki...latex_renderer)

2013-11-22 Thread Mwalker (Code Review)
Mwalker has submitted this change and it was merged.

Change subject: Report status
..


Report status

Change-Id: I5e4c14381fb6185b2bf937787ae3aa35dd4ed0a1
---
M bin/mw-latexer
M lib/index.js
A lib/status.js
3 files changed, 44 insertions(+), 0 deletions(-)

Approvals:
  Mwalker: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/bin/mw-latexer b/bin/mw-latexer
index 912a714..e29744e 100755
--- a/bin/mw-latexer
+++ b/bin/mw-latexer
@@ -2,6 +2,7 @@
 
 var program = require('commander');
 var latexer = require('../');
+var status = require('../lib/status');
 
 program
.version(latexer.version)
@@ -49,6 +50,9 @@
log: log
 };
 
+// TODO: Update this number if we add more stages to the renderer
+status.setNumStages(4);
+
 latexer.convert(options).then(function(status) {
process.exit(status);
 }).done();
diff --git a/lib/index.js b/lib/index.js
index 7f52dd7..658b525 100644
--- a/lib/index.js
+++ b/lib/index.js
@@ -8,6 +8,7 @@
 var gammalatex = require('gammalatex');
 var guard = require('when/guard');
 var path = require('path');
+var status = require('./status');
 var stream = require('stream');
 var tmp = require('tmp');
 var url = require('url');
@@ -543,11 +544,16 @@
 // (after the bundle has been unpacked)
 var unpackBundle = function(options) {
var metabook, builddir;
+
+   status.createStage(0);
+
// first create a temporary directory
return P.call(tmp.dir, tmp, {
prefix: json.name,
unsafeCleanup: !options.debug
}).then(function(_builddir) {
+   status.report('Reading data bundle for document construction');
+
builddir = _builddir;
// now unpack the zip archive
options.log('Unpacking bundle in', builddir);
@@ -643,7 +649,10 @@
var imagedb =
new Db(path.join(builddir, 'imageinfo.db'), { readonly: true });
var p = when.resolve();
+
+   status.createStage(imagedb.length);
return imagedb.forEach(function(key, val) {
+   status.report('Processing media files for inclusion', 
val.filename);
if (!/^https?:\/\//.test(key)) {
// compatibility with pediapress format
key = val.resource;
@@ -691,6 +700,8 @@
}
var p = P.call(output.write, output, head);
 
+   status.createStage(1 /* XXX This should be the total number of nodes 
we're going to visit */);
+
// XXX HACK ONLY VISIT THE FIRST ITEM
var item = metabook;
while (item.type !== 'article') {
@@ -715,6 +726,7 @@
imagemap: imagemap,
parindent: false
});
+   status.report('Traversing page DOM', item.title); /* XXX Call 
this for every node */
visitor.visit(document.body);
var result = visitor.output.join('\n');
return P.call(output.write, output, result);
@@ -730,6 +742,9 @@
 // compiled to a PDF.
 var compileLatex = function(builddir, options) {
options.log('Compiling to PDF with xelatex');
+   status.createStage(0);
+   status.report('Compiling to PDF with xelatex');
+
gammalatex.setCompileCommand({
command: "xelatex",
options: [
diff --git a/lib/status.js b/lib/status.js
new file mode 100644
index 000..d5a4c04
--- /dev/null
+++ b/lib/status.js
@@ -0,0 +1,25 @@
+var percentComplete = 0;
+var currentStage = 0.0;
+var stagesInv = 1.0;
+var stageLen = 0;
+
+module.exports.setNumStages = function(num) {
+   stagesInv = 1.0 / num;
+};
+
+module.exports.createStage = function(len) {
+   percentComplete = currentStage * stagesInv;
+   currentStage += 1;
+   if (len) {
+   stageLen = 1.0 / len;
+   } else {
+   stageLen = 0;
+   }
+};
+
+module.exports.report = function(message, file) {
+   percentComplete += 100.0 * (stagesInv * stageLen);
+   if (process.send) {
+   process.send(JSON.stringify({status: message, file: file, 
percent: percentComplete}));
+   }
+};
\ No newline at end of file

-- 
To view, visit https://gerrit.wikimedia.org/r/96972
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I5e4c14381fb6185b2bf937787ae3aa35dd4ed0a1
Gerrit-PatchSet: 1
Gerrit-Project: 
mediawiki/extensions/Collection/OfflineContentGenerator/latex_renderer
Gerrit-Branch: master
Gerrit-Owner: Mwalker 
Gerrit-Reviewer: Mwalker 
Gerrit-Reviewer: jenkins-bot

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Accept status from renderer - change (mediawiki...OfflineContentGenerator)

2013-11-22 Thread Mwalker (Code Review)
Mwalker has submitted this change and it was merged.

Change subject: Accept status from renderer
..


Accept status from renderer

Change-Id: I6192547bc2d30d4f4ab1fc686871b74ffe916019
---
M lib/JobDetails.js
M lib/backend.js
2 files changed, 9 insertions(+), 3 deletions(-)

Approvals:
  Mwalker: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/lib/JobDetails.js b/lib/JobDetails.js
index d9fa63d..d28fb78 100644
--- a/lib/JobDetails.js
+++ b/lib/JobDetails.js
@@ -126,7 +126,7 @@
 
jd.status.status = status;
jd.status.article = article;
-   jd.status.progress = progress;
+   jd.status.progress = 0.5 * parseFloat(progress);
jd.status.page = null;
 };
 exports.updateRendering = function(jd, page, status, progress) {
@@ -135,7 +135,7 @@
 
jd.status.status = status;
jd.status.article = null;
-   jd.status.progress = progress;
+   jd.status.progress = 50 + 0.5 * parseFloat(progress);
jd.status.page = page;
 };
 exports.updateFinished = function(jd, file, url, type, name, length) {
diff --git a/lib/backend.js b/lib/backend.js
index febdd2d..9b4bc11 100644
--- a/lib/backend.js
+++ b/lib/backend.js
@@ -218,7 +218,13 @@
getNewItemFromQueue();
});
child.on('message', function(message, handle) {
-   console.info('Received message from child! %s', message);
+   try {
+   var msgObj = JSON.parse(message);
+   jd.updateRendering(jobDetails, msgObj.file, 
msgObj.status, msgObj.percent);
+   redisClient.hset(config.get('redis:status_set_name'), 
jobDetails.collectionId, JSON.stringify(jobDetails));
+   } catch (err) {
+   // Pass
+   }
});
child.on('exit', function(code, signal) {
console.info('Rendering child exited with: %s', code);

-- 
To view, visit https://gerrit.wikimedia.org/r/96971
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I6192547bc2d30d4f4ab1fc686871b74ffe916019
Gerrit-PatchSet: 2
Gerrit-Project: mediawiki/extensions/Collection/OfflineContentGenerator
Gerrit-Branch: master
Gerrit-Owner: Mwalker 
Gerrit-Reviewer: Mwalker 
Gerrit-Reviewer: jenkins-bot

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Report status - change (mediawiki...latex_renderer)

2013-11-22 Thread Mwalker (Code Review)
Mwalker has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/96972


Change subject: Report status
..

Report status

Change-Id: I5e4c14381fb6185b2bf937787ae3aa35dd4ed0a1
---
M bin/mw-latexer
M lib/index.js
A lib/status.js
3 files changed, 44 insertions(+), 0 deletions(-)


  git pull 
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Collection/OfflineContentGenerator/latex_renderer
 refs/changes/72/96972/1

diff --git a/bin/mw-latexer b/bin/mw-latexer
index 912a714..e29744e 100755
--- a/bin/mw-latexer
+++ b/bin/mw-latexer
@@ -2,6 +2,7 @@
 
 var program = require('commander');
 var latexer = require('../');
+var status = require('../lib/status');
 
 program
.version(latexer.version)
@@ -49,6 +50,9 @@
log: log
 };
 
+// TODO: Update this number if we add more stages to the renderer
+status.setNumStages(4);
+
 latexer.convert(options).then(function(status) {
process.exit(status);
 }).done();
diff --git a/lib/index.js b/lib/index.js
index 7f52dd7..658b525 100644
--- a/lib/index.js
+++ b/lib/index.js
@@ -8,6 +8,7 @@
 var gammalatex = require('gammalatex');
 var guard = require('when/guard');
 var path = require('path');
+var status = require('./status');
 var stream = require('stream');
 var tmp = require('tmp');
 var url = require('url');
@@ -543,11 +544,16 @@
 // (after the bundle has been unpacked)
 var unpackBundle = function(options) {
var metabook, builddir;
+
+   status.createStage(0);
+
// first create a temporary directory
return P.call(tmp.dir, tmp, {
prefix: json.name,
unsafeCleanup: !options.debug
}).then(function(_builddir) {
+   status.report('Reading data bundle for document construction');
+
builddir = _builddir;
// now unpack the zip archive
options.log('Unpacking bundle in', builddir);
@@ -643,7 +649,10 @@
var imagedb =
new Db(path.join(builddir, 'imageinfo.db'), { readonly: true });
var p = when.resolve();
+
+   status.createStage(imagedb.length);
return imagedb.forEach(function(key, val) {
+   status.report('Processing media files for inclusion', 
val.filename);
if (!/^https?:\/\//.test(key)) {
// compatibility with pediapress format
key = val.resource;
@@ -691,6 +700,8 @@
}
var p = P.call(output.write, output, head);
 
+   status.createStage(1 /* XXX This should be the total number of nodes 
we're going to visit */);
+
// XXX HACK ONLY VISIT THE FIRST ITEM
var item = metabook;
while (item.type !== 'article') {
@@ -715,6 +726,7 @@
imagemap: imagemap,
parindent: false
});
+   status.report('Traversing page DOM', item.title); /* XXX Call 
this for every node */
visitor.visit(document.body);
var result = visitor.output.join('\n');
return P.call(output.write, output, result);
@@ -730,6 +742,9 @@
 // compiled to a PDF.
 var compileLatex = function(builddir, options) {
options.log('Compiling to PDF with xelatex');
+   status.createStage(0);
+   status.report('Compiling to PDF with xelatex');
+
gammalatex.setCompileCommand({
command: "xelatex",
options: [
diff --git a/lib/status.js b/lib/status.js
new file mode 100644
index 000..d5a4c04
--- /dev/null
+++ b/lib/status.js
@@ -0,0 +1,25 @@
+var percentComplete = 0;
+var currentStage = 0.0;
+var stagesInv = 1.0;
+var stageLen = 0;
+
+module.exports.setNumStages = function(num) {
+   stagesInv = 1.0 / num;
+};
+
+module.exports.createStage = function(len) {
+   percentComplete = currentStage * stagesInv;
+   currentStage += 1;
+   if (len) {
+   stageLen = 1.0 / len;
+   } else {
+   stageLen = 0;
+   }
+};
+
+module.exports.report = function(message, file) {
+   percentComplete += 100.0 * (stagesInv * stageLen);
+   if (process.send) {
+   process.send(JSON.stringify({status: message, file: file, 
percent: percentComplete}));
+   }
+};
\ No newline at end of file

-- 
To view, visit https://gerrit.wikimedia.org/r/96972
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I5e4c14381fb6185b2bf937787ae3aa35dd4ed0a1
Gerrit-PatchSet: 1
Gerrit-Project: 
mediawiki/extensions/Collection/OfflineContentGenerator/latex_renderer
Gerrit-Branch: master
Gerrit-Owner: Mwalker 

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Accept status from renderer - change (mediawiki...OfflineContentGenerator)

2013-11-22 Thread Mwalker (Code Review)
Mwalker has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/96971


Change subject: Accept status from renderer
..

Accept status from renderer

Change-Id: I6192547bc2d30d4f4ab1fc686871b74ffe916019
---
M lib/JobDetails.js
M lib/backend.js
2 files changed, 9 insertions(+), 3 deletions(-)


  git pull 
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Collection/OfflineContentGenerator
 refs/changes/71/96971/1

diff --git a/lib/JobDetails.js b/lib/JobDetails.js
index d9fa63d..905b1f3 100644
--- a/lib/JobDetails.js
+++ b/lib/JobDetails.js
@@ -126,7 +126,7 @@
 
jd.status.status = status;
jd.status.article = article;
-   jd.status.progress = progress;
+   jd.status.progress = 0.5 * parseInt(progress);
jd.status.page = null;
 };
 exports.updateRendering = function(jd, page, status, progress) {
@@ -135,7 +135,7 @@
 
jd.status.status = status;
jd.status.article = null;
-   jd.status.progress = progress;
+   jd.status.progress = 50 + 0.5 * parseInt(progress);
jd.status.page = page;
 };
 exports.updateFinished = function(jd, file, url, type, name, length) {
diff --git a/lib/backend.js b/lib/backend.js
index febdd2d..9b4bc11 100644
--- a/lib/backend.js
+++ b/lib/backend.js
@@ -218,7 +218,13 @@
getNewItemFromQueue();
});
child.on('message', function(message, handle) {
-   console.info('Received message from child! %s', message);
+   try {
+   var msgObj = JSON.parse(message);
+   jd.updateRendering(jobDetails, msgObj.file, 
msgObj.status, msgObj.percent);
+   redisClient.hset(config.get('redis:status_set_name'), 
jobDetails.collectionId, JSON.stringify(jobDetails));
+   } catch (err) {
+   // Pass
+   }
});
child.on('exit', function(code, signal) {
console.info('Rendering child exited with: %s', code);

-- 
To view, visit https://gerrit.wikimedia.org/r/96971
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I6192547bc2d30d4f4ab1fc686871b74ffe916019
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Collection/OfflineContentGenerator
Gerrit-Branch: master
Gerrit-Owner: Mwalker 

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Report status of bundler - change (mediawiki...bundler)

2013-11-22 Thread Mwalker (Code Review)
Mwalker has submitted this change and it was merged.

Change subject: Report status of bundler
..


Report status of bundler

Change-Id: I3995d86bb71d99463fe59cbeb576ae54f730552a
---
M bin/mw-bundler
M lib/index.js
A lib/status.js
3 files changed, 52 insertions(+), 0 deletions(-)

Approvals:
  Mwalker: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/bin/mw-bundler b/bin/mw-bundler
index f08f9a9..9a4b380 100755
--- a/bin/mw-bundler
+++ b/bin/mw-bundler
@@ -12,6 +12,7 @@
 var Api = require('../lib/api');
 var P = require('../lib/p');
 var Siteinfo = require('../lib/siteinfo');
+var status = require('../lib/status');
 
 program
.version(bundler.version)
@@ -114,6 +115,9 @@
filerepos: undefined
 };
 
+// TODO: Update this number if we ever add more bundling stages
+status.setNumStages(4);
+
 // Load metabook.json
 if (program.metabook) {
// Load from file and parse JSON
@@ -203,10 +207,12 @@
 // add our extension fields, if missing
 p = p.then(function() {
var pp = when.resolve();
+   status.createStage(metabook.wikis.length + 1 /* commons wiki */);
if (program.toc !== 'auto') {
metabook.toc = !/^(no|false|off)$/i.test(program.toc);
}
metabook.wikis.forEach(function(w, idx) {
+   status.report('Obtaining source wiki metadata', w.baseurl);
if (!w.parsoid) {
w.parsoid = program.api;
}
@@ -228,6 +234,7 @@
 });
 // fudge a pointer to commonswiki if needed
 p = p.then(function() {
+   status.report('Loading commons metadata');
if (needsCommonsWiki) {
metabook.wikis.push(COMMONSWIKI);
return fetchFileRepos(metabook.wikis.length - 1);
diff --git a/lib/index.js b/lib/index.js
index 9728047..3a1ec0d 100644
--- a/lib/index.js
+++ b/lib/index.js
@@ -4,6 +4,7 @@
 var path = require('path');
 var rimraf = require('rimraf');
 var when = require('when');
+var status = require('./status');
 
 var P = require('./p');
 
@@ -57,6 +58,8 @@
 
// returns a promise which is resolved when the sourceMap has been
// filled with all the parsoid sources.
+   var articleCount = 0;
+   var imageCount = 0;
var fetchParsed = function() {
log('Fetching parsed article contents');
var parsoidDb = new Db(path.join(options.output, "parsoid.db"));
@@ -66,6 +69,7 @@
// a promise to parse a single item (from parsoid & php)
var doOneItem = function(item) {
item.wiki = item.wiki || 0;
+   status.report('Fetching articles', item.title);
return parsoid.fetch(item.wiki, item.title, 
item.revision)
.then(function(result) {
var revid = result.getRevisionId();
@@ -73,6 +77,7 @@
item.revision = '' + revid;
sourceMap.set(revid, result);

result.getImages().forEach(function(img) {
+   imageCount += 1;
imageMap.set(img.resource, img);
});
return parsoidDb.put(item.revision, 
result.text);
@@ -84,8 +89,19 @@
};
 
// recursively visit all items in the metabook info structure
+   // we do this twice; once to get the article count; and another 
to push tasks
+   (function visitToCount(item) {
+   if (item.type === 'article') {
+   articleCount += 1;
+   } else if (item.type === 'collection' || item.type === 
'chapter') {
+   item.items.forEach(visitToCount);
+   }
+   })(metabook);
+
+   status.createStage(articleCount);
(function visit(item) {
if (item.type === 'article') {
+   articleCount += 1;
tasks.push(doOneItem(item));
} else if (item.type === 'collection' || item.type === 
'chapter') {
item.items.forEach(visit);
@@ -110,10 +126,12 @@
// are downloaded.
var fetchImages = function() {
log('Fetching images');
+   status.createStage(imageCount);
var imageDb = new Db(path.join(options.output, "imageinfo.db"));
 
var tasks = [];
imageMap.forEach(function(img) {
+   status.report('Fetching media resources', img.filename);
var p = imageloader.fetchMetadata(img).then(function() {

[MediaWiki-commits] [Gerrit] Can now report status of bundler - change (mediawiki...OfflineContentGenerator)

2013-11-22 Thread Mwalker (Code Review)
Mwalker has submitted this change and it was merged.

Change subject: Can now report status of bundler
..


Can now report status of bundler

Change-Id: Ie7126e0ca4c8a232f7686a3de28c8007daff4c9d
---
M lib/backend.js
1 file changed, 7 insertions(+), 1 deletion(-)

Approvals:
  Mwalker: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/lib/backend.js b/lib/backend.js
index bed5683..febdd2d 100644
--- a/lib/backend.js
+++ b/lib/backend.js
@@ -158,7 +158,13 @@
getNewItemFromQueue();
});
child.on('message', function(message, handle) {
-   console.info('Received message from child! %s', message);
+   try {
+   var msgObj = JSON.parse(message);
+   jd.updateBundling(jobDetails, msgObj.file, 
msgObj.status, msgObj.percent);
+   redisClient.hset(config.get('redis:status_set_name'), 
jobDetails.collectionId, JSON.stringify(jobDetails));
+   } catch (err) {
+   // Pass
+   }
});
child.on('exit', function(code, signal) {
console.info('Bundler child exited with: %s', code);

-- 
To view, visit https://gerrit.wikimedia.org/r/96968
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Ie7126e0ca4c8a232f7686a3de28c8007daff4c9d
Gerrit-PatchSet: 2
Gerrit-Project: mediawiki/extensions/Collection/OfflineContentGenerator
Gerrit-Branch: master
Gerrit-Owner: Mwalker 
Gerrit-Reviewer: Mwalker 
Gerrit-Reviewer: jenkins-bot

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Report status of bundler - change (mediawiki...bundler)

2013-11-22 Thread Mwalker (Code Review)
Mwalker has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/96969


Change subject: Report status of bundler
..

Report status of bundler

Change-Id: I3995d86bb71d99463fe59cbeb576ae54f730552a
---
M bin/mw-bundler
M lib/index.js
A lib/status.js
3 files changed, 52 insertions(+), 0 deletions(-)


  git pull 
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Collection/OfflineContentGenerator/bundler
 refs/changes/69/96969/1

diff --git a/bin/mw-bundler b/bin/mw-bundler
index f08f9a9..9a4b380 100755
--- a/bin/mw-bundler
+++ b/bin/mw-bundler
@@ -12,6 +12,7 @@
 var Api = require('../lib/api');
 var P = require('../lib/p');
 var Siteinfo = require('../lib/siteinfo');
+var status = require('../lib/status');
 
 program
.version(bundler.version)
@@ -114,6 +115,9 @@
filerepos: undefined
 };
 
+// TODO: Update this number if we ever add more bundling stages
+status.setNumStages(4);
+
 // Load metabook.json
 if (program.metabook) {
// Load from file and parse JSON
@@ -203,10 +207,12 @@
 // add our extension fields, if missing
 p = p.then(function() {
var pp = when.resolve();
+   status.createStage(metabook.wikis.length + 1 /* commons wiki */);
if (program.toc !== 'auto') {
metabook.toc = !/^(no|false|off)$/i.test(program.toc);
}
metabook.wikis.forEach(function(w, idx) {
+   status.report('Obtaining source wiki metadata', w.baseurl);
if (!w.parsoid) {
w.parsoid = program.api;
}
@@ -228,6 +234,7 @@
 });
 // fudge a pointer to commonswiki if needed
 p = p.then(function() {
+   status.report('Loading commons metadata');
if (needsCommonsWiki) {
metabook.wikis.push(COMMONSWIKI);
return fetchFileRepos(metabook.wikis.length - 1);
diff --git a/lib/index.js b/lib/index.js
index 9728047..3a1ec0d 100644
--- a/lib/index.js
+++ b/lib/index.js
@@ -4,6 +4,7 @@
 var path = require('path');
 var rimraf = require('rimraf');
 var when = require('when');
+var status = require('./status');
 
 var P = require('./p');
 
@@ -57,6 +58,8 @@
 
// returns a promise which is resolved when the sourceMap has been
// filled with all the parsoid sources.
+   var articleCount = 0;
+   var imageCount = 0;
var fetchParsed = function() {
log('Fetching parsed article contents');
var parsoidDb = new Db(path.join(options.output, "parsoid.db"));
@@ -66,6 +69,7 @@
// a promise to parse a single item (from parsoid & php)
var doOneItem = function(item) {
item.wiki = item.wiki || 0;
+   status.report('Fetching articles', item.title);
return parsoid.fetch(item.wiki, item.title, 
item.revision)
.then(function(result) {
var revid = result.getRevisionId();
@@ -73,6 +77,7 @@
item.revision = '' + revid;
sourceMap.set(revid, result);

result.getImages().forEach(function(img) {
+   imageCount += 1;
imageMap.set(img.resource, img);
});
return parsoidDb.put(item.revision, 
result.text);
@@ -84,8 +89,19 @@
};
 
// recursively visit all items in the metabook info structure
+   // we do this twice; once to get the article count; and another 
to push tasks
+   (function visitToCount(item) {
+   if (item.type === 'article') {
+   articleCount += 1;
+   } else if (item.type === 'collection' || item.type === 
'chapter') {
+   item.items.forEach(visitToCount);
+   }
+   })(metabook);
+
+   status.createStage(articleCount);
(function visit(item) {
if (item.type === 'article') {
+   articleCount += 1;
tasks.push(doOneItem(item));
} else if (item.type === 'collection' || item.type === 
'chapter') {
item.items.forEach(visit);
@@ -110,10 +126,12 @@
// are downloaded.
var fetchImages = function() {
log('Fetching images');
+   status.createStage(imageCount);
var imageDb = new Db(path.join(options.output, "imageinfo.db"));
 
var tasks = [];
imageMap.forEach(function(img) {
+   status.report('Fetching media resources', img.filename);

[MediaWiki-commits] [Gerrit] Can now report status of bundler - change (mediawiki...OfflineContentGenerator)

2013-11-22 Thread Mwalker (Code Review)
Mwalker has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/96968


Change subject: Can now report status of bundler
..

Can now report status of bundler

Change-Id: Ie7126e0ca4c8a232f7686a3de28c8007daff4c9d
---
M lib/backend.js
1 file changed, 7 insertions(+), 1 deletion(-)


  git pull 
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Collection/OfflineContentGenerator
 refs/changes/68/96968/1

diff --git a/lib/backend.js b/lib/backend.js
index bed5683..f83cfff 100644
--- a/lib/backend.js
+++ b/lib/backend.js
@@ -158,7 +158,13 @@
getNewItemFromQueue();
});
child.on('message', function(message, handle) {
-   console.info('Received message from child! %s', message);
+   try {
+   msgObj = JSON.parse(message);
+   jd.updateBundling(jobDetails, msgObj.file, 
msgObj.status, msgObj.percent);
+   redisClient.hset(config.get('redis:status_set_name'), 
jobDetails.collectionId, JSON.stringify(jobDetails));
+   } catch (err) {
+   // Pass
+   }
});
child.on('exit', function(code, signal) {
console.info('Bundler child exited with: %s', code);

-- 
To view, visit https://gerrit.wikimedia.org/r/96968
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ie7126e0ca4c8a232f7686a3de28c8007daff4c9d
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Collection/OfflineContentGenerator
Gerrit-Branch: master
Gerrit-Owner: Mwalker 

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Status bugfixes and other things - change (mediawiki...OfflineContentGenerator)

2013-11-21 Thread Mwalker (Code Review)
Mwalker has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/96948


Change subject: Status bugfixes and other things
..

Status bugfixes and other things

Change-Id: I9c5f94c0e583bccd42fb1ea752b9eb1367391f34
---
M lib/JobDetails.js
M lib/backend.js
2 files changed, 13 insertions(+), 9 deletions(-)


  git pull 
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Collection/OfflineContentGenerator
 refs/changes/48/96948/1

diff --git a/lib/JobDetails.js b/lib/JobDetails.js
index b32eea6..d9fa63d 100644
--- a/lib/JobDetails.js
+++ b/lib/JobDetails.js
@@ -33,14 +33,14 @@
 JobStatus.prototype.updateByArticle = function updateByArticle(article, 
status, progress) {
this.status = status;
this.article = article;
-   this.process = progress;
+   this.progress = progress;
 
this.page = null;
 };
 JobStatus.prototype.updateByPage = function updateByPage(page, status, 
progress) {
this.status = status;
this.page = page;
-   this.process = progress;
+   this.progress = progress;
 
this.article = null;
 };
@@ -126,7 +126,7 @@
 
jd.status.status = status;
jd.status.article = article;
-   jd.status.process = progress;
+   jd.status.progress = progress;
jd.status.page = null;
 };
 exports.updateRendering = function(jd, page, status, progress) {
@@ -135,7 +135,7 @@
 
jd.status.status = status;
jd.status.article = null;
-   jd.status.process = progress;
+   jd.status.progress = progress;
jd.status.page = page;
 };
 exports.updateFinished = function(jd, file, url, type, name, length) {
@@ -145,13 +145,13 @@
 
// Stupid collection stuff
jd.url = url;
-   jd.type = type;
-   jd.name = name;
-   jd.length = length;
+   jd.content_type = type;
+   jd.content_disposition = 'attachment; filename="' + name + '"';
+   jd.content_length = length;
 
jd.status.status = '';
jd.status.article = null;
-   jd.status.process = 100;
+   jd.status.progress = 100;
jd.status.page = '';
 };
 exports.updateError = function(jd, error) {
diff --git a/lib/backend.js b/lib/backend.js
index b6064bb..bed5683 100644
--- a/lib/backend.js
+++ b/lib/backend.js
@@ -171,8 +171,9 @@
);
getNewItemFromQueue();
} else {
-   // OK: Bundler completed, now launch the renderer
+   // OK: Bundler completed, now launch the renderer and 
delete the metabook
console.debug('Bundle completed successfully!');
+   fs.unlink(metabookPath);
runRenderer(jobDetails, bundleFile);
}
});
@@ -237,6 +238,9 @@
} else {
console.debug('Render completed 
successfully! Download URL: %s', url);
 
+   // Delete the temporary metabook
+   fs.unlink(bundleFile);
+
// And because it's even more dumb we 
have to set the suggested file name, content size
// and content type...
jd.updateFinished(

-- 
To view, visit https://gerrit.wikimedia.org/r/96948
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I9c5f94c0e583bccd42fb1ea752b9eb1367391f34
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Collection/OfflineContentGenerator
Gerrit-Branch: master
Gerrit-Owner: Mwalker 

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Adding more details collection should know but doesnt - change (mediawiki...OfflineContentGenerator)

2013-11-21 Thread Mwalker (Code Review)
Mwalker has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/96946


Change subject: Adding more details collection should know but doesnt
..

Adding more details collection should know but doesnt

Change-Id: I36843f7c68ced5c0446bcdf71c6b7486249e1e69
---
M lib/JobDetails.js
M lib/backend.js
2 files changed, 35 insertions(+), 6 deletions(-)


  git pull 
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Collection/OfflineContentGenerator
 refs/changes/46/96946/1

diff --git a/lib/JobDetails.js b/lib/JobDetails.js
index d6de120..b32eea6 100644
--- a/lib/JobDetails.js
+++ b/lib/JobDetails.js
@@ -105,6 +105,10 @@
 * @type {null}
 */
this.url = null;
+
+   this.content_type = null;
+   this.content_disposition = null;
+   this.content_length = null;
 };
 
 exports.updatePending = function(jd, status, progress) {
@@ -134,11 +138,16 @@
jd.status.process = progress;
jd.status.page = page;
 };
-exports.updateFinished = function(jd, file, url) {
+exports.updateFinished = function(jd, file, url, type, name, length) {
jd.timestamp = new Date();
jd.state = 'finished';
jd.renderedFileLoc = file;
+
+   // Stupid collection stuff
jd.url = url;
+   jd.type = type;
+   jd.name = name;
+   jd.length = length;
 
jd.status.status = '';
jd.status.article = null;
diff --git a/lib/backend.js b/lib/backend.js
index 27c16e0..b6064bb 100644
--- a/lib/backend.js
+++ b/lib/backend.js
@@ -23,6 +23,7 @@
 
 var child_process = require('child_process');
 var fs = require('fs');
+var mime = require('mime');
 var path = require('path');
 var os = require('os');
 
@@ -229,12 +230,31 @@
':' + (config.get('frontend:port') || '80') +
'/?command=download&collection_id=' + 
jobDetails.collectionId + '&writer=' + writer;
 
-   console.debug('Render completed successfully! Download 
URL: %s', url);
+   fs.stat(renderFile, function (err, stats) {
+   if (err) {
+   console.debug('Could not stat file 
"%s". Render failed', renderFile);
+   getNewItemFromQueue();
+   } else {
+   console.debug('Render completed 
successfully! Download URL: %s', url);
 
-   jd.updateFinished(jobDetails, renderFile, url);
-   redisClient.hset(config.get('redis:status_set_name'), 
jobDetails.collectionId, JSON.stringify(jobDetails));
-
-   getNewItemFromQueue();
+   // And because it's even more dumb we 
have to set the suggested file name, content size
+   // and content type...
+   jd.updateFinished(
+   jobDetails,
+   renderFile,
+   url,
+   mime.lookup(renderFile),
+   jobDetails.metabook.title,
+   stats.size
+   );
+   redisClient.hset(
+   
config.get('redis:status_set_name'),
+   jobDetails.collectionId,
+   JSON.stringify(jobDetails),
+   getNewItemFromQueue
+   );
+   }
+   });
}
});
jd.updateRendering(jobDetails, null, 'Launching renderer', 50);

-- 
To view, visit https://gerrit.wikimedia.org/r/96946
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I36843f7c68ced5c0446bcdf71c6b7486249e1e69
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Collection/OfflineContentGenerator
Gerrit-Branch: master
Gerrit-Owner: Mwalker 

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


<    4   5   6   7   8   9   10   11   12   13   >