3036: Use preload_objects to fetch owner_uuids in the controller instead of in the...
authorPeter Amstutz <peter.amstutz@curoverse.com>
Thu, 21 Aug 2014 18:44:30 +0000 (14:44 -0400)
committerPeter Amstutz <peter.amstutz@curoverse.com>
Thu, 21 Aug 2014 18:44:30 +0000 (14:44 -0400)
apps/workbench/app/controllers/collections_controller.rb
apps/workbench/app/views/collections/show.html.erb

index a4925bdeb36432915032c261e957ead15fb883c7..1cc4966ac88d5d260c01b1e3772d9dc1478ffcd1 100644 (file)
@@ -170,6 +170,14 @@ class CollectionsController < ApplicationController
         .where(head_uuid: @object.uuid, link_class: 'name').results
       project_hash = Group.where(uuid: @project_links.map(&:tail_uuid)).to_hash
       @projects = project_hash.values
+
+      if @object.uuid.match /[0-9a-f]{32}/
+        @same_pdh = Collection.filter([["portable_data_hash", "=", @object.portable_data_hash]])
+        owners = @same_pdh.map {|s| s.owner_uuid}.to_a
+        preload_objects_for_dataclass Group, owners
+        preload_objects_for_dataclass User, owners
+      end
+
       @permissions = Link.limit(RELATION_LIMIT).order("modified_at DESC")
         .where(head_uuid: @object.uuid, link_class: 'permission',
                name: 'can_read').results
index cc19000725526059fb6ded363928b9cd4823195b..7d8ac4dacbad0a11ab95d3f63b1641a2300770f5 100644 (file)
       </div>
       <div class="panel-body">
         <img src="/favicon.ico" class="pull-right" alt="" style="opacity: 0.3"/>
-        <% if @object.uuid.match /[0-9a-f]{32}/ %>
+        <% if defined? @same_pdh %>
           <p>Found in collections:<p>
           <p>
-            <% cols = Collection.filter([["portable_data_hash", "=", @object.portable_data_hash]]).each do |c| %>
-              <%= link_to_if_arvados_object c.owner_uuid, {:friendly_name => true} %> / <%= link_to_if_arvados_object c, {:friendly_name => true} %><br>
+            <% @same_pdh.each do |c| %>
+              <%= link_to_if_arvados_object get_object(c.owner_uuid), {:friendly_name => true} %> / <%= link_to_if_arvados_object c, {:friendly_name => true} %><br>
             <% end %>
           </p>
         <% else %>