From 79513586959664422831a2929201dd9a637396ed Mon Sep 17 00:00:00 2001 From: Ruling-Mac Date: Thu, 16 Jul 2015 16:22:14 +0800 Subject: [PATCH] modify the algo for tags group by for index and widget --- app/controllers/archives_controller.rb | 57 +++++--------------------- 1 file changed, 10 insertions(+), 47 deletions(-) diff --git a/app/controllers/archives_controller.rb b/app/controllers/archives_controller.rb index 370a66a..577e386 100644 --- a/app/controllers/archives_controller.rb +++ b/app/controllers/archives_controller.rb @@ -1,31 +1,13 @@ class ArchivesController < ApplicationController def index - categories = OrbitHelper.page_categories - tags = OrbitHelper.page_tags - @tags = [] - - if tags.first == "all" - module_app = OrbitHelper.this_module_app - @tags = module_app.tags - else - tags.each do |tag| - @tags << Tag.find(tag) - end - end - - files_by_cateogry = ArchiveFile.filter_by_categories.group_by(&:category) + files_by_cateogry = ArchiveFile.filter_by_categories.filter_by_tags.group_by(&:category) cats = files_by_cateogry.keys.collect do |cat| files_by_category_tag = files_by_cateogry[cat].group_by(&:tags) - - files_by_category_tag.keys.each do |f| - if(!@tags.include?(f[0])) - files_by_category_tag.delete(f) - end - end + url_to_edit = OrbitHelper.user_has_cateogry?(cat) ? "/admin/archive_files?filters[category][]=#{cat.id.to_s}" : "" ts = files_by_category_tag.keys.collect do |t| - url_to_edit = OrbitHelper.user_has_cateogry?(cat) ? "/admin/archive_files?filters[category][]=#{cat.id.to_s}" : "" + archives = files_by_category_tag[t].collect do |archive| statuses = archive.statuses_with_classname.collect do |status| @@ -57,20 +39,21 @@ class ArchivesController < ApplicationController end { "tag-name" => t[0].name, - "archives" => archives, - "url_to_edit" => url_to_edit + "archives" => archives } end if(files_by_category_tag.empty?) { "category-title" => "", - "tags" => ts + "tags" => ts, + "link_to_edit" => url_to_edit } else { "category-title" => cat.title || "", - "tags" => ts + "tags" => ts, + "link_to_edit" => url_to_edit } end @@ -93,32 +76,12 @@ class ArchivesController < ApplicationController end def widget - categories = OrbitHelper.widget_categories - @categories = [] - - tags = OrbitHelper.widget_tags - @tags = [] - - - if tags.first == "all" - module_app = OrbitHelper.widget_module_app - @tags = module_app.tags - else - tags.each do |tag| - @tags << Tag.find(tag) - end - end - - files_by_cateogry = ArchiveFile.filter_by_widget_categories.group_by(&:category) + files_by_cateogry = ArchiveFile.filter_by_widget_categories.with_tags(OrbitHelper.widget_tags).group_by(&:category) cats = files_by_cateogry.keys.collect do |cat| files_by_category_tag = files_by_cateogry[cat].group_by(&:tags) - files_by_category_tag.keys.each do |f| - if(!@tags.include?(f[0])) - files_by_category_tag.delete(f) - end - end + ts = files_by_category_tag.keys.collect do |t| archives = files_by_category_tag[t].collect do |archive|