From 86751e31fb48b758d62dcfd52d42e4c12cb6db0c Mon Sep 17 00:00:00 2001 From: Tim Date: Tue, 26 Apr 2016 15:35:42 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E9=A2=98=E5=BA=93=E5=8A=A0=E5=85=A5?= =?UTF-8?q?=E7=A7=81=E6=9C=89=E8=AF=BE=E7=A8=8B=E9=A2=98=E7=9B=AE=EF=BC=8C?= =?UTF-8?q?=E5=8F=AF=E7=94=B3=E8=AF=B7=E4=BD=BF=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/users/_homework_repository.html.erb | 8 +++++--- app/views/users/_homework_repository_list.html.erb | 3 +++ app/views/users/user_homeworks.html.erb | 5 ++++- public/stylesheets/new_user.css | 9 ++++++--- public/stylesheets/public.css | 1 + 5 files changed, 19 insertions(+), 7 deletions(-) diff --git a/app/views/users/_homework_repository.html.erb b/app/views/users/_homework_repository.html.erb index a30e21a3f..1ed8ae688 100644 --- a/app/views/users/_homework_repository.html.erb +++ b/app/views/users/_homework_repository.html.erb @@ -14,11 +14,12 @@
<% homeworks.each do |homework| %> <% end %>
\ No newline at end of file diff --git a/app/views/users/_homework_repository_list.html.erb b/app/views/users/_homework_repository_list.html.erb index 678bf65d7..2e483b3b3 100644 --- a/app/views/users/_homework_repository_list.html.erb +++ b/app/views/users/_homework_repository_list.html.erb @@ -30,6 +30,9 @@ <%= link_to "", user_search_homeworks_user_path(@user,:name=>search,:type => type,:is_import=>is_import,:property=>property,:order => "publish_time", :sort => @r_sort),:class => "#{@r_sort == 'desc' ? 'st_up' : 'st_down'} mt12 fl" ,:remote => true%> <% end%> +
  • + 操作 +
  • <%=render :partial => 'homework_repository', :locals => {:homeworks => homeworks} %> diff --git a/app/views/users/user_homeworks.html.erb b/app/views/users/user_homeworks.html.erb index 2cd1f5b21..5eaf61569 100644 --- a/app/views/users/user_homeworks.html.erb +++ b/app/views/users/user_homeworks.html.erb @@ -41,7 +41,10 @@
  • 我的题库
  • -
  •  
  • +
  • + 申请题库 +
  • +
  •  
    • diff --git a/public/stylesheets/new_user.css b/public/stylesheets/new_user.css index 4558437a2..e9eb16c20 100644 --- a/public/stylesheets/new_user.css +++ b/public/stylesheets/new_user.css @@ -704,7 +704,7 @@ a.postOptionLink:hover {color:#ffffff; background-color:#269ac9;} .imageFuzzy {filter:alpha(opacity=50); -moz-opacity:0.5; -khtml-opacity:0.5;opacity: 0.5;} .homepagePostReplyDes {float:left; width:642px; margin-left:15px;} .homepagePostReplyPublisher {font-size:12px; color:#888888; margin-bottom:5px;} -.homepagePostReplyContent {font-size:12px; color:#484848; margin:3px 5px 12px 5px;font: 14px/1.5 "sans serif",tahoma,verdana,helvetica;font-family: 微软雅黑, 宋体;} +.homepagePostReplyContent {font-size:12px; color:#484848; margin:3px 5px 12px 5px;font: 14px/1.5 "sans serif",tahoma,verdana,helvetica;font-family:"微软雅黑","宋体";} .table_maxWidth table {max-width: 642px;} .homepagePostProjectState {width:52px; height:20px; line-height:20px; border-radius:1px; background-color:#28be6c; color:#ffffff; text-align:center; vertical-align:middle; font-size:12px; display:inline-block; margin-left:5px;} .homepagePostAssignTo {float:left; font-size:14px; color:#269ac9;} @@ -714,7 +714,7 @@ a.postOptionLink:hover {color:#ffffff; background-color:#269ac9;} a.postGrey {color:#484848;} a.postGrey:hover {color:#000000;} a.gz_btn{display:block; background:url(../images/pic_uersall.png) -318px -25px no-repeat; width:53px; height:18px; border:1px solid #cdcdcd; color:#333333; padding:0px 0 0 18px;margin-top: 2px;margin-right: 15px;} -a:hover.gz_btn{ color:#ff5722;} +a:hover .gz_btn{color:#ff5722;} .homepagePostReplyjournal{margin-left: 15px; float: left;} .lh18 {line-height: 18px;} /*该高度会写入配置文件*/ @@ -1469,9 +1469,10 @@ a.choose-active {background-color:#269ac9; color:#ffffff;} /*20160301新题库样式*/ .subject-list-banner {width:685px; height:40px; background-color:#f1f1f1; border-top:1px solid #eaeaea; color:#7a7a7a; font-size:14px;} .subject-list-banner li {height:40px; line-height:40px; vertical-align:middle;} -.subject-list-name {width:260px; padding-left:10px; padding-right:10px;} +.subject-list-name {width:190px; padding-left:10px; padding-right:10px;} .subject-list-publisher {width:80px; text-align:center;} .subject-list-date {width:70px; text-align:center;} +.subject-list-option {width:70px; text-align:center;} .subject-list-row {width:685px; height:40px; color:#7a7a7a; font-size:12px;} .subject-list-row li {height:40px; line-height:40px; vertical-align:middle;} .subject-list-search {border:1px solid #dddddd; height:32px; width:250px;} @@ -1481,6 +1482,8 @@ a.choose-active {background-color:#269ac9; color:#ffffff;} .subject-list-type {width:50px; text-align:center;} .subject-list-count {width:60px; text-align:center;} .subject-list-from {width:145px; text-align:center;} +.subject-name-middle {display:inline-block; line-height:40px; vertical-align:middle;} +.subject-name-hidden {max-width:150px; overflow:hidden; white-space:nowrap; text-overflow:ellipsis;} /*视频播放默认图标*/ .mediaIco{margin: 30px 0 30px 20px;width: 200px;} diff --git a/public/stylesheets/public.css b/public/stylesheets/public.css index f3403aa78..ac6425b94 100644 --- a/public/stylesheets/public.css +++ b/public/stylesheets/public.css @@ -172,6 +172,7 @@ h4{ font-size:14px; color:#3b3b3b;} .w600{ width:600px !important;} .w606{ width:606px } .w705{ width:705px;} +.w680{ width: 680px;} .w770{ width:770px;} .h20{height: 20px;} .h22{ height:22px;} From 766026e3cfdde314f5d4132b3f862aa3897d2c2b Mon Sep 17 00:00:00 2001 From: cxt Date: Wed, 27 Apr 2016 16:21:35 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E6=95=99=E5=B8=88=E8=AF=84=E5=88=86?= =?UTF-8?q?=E4=B8=BA=E6=9C=80=E7=BB=88=E8=AF=84=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/courses_controller.rb | 4 +- app/controllers/student_work_controller.rb | 54 +++++++++++-------- app/helpers/courses_helper.rb | 2 +- app/models/member.rb | 4 +- app/models/student_work.rb | 10 ++++ app/views/courses/_show_member_score.html.erb | 2 +- .../student_work/_evaluation_un_work.html.erb | 6 ++- ...60427061847_add_column_to_student_works.rb | 27 ++++++++++ db/schema.rb | 3 +- 9 files changed, 82 insertions(+), 30 deletions(-) create mode 100644 db/migrate/20160427061847_add_column_to_student_works.rb diff --git a/app/controllers/courses_controller.rb b/app/controllers/courses_controller.rb index af793ca31..86dae3d6d 100644 --- a/app/controllers/courses_controller.rb +++ b/app/controllers/courses_controller.rb @@ -1077,7 +1077,7 @@ class CoursesController < ApplicationController sql_select = "" if groupid == 0 sql_select = "SELECT members.*,( - SELECT SUM(IF(student_works.final_score IS NULL,NULL,IF(student_works.final_score =0,0,IF((student_works.final_score - student_works.absence_penalty - student_works.late_penalty) < 0 , 0, student_works.final_score - student_works.absence_penalty - student_works.late_penalty)))) + SELECT SUM(student_works.work_score) FROM student_works,homework_commons WHERE student_works.homework_common_id = homework_commons.id AND homework_commons.course_id = #{@course.id} @@ -1089,7 +1089,7 @@ class CoursesController < ApplicationController WHERE members.course_id = #{@course.id} ORDER BY score #{score_sort_by}" else sql_select = "SELECT members.*,( - SELECT SUM(IF(student_works.final_score IS NULL,NULL,IF(student_works.final_score =0,0,IF((student_works.final_score - student_works.absence_penalty - student_works.late_penalty) < 0 , 0, student_works.final_score - student_works.absence_penalty - student_works.late_penalty)))) + SELECT SUM(student_works.work_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/controllers/student_work_controller.rb b/app/controllers/student_work_controller.rb index 24fbed982..909c68715 100644 --- a/app/controllers/student_work_controller.rb +++ b/app/controllers/student_work_controller.rb @@ -224,11 +224,11 @@ class StudentWorkController < ApplicationController #开放作品 || 老师 || 超级管理员 || 禁用匿评&&作业截止&&已提交作品 显示所有列表 if @homework.is_open == 1 || @is_teacher || User.current.admin? || (User.current.member_of_course?(@course) && @homework.anonymous_comment == 1 && Time.parse(@homework.end_time.to_s).strftime("%Y-%m-%d") < Time.now.strftime("%Y-%m-%d") && !@homework.student_works.where(:user_id => User.current.id).empty?) if @order == 'lastname' - @stundet_works = search_homework_member @homework.student_works.select("student_works.*,IF(final_score is null,null,IF(final_score = 0, 0, final_score - absence_penalty - late_penalty)) as score").joins(:user).where("users.id in #{student_in_group}").order("CONVERT(lastname USING gbk) COLLATE gbk_chinese_ci #{@b_sort}, login #{@b_sort}"),@name + @stundet_works = search_homework_member @homework.student_works.select("student_works.*,student_works.work_score as score").joins(:user).where("users.id in #{student_in_group}").order("CONVERT(lastname USING gbk) COLLATE gbk_chinese_ci #{@b_sort}, login #{@b_sort}"),@name elsif @order == 'student_id' - @stundet_works = search_homework_member @homework.student_works.select("student_works.*,IF(final_score is null,null,IF(final_score = 0, 0, final_score - absence_penalty - late_penalty)) as score").joins(:user).where("users.id in #{student_in_group}").joins("join user_extensions on student_works.user_id = user_extensions.user_id").order("#{@order} #{@b_sort}"),@name + @stundet_works = search_homework_member @homework.student_works.select("student_works.*,student_works.work_score as score").joins(:user).where("users.id in #{student_in_group}").joins("join user_extensions on student_works.user_id = user_extensions.user_id").order("#{@order} #{@b_sort}"),@name else - @stundet_works = search_homework_member @homework.student_works.select("student_works.*,IF(final_score is null,null,IF(final_score = 0, 0, final_score - absence_penalty - late_penalty)) as score").joins(:user).where("users.id in #{student_in_group}").order("#{@order} #{@b_sort}"),@name + @stundet_works = search_homework_member @homework.student_works.select("student_works.*,student_works.work_score as score").joins(:user).where("users.id in #{student_in_group}").order("#{@order} #{@b_sort}"),@name end @show_all = true elsif User.current.member_of_course?(@course) @@ -238,10 +238,10 @@ class StudentWorkController < ApplicationController if pro.nil? @stundet_works = [] else - @stundet_works = @homework.student_works.select("student_works.*,IF(final_score is null,null,IF(final_score = 0, 0, final_score - absence_penalty - late_penalty)) as score").where(:id => pro.student_work_id) + @stundet_works = @homework.student_works.select("student_works.*,student_works.work_score as score").where(:id => pro.student_work_id) end else - @stundet_works = @homework.student_works.select("student_works.*,IF(final_score is null,null,IF(final_score = 0, 0, final_score - absence_penalty - late_penalty)) as score").where(:user_id => User.current.id) + @stundet_works = @homework.student_works.select("student_works.*,student_works.work_score as score").where(:user_id => User.current.id) end elsif @homework.homework_detail_manual.comment_status == 2 #学生 && 开启匿评 看到匿评列表 if @homework.homework_type == 3 @@ -261,20 +261,20 @@ class StudentWorkController < ApplicationController if pro.nil? my_work = [] else - my_work = @homework.student_works.select("student_works.*,IF(final_score is null,null,IF(final_score = 0, 0, final_score - absence_penalty - late_penalty)) as score").where(:id => pro.student_work_id) + my_work = @homework.student_works.select("student_works.*,student_works.work_score as score").where(:id => pro.student_work_id) end else - my_work = @homework.student_works.select("student_works.*,IF(final_score is null,null,IF(final_score = 0, 0, final_score - absence_penalty - late_penalty)) as score").where(:user_id => User.current.id) + my_work = @homework.student_works.select("student_works.*,student_works.work_score as score").where(:user_id => User.current.id) end if my_work.empty? @stundet_works = [] else if @order == 'lastname' - @stundet_works = search_homework_member @homework.student_works.select("student_works.*,IF(final_score is null,null,IF(final_score = 0, 0, final_score - absence_penalty - late_penalty)) as score").joins(:user).where("users.id in #{student_in_group}").order("CONVERT(lastname USING gbk) COLLATE gbk_chinese_ci #{@b_sort}, login #{@b_sort}"),@name + @stundet_works = search_homework_member @homework.student_works.select("student_works.*,student_works.work_score as score").joins(:user).where("users.id in #{student_in_group}").order("CONVERT(lastname USING gbk) COLLATE gbk_chinese_ci #{@b_sort}, login #{@b_sort}"),@name elsif @order == 'student_id' - @stundet_works = search_homework_member @homework.student_works.select("student_works.*,IF(final_score is null,null,IF(final_score = 0, 0, final_score - absence_penalty - late_penalty)) as score").joins(:user).where("users.id in #{student_in_group}").joins("join user_extensions on student_works.user_id = user_extensions.user_id").order("#{@order} #{@b_sort}"),@name + @stundet_works = search_homework_member @homework.student_works.select("student_works.*,student_works.work_score as score").joins(:user).where("users.id in #{student_in_group}").joins("join user_extensions on student_works.user_id = user_extensions.user_id").order("#{@order} #{@b_sort}"),@name else - @stundet_works = search_homework_member @homework.student_works.select("student_works.*,IF(final_score is null,null,IF(final_score = 0, 0, final_score - absence_penalty - late_penalty)) as score").joins(:user).where("users.id in #{student_in_group}").order("#{@order} #{@b_sort}"),@name + @stundet_works = search_homework_member @homework.student_works.select("student_works.*,student_works.work_score as score").joins(:user).where("users.id in #{student_in_group}").order("#{@order} #{@b_sort}"),@name end @show_all = true end @@ -286,15 +286,15 @@ class StudentWorkController < ApplicationController return end - @student_work_count = (search_homework_member @homework.student_works.select("student_works.*,IF(final_score is null,null,IF(final_score = 0, 0, final_score - absence_penalty - late_penalty)) as score").joins(:user).where("users.id in #{student_in_group}").order("#{@order} #{@b_sort}"),@name).count + @student_work_count = (search_homework_member @homework.student_works.select("student_works.*,student_works.work_score as score").joins(:user).where("users.id in #{student_in_group}").order("#{@order} #{@b_sort}"),@name).count else if @homework.is_open == 1 || @is_teacher || User.current.admin? || (User.current.member_of_course?(@course) && @homework.anonymous_comment == 1 && Time.parse(@homework.end_time.to_s).strftime("%Y-%m-%d") < Time.now.strftime("%Y-%m-%d") && !@homework.student_works.where(:user_id => User.current.id).empty?) if @order == 'lastname' - @stundet_works = search_homework_member @homework.student_works.select("student_works.*,IF(final_score is null,null,IF(final_score = 0, 0, final_score - absence_penalty - late_penalty)) as score").joins(:user).order("CONVERT(lastname USING gbk) COLLATE gbk_chinese_ci #{@b_sort}, login #{@b_sort}"),@name + @stundet_works = search_homework_member @homework.student_works.select("student_works.*,student_works.work_score as score").joins(:user).order("CONVERT(lastname USING gbk) COLLATE gbk_chinese_ci #{@b_sort}, login #{@b_sort}"),@name elsif @order == 'student_id' - @stundet_works = search_homework_member @homework.student_works.select("student_works.*,IF(final_score is null,null,IF(final_score = 0, 0, final_score - absence_penalty - late_penalty)) as score").joins("join user_extensions on student_works.user_id = user_extensions.user_id").order("#{@order} #{@b_sort}"),@name + @stundet_works = search_homework_member @homework.student_works.select("student_works.*,student_works.work_score as score").joins("join user_extensions on student_works.user_id = user_extensions.user_id").order("#{@order} #{@b_sort}"),@name else - @stundet_works = search_homework_member @homework.student_works.select("student_works.*,IF(final_score is null,null,IF(final_score = 0, 0, final_score - absence_penalty - late_penalty)) as score").order("#{@order} #{@b_sort}"),@name + @stundet_works = search_homework_member @homework.student_works.select("student_works.*,student_works.work_score as score").order("#{@order} #{@b_sort}"),@name end @show_all = true elsif User.current.member_of_course?(@course) @@ -304,10 +304,10 @@ class StudentWorkController < ApplicationController if pro.nil? @stundet_works = [] else - @stundet_works = @homework.student_works.select("student_works.*,IF(final_score is null,null,IF(final_score = 0, 0, final_score - absence_penalty - late_penalty)) as score").where(:id => pro.student_work_id) + @stundet_works = @homework.student_works.select("student_works.*,student_works.work_score as score").where(:id => pro.student_work_id) end else - @stundet_works = @homework.student_works.select("student_works.*,IF(final_score is null,null,IF(final_score = 0, 0, final_score - absence_penalty - late_penalty)) as score").where(:user_id => User.current.id) + @stundet_works = @homework.student_works.select("student_works.*,student_works.work_score as score").where(:user_id => User.current.id) end elsif @homework.homework_detail_manual.comment_status == 2 #学生 && 开启匿评 看到匿评列表 if @homework.homework_type == 3 @@ -327,20 +327,20 @@ class StudentWorkController < ApplicationController if pro.nil? my_work = [] else - my_work = @homework.student_works.select("student_works.*,IF(final_score is null,null,IF(final_score = 0, 0, final_score - absence_penalty - late_penalty)) as score").where(:id => pro.student_work_id) + my_work = @homework.student_works.select("student_works.*,student_works.work_score as score").where(:id => pro.student_work_id) end else - my_work = @homework.student_works.select("student_works.*,IF(final_score is null,null,IF(final_score = 0, 0, final_score - absence_penalty - late_penalty)) as score").where(:user_id => User.current.id) + my_work = @homework.student_works.select("student_works.*,student_works.work_score as score").where(:user_id => User.current.id) end if my_work.empty? @stundet_works = [] else if @order == 'lastname' - @stundet_works = search_homework_member @homework.student_works.select("student_works.*,IF(final_score is null,null,IF(final_score = 0, 0, final_score - absence_penalty - late_penalty)) as score").joins(:user).order("CONVERT(lastname USING gbk) COLLATE gbk_chinese_ci #{@b_sort}, login #{@b_sort}"),@name + @stundet_works = search_homework_member @homework.student_works.select("student_works.*,student_works.work_score as score").joins(:user).order("CONVERT(lastname USING gbk) COLLATE gbk_chinese_ci #{@b_sort}, login #{@b_sort}"),@name elsif @order == 'student_id' - @stundet_works = search_homework_member @homework.student_works.select("student_works.*,IF(final_score is null,null,IF(final_score = 0, 0, final_score - absence_penalty - late_penalty)) as score").joins("join user_extensions on student_works.user_id = user_extensions.user_id").order("#{@order} #{@b_sort}"),@name + @stundet_works = search_homework_member @homework.student_works.select("student_works.*,student_works.work_score as score").joins("join user_extensions on student_works.user_id = user_extensions.user_id").order("#{@order} #{@b_sort}"),@name else - @stundet_works = search_homework_member @homework.student_works.select("student_works.*,IF(final_score is null,null,IF(final_score = 0, 0, final_score - absence_penalty - late_penalty)) as score").order("#{@order} #{@b_sort}"),@name + @stundet_works = search_homework_member @homework.student_works.select("student_works.*,student_works.work_score as score").order("#{@order} #{@b_sort}"),@name end @show_all = true end @@ -351,7 +351,7 @@ class StudentWorkController < ApplicationController render_403 return end - @student_work_count = (search_homework_member @homework.student_works.select("student_works.*,IF(final_score is null,null,IF(final_score = 0, 0, final_score - absence_penalty - late_penalty)) as score").order("#{@order} #{@b_sort}"),@name).count + @student_work_count = (search_homework_member @homework.student_works.select("student_works.*,student_works.work_score as score").order("#{@order} #{@b_sort}"),@name).count end @score = @b_sort == "desc" ? "asc" : "desc" @@ -1162,6 +1162,7 @@ class StudentWorkController < ApplicationController if homework.teacher_priority == 1 #教师优先 if student_work.teacher_score student_work.final_score = student_work.teacher_score + student_work.work_score = student_work.teacher_score else if student_work.teaching_asistant_score.nil? student_work.final_score = student_work.student_score @@ -1174,6 +1175,8 @@ class StudentWorkController < ApplicationController final_score = final_ta_score + final_s_score student_work.final_score = format("%.2f",final_score.to_f) end + score = student_work.final_score - student_work.absence_penalty - student_work.late_penalty if student_work.final_score + student_work.work_score = format("%.2f",(score < 0 ? 0 : score).to_f) if score end else #不考虑教师评分 if student_work.teaching_asistant_score.nil? @@ -1187,11 +1190,14 @@ class StudentWorkController < ApplicationController final_score = final_ta_score + final_s_score student_work.final_score = format("%.2f",final_score.to_f) end + score = student_work.final_score - student_work.absence_penalty - student_work.late_penalty if student_work.final_score + student_work.work_score = format("%.2f",(score < 0 ? 0 : score).to_f) if score end elsif homework.homework_type == 2 && homework.homework_detail_programing #编程作业-----设定:系统评分必定不为空 if homework.teacher_priority == 1 #教师优先 if student_work.teacher_score student_work.final_score = student_work.teacher_score + student_work.work_score = student_work.teacher_score else if student_work.teaching_asistant_score.nil? #教辅未评分 if student_work.student_score.nil? @@ -1220,6 +1226,8 @@ class StudentWorkController < ApplicationController final_score = final_sy_score + final_ts_score + final_st_score student_work.final_score = format("%.2f",final_score.to_f) end + score = student_work.final_score - student_work.absence_penalty - student_work.late_penalty if student_work.final_score + student_work.work_score = format("%.2f",(score < 0 ? 0 : score).to_f) if score end else #不考虑教师评分 if student_work.teaching_asistant_score.nil? #教辅未评分 @@ -1249,6 +1257,8 @@ class StudentWorkController < ApplicationController final_score = final_sy_score + final_ts_score + final_st_score student_work.final_score = format("%.2f",final_score.to_f) end + score = student_work.final_score - student_work.absence_penalty - student_work.late_penalty if student_work.final_score + student_work.work_score = format("%.2f",(score < 0 ? 0 : score).to_f) if score end end end diff --git a/app/helpers/courses_helper.rb b/app/helpers/courses_helper.rb index 3a6b347b3..c10652c6f 100644 --- a/app/helpers/courses_helper.rb +++ b/app/helpers/courses_helper.rb @@ -850,7 +850,7 @@ module CoursesHelper # 学生按作业总分排序,取前8个 def hero_homework_score(course, score_sort_by) sql_select = "SELECT members.*,( - SELECT SUM(IF(student_works.final_score IS NULL,NULL,IF(student_works.final_score =0,0,IF((student_works.final_score - student_works.absence_penalty - student_works.late_penalty) < 0 , 0, student_works.final_score - student_works.absence_penalty - student_works.late_penalty)))) + SELECT SUM(work_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/models/member.rb b/app/models/member.rb index cc227cf31..3cb70a8fe 100644 --- a/app/models/member.rb +++ b/app/models/member.rb @@ -150,7 +150,7 @@ class Member < ActiveRecord::Base #当前学生在指定作业内的得分 def homework_common_score homework_common - StudentWork.select("IF(final_score is null,null,IF(final_score = 0, 0, final_score - absence_penalty - late_penalty)) as final_score").where(:homework_common_id => homework_common.id,:user_id => self.user_id) + StudentWork.select("work_score").where(:homework_common_id => homework_common.id,:user_id => self.user_id) end def student_work_score_avg @@ -158,7 +158,7 @@ class Member < ActiveRecord::Base end def student_work_score_sum - sql_select = "SELECT (SUM(IF(student_works.final_score IS NULL,NULL,IF(student_works.final_score =0,0,IF((student_works.final_score - student_works.absence_penalty - student_works.late_penalty) < 0 , 0, student_works.final_score - student_works.absence_penalty - student_works.late_penalty))))) AS score + sql_select = "SELECT (SUM(student_works.work_score)) AS score FROM student_works,homework_commons WHERE student_works.homework_common_id = homework_commons.id AND homework_commons.course_id = #{self.course_id} diff --git a/app/models/student_work.rb b/app/models/student_work.rb index 144f3859f..40c66a632 100644 --- a/app/models/student_work.rb +++ b/app/models/student_work.rb @@ -50,6 +50,7 @@ class StudentWork < ActiveRecord::Base if homework.teacher_priority == 1 #教师优先 if student_work.teacher_score student_work.final_score = student_work.teacher_score + student_work.work_score = student_work.teacher_score else if student_work.teaching_asistant_score.nil? student_work.final_score = student_work.student_score @@ -62,6 +63,8 @@ class StudentWork < ActiveRecord::Base final_score = final_ta_score + final_s_score student_work.final_score = format("%.2f",final_score.to_f) end + score = student_work.final_score - student_work.absence_penalty - student_work.late_penalty if student_work.final_score + student_work.work_score = format("%.2f",(score < 0 ? 0 : score).to_f) if score end else #不考虑教师评分 if student_work.teaching_asistant_score.nil? @@ -75,11 +78,14 @@ class StudentWork < ActiveRecord::Base final_score = final_ta_score + final_s_score student_work.final_score = format("%.2f",final_score.to_f) end + score = student_work.final_score - student_work.absence_penalty - student_work.late_penalty if student_work.final_score + student_work.work_score = format("%.2f",(score < 0 ? 0 : score).to_f) if score end elsif homework.homework_type == 2 && homework.homework_detail_programing #编程作业-----设定:系统评分必定不为空 if homework.teacher_priority == 1 #教师优先 if student_work.teacher_score student_work.final_score = student_work.teacher_score + student_work.work_score = student_work.teacher_score else if student_work.teaching_asistant_score.nil? #教辅未评分 if student_work.student_score.nil? @@ -108,6 +114,8 @@ class StudentWork < ActiveRecord::Base final_score = final_sy_score + final_ts_score + final_st_score student_work.final_score = format("%.2f",final_score.to_f) end + score = student_work.final_score - student_work.absence_penalty - student_work.late_penalty if student_work.final_score + student_work.work_score = format("%.2f",(score < 0 ? 0 : score).to_f) if score end else #不考虑教师评分 if student_work.teaching_asistant_score.nil? #教辅未评分 @@ -137,6 +145,8 @@ class StudentWork < ActiveRecord::Base final_score = final_sy_score + final_ts_score + final_st_score student_work.final_score = format("%.2f",final_score.to_f) end + score = student_work.final_score - student_work.absence_penalty - student_work.late_penalty if student_work.final_score + student_work.work_score = format("%.2f",(score < 0 ? 0 : score).to_f) if score end end end diff --git a/app/views/courses/_show_member_score.html.erb b/app/views/courses/_show_member_score.html.erb index 1fa9339e4..94d282cec 100644 --- a/app/views/courses/_show_member_score.html.erb +++ b/app/views/courses/_show_member_score.html.erb @@ -24,7 +24,7 @@ <% final_score = @member_score.homework_common_score(homework_common).first%> - <%= final_score.nil? || final_score.final_score.nil? ? "--" : format("%0.2f", final_score.final_score < 0 ? 0 : final_score.final_score) %> + <%= final_score.nil? || final_score.work_score.nil? ? "--" : format("%0.2f", final_score.work_score < 0 ? 0 : final_score.work_score) %>
    • <% end %> diff --git a/app/views/student_work/_evaluation_un_work.html.erb b/app/views/student_work/_evaluation_un_work.html.erb index 0a3796758..860c5936b 100644 --- a/app/views/student_work/_evaluation_un_work.html.erb +++ b/app/views/student_work/_evaluation_un_work.html.erb @@ -82,7 +82,11 @@ <% end %> - <% score = student_work.respond_to?("score") ? student_work.score : (student_work.final_score || 0) - student_work.absence_penalty - student_work.late_penalty%> + <% if student_work.homework_common && student_work.homework_common.teacher_priority == 1 && student_work.teacher_score %> + <% score = student_work.respond_to?("score") ? student_work.score : student_work.teacher_score %> + <% else %> + <% score = student_work.respond_to?("score") ? student_work.score : (student_work.final_score || 0) - student_work.absence_penalty - student_work.late_penalty%> + <% end %>
    • <%= score.nil? ? "--" : format("%.1f",score<0 ? 0 : score)%> <% unless score.nil?%> diff --git a/db/migrate/20160427061847_add_column_to_student_works.rb b/db/migrate/20160427061847_add_column_to_student_works.rb new file mode 100644 index 000000000..1b18ebab6 --- /dev/null +++ b/db/migrate/20160427061847_add_column_to_student_works.rb @@ -0,0 +1,27 @@ +class AddColumnToStudentWorks < ActiveRecord::Migration + def change + add_column :student_works, :work_score, :float + count = StudentWork.all.count / 30 + 2 + transaction do + for i in 1 ... count do i + StudentWork.page(i).per(30).each do |sw| + if sw.homework_common && sw.homework_common.teacher_priority == 0 + unless sw.final_score.nil? + score = sw.final_score - sw.absence_penalty - sw.late_penalty + sw.update_column('work_score', score < 0 ? 0 : score) + end + elsif sw.homework_common && sw.homework_common.teacher_priority == 1 + unless sw.final_score.nil? + if sw.teacher_score + sw.update_column('work_score', sw.teacher_score) + else + score = sw.final_score - sw.absence_penalty - sw.late_penalty + sw.update_column('work_score', score < 0 ? 0 : score) + end + end + end + end + end + end + end +end diff --git a/db/schema.rb b/db/schema.rb index 7e84996e6..70fb756fb 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,7 +11,7 @@ # # It's strongly recommended to check this file into your version control system. -ActiveRecord::Schema.define(:version => 20160421011543) do +ActiveRecord::Schema.define(:version => 20160427075457) do create_table "activities", :force => true do |t| t.integer "act_id", :null => false @@ -1700,6 +1700,7 @@ ActiveRecord::Schema.define(:version => 20160421011543) do t.boolean "is_test", :default => false t.integer "simi_id" t.integer "simi_value" + t.float "work_score" end add_index "student_works", ["homework_common_id", "user_id"], :name => "index_student_works_on_homework_common_id_and_user_id" From 698dfdab4a15158ff2182562885f1b11a387f40d Mon Sep 17 00:00:00 2001 From: cxt Date: Wed, 27 Apr 2016 16:25:17 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E7=BB=84=E7=BB=87=E7=82=B9=E8=B5=9E?= =?UTF-8?q?=E4=B8=8D=E8=83=BD=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/praise_tread/_praise.html.erb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/views/praise_tread/_praise.html.erb b/app/views/praise_tread/_praise.html.erb index a1a34636f..d8a277592 100644 --- a/app/views/praise_tread/_praise.html.erb +++ b/app/views/praise_tread/_praise.html.erb @@ -1,11 +1,11 @@ <% if PraiseTread.where("praise_tread_object_id=? and praise_tread_object_type=? and user_id=?",activity.id,activity.class.to_s,User.current.id).empty? %> - <% else %> -