mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2025-02-06 06:56:54 +08:00
Merge pull request #113 from Ducz0r/lm-add-first-time-activities
Fix first time data generator & fake data generator
This commit is contained in:
commit
2b382fee0f
3 changed files with 248 additions and 117 deletions
|
@ -255,7 +255,12 @@ class Organization < ActiveRecord::Base
|
||||||
def calculate_space_taken
|
def calculate_space_taken
|
||||||
st = 0
|
st = 0
|
||||||
projects.includes(
|
projects.includes(
|
||||||
my_modules: { protocols: { steps: :assets }, results: { result_asset: :asset } }
|
experiments: {
|
||||||
|
my_modules: {
|
||||||
|
protocols: { steps: :assets },
|
||||||
|
results: { result_asset: :asset }
|
||||||
|
}
|
||||||
|
}
|
||||||
).find_each do |project|
|
).find_each do |project|
|
||||||
project.project_my_modules.find_each do |my_module|
|
project.project_my_modules.find_each do |my_module|
|
||||||
my_module.protocol.steps.find_each do |step|
|
my_module.protocol.steps.find_each do |step|
|
||||||
|
|
|
@ -135,10 +135,10 @@ module FirstTimeDataGenerator
|
||||||
)
|
)
|
||||||
|
|
||||||
# Add a comment
|
# Add a comment
|
||||||
project.comments << Comment.create(
|
generate_project_comment(
|
||||||
user: user,
|
project,
|
||||||
message: "I've created a demo project",
|
user,
|
||||||
created_at: generate_random_time(1.week.ago)
|
"I've created a demo project"
|
||||||
)
|
)
|
||||||
|
|
||||||
# Create a module group
|
# Create a module group
|
||||||
|
@ -316,44 +316,45 @@ module FirstTimeDataGenerator
|
||||||
end
|
end
|
||||||
|
|
||||||
# Add comments to modules
|
# Add comments to modules
|
||||||
my_modules[0].comments << Comment.create(
|
generate_module_comment(
|
||||||
user: user,
|
my_modules[0],
|
||||||
message: "We should have a meeting to discuss sampling parametrs soon.",
|
user,
|
||||||
created_at: generate_random_time(my_modules[0].created_at, 1.day)
|
'We should have a meeting to discuss sampling parametrs soon.'
|
||||||
)
|
)
|
||||||
my_modules[0].comments << Comment.create(
|
generate_module_comment(
|
||||||
user: user,
|
my_modules[0],
|
||||||
message: "I agree."
|
user,
|
||||||
|
'I agree.'
|
||||||
)
|
)
|
||||||
|
|
||||||
my_modules[1].comments << Comment.create(
|
generate_module_comment(
|
||||||
user: user,
|
my_modules[1],
|
||||||
message: "The samples have arrived.",
|
user,
|
||||||
created_at: generate_random_time(my_modules[0].created_at, 2.days)
|
'The samples have arrived.'
|
||||||
)
|
)
|
||||||
|
|
||||||
my_modules[2].comments << Comment.create(
|
generate_module_comment(
|
||||||
user: user,
|
my_modules[2],
|
||||||
message: "Due date has been postponed for a day.",
|
user,
|
||||||
created_at: generate_random_time(my_modules[0].created_at, 1.days)
|
'Due date has been postponed for a day.'
|
||||||
)
|
)
|
||||||
|
|
||||||
my_modules[4].comments << Comment.create(
|
generate_module_comment(
|
||||||
user: user,
|
my_modules[4],
|
||||||
message: "Please show Steve the RT procedure.",
|
user,
|
||||||
created_at: generate_random_time(my_modules[0].created_at, 2.days)
|
'Please show Steve the RT procedure.'
|
||||||
)
|
)
|
||||||
|
|
||||||
my_modules[5].comments << Comment.create(
|
generate_module_comment(
|
||||||
user: user,
|
my_modules[5],
|
||||||
message: "The results must be very definitive.",
|
user,
|
||||||
created_at: generate_random_time(my_modules[0].created_at, 3.days)
|
'The results must be very definitive.'
|
||||||
)
|
)
|
||||||
|
|
||||||
my_modules[7].comments << Comment.create(
|
generate_module_comment(
|
||||||
user: user,
|
my_modules[7],
|
||||||
message: "The due date here is flexible.",
|
user,
|
||||||
created_at: generate_random_time(my_modules[0].created_at, 3.days)
|
'The due date here is flexible.'
|
||||||
)
|
)
|
||||||
|
|
||||||
# Create tags and add them to module
|
# Create tags and add them to module
|
||||||
|
@ -422,10 +423,10 @@ module FirstTimeDataGenerator
|
||||||
created_at: generate_random_time(my_modules[0].created_at, 1.days),
|
created_at: generate_random_time(my_modules[0].created_at, 1.days),
|
||||||
user: user
|
user: user
|
||||||
)
|
)
|
||||||
temp_result.comments << Comment.new(
|
generate_result_comment(
|
||||||
user: user,
|
temp_result,
|
||||||
message: "The table shows proposed number of biological replicates.",
|
user,
|
||||||
created_at: generate_random_time(my_modules[0].created_at, 1.days)
|
'The table shows proposed number of biological replicates.'
|
||||||
)
|
)
|
||||||
temp_result.table = Table.new(
|
temp_result.table = Table.new(
|
||||||
created_by: user,
|
created_by: user,
|
||||||
|
@ -533,10 +534,11 @@ module FirstTimeDataGenerator
|
||||||
created_at: generate_random_time(my_modules[2].created_at, 1.days),
|
created_at: generate_random_time(my_modules[2].created_at, 1.days),
|
||||||
user: user
|
user: user
|
||||||
)
|
)
|
||||||
temp_result.comments << Comment.new(
|
generate_result_comment(
|
||||||
user: user,
|
temp_result,
|
||||||
message: "PVY NTN 6dpi isolation seems to have failed, please repeat nanodrop measurement.",
|
user,
|
||||||
created_at: generate_random_time(my_modules[2].created_at, 2.days)
|
'PVY NTN 6dpi isolation seems to have failed, ' \
|
||||||
|
'please repeat nanodrop measurement.'
|
||||||
)
|
)
|
||||||
temp_result.table = Table.new(
|
temp_result.table = Table.new(
|
||||||
created_by: user,
|
created_by: user,
|
||||||
|
@ -738,12 +740,12 @@ module FirstTimeDataGenerator
|
||||||
|
|
||||||
# Add comment to step
|
# Add comment to step
|
||||||
step = my_modules[6].protocol.steps.where("position = 1").take
|
step = my_modules[6].protocol.steps.where("position = 1").take
|
||||||
step.comments << Comment.new(
|
|
||||||
user: user,
|
|
||||||
message: "What is the Cq that should be considered as positive result?",
|
|
||||||
created_at: generate_random_time(step.created_at, 2.hours)
|
|
||||||
)
|
|
||||||
step.save
|
step.save
|
||||||
|
generate_step_comment(
|
||||||
|
step,
|
||||||
|
user,
|
||||||
|
'What is the Cq that should be considered as positive result?'
|
||||||
|
)
|
||||||
|
|
||||||
# ----------------- Module 8 ------------------
|
# ----------------- Module 8 ------------------
|
||||||
module_step_names = [
|
module_step_names = [
|
||||||
|
@ -903,27 +905,90 @@ module FirstTimeDataGenerator
|
||||||
end
|
end
|
||||||
if polite_comment
|
if polite_comment
|
||||||
commented_on = generate_random_time(completed_on)
|
commented_on = generate_random_time(completed_on)
|
||||||
step.comments << Comment.create(
|
generate_step_comment(
|
||||||
user: @user,
|
step,
|
||||||
message: polite_comment,
|
@user,
|
||||||
created_at: commented_on
|
polite_comment,
|
||||||
)
|
commented_on
|
||||||
Activity.create(
|
|
||||||
type_of: :add_comment_to_step,
|
|
||||||
project: my_module.experiment.project,
|
|
||||||
my_module: my_module,
|
|
||||||
user: @user,
|
|
||||||
created_at: commented_on,
|
|
||||||
message: I18n.t(
|
|
||||||
"activities.add_comment_to_step",
|
|
||||||
user: @user.full_name,
|
|
||||||
step: i,
|
|
||||||
step_name: step.name
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def generate_project_comment(project, user, message, created_at = nil)
|
||||||
|
created_at ||= generate_random_time(project.created_at, 1.week)
|
||||||
|
project.comments << Comment.create(
|
||||||
|
user: user,
|
||||||
|
message: message,
|
||||||
|
created_at: created_at
|
||||||
|
)
|
||||||
|
Activity.create(
|
||||||
|
type_of: :add_comment_to_project,
|
||||||
|
user: user,
|
||||||
|
project: project,
|
||||||
|
created_at: created_at,
|
||||||
|
message: t('activities.add_comment_to_project',
|
||||||
|
user: user.full_name,
|
||||||
|
project: project.name)
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
|
def generate_module_comment(my_module, user, message, created_at = nil)
|
||||||
|
created_at ||= generate_random_time(my_module.created_at, 1.day)
|
||||||
|
my_module.comments << Comment.create(
|
||||||
|
user: user,
|
||||||
|
message: message,
|
||||||
|
created_at: created_at
|
||||||
|
)
|
||||||
|
Activity.create(
|
||||||
|
type_of: :add_comment_to_module,
|
||||||
|
user: user,
|
||||||
|
project: my_module.experiment.project,
|
||||||
|
my_module: my_module,
|
||||||
|
created_at: created_at,
|
||||||
|
message: t('activities.add_comment_to_module',
|
||||||
|
user: user.full_name,
|
||||||
|
module: my_module.name)
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
|
def generate_result_comment(result, user, message, created_at = nil)
|
||||||
|
created_at ||= generate_random_time(result.created_at, 1.days)
|
||||||
|
result.comments << Comment.new(
|
||||||
|
user: user,
|
||||||
|
message: message,
|
||||||
|
created_at: created_at
|
||||||
|
)
|
||||||
|
Activity.create(
|
||||||
|
type_of: :add_comment_to_result,
|
||||||
|
user: user,
|
||||||
|
project: result.my_module.experiment.project,
|
||||||
|
my_module: result.my_module,
|
||||||
|
created_at: created_at,
|
||||||
|
message: t('activities.add_comment_to_result',
|
||||||
|
user: user.full_name,
|
||||||
|
result: result.name)
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
|
def generate_step_comment(step, user, message, created_at = nil)
|
||||||
|
created_at ||= generate_random_time(step.created_at, 2.hours)
|
||||||
|
step.comments << Comment.new(
|
||||||
|
user: user,
|
||||||
|
message: message,
|
||||||
|
created_at: created_at
|
||||||
|
)
|
||||||
|
Activity.create(
|
||||||
|
type_of: :add_comment_to_step,
|
||||||
|
user: user,
|
||||||
|
project: step.protocol.my_module.experiment.project,
|
||||||
|
my_module: step.protocol.my_module,
|
||||||
|
created_at: created_at,
|
||||||
|
message: t('activities.add_comment_to_step',
|
||||||
|
user: user.full_name,
|
||||||
|
step: step.position + 1,
|
||||||
|
step_name: step.name)
|
||||||
|
)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -16,7 +16,7 @@ namespace :db do
|
||||||
NR_PROTOCOLS = 20
|
NR_PROTOCOLS = 20
|
||||||
NR_PROTOCOL_KEYWORDS = 20
|
NR_PROTOCOL_KEYWORDS = 20
|
||||||
NR_PROJECTS = 3
|
NR_PROJECTS = 3
|
||||||
NR_EXPERIMENTS = 2
|
NR_EXPERIMENTS = 4
|
||||||
NR_MODULE_GROUPS = 4
|
NR_MODULE_GROUPS = 4
|
||||||
NR_MODULES = 4
|
NR_MODULES = 4
|
||||||
NR_STEPS = 3
|
NR_STEPS = 3
|
||||||
|
@ -437,13 +437,7 @@ namespace :db do
|
||||||
|
|
||||||
# Add some comments
|
# Add some comments
|
||||||
for _ in 1..nr_comments
|
for _ in 1..nr_comments
|
||||||
if rand <= RATIO_COMMENTS
|
generate_fake_project_comment(project) if rand <= RATIO_COMMENTS
|
||||||
project.comments << Comment.create(
|
|
||||||
user: pluck_random(project.users),
|
|
||||||
message: Faker::Hipster.sentence,
|
|
||||||
created_at: Faker::Time.backward(500)
|
|
||||||
)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -458,13 +452,15 @@ namespace :db do
|
||||||
restored_by = pluck_random(project.users)
|
restored_by = pluck_random(project.users)
|
||||||
restored_on = Faker::Time.between(archived_on, DateTime.now)
|
restored_on = Faker::Time.between(archived_on, DateTime.now)
|
||||||
|
|
||||||
|
author = pluck_random(project.users)
|
||||||
Experiment.create(
|
Experiment.create(
|
||||||
name: Faker::Hacker.noun,
|
name: Faker::Hacker.noun,
|
||||||
description: Faker::Hipster.sentence,
|
description: Faker::Hipster.sentence,
|
||||||
project: project,
|
project: project,
|
||||||
created_at: created_at,
|
created_at: created_at,
|
||||||
created_by: pluck_random(project.users),
|
created_by: author,
|
||||||
archived: status,
|
last_modified_by: author,
|
||||||
|
archived: status.in?([:active, :restored]),
|
||||||
archived_on: status.in?([:archived, :restored]) ?
|
archived_on: status.in?([:archived, :restored]) ?
|
||||||
archived_on : nil,
|
archived_on : nil,
|
||||||
archived_by: status.in?([:archived, :restored]) ?
|
archived_by: status.in?([:archived, :restored]) ?
|
||||||
|
@ -496,8 +492,8 @@ namespace :db do
|
||||||
taken_pos = []
|
taken_pos = []
|
||||||
for _ in 1..nr_modules
|
for _ in 1..nr_modules
|
||||||
begin
|
begin
|
||||||
x = rand(0..nr_modules)
|
x = rand(0..nr_modules) * 32
|
||||||
y = rand(0..nr_modules)
|
y = rand(0..nr_modules) * 16
|
||||||
end while [x, y].in? taken_pos
|
end while [x, y].in? taken_pos
|
||||||
taken_pos << [x, y]
|
taken_pos << [x, y]
|
||||||
|
|
||||||
|
@ -523,7 +519,7 @@ namespace :db do
|
||||||
my_module_group: status == :archived ?
|
my_module_group: status == :archived ?
|
||||||
nil :
|
nil :
|
||||||
(rand <= RATIO_MODULE_MODULE_GROUPS ?
|
(rand <= RATIO_MODULE_MODULE_GROUPS ?
|
||||||
pluck_random(project.my_module_groups) : nil
|
pluck_random(experiment.my_module_groups) : nil
|
||||||
),
|
),
|
||||||
archived: status == :archived,
|
archived: status == :archived,
|
||||||
archived_on: status.in?([:archived, :restored]) ?
|
archived_on: status.in?([:archived, :restored]) ?
|
||||||
|
@ -538,7 +534,7 @@ namespace :db do
|
||||||
Activity.create(
|
Activity.create(
|
||||||
type_of: :create_module,
|
type_of: :create_module,
|
||||||
user: author,
|
user: author,
|
||||||
project: my_module.project,
|
project: my_module.experiment.project,
|
||||||
my_module: my_module,
|
my_module: my_module,
|
||||||
message: I18n.t(
|
message: I18n.t(
|
||||||
"activities.create_module",
|
"activities.create_module",
|
||||||
|
@ -551,7 +547,7 @@ namespace :db do
|
||||||
Activity.create(
|
Activity.create(
|
||||||
type_of: :archive_module,
|
type_of: :archive_module,
|
||||||
user: archived_by,
|
user: archived_by,
|
||||||
project: my_module.project,
|
project: my_module.experiment.project,
|
||||||
my_module: my_module,
|
my_module: my_module,
|
||||||
message: I18n.t(
|
message: I18n.t(
|
||||||
"activities.archive_module",
|
"activities.archive_module",
|
||||||
|
@ -565,7 +561,7 @@ namespace :db do
|
||||||
Activity.create(
|
Activity.create(
|
||||||
type_of: :restore_module,
|
type_of: :restore_module,
|
||||||
user: restored_by,
|
user: restored_by,
|
||||||
project: my_module.project,
|
project: my_module.experiment.project,
|
||||||
my_module: my_module,
|
my_module: my_module,
|
||||||
message: I18n.t(
|
message: I18n.t(
|
||||||
"activities.restore_module",
|
"activities.restore_module",
|
||||||
|
@ -590,7 +586,7 @@ namespace :db do
|
||||||
taken_user_ids << user.id
|
taken_user_ids << user.id
|
||||||
|
|
||||||
assigned_on = Faker::Time.backward(500)
|
assigned_on = Faker::Time.backward(500)
|
||||||
assigned_by = pluck_random(my_module.project.users)
|
assigned_by = pluck_random(my_module.experiment.project.users)
|
||||||
UserMyModule.create(
|
UserMyModule.create(
|
||||||
user: user,
|
user: user,
|
||||||
my_module: my_module,
|
my_module: my_module,
|
||||||
|
@ -600,7 +596,7 @@ namespace :db do
|
||||||
Activity.create(
|
Activity.create(
|
||||||
type_of: :assign_user_to_module,
|
type_of: :assign_user_to_module,
|
||||||
user: assigned_by,
|
user: assigned_by,
|
||||||
project: my_module.project,
|
project: my_module.experiment.project,
|
||||||
my_module: my_module,
|
my_module: my_module,
|
||||||
message: I18n.t(
|
message: I18n.t(
|
||||||
"activities.assign_user_to_module",
|
"activities.assign_user_to_module",
|
||||||
|
@ -634,18 +630,12 @@ namespace :db do
|
||||||
|
|
||||||
# Add some comments
|
# Add some comments
|
||||||
for _ in 1..nr_comments
|
for _ in 1..nr_comments
|
||||||
if rand <= RATIO_COMMENTS
|
generate_fake_module_comment(my_module) if rand <= RATIO_COMMENTS
|
||||||
my_module.comments << Comment.create(
|
|
||||||
user: pluck_random(my_module.project.users),
|
|
||||||
message: Faker::Hipster.sentence,
|
|
||||||
created_at: Faker::Time.backward(500)
|
|
||||||
)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
# Generate some connections between modules
|
# Generate some connections between modules
|
||||||
project.my_module_groups.find_each do |my_module_group|
|
experiment.my_module_groups.find_each do |my_module_group|
|
||||||
if my_module_group.my_modules.empty? or
|
if my_module_group.my_modules.empty? or
|
||||||
my_module_group.my_modules.count == 1
|
my_module_group.my_modules.count == 1
|
||||||
# If any module group doesn't contain
|
# If any module group doesn't contain
|
||||||
|
@ -753,7 +743,7 @@ namespace :db do
|
||||||
# Add activities
|
# Add activities
|
||||||
Activity.create(
|
Activity.create(
|
||||||
type_of: :add_result,
|
type_of: :add_result,
|
||||||
project: project,
|
project: experiment.project,
|
||||||
my_module: my_module,
|
my_module: my_module,
|
||||||
user: user,
|
user: user,
|
||||||
created_at: created_at,
|
created_at: created_at,
|
||||||
|
@ -767,7 +757,7 @@ namespace :db do
|
||||||
Activity.create(
|
Activity.create(
|
||||||
type_of: :archive_result,
|
type_of: :archive_result,
|
||||||
user: user,
|
user: user,
|
||||||
project: project,
|
project: experiment.project,
|
||||||
my_module: my_module,
|
my_module: my_module,
|
||||||
message: I18n.t(
|
message: I18n.t(
|
||||||
str2,
|
str2,
|
||||||
|
@ -781,27 +771,7 @@ namespace :db do
|
||||||
|
|
||||||
# Add some comments
|
# Add some comments
|
||||||
for _ in 1..nr_comments
|
for _ in 1..nr_comments
|
||||||
if rand <= RATIO_COMMENTS
|
generate_fake_result_comment(result) if rand <= RATIO_COMMENTS
|
||||||
comment_user = pluck_random(result.my_module.project.users)
|
|
||||||
comment_created_at = Faker::Time.backward(500)
|
|
||||||
result.comments << Comment.create(
|
|
||||||
user: comment_user,
|
|
||||||
message: Faker::Hipster.sentence,
|
|
||||||
created_at: comment_created_at
|
|
||||||
)
|
|
||||||
Activity.create(
|
|
||||||
type_of: :add_comment_to_result,
|
|
||||||
project: project,
|
|
||||||
my_module: my_module,
|
|
||||||
user: comment_user,
|
|
||||||
created_at: comment_created_at,
|
|
||||||
message: I18n.t(
|
|
||||||
"activities.add_comment_to_result",
|
|
||||||
user: user.full_name,
|
|
||||||
result: result.name
|
|
||||||
)
|
|
||||||
)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -972,6 +942,11 @@ namespace :db do
|
||||||
create_private_user_organization(user, DEFAULT_PRIVATE_ORG_NAME)
|
create_private_user_organization(user, DEFAULT_PRIVATE_ORG_NAME)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Generate thumbnails of all experiments
|
||||||
|
Experiment.find_each do |experiment|
|
||||||
|
experiment.generate_workflow_img
|
||||||
|
end
|
||||||
|
|
||||||
# Calculate space taken by each organization; this must
|
# Calculate space taken by each organization; this must
|
||||||
# be done in a separate transaction because the estimated
|
# be done in a separate transaction because the estimated
|
||||||
# asset sizes are calculated in after_commit, which is done
|
# asset sizes are calculated in after_commit, which is done
|
||||||
|
@ -1001,7 +976,7 @@ namespace :db do
|
||||||
protocol = nil
|
protocol = nil
|
||||||
if my_module.present?
|
if my_module.present?
|
||||||
protocol = my_module.protocol
|
protocol = my_module.protocol
|
||||||
users = my_module.users
|
users = my_module.experiment.project.users
|
||||||
author = pluck_random(users)
|
author = pluck_random(users)
|
||||||
if rand <= THRESHOLD_PROTOCOL_IN_MODULE_LINKED &&
|
if rand <= THRESHOLD_PROTOCOL_IN_MODULE_LINKED &&
|
||||||
(parent = pluck_random(
|
(parent = pluck_random(
|
||||||
|
@ -1082,7 +1057,7 @@ namespace :db do
|
||||||
if protocol.in_module?
|
if protocol.in_module?
|
||||||
Activity.create(
|
Activity.create(
|
||||||
type_of: :create_step,
|
type_of: :create_step,
|
||||||
project: my_module.project,
|
project: my_module.experiment.project,
|
||||||
my_module: my_module,
|
my_module: my_module,
|
||||||
user: step.user,
|
user: step.user,
|
||||||
created_at: created_at,
|
created_at: created_at,
|
||||||
|
@ -1097,7 +1072,7 @@ namespace :db do
|
||||||
if completed then
|
if completed then
|
||||||
Activity.create(
|
Activity.create(
|
||||||
type_of: :complete_step,
|
type_of: :complete_step,
|
||||||
project: my_module.project,
|
project: my_module.experiment.project,
|
||||||
my_module: my_module,
|
my_module: my_module,
|
||||||
user: step.user,
|
user: step.user,
|
||||||
created_at: completed_on,
|
created_at: completed_on,
|
||||||
|
@ -1136,7 +1111,7 @@ namespace :db do
|
||||||
if checked then
|
if checked then
|
||||||
Activity.create(
|
Activity.create(
|
||||||
type_of: :check_step_checklist_item,
|
type_of: :check_step_checklist_item,
|
||||||
project: my_module.project,
|
project: my_module.experiment.project,
|
||||||
my_module: my_module,
|
my_module: my_module,
|
||||||
user: step.user,
|
user: step.user,
|
||||||
created_at: checked_on,
|
created_at: checked_on,
|
||||||
|
@ -1161,6 +1136,8 @@ namespace :db do
|
||||||
if rand <= RATIO_STEP_ATTACHMENTS then
|
if rand <= RATIO_STEP_ATTACHMENTS then
|
||||||
asset = Asset.create(
|
asset = Asset.create(
|
||||||
file: generate_file(rand(MIN_FILE_SIZE..MAX_FILE_SIZE)),
|
file: generate_file(rand(MIN_FILE_SIZE..MAX_FILE_SIZE)),
|
||||||
|
estimated_size: 0,
|
||||||
|
file_present: true,
|
||||||
created_by: step.user
|
created_by: step.user
|
||||||
)
|
)
|
||||||
StepAsset.create(
|
StepAsset.create(
|
||||||
|
@ -1198,7 +1175,7 @@ namespace :db do
|
||||||
)
|
)
|
||||||
Activity.create(
|
Activity.create(
|
||||||
type_of: :add_comment_to_step,
|
type_of: :add_comment_to_step,
|
||||||
project: my_module.project,
|
project: my_module.experiment.project,
|
||||||
my_module: my_module,
|
my_module: my_module,
|
||||||
user: user,
|
user: user,
|
||||||
created_at: created_at,
|
created_at: created_at,
|
||||||
|
@ -1247,6 +1224,90 @@ namespace :db do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def generate_fake_project_comment(project)
|
||||||
|
user = pluck_random(project.users)
|
||||||
|
created_at = Faker::Time.backward(500)
|
||||||
|
project.comments << Comment.create(
|
||||||
|
user: user,
|
||||||
|
message: Faker::Hipster.sentence,
|
||||||
|
created_at: created_at
|
||||||
|
)
|
||||||
|
Activity.create(
|
||||||
|
type_of: :add_comment_to_project,
|
||||||
|
user: user,
|
||||||
|
project: project,
|
||||||
|
created_at: created_at,
|
||||||
|
message: I18n.t('activities.add_comment_to_project',
|
||||||
|
user: user.full_name,
|
||||||
|
project: project.name)
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
|
def generate_fake_module_comment(my_module)
|
||||||
|
user = pluck_random(my_module.experiment.project.users)
|
||||||
|
created_at = Faker::Time.backward(500)
|
||||||
|
my_module.comments << Comment.create(
|
||||||
|
user: user,
|
||||||
|
message: Faker::Hipster.sentence,
|
||||||
|
created_at: created_at
|
||||||
|
)
|
||||||
|
Activity.create(
|
||||||
|
type_of: :add_comment_to_module,
|
||||||
|
user: user,
|
||||||
|
project: my_module.experiment.project,
|
||||||
|
my_module: my_module,
|
||||||
|
created_at: created_at,
|
||||||
|
message: I18n.t('activities.add_comment_to_module',
|
||||||
|
user: user.full_name,
|
||||||
|
module: my_module.name)
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
|
def generate_fake_result_comment(result)
|
||||||
|
user = pluck_random(result.my_module.experiment.project.users)
|
||||||
|
created_at = Faker::Time.backward(500)
|
||||||
|
result.comments << Comment.create(
|
||||||
|
user: user,
|
||||||
|
message: Faker::Hipster.sentence,
|
||||||
|
created_at: created_at
|
||||||
|
)
|
||||||
|
Activity.create(
|
||||||
|
type_of: :add_comment_to_result,
|
||||||
|
project: result.my_module.experiment.project,
|
||||||
|
my_module: result.my_module,
|
||||||
|
user: user,
|
||||||
|
created_at: created_at,
|
||||||
|
message: I18n.t(
|
||||||
|
'activities.add_comment_to_result',
|
||||||
|
user: user.full_name,
|
||||||
|
result: result.name
|
||||||
|
)
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
|
def generate_fake_step_comment(step)
|
||||||
|
user = pluck_random(step.protocol.my_module.experiment.project.users)
|
||||||
|
created_at = Faker::Time.backward(500)
|
||||||
|
step.comments << Comment.create(
|
||||||
|
user: user,
|
||||||
|
message: Faker::Hipster.sentence,
|
||||||
|
created_at: created_at
|
||||||
|
)
|
||||||
|
Activity.create(
|
||||||
|
type_of: :add_comment_to_step,
|
||||||
|
project: step.protocol.my_module.experiment.project,
|
||||||
|
my_module: step.protocol.my_module,
|
||||||
|
user: user,
|
||||||
|
created_at: created_at,
|
||||||
|
message: I18n.t(
|
||||||
|
"activities.add_comment_to_step",
|
||||||
|
user: user.full_name,
|
||||||
|
step: step.position + 1,
|
||||||
|
step_name: step.name
|
||||||
|
)
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
# WARNING: This only works on PostgreSQL
|
# WARNING: This only works on PostgreSQL
|
||||||
def pluck_random(scope)
|
def pluck_random(scope)
|
||||||
scope.order("RANDOM()").first
|
scope.order("RANDOM()").first
|
||||||
|
|
Loading…
Reference in a new issue