From ce36d284e6ae45f74a594311c5ef721103d48ef8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B1=E5=8D=9A=E4=BA=9E?= Date: Sat, 18 Nov 2023 09:55:25 +0800 Subject: [PATCH] Fix bug. --- fgu_sync.rake | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/fgu_sync.rake b/fgu_sync.rake index 6e996ab..c2981ac 100644 --- a/fgu_sync.rake +++ b/fgu_sync.rake @@ -4,7 +4,7 @@ namespace :fgu_sync do task :sync_plugins => :environment do MemberProfile.each do |mp| staff_id = mp.sid rescue nil - puts mp.id + # puts mp.id if !staff_id.nil? && staff_id != "" sync_fgu_journals(staff_id, mp) sync_fgu_conference(staff_id, mp) @@ -15,6 +15,9 @@ namespace :fgu_sync do end end end + def parse_date(d) + (d.present? ? (Date.parse(d) rescue Date.today) : nil) + end def camelize(str) str.split('_').map{|v| v.capitalize}.join(' ') end @@ -45,7 +48,7 @@ namespace :fgu_sync do data["data"].each_with_index do |dt, idx| rss2id = dt["journal_id"] - pd = Date.parse(dt["publication_date"]) rescue Date.today + pd = parse_date(dt["publication_date"]) paper_title = {"en" => dt["paper_title"],"zh_tw" => dt["paper_title"]} journal_title = {"en" => dt["journal_title"],"zh_tw" => dt["journal_title"]} from_to = dt["from_to"].split("-") @@ -108,8 +111,8 @@ namespace :fgu_sync do data["data"].each_with_index do |dt, idx| rss2id = dt["conf_id"] - start_date = Date.parse(dt["start_date"]) rescue Date.today - end_date = Date.parse(dt["end_date"]) rescue Date.today + start_date = parse_date(dt["start_date"]) + end_date = parse_date(dt["end_date"]) paper_title = {"en" => dt["paper_title"],"zh_tw" => dt["paper_title"]} conference_title = {"en" => dt["conference_name"],"zh_tw" => dt["conference_name"]} authors = [dt["author1"],dt["author2"],dt["author3"],dt["author4"]] @@ -148,7 +151,7 @@ namespace :fgu_sync do data["data"].each_with_index do |dt, idx| rss2id = dt["book_id"] - pd = Date.parse(dt["date_of_publication"]) rescue Date.today + pd = parse_date(dt["date_of_publication"]) book_title = {"en" => dt["book_title"],"zh_tw" => dt["book_title"]} publisher = {"en" => dt["publisher"],"zh_tw" => dt["publisher"]} authors = [dt["author1"],dt["author2"],dt["author3"],dt["author4"]] @@ -202,8 +205,8 @@ namespace :fgu_sync do puts "Deleting old data" Diploma.where(:member_profile_id => mp.id).destroy_all data["data"].each_with_index do |dt, idx| - start_date = Date.parse(dt["start_date"]) rescue Date.today - end_date = Date.parse(dt["end_date"]) rescue Date.today + start_date = parse_date(dt["start_date"]) + end_date = parse_date(dt["end_date"]) school_name = {"en" => dt["school_name"], "zh_tw" => dt["school_name"]} department = {"en" => dt["department"], "zh_tw" => dt["department"]} degree = {"en" => dt["degree"], "zh_tw" => dt["degree"]} @@ -226,8 +229,8 @@ namespace :fgu_sync do puts "Deleting old data" Experience.where(:member_profile_id => mp.id).destroy_all data["data"].each_with_index do |dt, idx| - start_date = Date.parse(dt["start_date"]) rescue Date.today - end_date = Date.parse(dt["end_date"]) rescue Date.today + start_date = parse_date(dt["start_date"]) + end_date = parse_date(dt["end_date"]) organization_title = {"en" => dt["organization_title"], "zh_tw" => dt["organization_title"]} job_title = {"en" => dt["job_title"], "zh_tw" => dt["job_title"]} if !dt["emp_type"].blank? @@ -265,7 +268,7 @@ namespace :fgu_sync do role = Role.where(:key => "teacher").first end if !role.nil? - puts "Assigning role #{role.key}" + # puts "Assigning role #{role.key}" case dt["job_status"] when "專任" role_status = role.role_statuses.select{|v| v.title_translations[:en].upcase == "Full-Time".upcase}.first @@ -275,16 +278,16 @@ namespace :fgu_sync do role_status = nil end if role.key == "teacher" - puts dt + # puts dt af = fetch_key(role.attribute_fields,"job_title") if !af.nil? options = af.option_list.values job_title = options.index(options.find{|x| x["zh_tw"] == dt["job_title"]}) - puts job_title.to_s + # puts job_title.to_s if job_title.blank? job_title = af.option_list.keys.last.to_i + 1 af.option_list[job_title] = {"en" => dt["job_title"], "zh_tw" => dt["job_title"]} - puts af.option_list.to_s + # puts af.option_list.to_s af.save else job_title = af.option_list.keys[job_title].to_i @@ -349,7 +352,7 @@ namespace :fgu_sync do all_role_status_ids << role_status.id end end - puts [staff_id,all_role_ids.inspect] + # puts [staff_id,all_role_ids.inspect] if !all_role_ids.blank? mp.role_ids = all_role_ids all_role_ids.each do |r_id|