Class: Decidim::Verifications::CsvCensus::Admin::CensusDataForm
- Inherits:
-
Form
- Object
- Form
- Decidim::Verifications::CsvCensus::Admin::CensusDataForm
- Includes:
- HasUploadValidations, ProcessesFileLocally
- Defined in:
- app/forms/decidim/verifications/csv_census/admin/census_data_form.rb
Overview
A form to temporarily upload csv census data
Instance Method Summary collapse
Instance Method Details
#data ⇒ Object
17 18 19 |
# File 'app/forms/decidim/verifications/csv_census/admin/census_data_form.rb', line 17 def data @data ||= process_data end |
#process_data ⇒ Object
21 22 23 24 25 26 27 |
# File 'app/forms/decidim/verifications/csv_census/admin/census_data_form.rb', line 21 def process_data process_file_locally(file) do |file_path| CsvCensus::Data.new(file_path) end rescue CSV::MalformedCSVError errors.add(:file, :malformed) end |
#validate_csv ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 |
# File 'app/forms/decidim/verifications/csv_census/admin/census_data_form.rb', line 29 def validate_csv return unless data errors.add(:base, I18n.t("decidim.verifications.errors.wrong_number_columns", expected: 1, actual: data.count)) if data.count != 1 errors.add(:base, I18n.t("decidim.verifications.errors.no_emails")) if data.values.empty? data.values.each do |value| errors.add(:base, I18n.t("decidim.verifications.errors.invalid_emails", invalid_emails: value)) unless valid_email?(value) end end |