demarches-normaliennes/app/helpers/dossier_helper.rb

131 lines
3.6 KiB
Ruby
Raw Normal View History

module DossierHelper
include EtablissementHelper
def button_or_label_class(dossier)
2017-12-04 18:00:12 +01:00
if dossier.accepte?
'accepted'
elsif dossier.sans_suite?
'without-continuation'
2017-12-04 18:15:40 +01:00
elsif dossier.refuse?
'refused'
end
end
def highlight_if_unseen_class(seen_at, updated_at)
if updated_at.present? && seen_at&.<(updated_at)
"highlighted"
end
end
def url_for_dossier(dossier)
if dossier.brouillon?
brouillon_dossier_path(dossier)
else
2018-10-02 12:23:53 +02:00
dossier_path(dossier)
end
end
2021-06-24 11:57:05 +02:00
def url_for_new_dossier(revision)
new_dossier_url(procedure_id: revision.procedure.id, brouillon: revision.draft? ? true : nil)
2019-01-16 11:57:58 +01:00
end
def dossier_submission_is_closed?(dossier)
dossier.brouillon? && dossier.procedure.close?
end
2018-11-06 18:44:32 +01:00
def dossier_display_state(dossier_or_state, lower: false)
state = dossier_or_state.is_a?(Dossier) ? dossier_or_state.state : dossier_or_state
display_state = Dossier.human_attribute_name("state.#{state}")
lower ? display_state.downcase : display_state
2018-11-06 18:44:32 +01:00
end
2018-11-07 14:46:22 +01:00
def dossier_legacy_state(dossier)
case dossier.state
when Dossier.states.fetch(:en_construction)
'initiated'
when Dossier.states.fetch(:en_instruction)
'received'
when Dossier.states.fetch(:accepte)
'closed'
when Dossier.states.fetch(:refuse)
'refused'
when Dossier.states.fetch(:sans_suite)
'without_continuation'
else
dossier.state
end
end
def status_badge(state)
2020-03-24 13:53:15 +01:00
status_text = dossier_display_state(state, lower: true)
status_class = state.tr('_', '-')
2020-09-24 15:14:48 +02:00
tag.span(status_text, class: "label #{status_class} ")
end
2020-03-25 10:58:26 +01:00
def deletion_reason_badge(reason)
if reason.present?
status_text = I18n.t(reason, scope: [:activerecord, :attributes, :deleted_dossier, :reason])
status_class = reason.tr('_', '-')
else
status_text = I18n.t(:unknown, scope: [:activerecord, :attributes, :deleted_dossier, :reason])
status_class = 'unknown'
end
2020-09-24 15:14:48 +02:00
tag.span(status_text, class: "label #{status_class} ")
2020-03-25 10:58:26 +01:00
end
def demandeur_dossier(dossier)
if dossier.procedure.for_individual?
"#{dossier&.individual&.nom} #{dossier&.individual&.prenom}"
else
if dossier.etablissement.present?
raison_sociale_or_name(dossier.etablissement)
else
""
end
end
end
def safe_expiration_date(dossier)
l(dossier.expiration_date, format: '%d/%m/%Y')
end
def annuaire_link(siren_or_siret = nil)
base_url = "https://annuaire-entreprises.data.gouv.fr"
return base_url if siren_or_siret.blank?
"#{base_url}/rechercher?terme=#{siren_or_siret}"
end
2021-06-16 11:46:25 +02:00
def exports_list(exports, statut = nil)
if statut
Export::FORMATS.map do |item|
export = exports
.fetch(item.fetch(:format))
.fetch(:statut)
.fetch(statut, nil)
item.merge(export: export)
end
else
Export::FORMATS_WITH_TIME_SPAN.map do |item|
export = exports
.fetch(item.fetch(:format))
.fetch(:time_span_type)
.fetch(item.fetch(:time_span_type), nil)
item.merge(export: export)
end
2021-06-16 11:46:25 +02:00
end
end
def france_connect_informations(user_information)
if user_information.full_name.empty?
t("shared.dossiers.france_connect_informations.details_no_name")
elsif user_information.updated_at.present?
t("shared.dossiers.france_connect_informations.details_updated",
name: user_information.full_name,
date: l(user_information.updated_at.to_date, format: :default))
else
t("shared.dossiers.france_connect_informations.details", name: user_information.full_name)
end
end
end