2024-09-05 22:54:38 +02:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
2024-07-16 20:22:59 +02:00
|
|
|
class Report < ApplicationRecord
|
2024-11-24 22:08:36 +01:00
|
|
|
belongs_to :project, touch: true
|
|
|
|
|
|
2024-11-11 04:04:13 +01:00
|
|
|
has_many :pages, -> { order(:position) }, dependent: :destroy
|
2024-10-31 23:13:18 +01:00
|
|
|
has_many :elements, through: :pages, dependent: :destroy
|
2024-11-23 21:11:01 +01:00
|
|
|
has_many :success_criteria, through: :elements, dependent: :destroy
|
|
|
|
|
|
2024-10-31 23:13:18 +01:00
|
|
|
has_rich_text :comment
|
2024-07-20 16:52:12 +02:00
|
|
|
|
|
|
|
|
validates :name, presence: true
|
2024-11-23 21:11:01 +01:00
|
|
|
|
|
|
|
|
def export
|
|
|
|
|
export_success_criteria = success_criteria.failed
|
|
|
|
|
export_elements = export_success_criteria.group_by(&:element)
|
|
|
|
|
export_pages = export_elements.group_by { |k, v| k }
|
|
|
|
|
{
|
|
|
|
|
pages: export_pages,
|
|
|
|
|
elements: export_elements,
|
|
|
|
|
success_criteria: export_success_criteria
|
|
|
|
|
}
|
|
|
|
|
end
|
2024-07-16 20:22:59 +02:00
|
|
|
end
|