import methods for plugins honor, patent, research, books, diploma, project, experience

This commit is contained in:
Harry Bomrah 2014-07-14 21:33:46 +08:00
parent 63270e2a79
commit f61efc2472
2 changed files with 204 additions and 24 deletions

View File

@ -683,18 +683,22 @@ class Admin::ImportController < OrbitAdminController
end
def import_books
uri = URI.parse("http://192.168.1.5/DEMO24_Manson/R2/export/?module=plugin&id=1&plugin=book")
id = "1"
original_language = I18n.locale
I18n.locale = "zh_tw"
uri = URI.parse("http://192.168.1.5/DEMO24_Manson/R2/export/?module=plugin&id=#{id}&plugin=book")
http = Net::HTTP.new(uri.host, uri.port)
request = Net::HTTP::Get.new(uri.request_uri)
response = http.request(request)
data = response.body
data = JSON.parse(data)
books = data["books"]
member = MemberProfile.where(:rss2_id => "1").first
member = MemberProfile.where(:rss2_id => id).first
books.each do |book|
author_types = book["author_type"]
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.member_profile = member
book_file = new_book.book_files.new
@ -719,9 +723,185 @@ class Admin::ImportController < OrbitAdminController
end
new_book.save
end
end
I18n.locale = original_language
render :json => {"succes" => true}.to_json
end
def import_projects
id = "1"
original_language = I18n.locale
I18n.locale = "zh_tw"
uri = URI.parse("http://192.168.1.5/DEMO24_Manson/R2/export/?module=plugin&id=#{id}&plugin=project")
http = Net::HTTP.new(uri.host, uri.port)
request = Net::HTTP::Get.new(uri.request_uri)
response = http.request(request)
data = response.body
data = JSON.parse(data)
projects = data["projects"]
member = MemberProfile.where(:rss2_id => id).first
projects.each do |project|
old_project = Project.where(:rss2_id => project["rss2_id"]).first
if old_project.nil?
new_project = Project.new(:project_title_translations => {"en" => project["project_title"]["en"], "zh_tw" => project["project_title"]["zh-tw"]},:job_title_translations => {"en" => project["job_title"]["en"],"zh_tw" => project["job_title"]["zh-tw"]}, :participator_translations => {"en" => project["participant"]["en"],"zh_tw" => project["participant"]["zh-tw"]}, :unit_translations => {"en" => project["unit"]["en"],"zh_tw" => project["unit"]["zh-tw"]},:year => project["year"], :language => project["language"].sub("-","_"), :period_start_date => Date.strptime(project["start_date"], '%Y-%m'), :period_end_date => Date.strptime(project["end_date"], '%Y-%m'), :url => project["reference_url"], :note_translations => {"en" => project["note"]["en"],"zh_tw" => project["note"]["zh-tw"]}, :rss2_id => project["rss2_id"])
pc = ProjectType.where(:title => project["project_categories"]["zh-tw"]).first
if pc.nil?
pc = ProjectType.new(:title_translations => {"en" => project["project_categories"]["en"], "zh_tw" => project["project_categories"]["zh-tw"]})
pc.save
end
project_file = new_project.project_files.new
project_file.remote_file_url = project["file"]["file"]
project_file.title_translations = {"en" => project["file"]["name"], "zh_tw" => project["file"]["name"]}
project_file.save
new_project.project_type = pc
new_project.member_profile = member
new_project.save
end
end
I18n.locale = original_language
render :json => {"succes" => true}.to_json
end
def import_patents
id = "1"
original_language = I18n.locale
I18n.locale = "zh_tw"
uri = URI.parse("http://192.168.1.5/DEMO24_Manson/R2/export/?module=plugin&id=#{id}&plugin=patent")
http = Net::HTTP.new(uri.host, uri.port)
request = Net::HTTP::Get.new(uri.request_uri)
response = http.request(request)
data = response.body
data = JSON.parse(data)
patents = data["patents"]
member = MemberProfile.where(:rss2_id => id).first
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"])
patent_categories = patent["patent_categories"]
patent_categories.each do |pc|
pt = PatentType.where(:title => pc["zh-tw"]).first
if pt.nil?
pt = PatentType.new(:title_translations => {"en" => pc["en"], "zh_tw" => pc["zh-tw"]})
pt.save
end
new_patent.patent_types << pt
end
new_patent.member_profile = member
new_patent.save
end
end
I18n.locale = original_language
render :json => {"succes" => true}.to_json
end
def import_research
id = "1"
original_language = I18n.locale
I18n.locale = "zh_tw"
uri = URI.parse("http://192.168.1.5/DEMO24_Manson/R2/export/?module=plugin&id=#{id}&plugin=research")
http = Net::HTTP.new(uri.host, uri.port)
request = Net::HTTP::Get.new(uri.request_uri)
response = http.request(request)
data = response.body
data = JSON.parse(data)
researches = data["researches"]
member = MemberProfile.where(:rss2_id => id).first
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"])
research_file = new_research.research_files.new
research_file.remote_file_url = research["file"]["file"]
research_file.title_translations = {"en" => research["file"]["name"], "zh_tw" => research["file"]["name"]}
research_file.save
new_research.member_profile = member
new_research.save
end
end
I18n.locale = original_language
render :json => {"succes" => true}.to_json
end
def import_diplomas
id = "1"
original_language = I18n.locale
I18n.locale = "zh_tw"
uri = URI.parse("http://192.168.1.5/DEMO24_Manson/R2/export/?module=plugin&id=#{id}&plugin=diploma")
http = Net::HTTP.new(uri.host, uri.port)
request = Net::HTTP::Get.new(uri.request_uri)
response = http.request(request)
data = response.body
data = JSON.parse(data)
diplomas = data["diplomas"]
member = MemberProfile.where(:rss2_id => id).first
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.member_profile = member
new_diploma.save
end
end
I18n.locale = original_language
render :json => {"succes" => true}.to_json
end
def import_experiences
id = "1"
original_language = I18n.locale
I18n.locale = "zh_tw"
uri = URI.parse("http://192.168.1.5/DEMO24_Manson/R2/export/?module=plugin&id=#{id}&plugin=experience")
http = Net::HTTP.new(uri.host, uri.port)
request = Net::HTTP::Get.new(uri.request_uri)
response = http.request(request)
data = response.body
data = JSON.parse(data)
experiences = data["experiences"]
member = MemberProfile.where(:rss2_id => id).first
experiences.each do |experience|
old_experience = Experience.where(:rss2_id => experience["rss2_id"]).first
if old_experience.nil?
new_experience = Experience.new(:organizationt_title_translations => {"en" => experience["organization_title"]["en"], "zh_tw" => experience["organization_title"]["zh-tw"]}, :department_translations => {"en" => experience["department"]["en"], "zh_tw" => experience["department"]["zh-tw"]}, :job_title_translations => {"en" => experience["job_title"]["en"], "zh_tw" => experience["job_title"]["zh-tw"]}, :language => experience["language"], :start_date => Date.strptime(experience["start_date"], '%Y-%m'), :end_date => Date.strptime(experience["end_date"], '%Y-%m'), :rss2_id => experience["rss2_id"])
new_experience.member_profile = member
new_experience.save
end
end
I18n.locale = original_language
render :json => {"succes" => true}.to_json
end
def import_honors
id = "1"
original_language = I18n.locale
I18n.locale = "zh_tw"
uri = URI.parse("http://192.168.1.5/DEMO24_Manson/R2/export/?module=plugin&id=#{id}&plugin=honor")
http = Net::HTTP.new(uri.host, uri.port)
request = Net::HTTP::Get.new(uri.request_uri)
response = http.request(request)
data = response.body
data = JSON.parse(data)
honors = data["honors"]
member = MemberProfile.where(:rss2_id => id).first
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"])
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"]})
pc.save
end
new_honor.honor_type = pc
new_honor.member_profile = member
new_honor.save
end
end
I18n.locale = original_language
render :json => {"succes" => true}.to_json
end
private
def page_present?(page)

View File

@ -223,7 +223,7 @@ Orbit::Application.routes.draw do
post "import/rss2_album_image" => "import#rss2_album_image"
post "import/rss2_links" => "import#rss2_links"
post "import/rss2_members" => "import#rss2_members"
get "import/import_books" => "import#import_books"
get "import/import_honors" => "import#import_honors"
end
get 'mobile', to: 'pages#home'