# frozen_string_literal: true class Check < ApplicationRecord include RichTextTargetBlank belongs_to :principle has_and_belongs_to_many :links has_and_belongs_to_many :standards accepts_nested_attributes_for :links, allow_destroy: true enum :conformity_level, %i[A AA AAA] enum :priority, %i[highest high normal low] has_rich_text :conformity_notice_de has_rich_text :conformity_notice_en has_rich_text :quick_criterion_de has_rich_text :quick_criterion_en has_rich_text :quick_fail_de has_rich_text :quick_fail_en has_rich_text :quick_fix_de has_rich_text :quick_fix_en has_rich_text :criterion_de has_rich_text :criterion_en has_rich_text :criterion_details_de has_rich_text :criterion_details_en has_rich_text :example_de has_rich_text :example_en has_rich_text :exemption_details_de has_rich_text :exemption_details_en has_rich_text :standard_text_de has_rich_text :standard_text_en has_rich_text :test_instructions has_rich_text :powerpoint_text_de has_rich_text :powerpoint_text_en has_rich_text :comment translates_attributes :name, :conformity_notice, :quick_criterion, :quick_fail, :quick_fix, :criterion, :criterion_details, :example, :exemption_details, :standard_text, :powerpoint_text scope(:search, lambda do |term| # TODO: Search only fields for current locale. joins("INNER JOIN action_text_rich_texts ON action_text_rich_texts.record_id = checks.id AND record_type = 'Check'").where("checks.name_de LIKE :term OR checks.name_de LIKE :term OR action_text_rich_texts.body LIKE :term", term: "%#{term}%").distinct end) def display_target_disabilities %i[visual auditory physical cognitive].select { |d| send(:"#{d}?") }.map { |d| I18n.t("disability.#{d}") }.map(&:first).join(", ") end def display_applicabilities %i[applicable_to_app applicable_to_web].select { |a| send(:"#{a}?") }.map { |a| I18n.t("applicability.#{a}") }.map(&:first).join(", ") end end