diff --git a/app/models/institution.rb b/app/models/institution.rb index 2be4bf24de22b57bfa90ee3ffbad6da25996503f..7171be3c9768dabc8d03682224ae0dd889812bc4 100644 --- a/app/models/institution.rb +++ b/app/models/institution.rb @@ -37,8 +37,8 @@ class Institution < ApplicationRecord include Publisher has_and_belongs_to_many :users - #has_many :learning_objects, as: :publisher - #has_many :collections, as: :owner + has_many :learning_objects, as: :publisher + has_many :collections, as: :owner has_attached_file :avatar, styles: { medium: '300x300>', thumb: '60x60>' }, default_url: '' validates_attachment_content_type :avatar, content_type: ['image/jpg', 'image/jpeg', 'image/png', 'image/gif'] diff --git a/lib/tasks/import/institutions.rake b/lib/tasks/import/institutions.rake index d2f1ef2e4112d8ccc31b0fac00c5fe8c2631853f..5d04832c23784d808b2a787b2b3c74cd87b88d02 100644 --- a/lib/tasks/import/institutions.rake +++ b/lib/tasks/import/institutions.rake @@ -19,6 +19,26 @@ require 'rainbow' +namespace :migrate do + desc "import institutions" + task institutions: :environment do + desc "Create users for each institution and migrate their learning objects" + Institution.all.each do |institution| + if !institution.learning_objects.blank? || !institution.collections.blank? + user = User.where("name = '#{institution.name}' and email like 'institution%@c3sl.ufpr.br'").first + if user.blank? + user = User.create(name:institution.name, description: institution.description, email: "institution#{institution.id}@c3sl.ufpr.br", password: "123mudar", password_confirmation: "123mudar") + end + user.roles << Role.where(name: "publisher") + user.avatar = institution.avatar + user.save + institution.learning_objects.update(publisher: user) + institution.collections.update(publisher: user) + end + end + end +end + namespace :import do desc "import institutions" task :institution, [:log] => [:environment] do |t, args|