diff --git a/app/controllers/student_work_controller.rb b/app/controllers/student_work_controller.rb index 4ef64da90..78ab33477 100644 --- a/app/controllers/student_work_controller.rb +++ b/app/controllers/student_work_controller.rb @@ -8,7 +8,18 @@ class StudentWorkController < ApplicationController def index @order,@b_sort,@name = params[:order] || "final_score",params[:sort] || "desc",params[:name] || "" - @stundet_works = search_homework_member @homework.student_works.order("#{@order} #{@b_sort}"),@name + @is_teacher = User.current.allowed_to?(:as_teacher,@course) + #老师 || 非匿评作业 || 匿评结束 显示所有的作品 + if @is_teacher || @homework.homework_type != 1 || @homework.homework_detail_manual.comment_status == 3 + @stundet_works = search_homework_member @homework.student_works.order("#{@order} #{@b_sort}"),@name + else #学生 + if @homework.homework_detail_manual.comment_status == 1 #未开启匿评,只显示我的作品 + @stundet_works = @homework.student_works.where(:user_id => User.current.id) + elsif @homework.homework_detail_manual.comment_status == 2 #开启匿评,显示匿评作品和我的作品 + my_work = @homework.student_works.where(:user_id => User.current.id) + @stundet_works = my_work + User.current.student_works_evaluation_distributions.map(&:student_work).select { |work| work.homework_common_id == @homework.id} + end + end @homework_commons = @course.homework_commons.order("created_at desc") @score = @b_sort == "desc" ? "asc" : "desc" respond_to do |format| @@ -70,6 +81,7 @@ class StudentWorkController < ApplicationController def show @score = student_work_score @work,User.current + @is_teacher = User.current.allowed_to?(:as_teacher,@course) respond_to do |format| format.js end diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index d05926979..3d178e28e 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -2291,4 +2291,39 @@ module ApplicationHelper end link end + #学生根据传入作业确定显示为编辑作品还是新建作品 + def student_new_homework homework + work = cur_user_works_for_homework homework + if work.nil? + link_to l(:label_commit_homework), new_student_work_path(:homework => homework.id),:class => 'fr mr10 work_edit' + else + if homework.homework_type == 1 && homework.homework_detail_manual && homework.homework_detail_manual.comment_status != 1 #匿评作业,且作业状态不是在开启匿评之前 + "#{l(:label_edit_homework)}".html_safe + else + link_to l(:label_edit_homework), edit_student_work_path(work.id),:class => 'fr mr10 work_edit' + end + end + end + + def student_anonymous_comment homework + if homework.homework_type == 1 && homework.homework_detail_manual + case homework.homework_detail_manual.comment_status + when 1 + "未开启匿评".html_safe + when 2 + "正在匿评中".html_safe + when 3 + "匿评已结束".html_safe + end + elsif homework.homework_type == 0 + "未启用匿评".html_safe + elsif homework.homework_type == 2 + "编程作业".html_safe + end + end + + #获取当前用户在指定作业下提交的作业的集合 + def cur_user_works_for_homework homework + homework.student_works.where("user_id = ?",User.current).first + end end diff --git a/app/helpers/homework_common_helper.rb b/app/helpers/homework_common_helper.rb index f90e14610..5399fd5bf 100644 --- a/app/helpers/homework_common_helper.rb +++ b/app/helpers/homework_common_helper.rb @@ -1,40 +1,5 @@ # encoding: utf-8 module HomeworkCommonHelper - def student_new_homework homework - work = cur_user_works_for_homework homework - if work.nil? - link_to l(:label_commit_homework), new_student_work_path(:homework => homework.id),:class => 'fr mr10 work_edit' - else - if homework.homework_type == 2 && homework.homework_detail_manual && homework.homework_detail_manual.comment_status != 1 #匿评作业,且作业状态不是在开启匿评之前 - "#{l(:label_edit_homework)}".html_safe - else - link_to l(:label_edit_homework), edit_student_work_path(work.id),:class => 'fr mr10 work_edit' - end - end - end - - def student_anonymous_comment homework - if homework.homework_type == 1 && homework.homework_detail_manual - case homework.homework_detail_manual.comment_status - when 1 - "未开启匿评".html_safe - when 2 - "正在匿评中".html_safe - when 3 - "匿评已结束".html_safe - end - elsif homework.homework_type == 0 - "未启用匿评".html_safe - elsif homework.homework_type == 2 - "编程作业".html_safe - end - end - - #获取当前用户在指定作业下提交的作业的集合 - def cur_user_works_for_homework homework - homework.student_works.where("user_id = ?",User.current).first - end - #迟交扣分下拉框 def late_penalty_option type = [] diff --git a/app/views/student_work/_add_score.html.erb b/app/views/student_work/_add_score.html.erb index a1406902f..e091e507d 100644 --- a/app/views/student_work/_add_score.html.erb +++ b/app/views/student_work/_add_score.html.erb @@ -10,10 +10,12 @@ 分