Get detailed info about new versions from the Discourse Hub. Include version notes from the latest version in notification email.

This commit is contained in:
Neil Lalonde
2013-12-31 15:52:35 -05:00
parent 4f8aed295a
commit df220ae973
5 changed files with 62 additions and 8 deletions
+3 -2
View File
@@ -8,7 +8,7 @@ module Jobs
def execute(args)
if SiteSetting.version_checks? and (DiscourseUpdates.updated_at.nil? or DiscourseUpdates.updated_at < 1.minute.ago)
begin
should_send_email = (SiteSetting.new_version_emails and DiscourseUpdates.missing_versions_count and DiscourseUpdates.missing_versions_count == 0)
prev_missing_versions_count = DiscourseUpdates.missing_versions_count || 0
json = DiscourseHub.discourse_version_check
DiscourseUpdates.last_installed_version = Discourse::VERSION::STRING
@@ -16,8 +16,9 @@ module Jobs
DiscourseUpdates.critical_updates_available = json['criticalUpdates']
DiscourseUpdates.missing_versions_count = json['missingVersionsCount']
DiscourseUpdates.updated_at = Time.zone.now
DiscourseUpdates.missing_versions = json['versions']
if should_send_email and json['missingVersionsCount'] > 0
if SiteSetting.new_version_emails and json['missingVersionsCount'] > 0 and prev_missing_versions_count < json['missingVersionsCount'].to_i
message = VersionMailer.send_notice
Email::Sender.new(message, :new_version).send
end
+13 -4
View File
@@ -5,10 +5,19 @@ class VersionMailer < ActionMailer::Base
def send_notice
if SiteSetting.contact_email.present?
build_email( SiteSetting.contact_email,
template: 'new_version_mailer',
new_version: DiscourseUpdates.latest_version,
installed_version: Discourse::VERSION::STRING )
missing_versions = DiscourseUpdates.missing_versions
if missing_versions.present? and missing_versions.first['notes'].present?
build_email( SiteSetting.contact_email,
template: 'new_version_mailer_with_notes',
notes: missing_versions.first['notes'],
new_version: DiscourseUpdates.latest_version,
installed_version: Discourse::VERSION::STRING )
else
build_email( SiteSetting.contact_email,
template: 'new_version_mailer',
new_version: DiscourseUpdates.latest_version,
installed_version: Discourse::VERSION::STRING )
end
end
end
end