From 75930637c079d4562dfd7ed1dfa16dfdb1e60872 Mon Sep 17 00:00:00 2001 From: daiao <358551898@qq.com> Date: Tue, 18 Jul 2017 15:24:12 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=AA=E4=BA=BA=E4=B8=BB=E9=A1=B5=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E7=BB=86=E5=88=86tab=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/users_controller.rb | 72 +++++++++++++++++-- .../users/_my_homepage_course_show.html.erb | 9 ++- .../users/_my_homepage_courses_list.html.erb | 4 +- .../users/shixuns_or_courses_filter.js.erb | 7 ++ app/views/users/show.html.erb | 15 +++- config/routes.rb | 1 + public/stylesheets/css/edu-common.css | 6 +- 7 files changed, 98 insertions(+), 16 deletions(-) create mode 100644 app/views/users/shixuns_or_courses_filter.js.erb diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 10064d77b..da7c72a84 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -45,7 +45,7 @@ class UsersController < ApplicationController :user_courses4show,:user_projects4show,:user_contests4show,:user_course_activities,:user_project_activities,:user_feedback4show,:user_visitorlist,:user_messages,:edit_brief_introduction, :user_import_homeworks,:user_search_homeworks,:user_import_resource, :user_system_messages,:choose_user_course,:user_courselist,:user_projectlist,:sort_syllabus_list, :sort_project_list,:my_homeworks,:manage_or_receive_homeworks,:search_m_r_homeworks, :cancel_or_collect,:expand_courses,:homepage, :user_issues, :course_community, :project_community, :contest_community, - :shixuns, :user_show_course_list] + :shixuns, :user_show_course_list, :shixuns_or_courses_filter] before_filter :auth_user_extension, only: :show before_filter :show_system_message, :only => [:show] #before_filter :rest_user_score, only: :show @@ -2030,6 +2030,7 @@ class UsersController < ApplicationController @user_fanlist_count = fan_query.count(); @user_fanlist = fan_query.order("#{Watcher.table_name}.id desc").limit(12); +=begin # 合作者及创建者 ids = Shixun.find_by_sql("select shixun_id from shixun_members where user_id=#{@user.id}") # 已挑战过 @@ -2038,12 +2039,13 @@ 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(:id => id).order("created_at desc") + @shixuns = Shixun.where(:user_id => @user).order("created_at desc") else - @shixuns = Shixun.where(:status => [2, 3], :id => id).order("created_at desc") + @shixuns = Shixun.where(:status => [2, 3], :id => @user).order("created_at desc") end - @limit = 8 + @limit = 5 @is_remote = true @shixuns_count = @shixuns.count @shixuns_pages = Paginator.new @shixuns_count, @limit, params['page'] || 1 @@ -2193,11 +2195,67 @@ class UsersController < ApplicationController end end + # @params: index表示 "实训" 或 "课程" 那个的筛选 + # filter 表示筛选的条件[challenge => "我挑战的", create => "我创建的", cooperative => "合作者"] + def shixuns_or_courses_filter + if params[:index] == "shixun" + if params[:filter] == "challenge" + # 已挑战过 + id = Shixun.find_by_sql("select id from shixuns where id in (select shixun_id from myshixuns where user_id = #{@user.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] == "create" + if @user == User.current + @shixuns = Shixun.where(:user_id => @user).order("created_at desc") + else + @shixuns = Shixun.where(:status => [2, 3], :id => @user).order("created_at desc") + end + elsif params[:filter] == "cooperative" + # 合作者及创建者 + ids = Shixun.find_by_sql("select shixun_id from shixun_members 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 + 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 + end + @limit = 5 + @is_remote = true + @shixuns_count = @shixuns.count + @shixuns_pages = Paginator.new @shixuns_count, @limit, params['page'] || 1 + @offset ||= @shixuns_pages.offset + @shixuns = paginateHelper @shixuns, @limit + elsif params[:index] == "course" + if params[:filter] == "manage" + @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") + end + @limit = 5 + @is_remote = true + @courses_count = @courses.count + @courses_pages = Paginator.new @courses_count, @limit, params['page'] || 1 + @offset ||= @courses_pages.offset + @courses = paginateHelper @courses, @limit + end + + respond_to do |format| + format.js + end + end + + def user_show_course_list - @courses = @user.courses.not_deleted_not_end + @courses = @user.courses.not_deleted_not_end.where(:tea_id => @user.id).order("updated_at desc") @courses_count = @courses.count - @courses = @courses.select("courses.*,(SELECT MAX(updated_at) FROM `course_activities` WHERE course_activities.course_id = courses.id) AS updatetime").order("updatetime desc") - @limit = 8 + @limit = 5 @is_remote = true @courses_pages = Paginator.new @courses_count, @limit, params['page'] || 1 @offset ||= @courses_pages.offset diff --git a/app/views/users/_my_homepage_course_show.html.erb b/app/views/users/_my_homepage_course_show.html.erb index 02c928f1c..4311c0aa1 100644 --- a/app/views/users/_my_homepage_course_show.html.erb +++ b/app/views/users/_my_homepage_course_show.html.erb @@ -2,10 +2,15 @@ <% str = current_user == @user ? '我' : 'TA' %>
- +<%= course.name %> <%= course.syllabus.title %> - <%= User.where(:id => course.syllabus.user_id).first.show_name %> - <%= format_time course.updatetime %> + <%= User.where(:id => course.tea_id).first.show_name %> + <%= format_time course.updated_at %>
<% end %> diff --git a/app/views/users/shixuns_or_courses_filter.js.erb b/app/views/users/shixuns_or_courses_filter.js.erb new file mode 100644 index 000000000..ad6796349 --- /dev/null +++ b/app/views/users/shixuns_or_courses_filter.js.erb @@ -0,0 +1,7 @@ +<% if params[:index] == "shixun" %> + $("#my_shixuns_list").html("<%= j ( render :partial => "my_homepage_shixuns_list") %>"); + $("#user_shixun_count").html(" <%= @shixuns_count %>"); +<% elsif params[:index] == "course" %> + $("#my_courses_list").html("<%= j (render :partial => "my_homepage_courses_list") %>"); + $("#user_course_count").html(" <%= @courses_count %>"); +<% end %> \ No newline at end of file diff --git a/app/views/users/show.html.erb b/app/views/users/show.html.erb index c6f649ab7..c23225575 100644 --- a/app/views/users/show.html.erb +++ b/app/views/users/show.html.erb @@ -226,10 +226,16 @@ <% str = current_user ? '我' : 'TA' %> - +