demarches-normaliennes/app/models/champs/repetition_champ.rb
Christophe Robillard 15cea714c1
extract methods from dossier to dossier_export_concern
Co-authored-by: mfo <mfo@users.noreply.github.com>
Co-authored-by: Paul Chavard <github@paul.chavard.net>
2024-11-14 14:45:41 +01:00

50 lines
1.1 KiB
Ruby
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# frozen_string_literal: true
class Champs::RepetitionChamp < Champ
delegate :libelle_for_export, to: :type_de_champ
def rows
dossier.project_rows_for(type_de_champ)
end
def row_ids
dossier.repetition_row_ids(type_de_champ)
end
def add_row(updated_by:)
dossier.repetition_add_row(type_de_champ, updated_by:)
end
def remove_row(row_id, updated_by:)
dossier.repetition_remove_row(type_de_champ, row_id, updated_by:)
end
def focusable_input_id
rows.last&.first&.focusable_input_id
end
def search_terms
# The user cannot enter any information here so it doesnt make much sense to search
end
class Row < Hashie::Dash
property :index
property :row_id
property :dossier
def dossier_id
dossier.id.to_s
end
def read_attribute_for_serialization(attribute)
self[attribute]
end
def spreadsheet_columns(types_de_champ, export_template: nil)
[
['Dossier ID', :dossier_id],
['Ligne', :index]
] + dossier.champ_values_for_export(types_de_champ, row_id:, export_template:)
end
end
end