demarches-normaliennes/app/helpers/procedure_helper.rb

96 lines
2.5 KiB
Ruby
Raw Normal View History

2018-08-14 15:17:22 +02:00
module ProcedureHelper
def procedure_lien(procedure)
if procedure.brouillon?
commencer_test_url(path: procedure.path)
else
commencer_url(path: procedure.path)
2018-08-14 15:17:22 +02:00
end
end
def procedure_libelle(procedure)
parts = procedure.brouillon? ? [content_tag(:span, 'démarche en test', class: 'badge')] : []
parts << procedure.libelle
safe_join(parts, ' ')
2018-08-14 15:17:22 +02:00
end
def procedure_modal_text(procedure, key)
action = procedure.archivee? ? :reopen : :publish
t(action, scope: [:modal, :publish, key])
end
2018-12-27 13:29:39 +01:00
2018-11-14 16:28:02 +01:00
def types_de_champ_data(procedure)
{
isAnnotation: false,
typeDeChampsTypes: types_de_champ_types,
typeDeChamps: types_de_champ_as_json(procedure.types_de_champ),
baseUrl: procedure_types_de_champ_path(procedure),
directUploadUrl: rails_direct_uploads_url
2018-11-14 16:28:02 +01:00
}
end
def types_de_champ_private_data(procedure)
{
isAnnotation: true,
typeDeChampsTypes: types_de_champ_types,
typeDeChamps: types_de_champ_as_json(procedure.types_de_champ_private),
baseUrl: procedure_types_de_champ_path(procedure),
directUploadUrl: rails_direct_uploads_url
2018-11-14 16:28:02 +01:00
}
end
2019-04-03 14:29:30 +02:00
def procedure_dossiers_download_path(procedure, format:, version:)
download_dossiers_instructeur_procedure_path(format: format,
2019-04-03 14:29:30 +02:00
procedure_id: procedure.id,
tables: [:etablissements],
version: version)
end
2018-11-14 16:28:02 +01:00
private
TOGGLES = {
2019-07-04 12:36:17 +02:00
TypeDeChamp.type_champs.fetch(:integer_number) => :administrateur_champ_integer_number
2018-11-14 16:28:02 +01:00
}
def types_de_champ_types
types_de_champ_types = TypeDeChamp.type_de_champs_list_fr
2018-11-14 16:28:02 +01:00
types_de_champ_types.select! do |tdc|
2018-11-14 16:28:02 +01:00
toggle = TOGGLES[tdc.last]
2019-07-04 12:36:17 +02:00
toggle.blank? || feature_enabled?(toggle)
2018-11-14 16:28:02 +01:00
end
types_de_champ_types
2018-11-14 16:28:02 +01:00
end
TYPES_DE_CHAMP_BASE = {
except: [
:created_at,
:options,
:order_place,
:parent_id,
:private,
:procedure_id,
:stable_id,
:type,
:updated_at
],
methods: [
:cadastres,
:drop_down_list_value,
:parcelles_agricoles,
:piece_justificative_template_filename,
:piece_justificative_template_url,
:quartiers_prioritaires
]
}
TYPES_DE_CHAMP = TYPES_DE_CHAMP_BASE
.merge(include: { types_de_champ: TYPES_DE_CHAMP_BASE })
2018-11-14 16:28:02 +01:00
def types_de_champ_as_json(types_de_champ)
types_de_champ.includes(:drop_down_list,
piece_justificative_template_attachment: :blob,
types_de_champ: [:drop_down_list, piece_justificative_template_attachment: :blob])
.as_json(TYPES_DE_CHAMP)
2018-11-14 16:28:02 +01:00
end
2018-08-14 15:17:22 +02:00
end