mirror of
https://github.com/discourse/discourse.git
synced 2026-08-26 21:27:16 -05:00
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:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user