forked from saurabh/orbit4-5
Add import_journals, conferences
This commit is contained in:
parent
23fdf6dc37
commit
d9bf2c7ddc
|
@ -902,6 +902,177 @@ class Admin::ImportController < OrbitAdminController
|
||||||
I18n.locale = original_language
|
I18n.locale = original_language
|
||||||
render :json => {"succes" => true}.to_json
|
render :json => {"succes" => true}.to_json
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def import_journals
|
||||||
|
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=journal")
|
||||||
|
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)
|
||||||
|
journals = data["jorunal_papers"]
|
||||||
|
member = MemberProfile.where(:rss2_id => id).first
|
||||||
|
|
||||||
|
journals.each do |rss2_journal|
|
||||||
|
data = {:rss2_id => rss2_journal["rss_id"],
|
||||||
|
:year => rss2_journal["year"],
|
||||||
|
:language => rss2_journal["language"].gsub('-','_'),
|
||||||
|
:vol_no => rss2_journal["volume_number"],
|
||||||
|
:issue_no => rss2_journal["issue_number"],
|
||||||
|
:form_to_start => rss2_journal["from_to"][0],
|
||||||
|
:form_to_end => rss2_journal["from_to"][1],
|
||||||
|
:total_pages => rss2_journal["total_pages"],
|
||||||
|
:isbn => rss2_journal["issn"],
|
||||||
|
:publication_date => Date.parse(rss2_journal["date_of_publication"].gsub('00','01')),
|
||||||
|
:url => rss2_journal["reference_url"],
|
||||||
|
:note => rss2_journal["note"],
|
||||||
|
|
||||||
|
:journal_title_translations => {
|
||||||
|
"en" => rss2_journal["journal_title"]["en"],
|
||||||
|
"zh_tw" => rss2_journal["journal_title"]["zh-tw"]},
|
||||||
|
|
||||||
|
:paper_title_translations => {
|
||||||
|
"en" => rss2_journal["paper_title"]["en"],
|
||||||
|
"zh_tw" => rss2_journal["paper_title"]["zh-tw"]}
|
||||||
|
}
|
||||||
|
|
||||||
|
journal = JournalPaper.where(:rss2_id => rss2_journal["rss_id"]).first
|
||||||
|
journal = JournalPaper.new() if journal.nil?
|
||||||
|
|
||||||
|
journal.update_attributes(data)
|
||||||
|
|
||||||
|
journal.journal_levels = []
|
||||||
|
rss2_journal["level_type"].each do |level|
|
||||||
|
paper_level = JournalLevel.where(:title=>level).first
|
||||||
|
if paper_level.nil?
|
||||||
|
paper_level = JournalLevel.new(:title_translations => {"en" => level, "zh_tw" => level})
|
||||||
|
paper_level.save
|
||||||
|
end
|
||||||
|
journal.journal_levels<<paper_level
|
||||||
|
end
|
||||||
|
|
||||||
|
journal.journal_paper_author_types = []
|
||||||
|
rss2_journal["author_type"].each do |type|
|
||||||
|
author_type = JournalPaperAuthorType.where(:title=>type).first
|
||||||
|
if author_type.nil?
|
||||||
|
author_type = JournalPaperAuthorType.new(:title_translations => {"en" => type, "zh_tw" => type})
|
||||||
|
author_type.save
|
||||||
|
end
|
||||||
|
journal.journal_paper_author_types<<author_type
|
||||||
|
end
|
||||||
|
|
||||||
|
journal.journal_paper_files.destroy_all
|
||||||
|
paper_file = journal.journal_paper_files.new
|
||||||
|
paper_file.remote_journal_file_url = rss2_journal["file"]["file"]
|
||||||
|
paper_file.title_translations = {"en" => rss2_journal["file"]["name"], "zh_tw" => rss2_journal["file"]["name"]}
|
||||||
|
paper_file.save rescue nil
|
||||||
|
|
||||||
|
journal.member_profile = member
|
||||||
|
journal.save
|
||||||
|
end
|
||||||
|
|
||||||
|
I18n.locale = original_language
|
||||||
|
render :json => {"succes" => true}.to_json
|
||||||
|
end
|
||||||
|
|
||||||
|
def import_conferences
|
||||||
|
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=conference")
|
||||||
|
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)
|
||||||
|
conferences = data["conference_papers"]
|
||||||
|
member = MemberProfile.where(:rss2_id => id).first
|
||||||
|
|
||||||
|
conferences.each do |rss2_conference|
|
||||||
|
data = {:rss2_id => rss2_conference["rss_id"],
|
||||||
|
:year => rss2_conference["year"],
|
||||||
|
:language => rss2_conference["language"].gsub('-','_'),
|
||||||
|
:isi_number => rss2_conference["isi_number"],
|
||||||
|
:period_start_date => Date.parse(rss2_conference["start_date"].gsub('00','01')),
|
||||||
|
:period_end_date => Date.parse(rss2_conference["end_date"].gsub('00','01')),
|
||||||
|
:url => rss2_conference["reference_url"],
|
||||||
|
:isbn => rss2_conference["issn"],
|
||||||
|
:note => rss2_conference["note"],
|
||||||
|
|
||||||
|
:conference_title_translations => {
|
||||||
|
"en" => rss2_conference["conference_title"]["en"],
|
||||||
|
"zh_tw" => rss2_conference["conference_title"]["zh-tw"]},
|
||||||
|
|
||||||
|
:paper_title_translations => {
|
||||||
|
"en" => rss2_conference["paper_title"]["en"],
|
||||||
|
"zh_tw" => rss2_conference["paper_title"]["zh-tw"]},
|
||||||
|
|
||||||
|
:location_translations => {
|
||||||
|
"en" => rss2_conference["location"]["en"],
|
||||||
|
"zh_tw" => rss2_conference["location"]["zh-tw"]},
|
||||||
|
|
||||||
|
:authors_translations => {
|
||||||
|
"en" => rss2_conference["authors"],
|
||||||
|
"zh_tw" => rss2_conference["authors"]},
|
||||||
|
|
||||||
|
:sponsor_translations => {
|
||||||
|
"en" => rss2_conference["sponsor"]["en"],
|
||||||
|
"zh_tw" => rss2_conference["sponsor"]["zh-tw"]}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
conference = WritingConference.where(:rss2_id => rss2_conference["rss_id"]).first
|
||||||
|
conference = WritingConference.new() if conference.nil?
|
||||||
|
|
||||||
|
conference.update_attributes(data)
|
||||||
|
|
||||||
|
conference.conference_paper_types = []
|
||||||
|
rss2_conference["paper_type"].each do |type|
|
||||||
|
paper_type = ConferencePaperType.where(:title=>type).first
|
||||||
|
if paper_type.nil?
|
||||||
|
paper_type = ConferencePaperType.new(:title_translations => {"en" => type, "zh_tw" => type})
|
||||||
|
paper_type.save
|
||||||
|
end
|
||||||
|
conference.conference_paper_types<<paper_type
|
||||||
|
end
|
||||||
|
|
||||||
|
conference.conference_paper_levels = []
|
||||||
|
rss2_conference["paper_level"].each do |level|
|
||||||
|
paper_level = ConferencePaperLevel.where(:title=>level).first
|
||||||
|
if paper_level.nil?
|
||||||
|
paper_level = ConferencePaperLevel.new(:title_translations => {"en" => level, "zh_tw" => level})
|
||||||
|
paper_level.save
|
||||||
|
end
|
||||||
|
conference.conference_paper_levels<<paper_level
|
||||||
|
end
|
||||||
|
|
||||||
|
conference.conference_author_types = []
|
||||||
|
rss2_conference["author_type"].each do |type|
|
||||||
|
author_type = ConferenceAuthorType.where(:title=>type).first
|
||||||
|
if author_type.nil?
|
||||||
|
author_type = ConferenceAuthorType.new(:title_translations => {"en" => type, "zh_tw" => type})
|
||||||
|
author_type.save
|
||||||
|
end
|
||||||
|
conference.conference_author_types<<author_type
|
||||||
|
end
|
||||||
|
|
||||||
|
conference.writing_conference_files.destroy_all
|
||||||
|
paper_file = conference.writing_conference_files.new
|
||||||
|
paper_file.remote_file_url = rss2_conference["file"]["file"]
|
||||||
|
paper_file.title_translations = {"en" => rss2_conference["file"]["name"], "zh_tw" => rss2_conference["file"]["name"]}
|
||||||
|
paper_file.save rescue nil
|
||||||
|
|
||||||
|
conference.member_profile = member
|
||||||
|
conference.save
|
||||||
|
end
|
||||||
|
|
||||||
|
I18n.locale = original_language
|
||||||
|
render :json => {"succes" => true}.to_json
|
||||||
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def page_present?(page)
|
def page_present?(page)
|
||||||
|
|
Loading…
Reference in New Issue