diff --git a/app/controllers/admin/import_controller.rb b/app/controllers/admin/import_controller.rb index a5508a7..fe910e1 100644 --- a/app/controllers/admin/import_controller.rb +++ b/app/controllers/admin/import_controller.rb @@ -723,7 +723,27 @@ class Admin::ImportController < OrbitAdminController book_types = book["book_types"] old_book = Book.where(:rss2_id => book["rss2_id"]).first if old_book.nil? - new_book = Book.new(:book_title_translations => {"en" => book["book_title"]["en"], "zh_tw" => book["book_title"]["zh-tw"]}, :extracted_chapters_translations => {"en" => book["extracted_chapters"]["en"], "zh_tw" => book["extracted_chapters"]["zh-tw"]}, :publisher_translations => {"en" => book["publishers"]["en"], "zh_tw" => book["publishers"]["zh-tw"]}, :editor_translations => {"en" => book["editor"]["en"], "zh_tw" => book["editor"]["zh-tw"]}, :year => book["year"], :language => book["language"].sub("-","_"), :pages => book["number_of_pages"], :isbn => book["issn"], :publication_date => book["publication_date"], :url => book["reference_url"], :note => book["note"], :rss2_id => book["rss2_id"]) + new_book = Book.new( + :book_title_translations => { + "en" => book["book_title"]["en"], + "zh_tw" => book["book_title"]["zh-tw"]}, + :extracted_chapters_translations => { + "en" => book["extracted_chapters"]["en"], + "zh_tw" => book["extracted_chapters"]["zh-tw"]}, + :publisher_translations => { + "en" => book["publishers"]["en"], + "zh_tw" => book["publishers"]["zh-tw"]}, + :editor_translations => { + "en" => book["editor"]["en"], + "zh_tw" => book["editor"]["zh-tw"]}, + :year => book["year"], + :language => book["language"].sub("-","_"), + :pages => book["number_of_pages"], + :isbn => book["issn"], + :publication_date => book["publication_date"], + :url => book["reference_url"], + :note => book["note"], + :rss2_id => book["rss2_id"]) new_book.member_profile = member if !book["file"].blank? @@ -828,7 +848,21 @@ class Admin::ImportController < OrbitAdminController patents.each do |patent| old_patent = Patent.where(:rss2_id => patent["rss2_id"]).first if old_patent.nil? - new_patent = Patent.new(:patent_title_translations => {"en" => patent["patent_title"]["en"], "zh_tw" => patent["patent_title"]["zh-tw"]}, :authors_translations => {"en" => patent["patent_author"]["en"], "zh_tw" => patent["patent_author"]["zh-tw"]},:patent_country_translations => {"en" => patent["patent_country"]["en"], "zh_tw" => patent["patent_country"]["zh-tw"]}, :year => patent["year"], :language => patent["language"], :patent_no => patent["patent_number"], :publish_date => Date.strptime(patent["date_of_publication"], '%Y-%m'), :rss2_id => patent["rss2_id"]) + new_patent = Patent.new( + :patent_title_translations => { + "en" => patent["patent_title"]["en"], + "zh_tw" => patent["patent_title"]["zh-tw"]}, + :authors_translations => { + "en" => patent["patent_author"]["en"], + "zh_tw" => patent["patent_author"]["zh-tw"]}, + :patent_country_translations => { + "en" => patent["patent_country"]["en"], + "zh_tw" => patent["patent_country"]["zh-tw"]}, + :year => patent["year"], + :language => patent["language"].gsub('-','_'), + :patent_no => patent["patent_number"], + :publish_date => Date.strptime(patent["date_of_publication"], '%Y-%m'), + :rss2_id => patent["rss2_id"]) patent_categories = patent["patent_categories"] patent_categories.each do |pc| pt = PatentType.where(:title => pc["zh-tw"]).first @@ -861,7 +895,13 @@ class Admin::ImportController < OrbitAdminController researches.each do |research| old_research = Research.where(:rss2_id => research["rss2_id"]).first if old_research.nil? - new_research = Research.new(:research_title_translations => {"en" => research["title"]["en"],"zh_tw" => research["title"]["zh-tw"]},:language => research["language"], :publish_date => research["date_of_publication"], :rss2_id => research["rss2_id"]) + new_research = Research.new( + :research_title_translations => { + "en" => research["title"]["en"], + "zh_tw" => research["title"]["zh-tw"]}, + :language => research["language"].gsub('-','_'), + :publish_date => research["date_of_publication"], + :rss2_id => research["rss2_id"]) if research["file"] research_file = new_research.research_files.new @@ -892,8 +932,23 @@ class Admin::ImportController < OrbitAdminController diplomas.each do |diploma| old_diploma = Diploma.where(:rss2_id => diploma["rss2_id"]).first if old_diploma.nil? - new_diploma = Diploma.new(:school_name_translations => {"en" => diploma["school_name"]["en"], "zh_tw" => diploma["school_name"]["zh-tw"]}, - :country_translations => {"en" => diploma["country"]["en"], "zh_tw" => diploma["country"]["zh-tw"]}, :department_translations => {"en" => diploma["department"]["en"], "zh_tw" => diploma["department"]["zh-tw"]}, :degree_translations => {"en" => diploma["degree"]["en"], "zh_tw" => diploma["degree"]["zh-tw"]}, :language => diploma["language"], :start_date => Date.strptime(diploma["start_date"], '%Y-%m'), :end_date => Date.strptime(diploma["end_date"], '%Y-%m'), :rss2_id => diploma["rss2_id"]) + new_diploma = Diploma.new( + :school_name_translations => { + "en" => diploma["school_name"]["en"], + "zh_tw" => diploma["school_name"]["zh-tw"]}, + :country_translations => { + "en" => diploma["country"]["en"], + "zh_tw" => diploma["country"]["zh-tw"]}, + :department_translations => { + "en" => diploma["department"]["en"], + "zh_tw" => diploma["department"]["zh-tw"]}, + :degree_translations => { + "en" => diploma["degree"]["en"], + "zh_tw" => diploma["degree"]["zh-tw"]}, + :language => diploma["language"].gsub('-','_'), + :start_date => Date.strptime(diploma["start_date"], '%Y-%m'), + :end_date => Date.strptime(diploma["end_date"], '%Y-%m'), + :rss2_id => diploma["rss2_id"]) new_diploma.member_profile = member new_diploma.save end @@ -926,7 +981,7 @@ class Admin::ImportController < OrbitAdminController :job_title_translations => { "en" => experience["job_title"]["en"], "zh_tw" => experience["job_title"]["zh-tw"]}, - :language => experience["language"], + :language => experience["language"].gsub('-','_'), :start_date => Date.strptime(experience["start_date"].gsub('00','01'), '%Y-%m'), :end_date => Date.strptime(experience["end_date"].gsub('00','01'), '%Y-%m'), :rss2_id => experience["rss2_id"]) @@ -953,7 +1008,16 @@ class Admin::ImportController < OrbitAdminController honors.each do |honor| old_honor = Honor.where(:rss2_id => honor["rss2_id"]).first if old_honor.nil? - new_honor = Honor.new(:year => honor["year"], :award_name_translations => {"en" => honor["award_name"]["en"], "zh_tw" => honor["award_name"]["zh-tw"]}, :awarding_unit_translations => {"en" => honor["award_unit"]["en"], "zh_tw" => honor["award_unit"]["zh-tw"]}, :language => honor["language"], :rss2_id => honor["rss2_id"]) + new_honor = Honor.new( + :year => honor["year"], + :award_name_translations => { + "en" => honor["award_name"]["en"], + "zh_tw" => honor["award_name"]["zh-tw"]}, + :awarding_unit_translations => { + "en" => honor["award_unit"]["en"], + "zh_tw" => honor["award_unit"]["zh-tw"]}, + :language => honor["language"].gsub('-','_'), + :rss2_id => honor["rss2_id"]) pc = HonorType.where(:title => honor["honor_categories"]["zh-tw"]).first if pc.nil? pc = HonorType.new(:title_translations => {"en" => honor["honor_categories"]["en"], "zh_tw" => honor["honor_categories"]["zh-tw"]}) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index bdc95ed..9abb5fe 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -129,6 +129,7 @@ class ApplicationController < ActionController::Base redirect_to new_session_path if @current_user.nil? return true else + session[:login_referer] = request.url redirect_to new_session_path return false end diff --git a/app/controllers/sessions_controller.rb b/app/controllers/sessions_controller.rb index f2aabc1..7623f1d 100644 --- a/app/controllers/sessions_controller.rb +++ b/app/controllers/sessions_controller.rb @@ -2,17 +2,22 @@ class SessionsController < ApplicationController layout "authentication" def new + if session[:user_id] + redirect_to admin_dashboards_path + end end def create user = User.find_by(user_name: params[:user_name]) rescue nil if (user && user.authenticate(params[:password]) && user.is_confirmed?.eql?(true)) - if user.is_approved? + if user.is_approved? || user.is_admin? session[:user_id] = user.id - redirect_to admin_dashboards_path, :notice => "Logged in!" - elsif user.is_admin? - session[:user_id] = user.id - redirect_to admin_dashboards_path, :notice => "Logged in!" + if session[:login_referer] + redirect_to session[:login_referer] + session[:login_referer] = nil + else + redirect_to admin_dashboards_path + end else flash.now.alert = "User not approved." render "new" @@ -26,6 +31,6 @@ class SessionsController < ApplicationController def destroy log_user_action session[:user_id] = nil - redirect_to root_url, :notice => "Logged out!" + redirect_to root_url end end