From 13e265b7d2e99b87ca3810ade108c5f88509b5a0 Mon Sep 17 00:00:00 2001 From: alan <547533434@qq.com> Date: Wed, 23 Mar 2016 18:25:50 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=20layouts/=5Fuser=5Fprojects?= =?UTF-8?q?=20=E5=92=8C=20layouts/=5Fuser=5Fcourses=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/helpers/application_helper.rb | 2 +- app/views/layouts/new_base_user.html.erb | 17 +++++++++++++++-- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 3a5cdb1a1..6432d83d8 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -764,7 +764,7 @@ module ApplicationHelper # 判断版本库是否初始为gitlab def rep_is_gitlab?(project) - rep = Repository.where("project_id =? and type =?", project, "Repository::Gitlab") + rep = project.repositories.where("type =?", "Repository::Gitlab") return rep.blank? ? true :false end diff --git a/app/views/layouts/new_base_user.html.erb b/app/views/layouts/new_base_user.html.erb index c90c69f75..c288b9402 100644 --- a/app/views/layouts/new_base_user.html.erb +++ b/app/views/layouts/new_base_user.html.erb @@ -204,7 +204,13 @@ <% end%> <% end%> - <% courses = @user.courses.visible.where("is_delete =?", 0).select("courses.*,(SELECT MAX(updated_at) FROM `course_activities` WHERE course_activities.course_id = courses.id) AS a").order("a desc").limit(5) %> + <% course_order_ids = "(" + + CourseActivity.find_by_sql("SELECT c.course_id, updated_at FROM + (SELECT ca.course_id, MAX(ca.updated_at) AS updated_at FROM course_activities ca WHERE ca.course_id IN (" + @user.courses.visible.select('courses.id').map{|c| c.id}.join(',') + ") + GROUP BY ca.course_id) AS c + ORDER BY c.updated_at DESC limit 5").map {|c| c.course_id}.join(",") + ")"%> + <% courses = Course.where("id in #{course_order_ids}")%> + <%# courses = @user.courses.visible.where("is_delete =?", 0).select("courses.*,(SELECT MAX(updated_at) FROM `course_activities` WHERE course_activities.course_id = courses.id) AS a").order("a desc").limit(5) %>
- <% projects = @user.projects.visible.select("projects.*,(SELECT MAX(created_at) FROM `forge_activities` WHERE forge_activities.project_id = projects.id) AS a").order("a desc").limit(5)%> + <% project_order_ids = "(" + + ForgeActivity.find_by_sql("SELECT p.project_id, p.created_at FROM + (SELECT fa.project_id, MAX(fa.created_at) AS created_at FROM forge_activities fa WHERE fa.project_id IN (" + @user.projects.visible.select('projects.id').map{|p| p.id}.join(',') + ") + GROUP BY fa.project_id) AS p + ORDER BY p.created_at DESC limit 5").map {|p| p.project_id}.join(",") + ")"%> + <%# project_order_ids = "(" + ForgeActivity.select("DISTINCT project_id, max(created_at) as max_created_at").where("project_id in #{"(" + @user.projects.visible.select("projects.id").map{|p| p.id}.join(",") + ")"}").order("max_created_at desc").map {|p| p.project_id}.join(",") + ")"%> + <% projects = Project.joins(:repositories).where("projects.id in #{project_order_ids} and repositories.type='Repository::Gitlab'")%> + <%# projects = @user.projects.visible.select("projects.*, (SELECT MAX(created_at) FROM `forge_activities` WHERE forge_activities.project_id = projects.id) AS a").order("a desc").limit(5)%>