From 21eb842766918f29dc2ef90547ec29dfa77dd246 Mon Sep 17 00:00:00 2001 From: yystopf Date: Tue, 16 Jul 2024 10:17:09 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=EF=BC=9A=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E8=BF=94=E5=9B=9E=E6=98=AF=E5=90=A6=E7=BD=AE=E9=A1=B6=E5=AD=97?= =?UTF-8?q?=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/users/organizations_controller.rb | 6 +++--- app/queries/projects/list_my_query.rb | 6 +++--- app/views/users/organizations/index.json.jbuilder | 1 + app/views/users/projects.json.jbuilder | 5 +++-- 4 files changed, 10 insertions(+), 8 deletions(-) diff --git a/app/controllers/users/organizations_controller.rb b/app/controllers/users/organizations_controller.rb index 06c378ad8..2d80adb9b 100644 --- a/app/controllers/users/organizations_controller.rb +++ b/app/controllers/users/organizations_controller.rb @@ -11,10 +11,10 @@ class Users::OrganizationsController < Users::BaseController @organizations = @organizations.ransack(login_cont: params[:search]).result if params[:search].present? - home_top_ids = @organizations.joins(:home_top_settings).where(home_top_settings: {user_id: observed_user.id}).order("home_top_settings.created_at asc").pluck(:id) + @home_top_ids = @organizations.joins(:home_top_settings).where(home_top_settings: {user_id: observed_user.id}).order("home_top_settings.created_at asc").pluck(:id) - if home_top_ids.present? - @organizations = @organizations.joins(:organization_extension).order("FIELD(users.id, #{home_top_ids.join(",")}) desc, organization_extensions.#{sort_by} #{sort_direction}") + if @home_top_ids.present? + @organizations = @organizations.joins(:organization_extension).order("FIELD(users.id, #{@home_top_ids.join(",")}) desc, organization_extensions.#{sort_by} #{sort_direction}") else @organizations = @organizations.joins(:organization_extension).order("organization_extensions.#{sort_by} #{sort_direction}") end diff --git a/app/queries/projects/list_my_query.rb b/app/queries/projects/list_my_query.rb index 5d83b7637..5800f83bb 100644 --- a/app/queries/projects/list_my_query.rb +++ b/app/queries/projects/list_my_query.rb @@ -72,13 +72,13 @@ class Projects::ListMyQuery < ApplicationQuery sort = Project.column_names.include?(params[:sort_by]) ? params[:sort_by] : "updated_on" sort_direction = %w(desc asc).include?(params[:sort_direction]) ? params[:sort_direction] : "desc" - home_top_ids = scope.joins(:home_top_settings).where(home_top_settings: {user_id: user.id}).order("home_top_settings.created_at asc").pluck(:id) + @home_top_ids = scope.joins(:home_top_settings).where(home_top_settings: {user_id: user.id}).order("home_top_settings.created_at asc").pluck(:id) if params[:choosed].present? && params[:choosed].is_a?(Array) scope.distinct.order("FIELD(id, #{params[:choosed].reverse.join(",")}) desc") else - if home_top_ids.present? - scope.distinct.order("FIELD(id, #{home_top_ids.join(",")}) desc, projects.#{sort} #{sort_direction}") + if @home_top_ids.present? + scope.distinct.order("FIELD(id, #{@home_top_ids.join(",")}) desc, projects.#{sort} #{sort_direction}") else scope.distinct.order("projects.#{sort} #{sort_direction}") end diff --git a/app/views/users/organizations/index.json.jbuilder b/app/views/users/organizations/index.json.jbuilder index 0a1950367..3963a3b12 100644 --- a/app/views/users/organizations/index.json.jbuilder +++ b/app/views/users/organizations/index.json.jbuilder @@ -1,4 +1,5 @@ json.total_count @organizations.total_count json.organizations @organizations do |organization| json.partial! "/organizations/organizations/detail", organization: organization + json.is_home_top @home_top_ids.include?(organization.id) end diff --git a/app/views/users/projects.json.jbuilder b/app/views/users/projects.json.jbuilder index d00ec68b0..087b96573 100644 --- a/app/views/users/projects.json.jbuilder +++ b/app/views/users/projects.json.jbuilder @@ -1,4 +1,5 @@ json.count @total_count -json.projects do - json.partial! '/projects/project_detail', collection: @projects, as: :project +json.projects @projects do |project| + json.partial! '/projects/project_detail', project: project + json.is_home_top @home_top_ids.include?(project.id) end