From 18eab358c7d26bbbe46d225c0cbc5bb814bc1c64 Mon Sep 17 00:00:00 2001
From: zmagod <zmago_devetak@yahoo.com>
Date: Tue, 13 Feb 2018 10:44:50 +0100
Subject: [PATCH 1/4] generate custom repository when user is created [fixes
 SCI-2020]

---
 app/utilities/first_time_data_generator.rb | 82 ++++++++++++++++++++++
 1 file changed, 82 insertions(+)

diff --git a/app/utilities/first_time_data_generator.rb b/app/utilities/first_time_data_generator.rb
index c3a7933d2..36db1aeb5 100644
--- a/app/utilities/first_time_data_generator.rb
+++ b/app/utilities/first_time_data_generator.rb
@@ -25,6 +25,88 @@ module FirstTimeDataGenerator
     # Do nothing
     return unless team
 
+    # create custom repository samples
+    repository = Repository.create(
+      name: 'Samples',
+      team: team,
+      created_by: user
+    )
+
+    # create list value column for sample types
+    repository_column_sample_types = RepositoryColumn.create(
+      repository: repository,
+      created_by: user,
+      data_type: :RepositoryListValue,
+      name: 'Sample Types'
+    )
+
+    # create list value column for sample groups
+    repository_column_sample_groups = RepositoryColumn.create(
+      repository: repository,
+      created_by: user,
+      data_type: :RepositoryListValue,
+      name: 'Sample Groups'
+    )
+
+    # create few list items for sample types
+    repository_items_sample_types = []
+    ['Potato leaves', 'Tea leaves', 'Potato bug'].each do |name|
+      item = RepositoryListItem.create(
+        data: name,
+        created_by: user,
+        last_modified_by: user,
+        repository_column: repository_column_sample_types,
+        repository: repository
+      )
+      repository_items_sample_types << item
+    end
+
+    # create few list items for sample groups
+    repository_items_sample_groups = []
+    %i(Fodder Nutrient Seed).each do |name|
+      item = RepositoryListItem.create(
+        data: name,
+        created_by: user,
+        last_modified_by: user,
+        repository_column: repository_column_sample_groups,
+        repository: repository
+      )
+      repository_items_sample_groups << item
+    end
+
+    # Generate random custom respository sample names and assign sample types
+    # and groups
+    repository_sample_name = (0...3).map{65.+(rand(26)).chr}.join << '/'
+    for i in 1..5
+      repository_row = RepositoryRow.create(
+        repository: repository,
+        created_by: user,
+        last_modified_by: user,
+        name: repository_sample_name + i.to_s
+      )
+      RepositoryListValue.create(
+        created_by: user,
+        last_modified_by: user,
+        repository_list_item: repository_items_sample_types[
+          rand(0..(repository_items_sample_types.length - 1))
+        ],
+        repository_cell_attributes: {
+          repository_row: repository_row,
+          repository_column: repository_column_sample_types
+        }
+      )
+      RepositoryListValue.create(
+        created_by: user,
+        last_modified_by: user,
+        repository_list_item: repository_items_sample_groups[
+          rand(0..(repository_items_sample_groups.length - 1))
+        ],
+        repository_cell_attributes: {
+          repository_row: repository_row,
+          repository_column: repository_column_sample_groups
+        }
+      )
+    end
     # Create sample types
     SampleType.create(
       name: 'Potato leaves',

From 3aa28f6d11c87bb923cd0de42c013c5d60a36070 Mon Sep 17 00:00:00 2001
From: zmagod <zmago_devetak@yahoo.com>
Date: Tue, 27 Feb 2018 10:40:52 +0100
Subject: [PATCH 2/4] assign repository row to task

---
 app/utilities/first_time_data_generator.rb | 16 +++++++++++++---
 1 file changed, 13 insertions(+), 3 deletions(-)

diff --git a/app/utilities/first_time_data_generator.rb b/app/utilities/first_time_data_generator.rb
index 36db1aeb5..7cde9c7e2 100644
--- a/app/utilities/first_time_data_generator.rb
+++ b/app/utilities/first_time_data_generator.rb
@@ -74,15 +74,17 @@ module FirstTimeDataGenerator
       repository_items_sample_groups << item
     end
 
+    repository_rows_to_assign = []
     # Generate random custom respository sample names and assign sample types
     # and groups
-    repository_sample_name = (0...3).map{65.+(rand(26)).chr}.join << '/'
-    for i in 1..5
+    # (0...3).map{65.+(rand(26)).chr}.join << '/'
+    repository_sample_name = (0...3).map { 65.+(rand(26)).chr }.join << '/'
+    (1..5).each_with_index do |index|
       repository_row = RepositoryRow.create(
         repository: repository,
         created_by: user,
         last_modified_by: user,
-        name: repository_sample_name + i.to_s
+        name: repository_sample_name + index.to_s
       )
       RepositoryListValue.create(
         created_by: user,
@@ -106,6 +108,7 @@ module FirstTimeDataGenerator
           repository_column: repository_column_sample_groups
         }
       )
+      repository_rows_to_assign << repository_row
     end
     # Create sample types
     SampleType.create(
@@ -405,6 +408,13 @@ module FirstTimeDataGenerator
           my_module: mm
         )
       end
+      repository_rows_to_assign.each do |repository_row|
+        MyModuleRepositoryRow.create!(
+          repository_row: repository_row,
+          my_module: mm,
+          assigned_by: user
+        )
+      end
     end
 
     # Add comments to modules

From 69083685061ba67259ad4b2724c2ced4c1c901da Mon Sep 17 00:00:00 2001
From: zmagod <zmago_devetak@yahoo.com>
Date: Tue, 27 Feb 2018 10:43:57 +0100
Subject: [PATCH 3/4] refactor

---
 app/utilities/first_time_data_generator.rb | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/app/utilities/first_time_data_generator.rb b/app/utilities/first_time_data_generator.rb
index 7cde9c7e2..ebbe40f97 100644
--- a/app/utilities/first_time_data_generator.rb
+++ b/app/utilities/first_time_data_generator.rb
@@ -79,7 +79,7 @@ module FirstTimeDataGenerator
     # and groups
     # (0...3).map{65.+(rand(26)).chr}.join << '/'
     repository_sample_name = (0...3).map { 65.+(rand(26)).chr }.join << '/'
-    (1..5).each_with_index do |index|
+    (1..5).each do |index|
       repository_row = RepositoryRow.create(
         repository: repository,
         created_by: user,

From 83ba412c48347c7c268cde5b13d346d5ce9ee2b3 Mon Sep 17 00:00:00 2001
From: zmagod <zmago_devetak@yahoo.com>
Date: Thu, 1 Mar 2018 11:51:39 +0100
Subject: [PATCH 4/4] remove unneeded comment

---
 app/utilities/first_time_data_generator.rb | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/app/utilities/first_time_data_generator.rb b/app/utilities/first_time_data_generator.rb
index ebbe40f97..d569960a3 100644
--- a/app/utilities/first_time_data_generator.rb
+++ b/app/utilities/first_time_data_generator.rb
@@ -77,7 +77,7 @@ module FirstTimeDataGenerator
     repository_rows_to_assign = []
     # Generate random custom respository sample names and assign sample types
     # and groups
-    # (0...3).map{65.+(rand(26)).chr}.join << '/'
+    
     repository_sample_name = (0...3).map { 65.+(rand(26)).chr }.join << '/'
     (1..5).each do |index|
       repository_row = RepositoryRow.create(