demarches-normaliennes/app/models/champs/repetition_champ.rb

59 lines
1.2 KiB
Ruby
Raw Normal View History

# 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:)
2024-09-27 15:44:57 +02:00
dossier.repetition_add_row(type_de_champ, updated_by:)
2019-01-30 16:14:15 +01:00
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 discarded?
discarded_at.present?
end
def discard!
touch(:discarded_at)
end
def search_terms
# The user cannot enter any information here so it doesnt make much sense to search
end
2019-04-03 14:29:30 +02:00
class Row < Hashie::Dash
property :index
property :row_id
property :dossier
def dossier_id
dossier.id.to_s
end
2019-04-03 14:29:30 +02:00
2019-07-11 10:28:44 +02:00
def read_attribute_for_serialization(attribute)
self[attribute]
end
2024-11-12 18:15:40 +01:00
def spreadsheet_columns(types_de_champ, export_template: nil, format:)
2019-04-03 14:29:30 +02:00
[
['Dossier ID', :dossier_id],
['Ligne', :index]
2024-11-12 18:15:40 +01:00
] + dossier.champ_values_for_export(types_de_champ, row_id:, export_template:, format:)
2019-04-03 14:29:30 +02:00
end
end
end