diff --git a/app/models/instance.rb b/app/models/instance.rb index 7448d465c3c4eaf90a48b820d13352fdf3f4f3b8..7bf000d40480ba701a4f367c232eee675e413c17 100644 --- a/app/models/instance.rb +++ b/app/models/instance.rb @@ -7,7 +7,7 @@ class Instance def initialize(resource) @domain = resource.domain - @accounts_count = resource.accounts_count + @accounts_count = resource.is_a?(DomainBlock) ? nil : resource.accounts_count @domain_block = resource.is_a?(DomainBlock) ? resource : DomainBlock.find_by(domain: domain) end @@ -15,6 +15,10 @@ class Instance Rails.cache.fetch("#{cache_key}/sample_accounts", expires_in: 12.hours) { Account.where(domain: domain).searchable.joins(:account_stat).popular.limit(3) } end + def cached_accounts_count + @accounts_count || Rails.cache.fetch("#{cache_key}/count", expires_in: 12.hours) { Account.where(domain: domain).count } + end + def to_param domain end diff --git a/app/views/admin/instances/index.html.haml b/app/views/admin/instances/index.html.haml index 23592714079ed60214aa94ae4d61f178320521a0..9574c3147848fd34ca94d0a72a639b110d98b33e 100644 --- a/app/views/admin/instances/index.html.haml +++ b/app/views/admin/instances/index.html.haml @@ -33,7 +33,7 @@ %h4 = instance.domain %small - = t('admin.instances.known_accounts', count: instance.accounts_count) + = t('admin.instances.known_accounts', count: instance.cached_accounts_count) - if instance.domain_block - if !instance.domain_block.noop?