From ae793ad24771aa2e7ffdc0b5bec308cb9399267a Mon Sep 17 00:00:00 2001 From: Angus McLeod Date: Mon, 24 Sep 2018 10:17:53 +1000 Subject: [PATCH] Add setting for monthly total and other minor improvements --- app/controllers/discourse_donations/charges_controller.rb | 4 ++++ app/jobs/scheduled/update_category_donation_statistics.rb | 2 +- .../widgets/donations-category-header-widget.js.es6 | 7 +++++-- config/locales/client.en.yml | 1 + config/settings.yml | 3 +++ plugin.rb | 1 + 6 files changed, 15 insertions(+), 3 deletions(-) diff --git a/app/controllers/discourse_donations/charges_controller.rb b/app/controllers/discourse_donations/charges_controller.rb index b157130..6835543 100644 --- a/app/controllers/discourse_donations/charges_controller.rb +++ b/app/controllers/discourse_donations/charges_controller.rb @@ -105,6 +105,10 @@ module DiscourseDonations args = user_params.to_h.slice(:email, :username, :password, :name).merge(rewards: output['rewards']) Jobs.enqueue(:donation_user, args) end + + if SiteSetting.discourse_donations_cause_category + Jobs.enqueue(:update_category_donation_statistics) + end end render json: output diff --git a/app/jobs/scheduled/update_category_donation_statistics.rb b/app/jobs/scheduled/update_category_donation_statistics.rb index c22f613..0d338a8 100644 --- a/app/jobs/scheduled/update_category_donation_statistics.rb +++ b/app/jobs/scheduled/update_category_donation_statistics.rb @@ -1,6 +1,6 @@ module Jobs class UpdateCategoryDonationStatistics < ::Jobs::Scheduled - every 1.hour + every 1.day def execute(args) return unless SiteSetting.discourse_donations_cause_category diff --git a/assets/javascripts/discourse/widgets/donations-category-header-widget.js.es6 b/assets/javascripts/discourse/widgets/donations-category-header-widget.js.es6 index 020be93..5c15ad4 100644 --- a/assets/javascripts/discourse/widgets/donations-category-header-widget.js.es6 +++ b/assets/javascripts/discourse/widgets/donations-category-header-widget.js.es6 @@ -30,10 +30,13 @@ createWidget('category-header-widget', { ]; let metadata = [ - donationDisplay(category.donations_total || 0, 'total'), - donationDisplay(category.donations_month || 0, 'month') + donationDisplay(category.donations_total || 0, 'total') ]; + if (Discourse.SiteSettings.discourse_donations_cause_month) { + metadata.push(donationDisplay(category.donations_month || 0, 'month')); + } + if (category.donations_github) { metadata.push( h('div.donations-github', this.attach('link', { diff --git a/config/locales/client.en.yml b/config/locales/client.en.yml index 858c53a..8fd108a 100644 --- a/config/locales/client.en.yml +++ b/config/locales/client.en.yml @@ -22,6 +22,7 @@ en: discourse_donations_causes_categories: "Categories of cause a user can donate do." discourse_donations_cause_category: "Category causes enabled." discourse_donations_cause_required: "Require user to select a cause when donating." + discourse_donations_cause_month: "Show monthly total of donations to each cause." errors: discourse_donations_amount_must_be_number: "Amounts must be numbers" diff --git a/config/settings.yml b/config/settings.yml index 0540e14..898c70e 100644 --- a/config/settings.yml +++ b/config/settings.yml @@ -73,3 +73,6 @@ plugins: discourse_donations_cause_required: client: true default: false + discourse_donations_cause_month: + client: true + default: false diff --git a/plugin.rb b/plugin.rb index 4d8bc45..7f16e2a 100644 --- a/plugin.rb +++ b/plugin.rb @@ -97,6 +97,7 @@ after_initialize do add_to_serializer(:basic_category, :donations_cause) { object.donations_cause } add_to_serializer(:basic_category, :donations_total) { object.donations_total } add_to_serializer(:basic_category, :donations_month) { object.donations_month } + add_to_serializer(:basic_category, :include_donations_month?) { SiteSetting.discourse_donations_cause_month } add_to_serializer(:basic_category, :donations_backers) { ActiveModel::ArraySerializer.new(object.donations_backers, each_serializer: BasicUserSerializer).as_json }