diff --git a/lib/rails_admin/config/actions/dashboard.rb b/lib/rails_admin/config/actions/dashboard.rb index e32fc0e1ed..6cde59fd12 100644 --- a/lib/rails_admin/config/actions/dashboard.rb +++ b/lib/rails_admin/config/actions/dashboard.rb @@ -12,9 +12,13 @@ class Dashboard < RailsAdmin::Config::Actions::Base nil end + register_instance_option :auditing_versions_limit do + 50 + end + register_instance_option :controller do proc do - @history = @auditing_adapter && @auditing_adapter.latest || [] + @history = @auditing_adapter && @auditing_adapter.latest(@action.auditing_versions_limit) || [] if @action.statistics? @abstract_models = RailsAdmin::Config.visible_models(controller: self).collect(&:abstract_model) diff --git a/lib/rails_admin/extensions/history/auditing_adapter.rb b/lib/rails_admin/extensions/history/auditing_adapter.rb index 46a6425a48..6326d067e4 100644 --- a/lib/rails_admin/extensions/history/auditing_adapter.rb +++ b/lib/rails_admin/extensions/history/auditing_adapter.rb @@ -8,8 +8,8 @@ def initialize(controller, user_class = User) require 'rails_admin/extensions/history/history' end - def latest - ::RailsAdmin::History.latest + def latest(count = 100) + ::RailsAdmin::History.latest(count) end def delete_object(object, model, user) diff --git a/lib/rails_admin/extensions/history/history.rb b/lib/rails_admin/extensions/history/history.rb index 1e96c3b4a3..d497ccdf43 100644 --- a/lib/rails_admin/extensions/history/history.rb +++ b/lib/rails_admin/extensions/history/history.rb @@ -11,8 +11,8 @@ class History < ActiveRecord::Base default_scope { order('id DESC') } class << self - def latest - limit(100) + def latest(count = 100) + limit(count) end def create_history_item(message, object, abstract_model, user) diff --git a/lib/rails_admin/extensions/paper_trail/auditing_adapter.rb b/lib/rails_admin/extensions/paper_trail/auditing_adapter.rb index c1e15231f1..048ff94f95 100644 --- a/lib/rails_admin/extensions/paper_trail/auditing_adapter.rb +++ b/lib/rails_admin/extensions/paper_trail/auditing_adapter.rb @@ -63,8 +63,10 @@ def initialize(controller, user_class = 'User', version_class = '::Version') end end - def latest - @version_class.order('id DESC').limit(100).collect { |version| VersionProxy.new(version, @user_class) } + def latest(count = 100) + @version_class. + order(id: :desc).includes(:item).limit(count). + collect { |version| VersionProxy.new(version, @user_class) } end def delete_object(_object, _model, _user)