From 542eebd810789b6deee78658429351b4292aef76 Mon Sep 17 00:00:00 2001 From: cxt Date: Wed, 24 May 2017 16:38:14 +0800 Subject: [PATCH 1/8] =?UTF-8?q?=E6=96=B0=E5=BB=BA=E7=8F=AD=E7=BA=A7?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E7=9A=84"=E5=8F=96=E6=B6=88"=E6=8C=89?= =?UTF-8?q?=E9=92=AE=EF=BC=8C=E8=BF=94=E5=9B=9E=E7=9A=84=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E4=B8=8D=E5=AF=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/courses/new.html.erb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/views/courses/new.html.erb b/app/views/courses/new.html.erb index e4897923e..eefda4eef 100644 --- a/app/views/courses/new.html.erb +++ b/app/views/courses/new.html.erb @@ -61,13 +61,13 @@
  • - - 公开(选中后所有用户可见,否则仅班级成员可见) + +
  • 保存 - <%= link_to '取消', user_course_community_path(User.current), :class => 'task-btn fl' %> + <%= link_to '取消', courses_path, :class => 'task-btn fl' %>
  • <% end %> From 4aa6c830b2fec504455aaa217086f67f1b36f080 Mon Sep 17 00:00:00 2001 From: cxt Date: Wed, 24 May 2017 17:17:00 +0800 Subject: [PATCH 2/8] =?UTF-8?q?=E4=BD=9C=E4=B8=9A=E6=A0=87=E7=AD=BE?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E6=9C=89=E6=98=BE=E7=A4=BA=E7=A9=BA=E7=99=BD?= =?UTF-8?q?=E7=9A=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/homework_common_controller.rb | 4 +- app/helpers/application_helper.rb | 100 +++++++++--------- .../_homework_index_list.html.erb | 2 +- .../_homework_index_tab.html.erb | 2 + 4 files changed, 56 insertions(+), 52 deletions(-) diff --git a/app/controllers/homework_common_controller.rb b/app/controllers/homework_common_controller.rb index bf402d4a2..720582751 100644 --- a/app/controllers/homework_common_controller.rb +++ b/app/controllers/homework_common_controller.rb @@ -30,13 +30,13 @@ class HomeworkCommonController < ApplicationController if @order.blank? @homework_commons = @course.homework_commons.where("name like '%#{@search}%'").order("created_at desc") else - @homework_commons = HomeworkCommon.find_by_sql("SELECT * FROM `homework_commons` hc, `homework_detail_manuals` hdm where hdm.homework_common_id = hc.id and hc.course_id=#{@course.id} and hc.name like '%#{@search}%' and hdm.comment_status='#{@order}';") + @homework_commons = @course.homework_commons.includes(:homework_detail_manual).where("name like '%#{@search}%' and homework_detail_manuals.comment_status = #{@order}") end else if @order.blank? @homework_commons = @course.homework_commons.where("name like '%#{@search}%' and publish_time <= '#{Time.now}'").order("created_at desc") else - @homework_commons = HomeworkCommon.find_by_sql("SELECT * FROM `homework_commons` hc, `homework_detail_manuals` hdm where hdm.homework_common_id = hc.id and hc.course_id=#{@course.id} and hc.name like '%#{@search}%' and hc.publish_time <= #{Time.now} and hdm.comment_status='#{@order}';") + @homework_commons = @course.homework_commons.includes(:homework_detail_manual).where("name like '%#{@search}%' and publish_time <= '#{Time.now}' and homework_detail_manuals.comment_status = #{@order}") end end @is_student = User.current.logged? && (User.current.admin? || (User.current.member_of_course?(@course) && !@is_teacher)) diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 8353edd29..de1573e0c 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -328,58 +328,60 @@ module ApplicationHelper status = "" time = "" ho_detail_manual = homework_common.homework_detail_manual - case ho_detail_manual.comment_status - when 0 - status = "挂起" - if homework_common.publish_time && homework_common.publish_time > Time.now - time = time_from_future(homework_common.publish_time).to_s + "后发布" - end - when 1 - status = "提交中" - if homework_common.end_time && homework_common.end_time > Time.now - time = time_from_future(homework_common.end_time).to_s + "后结束" - elsif !homework_common.allow_late && homework_common.anonymous_comment == 0 - if ho_detail_manual.evaluation_start && ho_detail_manual.evaluation_start >= Time.now - status = "匿评中" - time = time_from_future(ho_detail_manual.evaluation_start).to_s + "后开始" + if ho_detail_manual + case ho_detail_manual.comment_status + when 0 + status = "挂起" + if homework_common.publish_time && homework_common.publish_time > Time.now + time = time_from_future(homework_common.publish_time).to_s + "后发布" end - elsif !homework_common.allow_late && homework_common.anonymous_comment == 1 - if homework_common.archive_time && homework_common.archive_time >= Time.now - status = "评阅中" + when 1 + status = "提交中" + if homework_common.end_time && homework_common.end_time > Time.now + time = time_from_future(homework_common.end_time).to_s + "后结束" + elsif !homework_common.allow_late && homework_common.anonymous_comment == 0 + if ho_detail_manual.evaluation_start && ho_detail_manual.evaluation_start >= Time.now + status = "匿评中" + time = time_from_future(ho_detail_manual.evaluation_start).to_s + "后开始" + end + elsif !homework_common.allow_late && homework_common.anonymous_comment == 1 + if homework_common.archive_time && homework_common.archive_time >= Time.now + status = "评阅中" + time = time_from_future(homework_common.archive_time).to_s + "后结束" + end + end + when 2 + status = "补交中" + if homework_common.late_time && homework_common.late_time >= Time.now + time = time_from_future(homework_common.late_time).to_s + "后结束" + elsif homework_common.anonymous_comment == 0 + if ho_detail_manual.evaluation_start && ho_detail_manual.evaluation_start >= Time.now + status = "匿评中" + time = time_from_future(ho_detail_manual.evaluation_start).to_s + "后开始" + end + end + when 3 + status = "匿评中" + if ho_detail_manual.evaluation_end && ho_detail_manual.evaluation_end > Time.now + time = time_from_future(ho_detail_manual.evaluation_end).to_s + "后结束" + elsif homework_common.anonymous_appeal && ho_detail_manual.appeal_time && ho_detail_manual.appeal_time >= Time.now + status = "申诉" + time = time_from_future(ho_detail_manual.appeal_time).to_s + "后开始" + end + when 4 + status = "申诉中" + if ho_detail_manual.appeal_time && ho_detail_manual.appeal_time > Time.now + time = time_from_future(ho_detail_manual.appeal_time).to_s + "后结束" + end + when 5 + status = "评阅中" + if homework_common.archive_time && homework_common.archive_time > Time.now time = time_from_future(homework_common.archive_time).to_s + "后结束" end - end - when 2 - status = "补交中" - if homework_common.late_time && homework_common.late_time >= Time.now - time = time_from_future(homework_common.late_time).to_s + "后结束" - elsif homework_common.anonymous_comment == 0 - if ho_detail_manual.evaluation_start && ho_detail_manual.evaluation_start >= Time.now - status = "匿评中" - time = time_from_future(ho_detail_manual.evaluation_start).to_s + "后开始" - end - end - when 3 - status = "匿评中" - if ho_detail_manual.evaluation_end && ho_detail_manual.evaluation_end > Time.now - time = time_from_future(ho_detail_manual.evaluation_end).to_s + "后结束" - elsif homework_common.anonymous_appeal && ho_detail_manual.appeal_time && ho_detail_manual.appeal_time >= Time.now - status = "申诉" - time = time_from_future(ho_detail_manual.appeal_time).to_s + "后开始" - end - when 4 - status = "申诉中" - if ho_detail_manual.appeal_time && ho_detail_manual.appeal_time > Time.now - time = time_from_future(ho_detail_manual.appeal_time).to_s + "后结束" - end - when 5 - status = "评阅中" - if homework_common.archive_time && homework_common.archive_time > Time.now - time = time_from_future(homework_common.archive_time).to_s + "后结束" - end - when 6 - status = "已结束" - time = format_time homework_common.archive_time + when 6 + status = "已结束" + time = format_time homework_common.archive_time + end end result[:status] = status result[:time] = time diff --git a/app/views/homework_common/_homework_index_list.html.erb b/app/views/homework_common/_homework_index_list.html.erb index eea28fd40..e0e28fa86 100644 --- a/app/views/homework_common/_homework_index_list.html.erb +++ b/app/views/homework_common/_homework_index_list.html.erb @@ -7,7 +7,7 @@ <%= homework_curr_status[:status] %>

    - # <%= index + 1 %> + # <%= get_hw_index(homework_common, @is_teacher) %> 创建于<%=time_from_now homework_common.created_at %> <%=homework_common.homework_type_ch %> <% if [1,2,3,4,5,6].include?(homework_common.homework_detail_manual.try(:comment_status)) %> diff --git a/app/views/homework_common/_homework_index_tab.html.erb b/app/views/homework_common/_homework_index_tab.html.erb index b15b21605..5805beace 100644 --- a/app/views/homework_common/_homework_index_tab.html.erb +++ b/app/views/homework_common/_homework_index_tab.html.erb @@ -1,5 +1,7 @@ edu-filter-cir-grey mr5 " data-remote="true">全部 +<% if @is_teacher %> edu-filter-cir-grey mr5" data-remote="true">挂起 +<% end %> edu-filter-cir-grey mr5" data-remote="true">提交中 edu-filter-cir-grey mr5" data-remote="true">补交中 edu-filter-cir-grey mr5" data-remote="true">匿评中 From 022444243905b6c820b869e75daea6b59f4de172 Mon Sep 17 00:00:00 2001 From: cxt Date: Wed, 24 May 2017 19:57:59 +0800 Subject: [PATCH 3/8] =?UTF-8?q?=E4=BD=9C=E4=B8=9A=E7=9A=84=E5=8C=BF?= =?UTF-8?q?=E8=AF=84=E8=AE=BE=E7=BD=AE=E9=80=89=E6=8B=A9=E4=BA=86=E5=8C=BF?= =?UTF-8?q?=E8=AF=84=EF=BC=8C=E4=BD=86=E6=98=AF=E8=AF=84=E5=88=86=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE=E6=97=A0=E6=B3=95=E6=AD=A3=E7=A1=AE=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E3=80=81=E8=AF=84=E5=88=86=E8=AE=BE=E7=BD=AE=E9=80=89=E6=8B=A9?= =?UTF-8?q?=E4=BA=86=E2=80=9C=E5=8D=95=E9=A1=B9=E8=AF=84=E5=88=86=E4=BC=98?= =?UTF-8?q?=E5=85=88=E2=80=9D=E5=8D=B4=E6=97=A0=E6=B3=95=E6=AD=A3=E7=A1=AE?= =?UTF-8?q?=E4=BF=9D=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/homework_common_controller.rb | 10 +- app/controllers/student_work_controller.rb | 125 ------------------ app/helpers/application_helper.rb | 125 ++++++++++++++++++ .../_homework_index_list.html.erb | 4 +- app/views/homework_common/anon_setting.js.erb | 4 +- app/views/homework_common/late_setting.js.erb | 2 +- .../homework_common/public_setting.js.erb | 2 +- .../homework_common/publish_setting.js.erb | 2 +- .../homework_common/score_setting.js.erb | 2 +- app/views/homework_common/setting.html.erb | 2 +- app/views/student_work/edit.html.erb | 2 +- app/views/student_work/index.html.erb | 2 +- app/views/student_work/new.html.erb | 2 +- app/views/student_work/show.html.erb | 2 +- public/javascripts/edu/base_edu.js | 12 +- 15 files changed, 153 insertions(+), 145 deletions(-) diff --git a/app/controllers/homework_common_controller.rb b/app/controllers/homework_common_controller.rb index 720582751..331837329 100644 --- a/app/controllers/homework_common_controller.rb +++ b/app/controllers/homework_common_controller.rb @@ -30,13 +30,13 @@ class HomeworkCommonController < ApplicationController if @order.blank? @homework_commons = @course.homework_commons.where("name like '%#{@search}%'").order("created_at desc") else - @homework_commons = @course.homework_commons.includes(:homework_detail_manual).where("name like '%#{@search}%' and homework_detail_manuals.comment_status = #{@order}") + @homework_commons = @course.homework_commons.includes(:homework_detail_manual).where("name like '%#{@search}%' and homework_detail_manuals.comment_status = #{@order}").order("homework_commons.created_at desc") end else if @order.blank? @homework_commons = @course.homework_commons.where("name like '%#{@search}%' and publish_time <= '#{Time.now}'").order("created_at desc") else - @homework_commons = @course.homework_commons.includes(:homework_detail_manual).where("name like '%#{@search}%' and publish_time <= '#{Time.now}' and homework_detail_manuals.comment_status = #{@order}") + @homework_commons = @course.homework_commons.includes(:homework_detail_manual).where("name like '%#{@search}%' and publish_time <= '#{Time.now}' and homework_detail_manuals.comment_status = #{@order}").order("homework_commons.created_at desc") end end @is_student = User.current.logged? && (User.current.admin? || (User.current.member_of_course?(@course) && !@is_teacher)) @@ -221,6 +221,7 @@ class HomeworkCommonController < ApplicationController end def anon_setting + anonymous_comment = @homework.anonymous_comment if params[:homework_anonymous_comment] @homework.anonymous_comment = 0 @homework_detail_manual.evaluation_start = params[:homework_evaluation_start] @@ -234,6 +235,11 @@ class HomeworkCommonController < ApplicationController @homework_detail_manual.evaluation_num = 0 @homework_detail_manual.absence_penalty = 0 end + if anonymous_comment != @homework.anonymous_comment + @homework_detail_manual.te_proportion = 1 + @homework_detail_manual.ta_proportion = 0 + @homework_detail_program.te_proportion = 0 if @homework_detail_program + end if params[:homework_anonymous_appeal] @homework.anonymous_appeal = 1 @homework_detail_manual.appeal_time = params[:homework_appeal_time] diff --git a/app/controllers/student_work_controller.rb b/app/controllers/student_work_controller.rb index c036d6fcc..1f1e55445 100644 --- a/app/controllers/student_work_controller.rb +++ b/app/controllers/student_work_controller.rb @@ -1829,129 +1829,4 @@ class StudentWorkController < ApplicationController end JSON.parse(res.body) end - - #成绩计算 - def set_final_score homework,student_work - if homework && homework.homework_detail_manual - if homework.homework_type != 2 #非编程作业 - 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 - student_work.absence_penalty - student_work.late_penalty - else - if student_work.teaching_asistant_score.nil? - student_work.final_score = student_work.student_score - elsif student_work.student_score.nil? - student_work.final_score = student_work.teaching_asistant_score - else - ta_proportion = homework.homework_detail_manual.ta_proportion - final_ta_score = BigDecimal.new("#{student_work.teaching_asistant_score}") * BigDecimal.new("#{ta_proportion}") - final_s_score = BigDecimal.new("#{student_work.student_score}") * (BigDecimal.new('1.0') - BigDecimal.new("#{ta_proportion}")) - final_score = final_ta_score + final_s_score - student_work.final_score = format("%.2f",final_score.to_f) - end - if student_work.final_score - score = student_work.final_score - student_work.absence_penalty - student_work.late_penalty - student_work.appeal_penalty - student_work.work_score = format("%.2f",(score < 0 ? 0 : score).to_f) if score - else - student_work.work_score = nil - end - end - else #不考虑教师评分 - if student_work.teaching_asistant_score.nil? - student_work.final_score = student_work.student_score - elsif student_work.student_score.nil? - student_work.final_score = student_work.teaching_asistant_score - else - ta_proportion = homework.homework_detail_manual.ta_proportion - final_ta_score = BigDecimal.new("#{student_work.teaching_asistant_score}") * BigDecimal.new("#{ta_proportion}") - final_s_score = BigDecimal.new("#{student_work.student_score}") * (BigDecimal.new('1.0') - BigDecimal.new("#{ta_proportion}")) - final_score = final_ta_score + final_s_score - student_work.final_score = format("%.2f",final_score.to_f) - end - if student_work.final_score - score = student_work.final_score - student_work.absence_penalty - student_work.late_penalty - student_work.appeal_penalty - student_work.work_score = format("%.2f",(score < 0 ? 0 : score).to_f) if score - else - student_work.work_score = nil - end - 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 - student_work.absence_penalty - student_work.late_penalty - student_work.appeal_penalty - else - if student_work.teaching_asistant_score.nil? #教辅未评分 - if student_work.student_score.nil? - student_work.final_score = student_work.system_score - else - ta_proportion = homework.homework_detail_programing.ta_proportion + homework.homework_detail_manual.ta_proportion / 2 - final_sy_score = BigDecimal.new("#{student_work.system_score || 0}") * BigDecimal.new("#{ta_proportion}") - final_st_score = BigDecimal.new("#{student_work.student_score}") * (BigDecimal.new('1.0') - BigDecimal.new("#{ta_proportion}")) - final_score = final_sy_score + final_st_score - student_work.final_score = format("%.2f",final_score.to_f) - end - elsif student_work.student_score.nil? #学生未评分 - if student_work.teaching_asistant_score.nil? - student_work.final_score = student_work.system_score - else - ta_proportion = homework.homework_detail_programing.ta_proportion + (1.0 - homework.homework_detail_manual.ta_proportion - homework.homework_detail_programing.ta_proportion) / 2 - final_sy_score = BigDecimal.new("#{student_work.system_score || 0}") * BigDecimal.new("#{ta_proportion}") - final_ts_score = BigDecimal.new("#{student_work.teaching_asistant_score}") * (BigDecimal.new('1.0') - BigDecimal.new("#{ta_proportion}")) - final_score = final_sy_score + final_ts_score - student_work.final_score = format("%.2f",final_score.to_f) - end - else - final_sy_score = BigDecimal.new("#{student_work.system_score || 0}") * BigDecimal.new("#{homework.homework_detail_programing.ta_proportion}") - final_ts_score = BigDecimal.new("#{student_work.teaching_asistant_score}") * BigDecimal.new("#{homework.homework_detail_manual.ta_proportion}") - final_st_score = BigDecimal.new("#{student_work.student_score}") * (BigDecimal.new('1.0') - BigDecimal.new("#{homework.homework_detail_programing.ta_proportion}") - BigDecimal.new("#{homework.homework_detail_manual.ta_proportion}")) - final_score = final_sy_score + final_ts_score + final_st_score - student_work.final_score = format("%.2f",final_score.to_f) - end - if student_work.final_score - score = student_work.final_score - student_work.absence_penalty - student_work.late_penalty - student_work.appeal_penalty - student_work.work_score = format("%.2f",(score < 0 ? 0 : score).to_f) if score - else - student_work.work_score = nil - end - end - else #不考虑教师评分 - if student_work.teaching_asistant_score.nil? #教辅未评分 - if student_work.student_score.nil? - student_work.final_score = student_work.system_score - else - ta_proportion = homework.homework_detail_programing.ta_proportion + homework.homework_detail_manual.ta_proportion / 2 - final_sy_score = BigDecimal.new("#{student_work.system_score || 0}") * BigDecimal.new("#{ta_proportion}") - final_st_score = BigDecimal.new("#{student_work.student_score}") * (BigDecimal.new('1.0') - BigDecimal.new("#{ta_proportion}")) - final_score = final_sy_score + final_st_score - student_work.final_score = format("%.2f",final_score.to_f) - end - elsif student_work.student_score.nil? #学生未评分 - if student_work.teaching_asistant_score.nil? - student_work.final_score = student_work.system_score - else - ta_proportion = homework.homework_detail_programing.ta_proportion + (1.0 - homework.homework_detail_manual.ta_proportion - homework.homework_detail_programing.ta_proportion) / 2 - final_sy_score = BigDecimal.new("#{student_work.system_score || 0}") * BigDecimal.new("#{ta_proportion}") - final_ts_score = BigDecimal.new("#{student_work.teaching_asistant_score}") * (BigDecimal.new('1.0') - BigDecimal.new("#{ta_proportion}")) - final_score = final_sy_score + final_ts_score - student_work.final_score = format("%.2f",final_score.to_f) - end - else - final_sy_score = BigDecimal.new("#{student_work.system_score || 0}") * BigDecimal.new("#{homework.homework_detail_programing.ta_proportion}") - final_ts_score = BigDecimal.new("#{student_work.teaching_asistant_score}") * BigDecimal.new("#{homework.homework_detail_manual.ta_proportion}") - final_st_score = BigDecimal.new("#{student_work.student_score}") * (BigDecimal.new('1.0') - BigDecimal.new("#{homework.homework_detail_programing.ta_proportion}") - BigDecimal.new("#{homework.homework_detail_manual.ta_proportion}")) - final_score = final_sy_score + final_ts_score + final_st_score - student_work.final_score = format("%.2f",final_score.to_f) - end - if student_work.final_score - score = student_work.final_score - student_work.absence_penalty - student_work.late_penalty - student_work.appeal_penalty - student_work.work_score = format("%.2f",(score < 0 ? 0 : score).to_f) if score - else - student_work.work_score = nil - end - end - end - end - end end diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index de1573e0c..550a19834 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -4720,3 +4720,128 @@ def sy_homeworks syllabus homeworks end +#成绩计算 +def set_final_score homework,student_work + if homework && homework.homework_detail_manual + if homework.homework_type != 2 #非编程作业 + 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 - student_work.absence_penalty - student_work.late_penalty + else + if student_work.teaching_asistant_score.nil? + student_work.final_score = student_work.student_score + elsif student_work.student_score.nil? + student_work.final_score = student_work.teaching_asistant_score + else + ta_proportion = homework.homework_detail_manual.ta_proportion + final_ta_score = BigDecimal.new("#{student_work.teaching_asistant_score}") * BigDecimal.new("#{ta_proportion}") + final_s_score = BigDecimal.new("#{student_work.student_score}") * (BigDecimal.new('1.0') - BigDecimal.new("#{ta_proportion}")) + final_score = final_ta_score + final_s_score + student_work.final_score = format("%.2f",final_score.to_f) + end + if student_work.final_score + score = student_work.final_score - student_work.absence_penalty - student_work.late_penalty - student_work.appeal_penalty + student_work.work_score = format("%.2f",(score < 0 ? 0 : score).to_f) if score + else + student_work.work_score = nil + end + end + else #不考虑教师评分 + if student_work.teaching_asistant_score.nil? + student_work.final_score = student_work.student_score + elsif student_work.student_score.nil? + student_work.final_score = student_work.teaching_asistant_score + else + ta_proportion = homework.homework_detail_manual.ta_proportion + final_ta_score = BigDecimal.new("#{student_work.teaching_asistant_score}") * BigDecimal.new("#{ta_proportion}") + final_s_score = BigDecimal.new("#{student_work.student_score}") * (BigDecimal.new('1.0') - BigDecimal.new("#{ta_proportion}")) + final_score = final_ta_score + final_s_score + student_work.final_score = format("%.2f",final_score.to_f) + end + if student_work.final_score + score = student_work.final_score - student_work.absence_penalty - student_work.late_penalty - student_work.appeal_penalty + student_work.work_score = format("%.2f",(score < 0 ? 0 : score).to_f) if score + else + student_work.work_score = nil + end + 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 - student_work.absence_penalty - student_work.late_penalty - student_work.appeal_penalty + else + if student_work.teaching_asistant_score.nil? #教辅未评分 + if student_work.student_score.nil? + student_work.final_score = student_work.system_score + else + ta_proportion = homework.homework_detail_programing.ta_proportion + homework.homework_detail_manual.ta_proportion / 2 + final_sy_score = BigDecimal.new("#{student_work.system_score || 0}") * BigDecimal.new("#{ta_proportion}") + final_st_score = BigDecimal.new("#{student_work.student_score}") * (BigDecimal.new('1.0') - BigDecimal.new("#{ta_proportion}")) + final_score = final_sy_score + final_st_score + student_work.final_score = format("%.2f",final_score.to_f) + end + elsif student_work.student_score.nil? #学生未评分 + if student_work.teaching_asistant_score.nil? + student_work.final_score = student_work.system_score + else + ta_proportion = homework.homework_detail_programing.ta_proportion + (1.0 - homework.homework_detail_manual.ta_proportion - homework.homework_detail_programing.ta_proportion) / 2 + final_sy_score = BigDecimal.new("#{student_work.system_score || 0}") * BigDecimal.new("#{ta_proportion}") + final_ts_score = BigDecimal.new("#{student_work.teaching_asistant_score}") * (BigDecimal.new('1.0') - BigDecimal.new("#{ta_proportion}")) + final_score = final_sy_score + final_ts_score + student_work.final_score = format("%.2f",final_score.to_f) + end + else + final_sy_score = BigDecimal.new("#{student_work.system_score || 0}") * BigDecimal.new("#{homework.homework_detail_programing.ta_proportion}") + final_ts_score = BigDecimal.new("#{student_work.teaching_asistant_score}") * BigDecimal.new("#{homework.homework_detail_manual.ta_proportion}") + final_st_score = BigDecimal.new("#{student_work.student_score}") * (BigDecimal.new('1.0') - BigDecimal.new("#{homework.homework_detail_programing.ta_proportion}") - BigDecimal.new("#{homework.homework_detail_manual.ta_proportion}")) + final_score = final_sy_score + final_ts_score + final_st_score + student_work.final_score = format("%.2f",final_score.to_f) + end + if student_work.final_score + score = student_work.final_score - student_work.absence_penalty - student_work.late_penalty - student_work.appeal_penalty + student_work.work_score = format("%.2f",(score < 0 ? 0 : score).to_f) if score + else + student_work.work_score = nil + end + end + else #不考虑教师评分 + if student_work.teaching_asistant_score.nil? #教辅未评分 + if student_work.student_score.nil? + student_work.final_score = student_work.system_score + else + ta_proportion = homework.homework_detail_programing.ta_proportion + homework.homework_detail_manual.ta_proportion / 2 + final_sy_score = BigDecimal.new("#{student_work.system_score || 0}") * BigDecimal.new("#{ta_proportion}") + final_st_score = BigDecimal.new("#{student_work.student_score}") * (BigDecimal.new('1.0') - BigDecimal.new("#{ta_proportion}")) + final_score = final_sy_score + final_st_score + student_work.final_score = format("%.2f",final_score.to_f) + end + elsif student_work.student_score.nil? #学生未评分 + if student_work.teaching_asistant_score.nil? + student_work.final_score = student_work.system_score + else + ta_proportion = homework.homework_detail_programing.ta_proportion + (1.0 - homework.homework_detail_manual.ta_proportion - homework.homework_detail_programing.ta_proportion) / 2 + final_sy_score = BigDecimal.new("#{student_work.system_score || 0}") * BigDecimal.new("#{ta_proportion}") + final_ts_score = BigDecimal.new("#{student_work.teaching_asistant_score}") * (BigDecimal.new('1.0') - BigDecimal.new("#{ta_proportion}")) + final_score = final_sy_score + final_ts_score + student_work.final_score = format("%.2f",final_score.to_f) + end + else + final_sy_score = BigDecimal.new("#{student_work.system_score || 0}") * BigDecimal.new("#{homework.homework_detail_programing.ta_proportion}") + final_ts_score = BigDecimal.new("#{student_work.teaching_asistant_score}") * BigDecimal.new("#{homework.homework_detail_manual.ta_proportion}") + final_st_score = BigDecimal.new("#{student_work.student_score}") * (BigDecimal.new('1.0') - BigDecimal.new("#{homework.homework_detail_programing.ta_proportion}") - BigDecimal.new("#{homework.homework_detail_manual.ta_proportion}")) + final_score = final_sy_score + final_ts_score + final_st_score + student_work.final_score = format("%.2f",final_score.to_f) + end + if student_work.final_score + score = student_work.final_score - student_work.absence_penalty - student_work.late_penalty - student_work.appeal_penalty + student_work.work_score = format("%.2f",(score < 0 ? 0 : score).to_f) if score + else + student_work.work_score = nil + end + end + end + end +end + diff --git a/app/views/homework_common/_homework_index_list.html.erb b/app/views/homework_common/_homework_index_list.html.erb index e0e28fa86..0d0e639c7 100644 --- a/app/views/homework_common/_homework_index_list.html.erb +++ b/app/views/homework_common/_homework_index_list.html.erb @@ -7,7 +7,7 @@ <%= homework_curr_status[:status] %>

    - # <%= get_hw_index(homework_common, @is_teacher) %> + # <%= get_hw_index(homework_common, @is_teacher) + 1 %> 创建于<%=time_from_now homework_common.created_at %> <%=homework_common.homework_type_ch %> <% if [1,2,3,4,5,6].include?(homework_common.homework_detail_manual.try(:comment_status)) %> @@ -66,7 +66,7 @@

      - <%= pagination_links_full @obj_pages, @obj_count, :per_page_links => false, :remote => false, :flag => true, :is_new => true %> + <%= pagination_links_full @obj_pages, @obj_count, :per_page_links => false, :remote => true, :flag => true, :is_new => true %>
    diff --git a/app/views/homework_common/anon_setting.js.erb b/app/views/homework_common/anon_setting.js.erb index 47118c0f8..40c18ca51 100644 --- a/app/views/homework_common/anon_setting.js.erb +++ b/app/views/homework_common/anon_setting.js.erb @@ -1,2 +1,4 @@ $("#show_anon_setting").html("<%= j(render :partial => 'show_anon_setting') %>").show(); -$("#edit_anon_setting").hide(); \ No newline at end of file +$("#show_score_setting").html("<%= j(render :partial => 'show_score_setting') %>"); +$("#edit_score_setting").html("<%= j(render :partial => 'edit_score_setting') %>"); +$("#edit_anon_setting").html("<%= j(render :partial => 'edit_anon_setting') %>").hide(); \ No newline at end of file diff --git a/app/views/homework_common/late_setting.js.erb b/app/views/homework_common/late_setting.js.erb index 2f3d372fe..54bfbca58 100644 --- a/app/views/homework_common/late_setting.js.erb +++ b/app/views/homework_common/late_setting.js.erb @@ -1,2 +1,2 @@ $("#show_late_setting").html("<%= j(render :partial => 'show_late_setting') %>").show(); -$("#edit_late_setting").hide(); \ No newline at end of file +$("#edit_late_setting").html("<%= j(render :partial => 'edit_late_setting') %>").hide(); \ No newline at end of file diff --git a/app/views/homework_common/public_setting.js.erb b/app/views/homework_common/public_setting.js.erb index 64125d097..9f3d3cd15 100644 --- a/app/views/homework_common/public_setting.js.erb +++ b/app/views/homework_common/public_setting.js.erb @@ -1,2 +1,2 @@ $("#show_public_setting").html("<%= j(render :partial => 'show_public_setting') %>").show(); -$("#edit_public_setting").hide(); \ No newline at end of file +$("#edit_public_setting").html("<%= j(render :partial => 'edit_public_setting') %>").hide(); \ No newline at end of file diff --git a/app/views/homework_common/publish_setting.js.erb b/app/views/homework_common/publish_setting.js.erb index 37a98109a..d135fa68b 100644 --- a/app/views/homework_common/publish_setting.js.erb +++ b/app/views/homework_common/publish_setting.js.erb @@ -1,5 +1,5 @@ $("#show_publish_setting").html("<%= j(render :partial => 'show_publish_setting') %>").show(); -$("#edit_publish_setting").hide(); +$("#edit_publish_setting").html("<%= j(render :partial => 'edit_publish_setting') %>").hide(); <% unless @homework.publish_time.nil? %> $("#homework_late_setting").html('
    <%= j(render :partial => 'show_late_setting') %>
    <%= j(render :partial => 'edit_late_setting') %>
    '); $("#homework_anon_setting").html('
    <%= j(render :partial => 'show_anon_setting') %>
    <%= j(render :partial => 'edit_anon_setting') %>
    '); diff --git a/app/views/homework_common/score_setting.js.erb b/app/views/homework_common/score_setting.js.erb index 3182f08bd..948e6e0cd 100644 --- a/app/views/homework_common/score_setting.js.erb +++ b/app/views/homework_common/score_setting.js.erb @@ -1,2 +1,2 @@ $("#show_score_setting").html("<%= j(render :partial => 'show_score_setting') %>").show(); -$("#edit_score_setting").hide(); \ No newline at end of file +$("#edit_score_setting").html("<%= j(render :partial => 'edit_score_setting') %>").hide(); \ No newline at end of file diff --git a/app/views/homework_common/setting.html.erb b/app/views/homework_common/setting.html.erb index 8d73a2be5..9fa649844 100644 --- a/app/views/homework_common/setting.html.erb +++ b/app/views/homework_common/setting.html.erb @@ -2,7 +2,7 @@

    <%= link_to '班级首页', course_path(@course) %> - > <%= link_to '作业列表', homework_common_index_path(:course => @course.id) %> > #<%= get_hw_index(@homework, true) %> + > <%= link_to '作业列表', homework_common_index_path(:course => @course.id) %> > #<%= get_hw_index(@homework, true) + 1 %>

    diff --git a/app/views/student_work/edit.html.erb b/app/views/student_work/edit.html.erb index 2e18b778c..b3073c2d0 100644 --- a/app/views/student_work/edit.html.erb +++ b/app/views/student_work/edit.html.erb @@ -22,7 +22,7 @@

    - <%= link_to '班级首页', course_path(@course) %> > <%= link_to '作业列表', homework_common_index_path(:course => @course) %> > #<%= get_hw_index(@homework, @is_teacher) %>

    + <%= link_to '班级首页', course_path(@course) %> > <%= link_to '作业列表', homework_common_index_path(:course => @course) %> > #<%= get_hw_index(@homework, @is_teacher) + 1 %>

    <%= @homework.name %>

    <%= link_to '返回', homework_common_index_path(:course => @homework.course_id), :class => 'fr font-12 mr15 mt3 link-color-grey' %> diff --git a/app/views/student_work/index.html.erb b/app/views/student_work/index.html.erb index bbdcd6da2..49ab7cf61 100644 --- a/app/views/student_work/index.html.erb +++ b/app/views/student_work/index.html.erb @@ -23,7 +23,7 @@

    - <%= link_to '班级首页', course_path(@homework.course) %> > <%= link_to '作业列表', homework_common_index_path(:course => @homework.course_id) %> > #<%= get_hw_index(@homework, @is_teacher) %>

    + <%= link_to '班级首页', course_path(@homework.course) %> > <%= link_to '作业列表', homework_common_index_path(:course => @homework.course_id) %> > #<%= get_hw_index(@homework, @is_teacher) + 1 %>

    <% unless @homework.is_public %> diff --git a/app/views/student_work/new.html.erb b/app/views/student_work/new.html.erb index b946e5248..7fe556347 100644 --- a/app/views/student_work/new.html.erb +++ b/app/views/student_work/new.html.erb @@ -23,7 +23,7 @@

    - <%= link_to '班级首页', course_path(@course) %> > <%= link_to '作业列表', homework_common_index_path(:course => @course) %> > #<%= get_hw_index(@homework, @is_teacher) %>

    + <%= link_to '班级首页', course_path(@course) %> > <%= link_to '作业列表', homework_common_index_path(:course => @course) %> > #<%= get_hw_index(@homework, @is_teacher) + 1 %>

    <%= @homework.name %>

    <%= link_to '返回', homework_common_index_path(:course => @homework.course_id), :class => 'fr font-12 mr15 mt3 link-color-grey' %> diff --git a/app/views/student_work/show.html.erb b/app/views/student_work/show.html.erb index a5d52cbb2..346e74408 100644 --- a/app/views/student_work/show.html.erb +++ b/app/views/student_work/show.html.erb @@ -3,7 +3,7 @@

    班级首页 > 作业列表 > - #<%= get_hw_index(@homework, @is_teacher) %> > <%= link_to @work.user.try(:show_name), user_path(@work.user) %>

    + #<%= get_hw_index(@homework, @is_teacher) + 1 %> > <%= link_to @work.user.try(:show_name), user_path(@work.user) %>

    <%= @work.name %>

    <%= get_status @work.work_status, @work.re_commit %> diff --git a/public/javascripts/edu/base_edu.js b/public/javascripts/edu/base_edu.js index 83a65870c..5a4c536c5 100644 --- a/public/javascripts/edu/base_edu.js +++ b/public/javascripts/edu/base_edu.js @@ -529,16 +529,16 @@ $(function(){ $("#score_setting_form_submit").live('click', function(){ var result = true; - if($("input[name='homework_final_mode']:checked").val() == '1'){ - var te_pro = parseFloat($("select[name='te_proportion']").val()); - var ta_pro = parseFloat($("select[name='ta_proportion']").val()); - var st_pro = parseFloat($("select[name='st_proportion']").val()); + if($("input[name='homework_final_mode']:checked").val() == '0'){ + var te_pro = (parseFloat($("select[name='te_proportion']").val()))*100; + var ta_pro = (parseFloat($("select[name='ta_proportion']").val()))*100; + var st_pro = (parseFloat($("select[name='st_proportion']").val()))*100; if($("select[name='sy_proportion']").length == 1){ - var sy_pro = parseFloat($("select[name='sy_proportion']").val()); + var sy_pro = (parseFloat($("select[name='sy_proportion']").val()))*100; } else{ var sy_pro = 0; } - if(te_pro + ta_pro + st_pro + sy_pro != 1.0){ + if(parseInt(te_pro + ta_pro + st_pro + sy_pro) != 100){ result = false; $("#homework_final_mode_notice").html("各评分比例之和应为100%").show(); } else{ From d53d69663fab755e0556818abdccf37e922df613 Mon Sep 17 00:00:00 2001 From: cxt Date: Wed, 24 May 2017 20:40:48 +0800 Subject: [PATCH 4/8] =?UTF-8?q?=E5=A4=8D=E9=80=89=E6=A1=86=E5=92=8C?= =?UTF-8?q?=E5=8D=95=E9=80=89=E6=8C=89=E9=92=AE=E7=9A=84=E6=A0=B7=E5=BC=8F?= =?UTF-8?q?=E8=AF=B7=E7=BB=9F=E4=B8=80=E6=9B=B4=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/courses/settings.html.erb | 7 ++++--- app/views/courses/settings/_add_teachers.html.erb | 10 +++++----- app/views/courses/settings/_change_manager.html.erb | 6 +++--- .../courses/settings/_no_group_student_list.html.erb | 6 +++--- .../settings/_search_not_students_list.html.erb | 10 ++++++---- .../settings/_search_not_teachers_list.html.erb | 4 +++- app/views/my/account.html.erb | 8 ++++---- app/views/syllabus_member/_sy_change_manager.html.erb | 4 ++-- app/views/syllabuses/_search_course_list.html.erb | 4 ++-- app/views/syllabuses/_syllabus_homeworks.html.erb | 4 ++-- app/views/syllabuses/_syllabus_resources.html.erb | 4 ++-- 11 files changed, 36 insertions(+), 31 deletions(-) diff --git a/app/views/courses/settings.html.erb b/app/views/courses/settings.html.erb index 8dbda7408..49f1a542e 100644 --- a/app/views/courses/settings.html.erb +++ b/app/views/courses/settings.html.erb @@ -80,8 +80,9 @@ 结束日期必须早于当前日期
  • - - />公开(选中后所有用户可见,否则仅班级成员可见) + + /> +
  • @@ -99,7 +100,7 @@ + 添加分班

    <% if @course.course_groups.count > 0 %> - value="1"/>  允许选班(选中后学生可以自己选择分班,否则只有教师和助教可以为学生选择分班) + value="1"/>   <% end %>
  • diff --git a/app/views/courses/settings/_add_teachers.html.erb b/app/views/courses/settings/_add_teachers.html.erb index 85308edac..3ed0aacc9 100644 --- a/app/views/courses/settings/_add_teachers.html.erb +++ b/app/views/courses/settings/_add_teachers.html.erb @@ -7,7 +7,7 @@
    <%= form_tag url_for(course_memberships_path(@course)), :remote => true, :method => :post, :id => 'add_teacher_form' do |f| %> -
    +
    @@ -27,16 +27,16 @@
  • diff --git a/app/views/courses/settings/_change_manager.html.erb b/app/views/courses/settings/_change_manager.html.erb index 2d58d7411..f252a0d03 100644 --- a/app/views/courses/settings/_change_manager.html.erb +++ b/app/views/courses/settings/_change_manager.html.erb @@ -17,9 +17,9 @@
  • -
  • <% end %> diff --git a/app/views/courses/settings/_no_group_student_list.html.erb b/app/views/courses/settings/_no_group_student_list.html.erb index a17fbecac..84fe49fd9 100644 --- a/app/views/courses/settings/_no_group_student_list.html.erb +++ b/app/views/courses/settings/_no_group_student_list.html.erb @@ -59,8 +59,8 @@ - - <%= index + 1 + (@page -1) * 20 %> + + <%= link_to user.show_name, user_path(user), :target => '_blank' %> <%= user.login %> @@ -80,7 +80,7 @@ - + 加入分班 diff --git a/app/views/courses/settings/_search_not_students_list.html.erb b/app/views/courses/settings/_search_not_students_list.html.erb index 4cde2342d..5c273552a 100644 --- a/app/views/courses/settings/_search_not_students_list.html.erb +++ b/app/views/courses/settings/_search_not_students_list.html.erb @@ -4,10 +4,12 @@
  • - - <%= user.show_name %>(<%= user.login %>) - <%= user.user_extensions.user_technical_title %> - <%= user.user_extensions.school ? user.user_extensions.school.name : "" %> + +
  • <% end %> <% end %> diff --git a/app/views/courses/settings/_search_not_teachers_list.html.erb b/app/views/courses/settings/_search_not_teachers_list.html.erb index 3234b1325..eab6be4e0 100644 --- a/app/views/courses/settings/_search_not_teachers_list.html.erb +++ b/app/views/courses/settings/_search_not_teachers_list.html.erb @@ -4,10 +4,12 @@
  • - + +
  • <% end %> <% end %> diff --git a/app/views/my/account.html.erb b/app/views/my/account.html.erb index b67e846f2..1e443504f 100644 --- a/app/views/my/account.html.erb +++ b/app/views/my/account.html.erb @@ -24,12 +24,12 @@ <% if User.current.user_extensions && User.current.user_extensions.gender && User.current.user_extensions.gender == 1 %> - - + + - - + + <% else %> diff --git a/app/views/syllabus_member/_sy_change_manager.html.erb b/app/views/syllabus_member/_sy_change_manager.html.erb index 46ea94ba7..17ae3157a 100644 --- a/app/views/syllabus_member/_sy_change_manager.html.erb +++ b/app/views/syllabus_member/_sy_change_manager.html.erb @@ -15,8 +15,8 @@ <% @members.each do |member| %> <% user = member.user %>
  • - -
  • <% end %> diff --git a/app/views/syllabuses/_syllabus_homeworks.html.erb b/app/views/syllabuses/_syllabus_homeworks.html.erb index b6b73361c..2d5ebd354 100644 --- a/app/views/syllabuses/_syllabus_homeworks.html.erb +++ b/app/views/syllabuses/_syllabus_homeworks.html.erb @@ -17,8 +17,8 @@ <% @homeworks.each do |homework| %>
    <% if hidden_unproject_infos %> - <%= render :partial => 'layouts/forbidden_new_feedback' %> + <%#= render :partial => 'layouts/forbidden_new_feedback' %> <% end %>
    From 6ca4f2f21b866c8baf56b271fce95fa63b3fbf36 Mon Sep 17 00:00:00 2001 From: cxt Date: Thu, 25 May 2017 09:14:43 +0800 Subject: [PATCH 8/8] =?UTF-8?q?=E9=A2=98=E5=BA=93=E9=80=89=E7=94=A8?= =?UTF-8?q?=E5=92=8C=E5=AF=BC=E5=87=BA=E6=88=90=E7=BB=A9=E7=9A=84=E9=9A=90?= =?UTF-8?q?=E8=97=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/homework_common/index.html.erb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/views/homework_common/index.html.erb b/app/views/homework_common/index.html.erb index 8e3d8ed87..a15c5f855 100644 --- a/app/views/homework_common/index.html.erb +++ b/app/views/homework_common/index.html.erb @@ -3,8 +3,8 @@

    作业列表

    新建 - <%= link_to("题库选用", user_import_homeworks_user_path(User.current.id, :select_course => defined?(@course)), :class => "edu-btn fr mr10",:remote => true,:title=>"导入自己发布过的作业,或者共享题库中的作业") %> - 导出成绩 + <%#= link_to("题库选用", user_import_homeworks_user_path(User.current.id, :select_course => defined?(@course)), :class => "edu-btn fr mr10",:remote => true,:title=>"导入自己发布过的作业,或者共享题库中的作业") %> +