From 92808fe8ea488e4b586d4db3e3932763a47cad14 Mon Sep 17 00:00:00 2001 From: sw <939547590@qq.com> Date: Wed, 25 Mar 2015 20:13:48 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E5=AD=A6=E7=94=9F=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E7=95=8C=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/courses_controller.rb | 58 +++++----- app/views/courses/_course_student.html.erb | 118 +------------------- app/views/courses/_member_list.html.erb | 6 +- app/views/courses/_new_member_list.html.erb | 74 ++++++++++++ 4 files changed, 106 insertions(+), 150 deletions(-) create mode 100644 app/views/courses/_new_member_list.html.erb diff --git a/app/controllers/courses_controller.rb b/app/controllers/courses_controller.rb index 3ad63a948..c3f36636f 100644 --- a/app/controllers/courses_controller.rb +++ b/app/controllers/courses_controller.rb @@ -298,7 +298,7 @@ class CoursesController < ApplicationController @render_file = 'member_list' @score_sort_by = "desc" - @canShowCode = isCourseTeacher(User.current.id,@course) && params[:role] != '1' + @canShowCode = User.current.allowed_to?(:as_teacher,@course) && params[:role] != '1' @role = params[:role].nil? ? '2':params[:role] @is_remote = true @course_groups = @course.course_groups if @course.course_groups @@ -311,8 +311,8 @@ class CoursesController < ApplicationController when '2' @subPage_title = l :label_student_list page = params[:page].nil? ? 0 : (params['page'].to_i - 1) - # @all_members = student_homework_score(0,page, 10,"desc") - @all_members = @course.members + @all_members = student_homework_score(0,page, 10,"desc") + # @all_members = @course.members @members = paginateHelper_for_members @all_members, 10 end respond_to do |format| @@ -798,38 +798,38 @@ class CoursesController < ApplicationController if groupid == 0 if nums == 0 sql_select = "SELECT members.*, SUM(homework_attaches.score) as score FROM members, homework_attaches - WHERE members.course_id = #{@course.id} AND members.user_id in (SELECT students_for_courses.student_id FROM students_for_courses WHERE course_id = #{@course.id}) AND members.user_id = homework_attaches.user_id -AND homework_attaches.bid_id in (SELECT bid_id FROM homework_for_courses WHERE course_id = #{@course.id}) GROUP BY members.user_id -UNION all -SELECT members.*, 0 as score FROM members,homework_attaches,students_for_courses WHERE members.course_id = #{@course.id} AND -students_for_courses.course_id = #{@course.id} and members.user_id = students_for_courses.student_id AND -members.user_id NOT IN (SELECT homework_attaches.user_id FROM homework_attaches WHERE homework_attaches.bid_id in (SELECT bid_id FROM homework_for_courses WHERE course_id = #{@course.id} ) -) -GROUP BY members.user_id ORDER BY score #{score_sort_by}" + WHERE members.course_id = #{@course.id} AND members.user_id in (SELECT students_for_courses.student_id FROM students_for_courses WHERE course_id = #{@course.id}) AND members.user_id = homework_attaches.user_id + AND homework_attaches.bid_id in (SELECT bid_id FROM homework_for_courses WHERE course_id = #{@course.id}) GROUP BY members.user_id + UNION all + SELECT members.*, 0 as score FROM members,homework_attaches,students_for_courses WHERE members.course_id = #{@course.id} AND + students_for_courses.course_id = #{@course.id} and members.user_id = students_for_courses.student_id AND + members.user_id NOT IN (SELECT homework_attaches.user_id FROM homework_attaches WHERE homework_attaches.bid_id in (SELECT bid_id FROM homework_for_courses WHERE course_id = #{@course.id} ) + ) + GROUP BY members.user_id ORDER BY score #{score_sort_by}" else sql_select = "SELECT members.*, SUM(homework_attaches.score) as score FROM members, homework_attaches - WHERE members.course_id = #{@course.id} AND members.user_id in (SELECT students_for_courses.student_id FROM students_for_courses WHERE course_id = #{@course.id}) AND members.user_id = homework_attaches.user_id -AND homework_attaches.bid_id in (SELECT bid_id FROM homework_for_courses WHERE course_id = #{@course.id}) GROUP BY members.user_id -UNION all -SELECT members.*, 0 as score FROM members,homework_attaches,students_for_courses WHERE members.course_id = #{@course.id} AND -students_for_courses.course_id = #{@course.id} and members.user_id = students_for_courses.student_id AND -members.user_id NOT IN (SELECT homework_attaches.user_id FROM homework_attaches WHERE homework_attaches.bid_id in (SELECT bid_id FROM homework_for_courses WHERE course_id = #{@course.id} ) -) -GROUP BY members.user_id ORDER BY score #{score_sort_by} limit #{start_from}, #{nums}" + WHERE members.course_id = #{@course.id} AND members.user_id in (SELECT students_for_courses.student_id FROM students_for_courses WHERE course_id = #{@course.id}) AND members.user_id = homework_attaches.user_id + AND homework_attaches.bid_id in (SELECT bid_id FROM homework_for_courses WHERE course_id = #{@course.id}) GROUP BY members.user_id + UNION all + SELECT members.*, 0 as score FROM members,homework_attaches,students_for_courses WHERE members.course_id = #{@course.id} AND + students_for_courses.course_id = #{@course.id} and members.user_id = students_for_courses.student_id AND + members.user_id NOT IN (SELECT homework_attaches.user_id FROM homework_attaches WHERE homework_attaches.bid_id in (SELECT bid_id FROM homework_for_courses WHERE course_id = #{@course.id} ) + ) + GROUP BY members.user_id ORDER BY score #{score_sort_by} limit #{start_from}, #{nums}" end else sql_select = "SELECT members.*, SUM(homework_attaches.score) as score FROM members, homework_attaches - WHERE members.course_id = #{@course.id} AND members.user_id in (SELECT students_for_courses.student_id FROM students_for_courses WHERE course_id = #{@course.id}) AND members.user_id = homework_attaches.user_id - and members.course_group_id = #{groupid} AND homework_attaches.bid_id in (SELECT bid_id FROM homework_for_courses WHERE course_id = #{@course.id}) - GROUP BY members.user_id -UNION all -SELECT members.*, 0 as score FROM members,homework_attaches,students_for_courses WHERE members.course_id = #{@course.id} -and members.course_group_id = #{groupid} AND -students_for_courses.course_id = #{@course.id} and members.user_id = students_for_courses.student_id AND -members.user_id NOT IN (SELECT homework_attaches.user_id FROM homework_attaches WHERE homework_attaches.bid_id in (SELECT bid_id FROM homework_for_courses WHERE course_id = #{@course.id} ) -) -GROUP BY members.user_id ORDER BY score #{score_sort_by}" + WHERE members.course_id = #{@course.id} AND members.user_id in (SELECT students_for_courses.student_id FROM students_for_courses WHERE course_id = #{@course.id}) AND members.user_id = homework_attaches.user_id + and members.course_group_id = #{groupid} AND homework_attaches.bid_id in (SELECT bid_id FROM homework_for_courses WHERE course_id = #{@course.id}) + GROUP BY members.user_id + UNION all + SELECT members.*, 0 as score FROM members,homework_attaches,students_for_courses WHERE members.course_id = #{@course.id} + and members.course_group_id = #{groupid} AND + students_for_courses.course_id = #{@course.id} and members.user_id = students_for_courses.student_id AND + members.user_id NOT IN (SELECT homework_attaches.user_id FROM homework_attaches WHERE homework_attaches.bid_id in (SELECT bid_id FROM homework_for_courses WHERE course_id = #{@course.id} ) + ) + GROUP BY members.user_id ORDER BY score #{score_sort_by}" end sql = ActiveRecord::Base.connection() homework_scores = Member.find_by_sql(sql_select) diff --git a/app/views/courses/_course_student.html.erb b/app/views/courses/_course_student.html.erb index e94ac00b2..c85f3e158 100644 --- a/app/views/courses/_course_student.html.erb +++ b/app/views/courses/_course_student.html.erb @@ -18,122 +18,6 @@
-
- -
-
- 学生 - - 4.2 - 2014-11-27 -
-
-
- 学生 - - 4.2 - 2014-11-27 -
-
-
- 学生 - - 4.2 - 2014-11-27 -
-
-
- 学生 - - 4.2 - 2014-11-27 -
-
-
- 学生 - - 4.2 - 2014-11-27 -
-
-
- 学生 - - 4.2 - 2014-11-27 -
-
-
- 学生 - - 4.2 - 2014-11-27 -
-
-
- 学生 - - 4.2 - 2014-11-27 -
-
-
- 学生 - - 4.2 - 2014-11-27 -
-
-
- 学生 - - 4.2 - 2014-11-27 -
-
-
+ <%= render :partial => 'new_member_list', :locals => {:members => members} %> - -
\ No newline at end of file diff --git a/app/views/courses/_member_list.html.erb b/app/views/courses/_member_list.html.erb index 9112a945d..bf88ce340 100644 --- a/app/views/courses/_member_list.html.erb +++ b/app/views/courses/_member_list.html.erb @@ -1,9 +1,7 @@ -
+
<% if User.current.logged? && User.current.member_of_course?(@course) && @group %> - <% if !@canShowCode %> - <%= join_in_course_group(@course.course_groups,@group, User.current) %> - <% end %> + <%= join_in_course_group(@course.course_groups,@group, User.current) unless @canShowCode %> <%= l(:label_current_group)%>:  <%= @group.name %> diff --git a/app/views/courses/_new_member_list.html.erb b/app/views/courses/_new_member_list.html.erb new file mode 100644 index 000000000..b7341e066 --- /dev/null +++ b/app/views/courses/_new_member_list.html.erb @@ -0,0 +1,74 @@ + +
+ <% if User.current.logged? && User.current.member_of_course?(@course) && @group %> + <%= join_in_course_group(@course.course_groups,@group, User.current) unless @canShowCode %> + + <%= l(:label_current_group)%>:  + <%= @group.name %> + + <% end %> +
+
+ +<% if members.any? %> + <% if @result_count %> +

