Expire dashboard data when you upgrade to a new discourse version. Version check data was being cached and causing confusion to people who upgraded.
This commit is contained in:
parent
f1b4ecfdc9
commit
21b4b8d5d5
|
@ -1,9 +1,16 @@
|
|||
class Admin::DashboardController < Admin::AdminController
|
||||
|
||||
caches_action :index, expires_in: 1.hour
|
||||
|
||||
def index
|
||||
render_json_dump(AdminDashboardData.fetch_all)
|
||||
# see https://github.com/rails/rails/issues/8167
|
||||
# TODO: after upgrading to Rails 4, try to remove "if cache_classes"
|
||||
if Discourse::Application.config.cache_classes
|
||||
dashboard_data = Rails.cache.fetch("admin-dashboard-data-#{Discourse::VERSION::STRING}", expires_in: 1.hour) do
|
||||
AdminDashboardData.fetch_all.as_json
|
||||
end
|
||||
render json: dashboard_data
|
||||
else
|
||||
render_json_dump AdminDashboardData.fetch_all
|
||||
end
|
||||
end
|
||||
|
||||
def problems
|
||||
|
|
|
@ -45,13 +45,13 @@ class AdminDashboardData
|
|||
|
||||
def as_json
|
||||
@json ||= {
|
||||
reports: REPORTS.map { |type| Report.find(type) },
|
||||
reports: REPORTS.map { |type| Report.find(type).as_json },
|
||||
problems: problems,
|
||||
admins: User.admins.count,
|
||||
moderators: User.moderators.count,
|
||||
top_referrers: IncomingLinksReport.find('top_referrers'),
|
||||
top_traffic_sources: IncomingLinksReport.find('top_traffic_sources'),
|
||||
top_referred_topics: IncomingLinksReport.find('top_referred_topics')
|
||||
top_referrers: IncomingLinksReport.find('top_referrers').as_json,
|
||||
top_traffic_sources: IncomingLinksReport.find('top_traffic_sources').as_json,
|
||||
top_referred_topics: IncomingLinksReport.find('top_referred_topics').as_json
|
||||
}.merge(
|
||||
SiteSetting.version_checks? ? {version_check: DiscourseUpdates.check_version} : {}
|
||||
)
|
||||
|
|
Loading…
Reference in New Issue