From 60870191c13eadffdc79dd18f7950027dfd3ec17 Mon Sep 17 00:00:00 2001 From: Sean Marcia Date: Tue, 2 Oct 2018 22:31:44 -0400 Subject: [PATCH] CSV Import --- rails/app/models/speaker.rb | 7 ++++++- rails/app/models/story.rb | 7 ++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/rails/app/models/speaker.rb b/rails/app/models/speaker.rb index 0b4011695..8583380b3 100644 --- a/rails/app/models/speaker.rb +++ b/rails/app/models/speaker.rb @@ -12,7 +12,12 @@ def picture_url def self.import_csv(filename) CSV.parse(filename, headers: true) do |row| - Speaker.where(name: row[0], community: row[2]).first_or_create + speaker = Speaker.where(name: row[0], community: row[2]).first_or_create + if row[3] && File.exist?(Rails.root.join('media', row[3])) + file = File.open(Rails.root.join('media',row[3])) + speaker.media.attach(io: file, filename: row[3]) + speaker.save + end end end diff --git a/rails/app/models/story.rb b/rails/app/models/story.rb index b98e73359..579accec6 100644 --- a/rails/app/models/story.rb +++ b/rails/app/models/story.rb @@ -10,7 +10,12 @@ def self.import_csv(filename) pointid = Point.where(title: row[3])&.first&.id speakerid = Speaker.where(name: row[2])&.first&.id perm = row[9].blank? ? "anonymous" : "user_only" - Story.create(title:row[0], point_id: pointid, speaker_id: speakerid, permission_level: perm) + story = Story.create(title:row[0], point_id: pointid, speaker_id: speakerid, permission_level: perm) + if row[8] && File.exist?(Rails.root.join('media', row[8])) + file = File.open(Rails.root.join('media',row[8])) + story.media.attach(io: file, filename: row[8]) + story.save + end end end