diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 59823ec8f..6bdd3d6fc 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -473,40 +473,15 @@ class UsersController < ApplicationController end end + #显示更多用户课程 def user_courses4show - query = Course.joins("join members m on #{Course.table_name}.id=m.course_id") - query = query.where("m.user_id = ?",@user.id).order("#{Course.table_name}.id desc") - if User.current == @user #看自己 - else - if @user.user_extensions!=nil && @user.user_extensions.identity == 0 #看老师 - query = query.joins("join member_roles r on m.id = r.member_id") - query = query.where("r.role_id in(3,7,9)") - end - query = query.where(Course.table_name+".is_public = 1") - end - - if params[:lastid]!=nil && !params[:lastid].empty? - query = query.where(" #{Course.table_name}.id < ?",params[:lastid],) - end - @list = query.limit(8) - - render :layout=>nil + @page = params[:page].to_i + 1 + @courses = @user.courses.visible.select("courses.*,(SELECT MAX(created_at) FROM `course_activities` WHERE course_activities.course_id = courses.id) AS a").order("a desc").limit(5).offset(@page * 5) end + + #显示更多用户项目 def user_projects4show - query = Project.joins("join members m on #{Project.table_name}.id=m.project_id") - query = query.where("m.user_id = ? and #{Project.table_name}.project_type=?",@user.id,Project::ProjectType_project) - if User.current == @user #看自己 - else - query = query.where(Project.table_name+".is_public = 1") - # TODO or exists (select 1 from project c2,members m2 where c2.id=m2.course_id and c2.id=#{Project.table_name}.id and m2.user_id= User.current.id) - end - if params[:lastid]!=nil && !params[:lastid].empty? - query = query.where("( (#{Project.table_name}.updated_on=? and #{Project.table_name}.id < ?) or #{Project.table_name}.updated_on)",params[:lasttime],params[:lastid],params[:lasttime]) - end - @list = query.order("#{Project.table_name}.updated_on desc,#{Project.table_name}.id desc").limit(8).all - - render :layout=>nil end def user_course_activities diff --git a/app/views/layouts/_user_courses.html.erb b/app/views/layouts/_user_courses.html.erb new file mode 100644 index 000000000..393e3d48f --- /dev/null +++ b/app/views/layouts/_user_courses.html.erb @@ -0,0 +1,12 @@ +<% courses.each do |course|%> +