demarches-normaliennes/app/controllers/champs/repetition_controller.rb
2024-03-17 23:51:45 +01:00

30 lines
829 B
Ruby

class Champs::RepetitionController < ApplicationController
before_action :authenticate_logged_user!
def add
@champ = find_champ
row = @champ.add_row(@champ.dossier.revision)
@first_champ_id = row.map(&:focusable_input_id).compact.first
@row_id = row.first&.row_id
@row_number = @champ.row_ids.find_index(@row_id) + 1
end
def remove
@champ = find_champ
@champ.champs.where(row_id: params[:row_id]).destroy_all
@champ.reload
@row_id = params[:row_id]
end
private
def find_champ
if params[:champ_id].present?
policy_scope(Champ).includes(:champs).find(params[:champ_id])
else
policy_scope(Champ)
.includes(:champs, :type_de_champ)
.find_by!(dossier_id: params[:dossier_id], type_de_champ: { stable_id: params[:stable_id] })
end
end
end