diff options
author | David Cabo <david@calibea.com> | 2011-08-16 19:22:39 +0200 |
---|---|---|
committer | David Cabo <david@calibea.com> | 2011-08-16 19:22:39 +0200 |
commit | db10e5f909a3c0a614daafb5e388e611a5740291 (patch) | |
tree | 2ba78a9f4229728b44ba873c5763d4225990c4ca | |
parent | fc7894a1bc2b199e597f492a0b0170f7731bd86e (diff) |
Minor refactoring of CSV importer
-rw-r--r-- | app/models/public_body.rb | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/app/models/public_body.rb b/app/models/public_body.rb index b75da4331..a9136b91b 100644 --- a/app/models/public_body.rb +++ b/app/models/public_body.rb @@ -341,9 +341,12 @@ class PublicBody < ActiveRecord::Base row.each_with_index {|field, i| field_names[field] = i} next end + + fields = {} + field_names.each{|name, i| fields[name] = row[i]} - name = row[field_names['name']] - email = row[field_names['email']] + name = fields['name'] + email = fields['email'] next if name.nil? if email.nil? email = '' # unknown/bad contact is empty string @@ -356,7 +359,7 @@ class PublicBody < ActiveRecord::Base errors.push "error: line " + line.to_s + ": invalid email " + email + " for authority '" + name + "'" next end - + if bodies_by_name[name] # Already have the public body, just update email public_body = bodies_by_name[name] @@ -367,9 +370,9 @@ class PublicBody < ActiveRecord::Base public_body.last_edit_comment = 'Updated from spreadsheet' public_body.save! end - + additional_locales.each do |locale| - localized_name = field_names["name.#{locale}"] && row[field_names["name.#{locale}"]] + localized_name = fields["name.#{locale}"] PublicBody.with_locale(locale) do if !localized_name.nil? and public_body.name != localized_name notes.push "line " + line.to_s + ": updating name for '#{name}' from '#{public_body.name}' to '#{localized_name}' (locale: #{locale})." @@ -386,7 +389,7 @@ class PublicBody < ActiveRecord::Base public_body.save! additional_locales.each do |locale| - localized_name = field_names["name.#{locale}"] && row[field_names["name.#{locale}"]] + localized_name = fields["name.#{locale}"] if !localized_name.nil? PublicBody.with_locale(locale) do notes.push "line " + line.to_s + ": (aka '#{localized_name}' in locale #{locale})" |