Add urgent scope and by_version method to SoftwareUpdate (#33470)

This commit is contained in:
Matt Jankowski 2025-01-06 13:23:57 -05:00 committed by GitHub
parent 4cf031ee13
commit ef39398b82
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 32 additions and 3 deletions

View file

@ -6,7 +6,7 @@ module Admin
def index
authorize :software_update, :index?
@software_updates = SoftwareUpdate.all.sort_by(&:gem_version)
@software_updates = SoftwareUpdate.by_version
end
private

View file

@ -48,7 +48,7 @@ class AdminMailer < ApplicationMailer
end
def new_software_updates
@software_updates = SoftwareUpdate.all.to_a.sort_by(&:gem_version)
@software_updates = SoftwareUpdate.by_version
locale_for_account(@me) do
mail subject: default_i18n_subject(instance: @instance)
@ -56,7 +56,7 @@ class AdminMailer < ApplicationMailer
end
def new_critical_software_updates
@software_updates = SoftwareUpdate.where(urgent: true).to_a.sort_by(&:gem_version)
@software_updates = SoftwareUpdate.urgent.by_version
locale_for_account(@me) do
mail subject: default_i18n_subject(instance: @instance)

View file

@ -18,6 +18,8 @@ class SoftwareUpdate < ApplicationRecord
enum :type, { patch: 0, minor: 1, major: 2 }, suffix: :type
scope :urgent, -> { where(urgent: true) }
def gem_version
Gem::Version.new(version)
end
@ -35,6 +37,10 @@ class SoftwareUpdate < ApplicationRecord
Rails.configuration.x.mastodon.software_update_url.present?
end
def by_version
all.sort_by(&:gem_version)
end
def pending_to_a
return [] unless check_enabled?