From bde0a0df50d4fcd25eb0003e9b624d9b07f49a49 Mon Sep 17 00:00:00 2001 From: bohung Date: Tue, 26 Jul 2022 19:11:56 +0800 Subject: [PATCH] Update sort. --- app/controllers/admin/writing_conferences_controller.rb | 4 ++-- app/controllers/personal_conferences_controller.rb | 2 +- app/models/writing_conference.rb | 4 +++- app/views/plugin/personal_conference/_profile.html.erb | 4 ++-- 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/app/controllers/admin/writing_conferences_controller.rb b/app/controllers/admin/writing_conferences_controller.rb index 1733011..b2247ea 100644 --- a/app/controllers/admin/writing_conferences_controller.rb +++ b/app/controllers/admin/writing_conferences_controller.rb @@ -31,7 +31,7 @@ class Admin::WritingConferencesController < OrbitMemberController redirect_to :action=> 'index' end def merge - @writing_conferences=WritingConference.order_by(:year=>'desc').map{|value| value}.group_by{|v| [v[:paper_title],v[:conference_title]]} + @writing_conferences=WritingConference.sort_year_date.map{|value| value}.group_by{|v| [v[:paper_title],v[:conference_title]]} @writing_conferences.each do |key,value| if value.length<=1 @writing_conferences.delete key @@ -54,7 +54,7 @@ class Admin::WritingConferencesController < OrbitMemberController end def index - @writing_conferences = WritingConference.order_by(:year=>'desc').page(params[:page]).per(10) + @writing_conferences = WritingConference.sort_year_date.page(params[:page]).per(10) end def new diff --git a/app/controllers/personal_conferences_controller.rb b/app/controllers/personal_conferences_controller.rb index 4c06818..189ff7c 100644 --- a/app/controllers/personal_conferences_controller.rb +++ b/app/controllers/personal_conferences_controller.rb @@ -3,7 +3,7 @@ class PersonalConferencesController < ApplicationController def index params = OrbitHelper.params page_data_count = OrbitHelper.page_data_count - writing_conferences = WritingConference.where(is_hidden: false).sort_for_frontend.page(OrbitHelper.params[:page_no]).per(page_data_count) + writing_conferences = WritingConference.sort_for_frontend.page(OrbitHelper.params[:page_no]).per(page_data_count) page = Page.where(page_id: params[:page_id]).first rescue nil if page.custom_string_field == 'table' fields_to_show = page.custom_array_field rescue [] diff --git a/app/models/writing_conference.rb b/app/models/writing_conference.rb index 5079034..e163ded 100644 --- a/app/models/writing_conference.rb +++ b/app/models/writing_conference.rb @@ -40,7 +40,9 @@ class WritingConference before_validation :add_http - scope :sort_for_frontend, ->{ where(:is_hidden=>false).order_by(:year => "desc", :publication_date => "desc", :period_start_date => "desc") } + index({year: -1, publication_date: -1, period_start_date: -1, _id: -1}, { unique: false, background: false }) + scope :sort_year_date, ->{ order_by(:year => "desc", :publication_date => "desc", :period_start_date => "desc", :id => "desc") } + scope :sort_for_frontend, ->{ where(:is_hidden=>false).order_by(:year => "desc", :publication_date => "desc", :period_start_date => "desc", :id => "desc") } def create_link title = [] diff --git a/app/views/plugin/personal_conference/_profile.html.erb b/app/views/plugin/personal_conference/_profile.html.erb index dc88d50..0b2bed2 100644 --- a/app/views/plugin/personal_conference/_profile.html.erb +++ b/app/views/plugin/personal_conference/_profile.html.erb @@ -7,9 +7,9 @@ <% if has_access? - @writing_conferences = WritingConference.where(member_profile_id: @member.id).desc(:year).page(params[:page]).per(10) + @writing_conferences = WritingConference.where(member_profile_id: @member.id).sort_year_date.page(params[:page]).per(10) else - @writing_conferences = WritingConference.where(is_hidden: false, member_profile_id: @member.id).desc(:year).page(params[:page]).per(10) + @writing_conferences = WritingConference.where(is_hidden: false, member_profile_id: @member.id).sort_year_date.page(params[:page]).per(10) end %>