+ <%= l(:label_search_member_count) %> + <%= @result_count %> + <%= l(:label_member_people) %> +

+
+ <% end %> + +
+ +
+ + <% members.each do |member| %> +
+ + <%= member.user.nil? ? '' : (image_tag(url_to_avatar(member.user), :width => 32, :height => 32)) %> + +
    + <% if @canShowCode %> +
  • + <% if member.user.show_name == ''%> + <%= link_to("#{l(:label_bidding_user_studentname)}:#{member.user.name}".html_safe,user_path(member.user)) %> + <% else%> + <%= link_to("#{l(:label_bidding_user_studentname)}:#{member.user.show_name}".html_safe,user_path(member.user)) %> + <%end%> +
  • + <% else %> +
  • <%= link_to("#{l(:label_bidding_user_studentname)}:#{member.user.name}".html_safe, user_path(member.user)) %>
  • + <% end %> +
    + <% unless member.user.user_extensions.student_id == ''%> +
  • <%= link_to("#{l(:label_bidding_user_studentcode)}:#{member.user.user_extensions.student_id}".html_safe,user_path(member.user)) %>
  • + <% end%> +
+ <%= link_to format("%0.2f",member.score.nil? ? 0 : member.score.to_s), { + :action => 'show_member_score', + :member_id => member.id, + :remote => true}, + :class => 'ml258 c_red' %> + <%= format_date(member.created_on)%> + <%= call_hook(:view_projects_settings_members_table_row, { :course => @course, :member => member}) %> +
+
+ <% end; reset_cycle %> +
+ +
    + <%= pagination_links_full @obj_pages, @obj_count, :per_page_links => false, :remote => false, :flag => true%> +
+<% else%> +

+ <%= l(:label_no_data) %> +

+<% end%> +