diff --git a/app/models/concerns/reportable.rb b/app/models/concerns/reportable.rb index 9f58b0003..45cc7b328 100644 --- a/app/models/concerns/reportable.rb +++ b/app/models/concerns/reportable.rb @@ -10,21 +10,14 @@ module Reportable super || build_report end - def results_enabled? - report&.results? - end - alias_method :results_enabled, :results_enabled? + Report::KINDS.each do |kind| + define_method "#{kind}_enabled?" do + report.send(kind) + end + alias_method "#{kind}_enabled", "#{kind}_enabled?" - def stats_enabled? - report&.stats? - end - alias_method :stats_enabled, :stats_enabled? - - def results_enabled=(enabled) - report.results = enabled - end - - def stats_enabled=(enabled) - report.stats = enabled + define_method "#{kind}_enabled=" do |enabled| + report.send("#{kind}=", enabled) + end end end diff --git a/app/models/report.rb b/app/models/report.rb index 11471bcf2..5e1f3dcb1 100644 --- a/app/models/report.rb +++ b/app/models/report.rb @@ -1,3 +1,5 @@ class Report < ApplicationRecord + KINDS = %i[results stats] + belongs_to :process, polymorphic: true end