2024-09-05 22:54:38 +02:00
# frozen_string_literal: true
2024-07-16 20:22:59 +02:00
class Check < ApplicationRecord
2024-07-20 16:52:12 +02:00
include RichTextTargetBlank
2024-09-05 22:54:38 +02:00
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 )
2024-07-19 02:29:18 +02:00
2024-09-05 22:54:38 +02:00
def display_target_disabilities
% i [ visual auditory physical cognitive ] . select { | d | send ( :" #{ d } ? " ) } . map { | d | I18n . t ( " disability. #{ d } " ) } . map ( & :first ) . join ( " , " )
end
2024-07-21 00:33:38 +02:00
2024-09-05 22:54:38 +02:00
def display_applicabilities
% i [ applicable_to_app applicable_to_web ] . select { | a | send ( :" #{ a } ? " ) } . map { | a | I18n . t ( " applicability. #{ a } " ) } . map ( & :first ) . join ( " , " )
end
2024-07-16 20:22:59 +02:00
end