[MediaWiki-commits] [Gerrit] Schema migration for source metadata - change (wikimedia...crm)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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