diff --git a/app/controllers/announcements_controller.rb b/app/controllers/announcements_controller.rb index 68a7d75..042c7a7 100644 --- a/app/controllers/announcements_controller.rb +++ b/app/controllers/announcements_controller.rb @@ -164,7 +164,7 @@ class AnnouncementsController < ApplicationController else cats = ["all"] + cats end - anns = anns.sort_by { |a| tmp=a["postdate"].blank?;[tmp ? 1 : 0, tmp ? nil : a["postdate"].to_time] } + anns = anns.sort_by { |a| tmp=a["postdate"].blank?;[tmp ? 0 : 1, tmp ? nil : a["postdate"].to_time] }.reverse end cats = cats.uniq tags = tags.uniq @@ -502,13 +502,13 @@ class AnnouncementsController < ApplicationController if devide_flag feeds_anns = get_feed_announcements("widget") top_anns = top_anns + feeds_anns.select{|v| v['is_top']} - top_anns = top_anns.sort_by { |a| tmp=a["postdate"].blank?;[tmp ? 1 : 0, tmp ? nil : a["postdate"].to_time] } + top_anns = top_anns.sort_by { |a| tmp=a["postdate"].blank?;[tmp ? 0 : 1, tmp ? nil : a["postdate"].to_time] }.reverse rest_count = widget_data_count - top_anns.count if rest_count <= 0 anns = top_anns.take(widget_data_count) else rest_all_anns = feeds_anns.select{|v| v['is_top'] != true} + not_top_anns.take(rest_count) - rest_anns = rest_all_anns.sort_by { |a| tmp=a["postdate"].blank?;[tmp ? 1 : 0, tmp ? nil : a["postdate"].to_time] }.take(rest_count) + rest_anns = rest_all_anns.sort_by { |a| tmp=a["postdate"].blank?;[tmp ? 0 : 1, tmp ? nil : a["postdate"].to_time] }.reverse.take(rest_count) anns = top_anns + rest_anns end end diff --git a/app/helpers/announcements_helper.rb b/app/helpers/announcements_helper.rb index 6e9a719..803f234 100644 --- a/app/helpers/announcements_helper.rb +++ b/app/helpers/announcements_helper.rb @@ -243,10 +243,10 @@ module AnnouncementsHelper if announcements.count != 0 top_anns = announcements.select{|v| v.is_top} + feeds_anns.select{|v| v['is_top']} rest_all_anns = feeds_anns.select{|v| v['is_top'] != true} + announcements.select{|v| !v.is_top} - rest_anns = rest_all_anns.sort_by { |a| tmp=a["postdate"].blank?;[tmp ? 1 : 0, tmp ? nil : a["postdate"].to_time] } - all_sorted = top_anns.sort_by { |a| tmp=a["postdate"].blank?;[tmp ? 1 : 0, tmp ? nil : a["postdate"].to_time] } + rest_anns + rest_anns = rest_all_anns.sort_by { |a| tmp=a["postdate"].blank?;[tmp ? 0 : 1, tmp ? nil : a["postdate"].to_time] }.reverse + all_sorted = top_anns.sort_by { |a| tmp=a["postdate"].blank?;[tmp ? 0 : 1, tmp ? nil : a["postdate"].to_time] }.reverse + rest_anns else - all_sorted = feeds_anns.select{|v| v['is_top']}.sort_by { |a| tmp=a["postdate"].blank?;[tmp ? 1 : 0, tmp ? nil : a["postdate"].to_time] } + feeds_anns.select{|v| v['is_top'] != true}.sort_by { |a| tmp=a["postdate"].blank?;[tmp ? 1 : 0, tmp ? nil : a["postdate"].to_time] } + all_sorted = feeds_anns.select{|v| v['is_top']}.sort_by { |a| tmp=a["postdate"].blank?;[tmp ? 0 : 1, tmp ? nil : a["postdate"].to_time] }.reverse + feeds_anns.select{|v| v['is_top'] != true}.sort_by { |a| tmp=a["postdate"].blank?;[tmp ? 0 : 1, tmp ? nil : a["postdate"].to_time] }.reverse end all_filter = filter_by_keywords(all_sorted,params[:keywords],params[:stime],params[:etime]) else