64 lines
1.6 KiB
Ruby
64 lines
1.6 KiB
Ruby
module NewAdministrateur
|
|
class ProceduresController < AdministrateurController
|
|
before_action :retrieve_procedure, only: [:champs, :annotations, :update]
|
|
before_action :procedure_locked?, only: [:champs, :annotations, :update]
|
|
|
|
TYPE_DE_CHAMP_ATTRIBUTES_BASE = [
|
|
:_destroy,
|
|
:libelle,
|
|
:description,
|
|
:order_place,
|
|
:type_champ,
|
|
:id,
|
|
:mandatory,
|
|
:piece_justificative_template,
|
|
:quartiers_prioritaires,
|
|
:cadastres,
|
|
:parcelles_agricoles,
|
|
drop_down_list_attributes: [:value]
|
|
]
|
|
|
|
TYPE_DE_CHAMP_ATTRIBUTES = TYPE_DE_CHAMP_ATTRIBUTES_BASE.dup
|
|
TYPE_DE_CHAMP_ATTRIBUTES << {
|
|
types_de_champ_attributes: TYPE_DE_CHAMP_ATTRIBUTES_BASE
|
|
}
|
|
|
|
def apercu
|
|
@dossier = procedure_without_control.new_dossier
|
|
@tab = apercu_tab
|
|
end
|
|
|
|
def update
|
|
if @procedure.update(procedure_params)
|
|
flash.now.notice = if params[:procedure][:types_de_champ_attributes].present?
|
|
'Formulaire mis à jour.'
|
|
elsif params[:procedure][:types_de_champ_private_attributes].present?
|
|
'Annotations privées mises à jour.'
|
|
else
|
|
'Démarche enregistrée.'
|
|
end
|
|
|
|
reset_procedure
|
|
else
|
|
flash.now.alert = @procedure.errors.full_messages
|
|
end
|
|
end
|
|
|
|
private
|
|
|
|
def apercu_tab
|
|
params[:tab] || 'dossier'
|
|
end
|
|
|
|
def procedure_without_control
|
|
Procedure.find(params[:id])
|
|
end
|
|
|
|
def procedure_params
|
|
params.required(:procedure).permit(
|
|
types_de_champ_attributes: TYPE_DE_CHAMP_ATTRIBUTES,
|
|
types_de_champ_private_attributes: TYPE_DE_CHAMP_ATTRIBUTES
|
|
)
|
|
end
|
|
end
|
|
end
|