diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 8e4d9e42e..795486167 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -2026,12 +2026,26 @@ class UsersController < ApplicationController @blog_list = @blog_list.limit(3) watch_query = User.watched_by(@user.id); @user_watchlist_count = watch_query.count(); - @user_watchlist = watch_query.order("#{Watcher.table_name}.id desc").limit(12); + @user_watchlist = watch_query.order("#{Watcher.table_name}.id desc").limit(12) fan_query = @user.watcher_users; @user_fanlist_count = fan_query.count(); - @user_fanlist = fan_query.order("#{Watcher.table_name}.id desc").limit(12); + @user_fanlist = fan_query.order("#{Watcher.table_name}.id desc").limit(12) + + # 我创建的实训数 + @create_num = (@user == User.current ? Shixun.where(:user_id => @user).count : Shixun.where(:status => [2, 3], :user_id => @user).count) + # 我合作的实训数 + coop_id = Shixun.find_by_sql("select shixun_id from shixun_members where user_id=#{@user.id} and role = 2").map(&:shixun_id) # 合作者的实训id + @cooperative_num = (@user == User.current ? Shixun.where(:id => coop_id).count : Shixun.where(:status => [2, 3], :id => coop_id).count) + # 我挑战的实训数 + ch_id = Shixun.find_by_sql("select id from shixuns where id in (select shixun_id from myshixuns where user_id = #{@user.id})") + @challenge_num = (@user == User.current ? Shixun.where(:id => ch_id).count : Shixun.where(:status => [2, 3], :id => ch_id)) + # 我的所有课程数 + @all_courses_count = @user.courses.not_deleted_not_end.count + # 我创建的课程数 + @create_courses_count = @user.courses.not_deleted_not_end.where(:tea_id => @user.id).count + # 我参与的课程数 + @join_courses_count = @user.courses.not_deleted_not_end.where("tea_id != #{@user.id}").count -=begin # 合作者及创建者 ids = Shixun.find_by_sql("select shixun_id from shixun_members where user_id=#{@user.id}") # 已挑战过 @@ -2040,11 +2054,10 @@ class UsersController < ApplicationController ids2 = ids2.map{|shixun| shixun.id} unless ids2.blank? id = ids + ids2 id = id.uniq -=end if @user == User.current - @shixuns = Shixun.where(:user_id => @user).order("created_at desc") + @shixuns = Shixun.where(:id => id).order("created_at desc") else - @shixuns = Shixun.where(:status => [2, 3], :user_id => @user).order("created_at desc") + @shixuns = Shixun.where(:status => [2, 3], :id => id).order("created_at desc") end @limit = 5 @is_remote = true @@ -2215,12 +2228,22 @@ class UsersController < ApplicationController @shixuns = Shixun.where(:status => [2, 3], :user_id => @user).order("created_at desc") end elsif params[:filter] == "cooperative" + # 合作者的实训id + id = Shixun.find_by_sql("select shixun_id from shixun_members where user_id=#{@user.id} and role = 2").map(&:shixun_id) + if @user == User.current + @shixuns = Shixun.where(:id => id).order("created_at desc") + else + @shixuns = Shixun.where(:status => [2, 3], :id => id).order("created_at desc") + end + elsif params[:filter] == "all" # 合作者及创建者 ids = Shixun.find_by_sql("select shixun_id from shixun_members where user_id=#{@user.id}") + # 已挑战过 + ids2 = Shixun.find_by_sql("select id from shixuns where id in (select shixun_id from myshixuns where user_id = #{@user.id})") ids = ids.map{|shixun| shixun.shixun_id} unless ids.blank? - # 我创建的id - create_id = Shixun.where(:user_id => @user).pluck(:id) - id = ids - create_id + ids2 = ids2.map{|shixun| shixun.id} unless ids2.blank? + id = ids + ids2 + id = id.uniq if @user == User.current @shixuns = Shixun.where(:id => id).order("created_at desc") else @@ -2238,6 +2261,8 @@ class UsersController < ApplicationController @courses = @user.courses.not_deleted_not_end.where(:tea_id => @user.id).order("updated_at desc") elsif params[:filter] == "join" @courses = @user.courses.not_deleted_not_end.where("tea_id != #{@user.id}").order("updated_at desc") + elsif params[:filter] == "all" + @courses = @user.courses.not_deleted_not_end.order("updated_at desc") end @limit = 5 @is_remote = true diff --git a/app/models/shixun_member.rb b/app/models/shixun_member.rb index c39c2521c..beab86fff 100644 --- a/app/models/shixun_member.rb +++ b/app/models/shixun_member.rb @@ -1,4 +1,5 @@ class ShixunMember < ActiveRecord::Base + # role 实训角色: 1 创建者 2 合作者 attr_accessible :shixun_id, :user_id, :role belongs_to :shixun belongs_to :user diff --git a/app/views/layouts/_logined_header.html.erb b/app/views/layouts/_logined_header.html.erb index 35a9d68e8..36321d951 100644 --- a/app/views/layouts/_logined_header.html.erb +++ b/app/views/layouts/_logined_header.html.erb @@ -16,8 +16,8 @@
@@ -246,6 +246,23 @@
+
+ +
+ <%#= render :partial => "my_homepage_courses_list" %> +
+
+ <%#= render :partial => "my_homepage_course_show" %>
diff --git a/app/views/users/user_show_course_list.js.erb b/app/views/users/user_show_course_list.js.erb index 78cc6d3d5..8a92ab506 100644 --- a/app/views/users/user_show_course_list.js.erb +++ b/app/views/users/user_show_course_list.js.erb @@ -1 +1 @@ -$("#user_homepage_course_show").html("<%= j(render :partial => "my_homepage_course_show") %>"); \ No newline at end of file +$("#my_courses_list").html("<%= j(render :partial => "my_homepage_courses_list") %>"); \ No newline at end of file