40 lines
985 B
Ruby
40 lines
985 B
Ruby
# frozen_string_literal: true
|
|
|
|
class Procedure::Card::EmailsComponent < ApplicationComponent
|
|
CUSTOMIZABLE_COUNT = 6
|
|
|
|
def initialize(procedure:)
|
|
@procedure = procedure
|
|
end
|
|
|
|
def customized_progress
|
|
"#{customized_count} / #{CUSTOMIZABLE_COUNT}"
|
|
end
|
|
|
|
def fully_customized?
|
|
customized_count == CUSTOMIZABLE_COUNT
|
|
end
|
|
|
|
private
|
|
|
|
def error_messages
|
|
[
|
|
@procedure.errors.messages_for(:initiated_mail),
|
|
@procedure.errors.messages_for(:received_mail),
|
|
@procedure.errors.messages_for(:closed_mail),
|
|
@procedure.errors.messages_for(:refused_mail),
|
|
@procedure.errors.messages_for(:without_continuation_mail)
|
|
].flatten.to_sentence
|
|
end
|
|
|
|
def customized_count
|
|
[
|
|
@procedure.initiated_mail,
|
|
@procedure.received_mail,
|
|
@procedure.closed_mail,
|
|
@procedure.refused_mail,
|
|
@procedure.without_continuation_mail,
|
|
@procedure.re_instructed_mail
|
|
].map { |mail| mail&.updated_at }.compact.size
|
|
end
|
|
end
|