Fix session redirect and fix import language field

This commit is contained in:
manson 2014-07-16 11:42:10 +08:00
parent d40a1fae34
commit f5bf50ef14
3 changed files with 83 additions and 13 deletions

View File

@ -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"]})

View File

@ -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

View File

@ -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