diff --git a/app/controllers/courses_controller.rb b/app/controllers/courses_controller.rb index 9e06ea83c..a0a61786c 100644 --- a/app/controllers/courses_controller.rb +++ b/app/controllers/courses_controller.rb @@ -838,7 +838,7 @@ class CoursesController < ApplicationController sql_select = "" if groupid == 0 sql_select = "SELECT members.*,( - SELECT AVG(student_works.final_score) + SELECT SUM(student_works.final_score) FROM student_works,homework_commons WHERE student_works.homework_common_id = homework_commons.id AND homework_commons.course_id = #{@course.id} @@ -850,7 +850,7 @@ class CoursesController < ApplicationController WHERE members.course_id = #{@course.id} ORDER BY score #{score_sort_by}" else sql_select = "SELECT members.*,( - SELECT AVG(student_works.final_score) + SELECT SUM(student_works.final_score) FROM student_works,homework_commons WHERE student_works.homework_common_id = homework_commons.id AND homework_commons.course_id = #{@course.id} diff --git a/app/helpers/issues_helper.rb b/app/helpers/issues_helper.rb index 6299603fa..a26d2661a 100644 --- a/app/helpers/issues_helper.rb +++ b/app/helpers/issues_helper.rb @@ -72,14 +72,19 @@ module IssuesHelper issuetype = [] if value == "缺陷" || value == 1 issuetype << "issues fl" - elsif value == "功能" || value == 2 + issuetype << "缺陷" + elsif value == "任务" || value == 4 issuetype << "duty fl" + issuetype << "任务" elsif value == "支持" || value == 3 issuetype << "support fl" - elsif value == "任务" || value == 4 + issuetype << "支持" + elsif value == "功能" || value == 2 issuetype << "function fl" + issuetype << "功能" else issuetype << "weekly fl" + issuetype << "周报" end end @@ -95,9 +100,12 @@ module IssuesHelper elsif value == "高" || value == 3 issuetype << "orange_btn_cir ml10" issuetype << "高" - else + elsif value == "低" || value == 1 issuetype << "bgreen_btn_cir ml10" issuetype << "低" + else + issuetype << "red_btn_cir ml10" + issuetype << "立刻" end end diff --git a/app/models/member.rb b/app/models/member.rb index 057ea9570..292dd2034 100644 --- a/app/models/member.rb +++ b/app/models/member.rb @@ -143,6 +143,10 @@ class Member < ActiveRecord::Base StudentWork.joins(:homework_common).where("student_works.user_id = #{self.user_id} and homework_commons.course_id = #{self.course_id}").average(:final_score).try(:round, 2).to_f end + def student_work_score_sum + StudentWork.joins(:homework_common).where("student_works.user_id = #{self.user_id} and homework_commons.course_id = #{self.course_id}").sum(:final_score).try(:round, 2).to_f + end + protected def validate_role diff --git a/app/services/courses_service.rb b/app/services/courses_service.rb index 3fc9fb51c..1439f961d 100644 --- a/app/services/courses_service.rb +++ b/app/services/courses_service.rb @@ -700,12 +700,12 @@ class CoursesService latest_course_dynamics.sort! { |order, newer| newer[:time] <=> order[:time] } # 课程学霸 学生总分数排名靠前的5个人 homework_count = course.homework_commons.count - sql = "select users.*,sum(IFNULL(0,student_works.final_score))/#{homework_count} score from student_works left outer join users on student_works.user_id = users.id" << - " where homework_common_id in ( select id from homework_commons where homework_commons.course_id = #{course.id}) GROUP BY student_works.user_id ORDER BY score limit 0,4" + sql = "select users.*,ROUND(sum(student_works.final_score),2) score from student_works left outer join users on student_works.user_id = users.id" << + " where homework_common_id in ( select id from homework_commons where homework_commons.course_id = #{course.id}) GROUP BY student_works.user_id ORDER BY score desc limit 0,4" better_students = User.find_by_sql(sql) # 找出在课程讨论区发帖回帖数最多的 active_students = [] - sql1 = " select users.*,count(author_id) active_count from messages " << + sql1 = " select users.*,count(author_id)*2 active_count from messages " << " LEFT JOIN users on messages.author_id = users.id " << " where messages.board_id in (select id from boards where boards.course_id = #{course.id} ) " << " GROUP BY messages.author_id ORDER BY count(author_id) desc " << @@ -734,10 +734,9 @@ class CoursesService user_list = [] max_size = 0 if params[:type] == 1 - homework_count = Course.find(params[:course_id]).homework_commons.count - sql = "select users.*,sum(IFNULL(0,student_works.final_score))/#{homework_count} score from student_works left outer join users on student_works.user_id = users.id" << - " where homework_common_id in ( select id from homework_commons where homework_commons.course_id = #{params[:course_id]}) GROUP BY student_works.user_id ORDER BY score limit #{page*10},10" + sql = "select users.*,ROUND(sum(student_works.final_score),2) score from student_works left outer join users on student_works.user_id = users.id" << + " where homework_common_id in ( select id from homework_commons where homework_commons.course_id = #{params[:course_id]}) GROUP BY student_works.user_id ORDER BY score desc limit #{page*10},10" sql_count = " select count(distinct(student_works.user_id) ) " << " from student_works left outer join users on student_works.user_id = users.id " << " where homework_common_id in " << diff --git a/app/views/boards/_course_show.html.erb b/app/views/boards/_course_show.html.erb index f09f070fe..b8bbf3d63 100644 --- a/app/views/boards/_course_show.html.erb +++ b/app/views/boards/_course_show.html.erb @@ -46,7 +46,7 @@
:
- + <% if topic.course_editable_by?(User.current) %> <%= l(:button_edit) %> diff --git a/app/views/boards/_project_show.html.erb b/app/views/boards/_project_show.html.erb index a5988e4b0..bc69e2666 100644 --- a/app/views/boards/_project_show.html.erb +++ b/app/views/boards/_project_show.html.erb @@ -35,14 +35,14 @@ <%= link_to image_tag(url_to_avatar(topic.author), :width=>"42",:height=>"42"), user_path(topic.author),:class =>'talkmain_pic fl' %>