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
|
||||
render :json => {"succes" => true}.to_json
|
||||
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
|
||||
|
||||
def page_present?(page)
|
||||
|
|
Loading…
Reference in New Issue