mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2025-11-08 07:21:03 +08:00
Add team_id field to assets and tables [SCI-1046]
This commit is contained in:
parent
ee65e46fc7
commit
2edebb282a
9 changed files with 68 additions and 11 deletions
|
|
@ -521,7 +521,9 @@ class ProtocolsController < ApplicationController
|
||||||
transaction_error = false
|
transaction_error = false
|
||||||
Protocol.transaction do
|
Protocol.transaction do
|
||||||
begin
|
begin
|
||||||
import_into_existing(@protocol, @protocol_json, current_user)
|
import_into_existing(
|
||||||
|
@protocol, @protocol_json, current_user, current_team
|
||||||
|
)
|
||||||
rescue Exception
|
rescue Exception
|
||||||
transaction_error = true
|
transaction_error = true
|
||||||
raise ActiveRecord:: Rollback
|
raise ActiveRecord:: Rollback
|
||||||
|
|
|
||||||
|
|
@ -29,6 +29,7 @@ class ResultAssetsController < ApplicationController
|
||||||
@asset = Asset.new(result_params[:asset_attributes])
|
@asset = Asset.new(result_params[:asset_attributes])
|
||||||
@asset.created_by = current_user
|
@asset.created_by = current_user
|
||||||
@asset.last_modified_by = current_user
|
@asset.last_modified_by = current_user
|
||||||
|
@asset.team = current_team
|
||||||
@result = Result.new(
|
@result = Result.new(
|
||||||
user: current_user,
|
user: current_user,
|
||||||
my_module: @my_module,
|
my_module: @my_module,
|
||||||
|
|
@ -98,6 +99,7 @@ class ResultAssetsController < ApplicationController
|
||||||
asset = Asset.find_by_id(update_params[:asset_attributes][:id])
|
asset = Asset.find_by_id(update_params[:asset_attributes][:id])
|
||||||
asset.created_by = current_user
|
asset.created_by = current_user
|
||||||
asset.last_modified_by = current_user
|
asset.last_modified_by = current_user
|
||||||
|
asset.team = current_team
|
||||||
@result.asset = asset
|
@result.asset = asset
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -31,6 +31,7 @@ class ResultTablesController < ApplicationController
|
||||||
def create
|
def create
|
||||||
@table = Table.new(result_params[:table_attributes])
|
@table = Table.new(result_params[:table_attributes])
|
||||||
@table.created_by = current_user
|
@table.created_by = current_user
|
||||||
|
@table.team = current_team
|
||||||
@table.last_modified_by = current_user
|
@table.last_modified_by = current_user
|
||||||
@result = Result.new(
|
@result = Result.new(
|
||||||
user: current_user,
|
user: current_user,
|
||||||
|
|
@ -92,6 +93,7 @@ class ResultTablesController < ApplicationController
|
||||||
update_params = result_params
|
update_params = result_params
|
||||||
@result.last_modified_by = current_user
|
@result.last_modified_by = current_user
|
||||||
@result.table.last_modified_by = current_user
|
@result.table.last_modified_by = current_user
|
||||||
|
@result.table.team = current_team
|
||||||
@result.assign_attributes(update_params)
|
@result.assign_attributes(update_params)
|
||||||
flash_success = t("result_tables.update.success_flash",
|
flash_success = t("result_tables.update.success_flash",
|
||||||
module: @my_module.name)
|
module: @my_module.name)
|
||||||
|
|
@ -218,6 +220,4 @@ class ResultTablesController < ApplicationController
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -33,6 +33,14 @@ class StepsController < ApplicationController
|
||||||
@step.protocol = @protocol
|
@step.protocol = @protocol
|
||||||
@step.user = current_user
|
@step.user = current_user
|
||||||
@step.last_modified_by = current_user
|
@step.last_modified_by = current_user
|
||||||
|
@step.assets.each do |asset|
|
||||||
|
asset.created_by = current_user
|
||||||
|
asset.team = current_team
|
||||||
|
end
|
||||||
|
@step.tables.each do |table|
|
||||||
|
table.created_by = current_user
|
||||||
|
table.team = current_team
|
||||||
|
end
|
||||||
|
|
||||||
# Update default checked state
|
# Update default checked state
|
||||||
@step.checklists.each do |checklist|
|
@step.checklists.each do |checklist|
|
||||||
|
|
@ -133,6 +141,18 @@ class StepsController < ApplicationController
|
||||||
@step.assign_attributes(step_params_all)
|
@step.assign_attributes(step_params_all)
|
||||||
@step.last_modified_by = current_user
|
@step.last_modified_by = current_user
|
||||||
|
|
||||||
|
@step.assets.each do |asset|
|
||||||
|
asset.created_by = current_user if asset.new_record?
|
||||||
|
asset.last_modified_by = current_user unless asset.new_record?
|
||||||
|
asset.team = current_team
|
||||||
|
end
|
||||||
|
|
||||||
|
@step.tables.each do |table|
|
||||||
|
table.created_by = current_user if table.new_record?
|
||||||
|
table.last_modified_by = current_user unless table.new_record?
|
||||||
|
table.team = current_team
|
||||||
|
end
|
||||||
|
|
||||||
if @step.save
|
if @step.save
|
||||||
@step.reload
|
@step.reload
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -48,6 +48,7 @@ class Asset < ActiveRecord::Base
|
||||||
belongs_to :last_modified_by,
|
belongs_to :last_modified_by,
|
||||||
foreign_key: 'last_modified_by_id',
|
foreign_key: 'last_modified_by_id',
|
||||||
class_name: 'User'
|
class_name: 'User'
|
||||||
|
belongs_to :team
|
||||||
has_one :step_asset,
|
has_one :step_asset,
|
||||||
inverse_of: :asset,
|
inverse_of: :asset,
|
||||||
dependent: :destroy
|
dependent: :destroy
|
||||||
|
|
|
||||||
|
|
@ -291,8 +291,6 @@ class Protocol < ActiveRecord::Base
|
||||||
)
|
)
|
||||||
item2.created_by = current_user
|
item2.created_by = current_user
|
||||||
item2.last_modified_by = current_user
|
item2.last_modified_by = current_user
|
||||||
p item
|
|
||||||
p item2
|
|
||||||
item2.save
|
item2.save
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
@ -306,6 +304,7 @@ class Protocol < ActiveRecord::Base
|
||||||
asset.file_file_size
|
asset.file_file_size
|
||||||
)
|
)
|
||||||
asset2.created_by = current_user
|
asset2.created_by = current_user
|
||||||
|
asset2.team = dest.team
|
||||||
asset2.last_modified_by = current_user
|
asset2.last_modified_by = current_user
|
||||||
asset2.file_processing = true if asset.is_image?
|
asset2.file_processing = true if asset.is_image?
|
||||||
asset2.save
|
asset2.save
|
||||||
|
|
@ -323,6 +322,7 @@ class Protocol < ActiveRecord::Base
|
||||||
table2 = Table.new(name: table.name, contents: table.contents)
|
table2 = Table.new(name: table.name, contents: table.contents)
|
||||||
table2.created_by = current_user
|
table2.created_by = current_user
|
||||||
table2.last_modified_by = current_user
|
table2.last_modified_by = current_user
|
||||||
|
table2.team = dest.team
|
||||||
step2.tables << table2
|
step2.tables << table2
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,7 @@ class Table < ActiveRecord::Base
|
||||||
|
|
||||||
belongs_to :created_by, foreign_key: 'created_by_id', class_name: 'User'
|
belongs_to :created_by, foreign_key: 'created_by_id', class_name: 'User'
|
||||||
belongs_to :last_modified_by, foreign_key: 'last_modified_by_id', class_name: 'User'
|
belongs_to :last_modified_by, foreign_key: 'last_modified_by_id', class_name: 'User'
|
||||||
|
belongs_to :team
|
||||||
has_one :step_table, inverse_of: :table
|
has_one :step_table, inverse_of: :table
|
||||||
has_one :step, through: :step_table
|
has_one :step, through: :step_table
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -22,18 +22,18 @@ module ProtocolsImporter
|
||||||
protocol.save!
|
protocol.save!
|
||||||
|
|
||||||
# Protocol is saved, populate it
|
# Protocol is saved, populate it
|
||||||
populate_protocol(protocol, protocol_json, user)
|
populate_protocol(protocol, protocol_json, user, team)
|
||||||
|
|
||||||
return protocol
|
return protocol
|
||||||
end
|
end
|
||||||
|
|
||||||
def import_into_existing(protocol, protocol_json, user)
|
def import_into_existing(protocol, protocol_json, user, team)
|
||||||
# Firstly, destroy existing protocol's contents
|
# Firstly, destroy existing protocol's contents
|
||||||
protocol.destroy_contents(user)
|
protocol.destroy_contents(user)
|
||||||
protocol.reload
|
protocol.reload
|
||||||
|
|
||||||
# Alright, now populate the protocol
|
# Alright, now populate the protocol
|
||||||
populate_protocol(protocol, protocol_json, user)
|
populate_protocol(protocol, protocol_json, user, team)
|
||||||
protocol.reload
|
protocol.reload
|
||||||
|
|
||||||
# Unlink the protocol
|
# Unlink the protocol
|
||||||
|
|
@ -43,7 +43,7 @@ module ProtocolsImporter
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def populate_protocol(protocol, protocol_json, user)
|
def populate_protocol(protocol, protocol_json, user, team)
|
||||||
protocol.reload
|
protocol.reload
|
||||||
|
|
||||||
asset_ids = []
|
asset_ids = []
|
||||||
|
|
@ -93,7 +93,8 @@ module ProtocolsImporter
|
||||||
name: table_json['name'],
|
name: table_json['name'],
|
||||||
contents: Base64.decode64(table_json['contents']),
|
contents: Base64.decode64(table_json['contents']),
|
||||||
created_by: user,
|
created_by: user,
|
||||||
last_modified_by: user
|
last_modified_by: user,
|
||||||
|
team: team
|
||||||
)
|
)
|
||||||
StepTable.create!(
|
StepTable.create!(
|
||||||
step: step,
|
step: step,
|
||||||
|
|
@ -106,7 +107,8 @@ module ProtocolsImporter
|
||||||
step_json["assets"].values.each do |asset_json|
|
step_json["assets"].values.each do |asset_json|
|
||||||
asset = Asset.new(
|
asset = Asset.new(
|
||||||
created_by: user,
|
created_by: user,
|
||||||
last_modified_by: user
|
last_modified_by: user,
|
||||||
|
team: team
|
||||||
)
|
)
|
||||||
|
|
||||||
# Decode the file bytes
|
# Decode the file bytes
|
||||||
|
|
|
||||||
29
db/migrate/20170322095856_add_team_id_to_asset_and_tables.rb
Normal file
29
db/migrate/20170322095856_add_team_id_to_asset_and_tables.rb
Normal file
|
|
@ -0,0 +1,29 @@
|
||||||
|
class AddTeamIdToAssetAndTables < ActiveRecord::Migration
|
||||||
|
def change
|
||||||
|
add_column :assets, :team_id, :integer
|
||||||
|
add_index :assets, :team_id
|
||||||
|
|
||||||
|
add_column :tables, :team_id, :integer
|
||||||
|
add_index :tables, :team_id
|
||||||
|
|
||||||
|
Asset.find_each do |asset|
|
||||||
|
if asset.result
|
||||||
|
asset.update_columns(
|
||||||
|
team_id: asset.result.my_module.experiment.project.team_id
|
||||||
|
)
|
||||||
|
elsif asset.step
|
||||||
|
asset.update_columns(team_id: asset.step.protocol.team_id)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
Table.find_each do |table|
|
||||||
|
if table.result
|
||||||
|
table.update_columns(
|
||||||
|
team_id: table.result.my_module.experiment.project.team_id
|
||||||
|
)
|
||||||
|
elsif table.step
|
||||||
|
table.update_columns(team_id: table.step.protocol.team_id)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
Loading…
Add table
Reference in a new issue