fix error and speed up the widget sample speed
This commit is contained in:
parent
fbbf911193
commit
3d46f147f0
|
@ -77,28 +77,11 @@ class GalleriesController < ApplicationController
|
||||||
end
|
end
|
||||||
def widget
|
def widget
|
||||||
tags = OrbitHelper.widget_tags.empty? ? ["all"] : OrbitHelper.widget_tags
|
tags = OrbitHelper.widget_tags.empty? ? ["all"] : OrbitHelper.widget_tags
|
||||||
albums = Album.filter_by_widget_categories.filter_by_tags(tags)
|
album_ids = Album.filter_by_widget_categories.filter_by_tags(tags).pluck(:id)
|
||||||
params = OrbitHelper.params
|
params = OrbitHelper.params
|
||||||
counts = OrbitHelper.widget_data_count
|
counts = OrbitHelper.widget_data_count
|
||||||
|
pipeline = [{'$match' => {album_id:{"$in"=>album_ids}}},{'$sort'=>{'_id'=>-1}},{ '$limit' => counts *5 }]
|
||||||
images = []
|
images = AlbumImage.collection.aggregate(pipeline).sample(counts)
|
||||||
total_images = 0
|
|
||||||
if !albums.blank?
|
|
||||||
albums.each do |album|
|
|
||||||
total_images = total_images + album.album_images.count
|
|
||||||
end
|
|
||||||
counts = counts > total_images ? total_images : counts
|
|
||||||
abc = AlbumImage.count
|
|
||||||
counts = counts > abc ? abc : counts
|
|
||||||
while images.count < counts
|
|
||||||
albums.each do |album|
|
|
||||||
img = album.album_images.sample
|
|
||||||
if !images.include?(img) && img != nil
|
|
||||||
images << img
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
images = images.collect do |a|
|
images = images.collect do |a|
|
||||||
alt_text = (a.description.nil? || a.description == "" ? "gallery image" : a.description)
|
alt_text = (a.description.nil? || a.description == "" ? "gallery image" : a.description)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue