prevent the personal plugin from being deleted by rake of the user that not using sync

This commit is contained in:
chiu 2020-04-29 19:50:02 +08:00
parent 985d4303df
commit afa1740f91
1 changed files with 17 additions and 15 deletions

View File

@ -3,6 +3,8 @@ module NtnuSyncPlugin
def self.sync_journal_papers(query_result, user)
puts "Journal Paper for user: #{user.user_name}"
journal_papers = query_result.select { |data| data['ER_ACCOUNT'] == user.user_name && data['EI_SN'] == '20100421092921000' }
return if journal_papers.count == 0
JournalPaper.where(member_profile_id: user.member_profile_id).destroy
journal_papers.each do |journal_paper|
j_data = JSON.parse(journal_paper['JDATA'])
jp = JournalPaper.new
@ -47,6 +49,8 @@ module NtnuSyncPlugin
def self.sync_conference_papers(query_result, user)
puts "Conference Paper for user: #{user.user_name}"
conference_papers = query_result.select { |data| data['ER_ACCOUNT'] == user.user_name && data['EI_SN'] == '20100504082700357' }
return if conference_papers.count == 0
WritingConference.where(member_profile_id: user.member_profile_id).destroy
conference_papers.each do |conference_paper|
j_data = JSON.parse(conference_paper['JDATA'])
wc = WritingConference.new
@ -106,6 +110,8 @@ module NtnuSyncPlugin
def self.sync_projects(query_result, user)
puts "Projects for user: #{user.user_name}"
projects = query_result.select { |data| data['ER_ACCOUNT'] == user.user_name && data['EI_SN'] == '20101113165022345' }
return if projects.count == 0
Project.where(member_profile_id: user.member_profile_id).destroy
projects.each do |project|
j_data = JSON.parse(project['JDATA'])
pj = Project.new
@ -161,9 +167,7 @@ module NtnuSyncPlugin
puts "Academic treatise books for user: #{user.user_name}"
book_type = BookType.where('title.en' => 'academic treatise books')
books = query_result.select { |data| data['ER_ACCOUNT'] == user.user_name && data['EI_SN'] == '20101113154035616' }
return if books.empty?
books.each do |book|
j_data = JSON.parse(book['JDATA'])
bk = Book.new
@ -215,9 +219,7 @@ module NtnuSyncPlugin
puts "Academic book chapters for user: #{user.user_name}"
book_type = BookType.where('title.en' => 'academic book chapters')
books = query_result.select { |data| data['ER_ACCOUNT'] == user.user_name && data['EI_SN'] == '20101113154120441' }
return if books.empty?
books.each do |book|
j_data = JSON.parse(book['JDATA'])
bk = Book.new
@ -273,9 +275,7 @@ module NtnuSyncPlugin
puts "Officially published university textbooks for user: #{user.user_name}"
book_type = BookType.where('title.en' => 'officially published university textbooks')
books = query_result.select { |data| data['ER_ACCOUNT'] == user.user_name && data['EI_SN'] == '20101117102418434' }
return if books.empty?
books.each do |book|
j_data = JSON.parse(book['JDATA'])
bk = Book.new
@ -327,9 +327,7 @@ module NtnuSyncPlugin
puts "Other authored works for user: #{user.user_name}"
book_type = BookType.where('title.en' => 'other authored works')
books = query_result.select { |data| data['ER_ACCOUNT'] == user.user_name && data['EI_SN'] == '20101117111154107' }
return if books.empty?
books.each do |book|
j_data = JSON.parse(book['JDATA'])
bk = Book.new
@ -438,13 +436,6 @@ namespace :sync_ntnu_personal_plugins do
query_result.each do |data|
available_accounts.add data["ER_ACCOUNT"]
end
# Remove Old JournalPaper, xxx, ...
JournalPaper.destroy_all
WritingConference.destroy_all
Project.destroy_all
Book.destroy_all
# Create book types
NtnuSyncPlugin.define_book_types
@ -455,6 +446,17 @@ namespace :sync_ntnu_personal_plugins do
NtnuSyncPlugin.sync_journal_papers(query_result, user)
NtnuSyncPlugin.sync_conference_papers(query_result, user)
NtnuSyncPlugin.sync_projects(query_result, user)
books_for_user = query_result.select do |data|
tmp = (data['ER_ACCOUNT'] == user.user_name)
tmp1 = (data['EI_SN'] == '20101113154035616')
tmp2 = (data['EI_SN'] == '20101113154120441')
tmp3 = (data['EI_SN'] == '20101117102418434')
tmp4 = (data['EI_SN'] == '20101117111154107')
tmp && (tmp1 || tmp2 || tmp3 || tmp4)
end
if books_for_user.count != 0
Book.where(member_profile_id: user.member_profile_id,:pages=>nil).destroy
end
NtnuSyncPlugin.sync_academic_treatise_books(query_result, user)
NtnuSyncPlugin.sync_academic_book_chapters(query_result, user)
NtnuSyncPlugin.sync_officially_published_university_textbooks(query_result, user)