From 83034f705d85c6f4842c05ecd99063675cb92b56 Mon Sep 17 00:00:00 2001 From: Mojca Lorber Date: Fri, 2 Sep 2016 11:45:54 +0200 Subject: [PATCH 1/5] adds tasks, experiment and project category in protocol search results --- app/helpers/search_helper.rb | 7 ++++ app/models/protocol.rb | 12 ++++++ app/views/search/results/_protocols.html.erb | 41 ++++++++++++++++++++ app/views/search/results/_tags.html.erb | 1 - 4 files changed, 60 insertions(+), 1 deletion(-) diff --git a/app/helpers/search_helper.rb b/app/helpers/search_helper.rb index 3bb3591be..ee9885a1f 100644 --- a/app/helpers/search_helper.rb +++ b/app/helpers/search_helper.rb @@ -6,4 +6,11 @@ module SearchHelper end experiments.uniq end + def sub_results(el) + elements = [] + el.each do |m| + elements << m + end + elements.uniq + end end diff --git a/app/models/protocol.rb b/app/models/protocol.rb index 2b30bc5b4..80813004a 100644 --- a/app/models/protocol.rb +++ b/app/models/protocol.rb @@ -146,6 +146,18 @@ class Protocol < ActiveRecord::Base end end + def linked_modules + MyModule.joins(:protocols).where("protocols.parent_id = ?", id) + end + + def linked_experiments + Experiment.where("id IN (?)", linked_modules.pluck(:experiment_id).uniq) + end + + def linked_projects + Project.where("id IN (?)", linked_experiments.pluck(:project_id).uniq) + end + def self.new_blank_for_module(my_module) Protocol.new( organization: my_module.experiment.project.organization, diff --git a/app/views/search/results/_protocols.html.erb b/app/views/search/results/_protocols.html.erb index eb34f5f77..e6ae8faa6 100644 --- a/app/views/search/results/_protocols.html.erb +++ b/app/views/search/results/_protocols.html.erb @@ -48,6 +48,47 @@ <%=l protocol.created_at, format: :full %>
+ <% if protocol.nr_of_linked_children > 0 %> + + <% if protocol.linked_modules %> + <%=t "search.index.modules" %> + <% protocol.linked_modules.each_with_index do |mod, i| %> + <%= render partial: "search/results/partials/my_module_text.html.erb", + locals: { my_module: mod } %> + <% if i != (sub_results(protocol.linked_modules).count - 1) %> + ,  + <% end %> + <% end %> + <% end %> + +
+ + <% if protocol.linked_experiments %> + <%=t "search.index.experiment" %> + <% protocol.linked_experiments.each_with_index do |exp, i| %> + <%= render partial: "search/results/partials/experiment_text.html.erb", + locals: { experiment: exp } %> + <% if i != (sub_results(protocol.linked_experiments).count - 1) %> + ,  + <% end %> + <% end %> + <% end %> + +
+ + <% if protocol.linked_projects %> + <%=t "search.index.project" %> + <% protocol.linked_projects.each_with_index do |pro, i| %> + <%= render partial: "search/results/partials/project_text.html.erb", + locals: { project: pro } %> + <% if i != (sub_results(protocol.linked_projects).count - 1) %> + ,  + <% end %> + <% end %> + <% end %> + + <% end %> +
<% if protocol.in_module? %> <%=t "search.index.module" %> diff --git a/app/views/search/results/_tags.html.erb b/app/views/search/results/_tags.html.erb index e04f5d699..e283c20c3 100644 --- a/app/views/search/results/_tags.html.erb +++ b/app/views/search/results/_tags.html.erb @@ -31,7 +31,6 @@ <% experiments_results(tag).each_with_index do |exp, i| %> <%= render partial: 'search/results/partials/experiment_text.html.erb', locals: { experiment: exp } %> - <% #byebug %> <% if i != (experiments_results(tag).count - 1) %> ,  <% end %> From 4bce00ac614d9d6014233eb6b4032cf9ff62fc06 Mon Sep 17 00:00:00 2001 From: Mojca Lorber Date: Fri, 2 Sep 2016 11:54:20 +0200 Subject: [PATCH 2/5] fixes hound --- app/helpers/search_helper.rb | 1 + app/models/protocol.rb | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/app/helpers/search_helper.rb b/app/helpers/search_helper.rb index ee9885a1f..5f4142a11 100644 --- a/app/helpers/search_helper.rb +++ b/app/helpers/search_helper.rb @@ -6,6 +6,7 @@ module SearchHelper end experiments.uniq end + def sub_results(el) elements = [] el.each do |m| diff --git a/app/models/protocol.rb b/app/models/protocol.rb index 80813004a..385dcdd5e 100644 --- a/app/models/protocol.rb +++ b/app/models/protocol.rb @@ -147,15 +147,15 @@ class Protocol < ActiveRecord::Base end def linked_modules - MyModule.joins(:protocols).where("protocols.parent_id = ?", id) + MyModule.joins(:protocols).where('protocols.parent_id = ?', id) end def linked_experiments - Experiment.where("id IN (?)", linked_modules.pluck(:experiment_id).uniq) + Experiment.where('id IN (?)', linked_modules.pluck(:experiment_id).uniq) end - def linked_projects - Project.where("id IN (?)", linked_experiments.pluck(:project_id).uniq) + def linked_projects + Project.where('id IN (?)', linked_experiments.pluck(:project_id).uniq) end def self.new_blank_for_module(my_module) From 6763d8e7a19b1315ae80c15c755cadf489ea4932 Mon Sep 17 00:00:00 2001 From: Mojca Lorber Date: Fri, 2 Sep 2016 11:56:32 +0200 Subject: [PATCH 3/5] fixes hound again --- app/helpers/search_helper.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/helpers/search_helper.rb b/app/helpers/search_helper.rb index 5f4142a11..58fb8cf0d 100644 --- a/app/helpers/search_helper.rb +++ b/app/helpers/search_helper.rb @@ -6,7 +6,7 @@ module SearchHelper end experiments.uniq end - + def sub_results(el) elements = [] el.each do |m| From 740392c687daa5fe84d2a9ac4eec735f30255baf Mon Sep 17 00:00:00 2001 From: Mojca Lorber Date: Mon, 5 Sep 2016 10:58:37 +0200 Subject: [PATCH 4/5] optimization --- app/helpers/search_helper.rb | 8 -------- app/models/protocol.rb | 8 ++++---- app/views/search/results/_protocols.html.erb | 18 +++++++++--------- 3 files changed, 13 insertions(+), 21 deletions(-) diff --git a/app/helpers/search_helper.rb b/app/helpers/search_helper.rb index 58fb8cf0d..3bb3591be 100644 --- a/app/helpers/search_helper.rb +++ b/app/helpers/search_helper.rb @@ -6,12 +6,4 @@ module SearchHelper end experiments.uniq end - - def sub_results(el) - elements = [] - el.each do |m| - elements << m - end - elements.uniq - end end diff --git a/app/models/protocol.rb b/app/models/protocol.rb index 385dcdd5e..81be1bf93 100644 --- a/app/models/protocol.rb +++ b/app/models/protocol.rb @@ -150,12 +150,12 @@ class Protocol < ActiveRecord::Base MyModule.joins(:protocols).where('protocols.parent_id = ?', id) end - def linked_experiments - Experiment.where('id IN (?)', linked_modules.pluck(:experiment_id).uniq) + def linked_experiments(linked_mod) + Experiment.where('id IN (?)', linked_mod.pluck(:experiment_id).uniq) end - def linked_projects - Project.where('id IN (?)', linked_experiments.pluck(:project_id).uniq) + def linked_projects(linked_exp) + Project.where('id IN (?)', linked_exp.pluck(:project_id).uniq) end def self.new_blank_for_module(my_module) diff --git a/app/views/search/results/_protocols.html.erb b/app/views/search/results/_protocols.html.erb index e6ae8faa6..f335bf671 100644 --- a/app/views/search/results/_protocols.html.erb +++ b/app/views/search/results/_protocols.html.erb @@ -50,12 +50,12 @@
<% if protocol.nr_of_linked_children > 0 %> - <% if protocol.linked_modules %> + <% if protocol_linked_modules = protocol.linked_modules %> <%=t "search.index.modules" %> - <% protocol.linked_modules.each_with_index do |mod, i| %> + <% protocol_linked_modules.each_with_index do |mod, i| %> <%= render partial: "search/results/partials/my_module_text.html.erb", locals: { my_module: mod } %> - <% if i != (sub_results(protocol.linked_modules).count - 1) %> + <% if i != (protocol_linked_modules.count - 1) %> ,  <% end %> <% end %> @@ -63,12 +63,12 @@
- <% if protocol.linked_experiments %> + <% if protocol_linked_experiments = protocol.linked_experiments(protocol_linked_modules) %> <%=t "search.index.experiment" %> - <% protocol.linked_experiments.each_with_index do |exp, i| %> + <% protocol_linked_experiments.each_with_index do |exp, i| %> <%= render partial: "search/results/partials/experiment_text.html.erb", locals: { experiment: exp } %> - <% if i != (sub_results(protocol.linked_experiments).count - 1) %> + <% if i != (protocol_linked_experiments.count - 1) %> ,  <% end %> <% end %> @@ -76,12 +76,12 @@
- <% if protocol.linked_projects %> + <% if protocol_linked_projects = protocol.linked_projects(protocol_linked_experiments) %> <%=t "search.index.project" %> - <% protocol.linked_projects.each_with_index do |pro, i| %> + <% protocol_linked_projects.each_with_index do |pro, i| %> <%= render partial: "search/results/partials/project_text.html.erb", locals: { project: pro } %> - <% if i != (sub_results(protocol.linked_projects).count - 1) %> + <% if i != (protocol_linked_projects.count - 1) %> ,  <% end %> <% end %> From 6a802e9fa7d8d3be596af24e43ad5e6b166618d0 Mon Sep 17 00:00:00 2001 From: Mojca Lorber Date: Mon, 5 Sep 2016 11:40:49 +0200 Subject: [PATCH 5/5] fixes redirection to project page for all categories in search results --- app/views/search/results/_assets.html.erb | 2 +- app/views/search/results/_checklists.html.erb | 2 +- app/views/search/results/_modules.html.erb | 2 +- app/views/search/results/_protocols.html.erb | 2 +- app/views/search/results/_reports.html.erb | 2 +- app/views/search/results/_results.html.erb | 2 +- app/views/search/results/_steps.html.erb | 2 +- app/views/search/results/_tables.html.erb | 2 +- app/views/search/results/_tags.html.erb | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/app/views/search/results/_assets.html.erb b/app/views/search/results/_assets.html.erb index 186690c78..37313ef31 100644 --- a/app/views/search/results/_assets.html.erb +++ b/app/views/search/results/_assets.html.erb @@ -38,7 +38,7 @@ <%=t "search.index.project" %> <%= render partial: "search/results/partials/project_text.html.erb", - locals: { project: asset.step.protocol.my_module.experiment.project } %> + locals: { project: asset.step.protocol.my_module.experiment.project, link_to_page: :show } %> <% else %> diff --git a/app/views/search/results/_checklists.html.erb b/app/views/search/results/_checklists.html.erb index f9f8a05b9..b26496fca 100644 --- a/app/views/search/results/_checklists.html.erb +++ b/app/views/search/results/_checklists.html.erb @@ -45,7 +45,7 @@ <%=t "search.index.project" %> <%= render partial: "search/results/partials/project_text.html.erb", - locals: { project: checklist.step.protocol.my_module.experiment.project } %> + locals: { project: checklist.step.protocol.my_module.experiment.project, link_to_page: :show } %> <% else %> diff --git a/app/views/search/results/_modules.html.erb b/app/views/search/results/_modules.html.erb index 5a328bebd..f5f56bf29 100644 --- a/app/views/search/results/_modules.html.erb +++ b/app/views/search/results/_modules.html.erb @@ -28,7 +28,7 @@ <%=t "search.index.project" %> <%= render partial: "search/results/partials/project_text.html.erb", - locals: { project: mod.experiment.project } %> + locals: { project: mod.experiment.project, link_to_page: :show } %>
diff --git a/app/views/search/results/_protocols.html.erb b/app/views/search/results/_protocols.html.erb index f335bf671..2a9de39b0 100644 --- a/app/views/search/results/_protocols.html.erb +++ b/app/views/search/results/_protocols.html.erb @@ -80,7 +80,7 @@ <%=t "search.index.project" %> <% protocol_linked_projects.each_with_index do |pro, i| %> <%= render partial: "search/results/partials/project_text.html.erb", - locals: { project: pro } %> + locals: { project: pro, link_to_page: :show } %> <% if i != (protocol_linked_projects.count - 1) %> ,  <% end %> diff --git a/app/views/search/results/_reports.html.erb b/app/views/search/results/_reports.html.erb index ca15acdfe..c7b0f5a8f 100644 --- a/app/views/search/results/_reports.html.erb +++ b/app/views/search/results/_reports.html.erb @@ -39,7 +39,7 @@ <%=t "search.index.project" %> <%= render partial: "search/results/partials/project_text.html.erb", - locals: { project: report.project } %> + locals: { project: report.project, link_to_page: :show } %>
diff --git a/app/views/search/results/_results.html.erb b/app/views/search/results/_results.html.erb index bfaea5c40..e5632892c 100644 --- a/app/views/search/results/_results.html.erb +++ b/app/views/search/results/_results.html.erb @@ -44,7 +44,7 @@ <%=t "search.index.project" %> <%= render partial: "search/results/partials/project_text.html.erb", - locals: { project: result.my_module.experiment.project } %> + locals: { project: result.my_module.experiment.project, link_to_page: :show } %>
diff --git a/app/views/search/results/_steps.html.erb b/app/views/search/results/_steps.html.erb index fffe9a3cb..299d78f7e 100644 --- a/app/views/search/results/_steps.html.erb +++ b/app/views/search/results/_steps.html.erb @@ -35,7 +35,7 @@ <%=t "search.index.project" %> <%= render partial: "search/results/partials/project_text.html.erb", - locals: { project: step.protocol.my_module.experiment.project } %> + locals: { project: step.protocol.my_module.experiment.project, link_to_page: :show } %> <% else %> diff --git a/app/views/search/results/_tables.html.erb b/app/views/search/results/_tables.html.erb index 1cda0a214..4f328dbc9 100644 --- a/app/views/search/results/_tables.html.erb +++ b/app/views/search/results/_tables.html.erb @@ -35,7 +35,7 @@ <%=t "search.index.project" %> <%= render partial: "search/results/partials/project_text.html.erb", - locals: { project: table.step.protocol.my_module.experiment.project } %> + locals: { project: table.step.protocol.my_module.experiment.project, link_to_page: :show } %> <% else %> diff --git a/app/views/search/results/_tags.html.erb b/app/views/search/results/_tags.html.erb index e283c20c3..fe197856d 100644 --- a/app/views/search/results/_tags.html.erb +++ b/app/views/search/results/_tags.html.erb @@ -41,7 +41,7 @@ <%=t "search.index.project" %> <%= render partial: "search/results/partials/project_text.html.erb", - locals: { project: tag.project } %> + locals: { project: tag.project, link_to_page: :show } %>