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:
Neil Lalonde 2013-05-14 16:17:17 -04:00
parent f1b4ecfdc9
commit 21b4b8d5d5
2 changed files with 14 additions and 7 deletions

View File

@ -1,9 +1,16 @@
class Admin::DashboardController < Admin::AdminController class Admin::DashboardController < Admin::AdminController
caches_action :index, expires_in: 1.hour
def index 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 end
def problems def problems

View File

@ -45,13 +45,13 @@ class AdminDashboardData
def as_json def as_json
@json ||= { @json ||= {
reports: REPORTS.map { |type| Report.find(type) }, reports: REPORTS.map { |type| Report.find(type).as_json },
problems: problems, problems: problems,
admins: User.admins.count, admins: User.admins.count,
moderators: User.moderators.count, moderators: User.moderators.count,
top_referrers: IncomingLinksReport.find('top_referrers'), top_referrers: IncomingLinksReport.find('top_referrers').as_json,
top_traffic_sources: IncomingLinksReport.find('top_traffic_sources'), top_traffic_sources: IncomingLinksReport.find('top_traffic_sources').as_json,
top_referred_topics: IncomingLinksReport.find('top_referred_topics') top_referred_topics: IncomingLinksReport.find('top_referred_topics').as_json
}.merge( }.merge(
SiteSetting.version_checks? ? {version_check: DiscourseUpdates.check_version} : {} SiteSetting.version_checks? ? {version_check: DiscourseUpdates.check_version} : {}
) )