mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2025-02-06 23:15:34 +08:00
Merge pull request #1082 from ZmagoD/zd_SCI_2257
refactor update protocol keywords action [fixes SCI-2257]
This commit is contained in:
commit
478115bbb0
2 changed files with 26 additions and 7 deletions
|
@ -499,13 +499,7 @@ class Protocol < ApplicationRecord
|
||||||
self.protocol_protocol_keywords.destroy_all
|
self.protocol_protocol_keywords.destroy_all
|
||||||
if keywords.present?
|
if keywords.present?
|
||||||
keywords.each do |kw_name|
|
keywords.each do |kw_name|
|
||||||
kw = ProtocolKeyword.find_by(name: kw_name)
|
kw = ProtocolKeyword.find_or_create_by(name: kw_name, team: team)
|
||||||
if kw.blank?
|
|
||||||
kw = ProtocolKeyword.create(
|
|
||||||
name: kw_name,
|
|
||||||
team: self.team
|
|
||||||
)
|
|
||||||
end
|
|
||||||
self.protocol_keywords << kw
|
self.protocol_keywords << kw
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
25
lib/tasks/protocol_keyword_team.rake
Normal file
25
lib/tasks/protocol_keyword_team.rake
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
namespace :protocol_keyword_team do
|
||||||
|
desc 'Fixes false team_id on protocol keyword entry [bug SCI-2257]'
|
||||||
|
task exec: :environment do
|
||||||
|
puts '[sciNote] Start processing...'
|
||||||
|
Protocol.find_each do |protocol|
|
||||||
|
new_keywords = []
|
||||||
|
protocol.protocol_keywords.find_each do |protocol_keyword|
|
||||||
|
next if protocol.team_id == protocol_keyword.team_id
|
||||||
|
# remove protocol keyword from protocol
|
||||||
|
ProtocolProtocolKeyword.where(
|
||||||
|
protocol_id: protocol.id,
|
||||||
|
protocol_keyword_id: protocol_keyword.id
|
||||||
|
).destroy_all
|
||||||
|
# create new keyword with correct team
|
||||||
|
new_keywords << ProtocolKeyword.create(
|
||||||
|
name: protocol_keyword.name,
|
||||||
|
team_id: protocol.team_id
|
||||||
|
)
|
||||||
|
end
|
||||||
|
# append newly created keywords to protocol
|
||||||
|
protocol.protocol_keywords << new_keywords
|
||||||
|
end
|
||||||
|
puts '[sciNote] Done!'
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in a new issue