diff --git a/app/lib/annual_report.rb b/app/lib/annual_report.rb index 8fab2111ed6..035dc4cde75 100644 --- a/app/lib/annual_report.rb +++ b/app/lib/annual_report.rb @@ -23,6 +23,12 @@ class AnnualReport @year = year end + def eligible? + with_read_replica do + SOURCES.all? { |klass| klass.new(@account, @year).eligible? } + end + end + def generate return if GeneratedAnnualReport.exists?(account: @account, year: @year) diff --git a/app/lib/annual_report/source.rb b/app/lib/annual_report/source.rb index 7f486553694..2898c6a5a26 100644 --- a/app/lib/annual_report/source.rb +++ b/app/lib/annual_report/source.rb @@ -12,6 +12,10 @@ class AnnualReport::Source raise NotImplementedError end + def eligible? + true + end + protected def report_statuses diff --git a/app/lib/annual_report/top_hashtags.rb b/app/lib/annual_report/top_hashtags.rb index a775c29bac3..f3a2160341d 100644 --- a/app/lib/annual_report/top_hashtags.rb +++ b/app/lib/annual_report/top_hashtags.rb @@ -15,6 +15,10 @@ class AnnualReport::TopHashtags < AnnualReport::Source } end + def eligible? + report_statuses.joins(:tags).exists? + end + private def top_hashtags diff --git a/app/lib/annual_report/top_statuses.rb b/app/lib/annual_report/top_statuses.rb index f32bd09a15a..4dcc31892bb 100644 --- a/app/lib/annual_report/top_statuses.rb +++ b/app/lib/annual_report/top_statuses.rb @@ -11,6 +11,10 @@ class AnnualReport::TopStatuses < AnnualReport::Source } end + def eligible? + report_statuses.public_visibility.exists? + end + private def status_identifier(status)