匿评成绩的申诉功能
This commit is contained in:
parent
ea6078ee5f
commit
710c06e41a
|
@ -351,6 +351,18 @@ class StudentWorkController < ApplicationController
|
|||
# 作品评论消息状态更新
|
||||
journals_for_teacher = CourseMessage.where("user_id =? and course_id =? and course_message_type =? and viewed =?", User.current.id, @homework.course, "JournalsForMessage", 0)
|
||||
journals_for_teacher.update_all(:viewed => true)
|
||||
#匿评申诉消息状态更新
|
||||
if params[:show_work_id]
|
||||
work = @homework.student_works.where("id = #{params[:show_work_id].to_i}").first
|
||||
if work && !work.student_works_scores.where("reviewer_role = 3 and appeal_status != 0").blank?
|
||||
score_ids = "(" + work.student_works_scores.where("reviewer_role = 3 and appeal_status != 0").map{|score| score.id}.join(",") + ")"
|
||||
score_appeal_ids = StudentWorksScoresAppeal.where("student_works_score_id in #{score_ids}").blank? ? "(-1)" : "(" + StudentWorksScoresAppeal.where("student_works_score_id in #{score_ids}").map{|score_appeal| score_appeal.id}.join(",") + ")"
|
||||
anonymous_appeal =AppliedMessage.where("user_id =? and applied_id in #{score_appeal_ids} and applied_type =? and viewed =?", User.current.id, 'StudentWorksScoresAppeal', 0)
|
||||
anonymous_appeal.update_all(:viewed => true)
|
||||
appeal_message = CourseMessage.where("user_id =? and course_id =? and course_message_id in #{score_appeal_ids} and course_message_type =? and viewed =?", User.current.id, @homework.course, "StudentWorksScoresAppeal", 0)
|
||||
appeal_message.update_all(:viewed => true)
|
||||
end
|
||||
end
|
||||
##################################################################################################################
|
||||
@order,@b_sort,@name,@group = params[:order] || "score",params[:sort] || "desc",params[:name].to_s.strip || "",params[:group]
|
||||
@homework_commons = @course.homework_commons.where("publish_time <= ?",Time.now.strftime("%Y-%m-%d")).order("created_at desc")
|
||||
|
@ -697,6 +709,16 @@ class StudentWorkController < ApplicationController
|
|||
end
|
||||
|
||||
def show
|
||||
#匿评申诉消息状态更新
|
||||
if @work && !@work.student_works_scores.where("reviewer_role = 3 and appeal_status != 0").blank?
|
||||
score_ids = "(" + @work.student_works_scores.where("reviewer_role = 3 and appeal_status != 0").map{|score| score.id}.join(",") + ")"
|
||||
score_appeal_ids = StudentWorksScoresAppeal.where("student_works_score_id in #{score_ids}").blank? ? "(-1)" : "(" + StudentWorksScoresAppeal.where("student_works_score_id in #{score_ids}").map{|score_appeal| score_appeal.id}.join(",") + ")"
|
||||
anonymous_appeal =AppliedMessage.where("user_id =? and applied_id in #{score_appeal_ids} and applied_type =? and viewed =?", User.current.id, 'StudentWorksScoresAppeal', 0)
|
||||
anonymous_appeal.update_all(:viewed => true)
|
||||
appeal_message = CourseMessage.where("user_id =? and course_id =? and course_message_id in #{score_appeal_ids} and course_message_type =? and viewed =?", User.current.id, @homework.course, "StudentWorksScoresAppeal", 0)
|
||||
appeal_message.update_all(:viewed => true)
|
||||
end
|
||||
|
||||
@score = student_work_score @work,User.current
|
||||
@is_teacher = User.current.allowed_to?(:as_teacher,@course) || User.current.admin?
|
||||
if @homework.homework_detail_manual.comment_status == 2 && !@is_teacher && @work.user != User.current
|
||||
|
@ -853,7 +875,7 @@ class StudentWorkController < ApplicationController
|
|||
end
|
||||
when 3 #学生评分 学生评分显示平均分
|
||||
#@work.student_score = @work.student_works_scores.where(:reviewer_role => 3).average(:score).try(:round, 2).to_f
|
||||
stu_score = StudentWorksScore.find_by_sql("SELECT AVG(score) AS score FROM (SELECT * FROM (SELECT * FROM student_works_scores WHERE student_work_id = #{@work.id} AND reviewer_role = 3 ORDER BY created_at DESC) AS t GROUP BY user_id) AS a")
|
||||
stu_score = StudentWorksScore.find_by_sql("SELECT AVG(score) AS score FROM (SELECT * FROM (SELECT * FROM student_works_scores WHERE student_work_id = #{@work.id} AND reviewer_role = 3 AND appeal_status != 3 ORDER BY created_at DESC) AS t GROUP BY user_id) AS a")
|
||||
@work.student_score = stu_score.first.score.try(:round, 2).to_f
|
||||
if @is_group_leader
|
||||
add_score_to_member @work, @homework, @new_score
|
||||
|
@ -1079,6 +1101,62 @@ class StudentWorkController < ApplicationController
|
|||
end
|
||||
end
|
||||
|
||||
def appeal_anonymous_score
|
||||
@student_work_score = StudentWorksScore.where("id = #{params[:score_id].to_i}").first
|
||||
@is_last = params[:is_last]
|
||||
if @student_work_score
|
||||
@student_work_score.update_column('appeal_status', 1)
|
||||
score_appeal = StudentWorksScoresAppeal.create(:user_id => User.current.id, :student_works_score_id => @student_work_score.id, :comment => params[:appeal][:comment], :appeal_status => 1)
|
||||
course = @student_work_score.student_work.homework_common.course
|
||||
course.members.includes(:member_roles).where("member_roles.role_id in (3, 7, 9)").each do |member|
|
||||
AppliedMessage.create(:user_id => member.user_id, :status => 0, :viewed => 0, :applied_id => score_appeal.id, :applied_type => 'StudentWorksScoresAppeal', :applied_user_id => User.current.id)
|
||||
end
|
||||
CourseMessage.create(:user_id => @student_work_score.user_id, :course_id => course.id, :viewed => false,:course_message_id=> score_appeal.id,:course_message_type=>'StudentWorksScoresAppeal',:status=>1)
|
||||
end
|
||||
@homework = @student_work_score.student_work.homework_common
|
||||
@is_teacher = User.current.allowed_to?(:as_teacher, course) || User.current.admin?
|
||||
end
|
||||
|
||||
def alert_appeal_box
|
||||
@student_work_score = StudentWorksScore.where("id = #{params[:score_id].to_i}").first
|
||||
@is_last = params[:is_last]
|
||||
end
|
||||
|
||||
def deal_appeal_score
|
||||
@student_work_score = StudentWorksScore.where("id = #{params[:score_id].to_i}").first
|
||||
@is_last = params[:is_last]
|
||||
if @student_work_score
|
||||
@student_work_score.update_column('appeal_status', params[:status].to_i)
|
||||
score_appeal = @student_work_score.student_works_scores_appeal
|
||||
score_appeal.applied_messages.update_all(:status => params[:status].to_i == 2 ? 3 : (params[:status].to_i == 3 ? 1 : 2))
|
||||
if params[:status].to_i == 3 || params[:status].to_i == 4
|
||||
homework = @student_work_score.student_work.homework_common
|
||||
if params[:status].to_i == 3
|
||||
# 申诉成功后 扣匿评学生的违规匿评扣分
|
||||
sw = homework.student_works.where("user_id = #{@student_work_score.user_id}").first
|
||||
sw.update_attribute("appeal_penalty", homework.homework_detail_manual.appeal_penalty + sw.appeal_penalty)
|
||||
|
||||
# 申诉成功 重新计算申诉者的匿评分
|
||||
work = @student_work_score.student_work
|
||||
if work.student_works_scores.where("reviewer_role = 3 AND appeal_status != 3").count > 0
|
||||
stu_score = StudentWorksScore.find_by_sql("SELECT AVG(score) AS score FROM (SELECT * FROM (SELECT * FROM student_works_scores WHERE student_work_id = #{@student_work_score.student_work_id} AND reviewer_role = 3 AND appeal_status != 3 ORDER BY created_at DESC) AS t GROUP BY user_id) AS a")
|
||||
work.student_score = stu_score.first.score.try(:round, 2).to_f
|
||||
else
|
||||
work.student_score = nil
|
||||
end
|
||||
@student_work_score.student_work.save
|
||||
end
|
||||
course = homework.course
|
||||
CourseMessage.create(:user_id => @student_work_score.user_id, :course_id => course.id, :viewed => false,:course_message_id=> score_appeal.id,:course_message_type=>'StudentWorksScoresAppeal',:status=>params[:status].to_i,:apply_result =>User.current.id)
|
||||
CourseMessage.create(:user_id => score_appeal.user_id, :course_id => course.id, :viewed => false,:course_message_id=> score_appeal.id,:course_message_type=>'StudentWorksScoresAppeal',:status=>params[:status].to_i,:apply_result =>User.current.id)
|
||||
end
|
||||
@homework = @student_work_score.student_work.homework_common
|
||||
@is_teacher = User.current.allowed_to?(:as_teacher, course) || User.current.admin?
|
||||
@work = @student_work_score.student_work
|
||||
@is_group_leader = !@work.student_work_projects.empty?
|
||||
end
|
||||
end
|
||||
|
||||
def forbidden_anonymous_comment
|
||||
@homework.update_column('anonymous_comment', @homework.anonymous_comment == 0 ? 1 : 0)
|
||||
homework_detail_manual = @homework.homework_detail_manual
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
class AppliedMessage < ActiveRecord::Base
|
||||
# status: 0表示未批准; status:1表示已批准; status: 2表示已拒绝
|
||||
# status: 0表示未批准; status:1表示已批准; status: 2表示已拒绝; status: 3撤销
|
||||
|
||||
attr_accessible :applied_id, :applied_type, :status, :user_id, :viewed, :applied_user_id, :role, :project_id, :name
|
||||
belongs_to :applied ,:polymorphic => true
|
||||
|
|
|
@ -5,6 +5,8 @@ class CourseMessage < ActiveRecord::Base
|
|||
# HomeworkCommon:status:
|
||||
# nil:发布了作业; 1:作业截止时间到了提醒!;2:开启匿评; 3:关闭匿评; 4:匿评开始失败; 5:申请引用作业, 6:申请结果
|
||||
# apply_user_id: 申请者的用户id
|
||||
# StudentWorksScoresAppeal: status:
|
||||
# 1: 申诉中, 2:申诉撤销, 3:申诉成功, 4:申诉被拒绝
|
||||
attr_accessible :course_id, :course_message_id, :course_message_type, :user_id, :viewed, :content, :status, :apply_user_id, :apply_result
|
||||
|
||||
# 多态 虚拟关联
|
||||
|
|
|
@ -8,6 +8,7 @@ class StudentWorksScore < ActiveRecord::Base
|
|||
belongs_to :student_work
|
||||
has_many :journals_for_messages, :as => :jour, :dependent => :destroy
|
||||
has_many :course_messages, :class_name =>'CourseMessage', :as => :course_message, :dependent => :destroy
|
||||
has_one :student_works_scores_appeal, :dependent => :destroy
|
||||
|
||||
acts_as_attachable
|
||||
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
class StudentWorksScoresAppeal < ActiveRecord::Base
|
||||
attr_accessible :appeal_status, :comment, :student_works_score_id, :user_id
|
||||
has_many :course_messages, :class_name =>'CourseMessage', :as => :course_message, :dependent => :destroy
|
||||
has_many :applied_messages, :class_name => 'AppliedMessage', :as => :applied, :dependent => :destroy
|
||||
belongs_to :student_works_score
|
||||
belongs_to :user
|
||||
end
|
||||
|
|
|
@ -110,6 +110,7 @@ class User < Principal
|
|||
has_many :student_works_evaluation_distributions, :dependent => :destroy
|
||||
has_many :student_works_scores, :dependent => :destroy
|
||||
has_many :student_work_projects, :dependent => :destroy
|
||||
has_many :student_works_scores_appeals, :dependent => :destroy
|
||||
has_many :apply_homeworks, :dependent => :destroy
|
||||
has_many :apply_resources, :dependent => :destroy
|
||||
#end
|
||||
|
|
|
@ -70,6 +70,13 @@
|
|||
<li><a href="<%=student_work_index_path(:homework => ma.course_message.homework_common_id, :show_work_id => ma.course_message_id) %>" target="_blank" title="<%=ma.course_message.user.show_name %>同学 重新提交了作品:<%=ma.course_message.name %>"><span class="shadowbox_news_user"><%=ma.course_message.user.show_name %>同学 </span>重新提交了作品:<%=ma.course_message.name %></a></li>
|
||||
<% elsif ma.course_message_type == "StudentWork" && ma.status == 2 %>
|
||||
<li><a href="<%=student_work_index_path(:homework => ma.course_message.homework_common_id, :show_work_id => ma.course_message_id) %>" target="_blank" title="<%=ma.course_message.user.show_name %>同学 追加新附件了:作业标题:<%=ma.course_message.homework_common.name %>"><span class="shadowbox_news_user"><%=ma.course_message.user.show_name %>同学 </span>追加新附件了:作业标题:<%=ma.course_message.homework_common.name %></a></li>
|
||||
<% elsif ma.course_message_type == "StudentWorksScoresAppeal" && ma.course_message && ma.status == 1 %>
|
||||
<% student_work = ma.course_message.student_works_score.student_work %>
|
||||
<li><a href="<%=student_work_index_path(:homework => student_work.homework_common_id, :show_work_id => student_work.id, :tab => 2) %>" target="_blank" title="匿名用户 对您的评阅发起申诉:<%=student_work.homework_common.name %>"><span class="shadowbox_news_user">匿名用户</span> 对您的评阅发起申诉:<%=student_work.homework_common.name %></a></li>
|
||||
<% elsif ma.course_message_type == "StudentWorksScoresAppeal" && ma.course_message && (ma.status == 3 || ma.status == 4) %>
|
||||
<% deal_user = User.find ma.apply_result %>
|
||||
<% student_work = ma.course_message.student_works_score.student_work %>
|
||||
<li><a href="<%=student_work_index_path(:homework => student_work.homework_common_id, :show_work_id => student_work.id, :tab => 2) %>" target="_blank" title="<%= deal_user.show_name%> <%= ma.status == 3 ? '接受申诉' : '拒绝申诉' %>:<%=student_work.homework_common.name %>"><span class="shadowbox_news_user"><%= deal_user.show_name%></span> <%= ma.status == 3 ? '接受申诉' : '拒绝申诉' %>:<%=student_work.homework_common.name %></a></li>
|
||||
<% elsif ma.course_message_type == "Course" %>
|
||||
<li><a href="<%=course_path(ma.course_message) %>" target="_blank" title="系统提示 您成功创建了班级:班级名称:<%=ma.course_message.name %>"><span class="shadowbox_news_user">系统提示 </span>您成功创建了班级:班级名称:<%=ma.course_message.name %></a></li>
|
||||
<% elsif ma.course_message_type == "JoinCourseRequest" %>
|
||||
|
@ -115,6 +122,12 @@
|
|||
<% content = "<span class='shadowbox_news_user'>系统提示:</span>“#{ma.name}”的申请,经确认为无效的单位信息,已被删除,请重新编辑您的单位资料。谢谢!" %>
|
||||
<%= link_to content.html_safe, { :controller=> "my",:action => "account", :flag => 1, :applied_message_id => ma.id }, :title => "系统提示:“#{ma.name}”的申请,经确认为无效的单位信息,已被删除,请重新编辑您的单位资料。谢谢!", :target => '_blank'%>
|
||||
</li>
|
||||
<% elsif ma.applied_type == "StudentWorksScoresAppeal" %>
|
||||
<li>
|
||||
<% homework = ma.applied.student_works_score.student_work.homework_common %>
|
||||
<% content = '<span class="shadowbox_news_user">'+User.find(ma.applied_user_id).show_name+' </span>申诉匿评成绩:'+"“"+homework.name+"”" %>
|
||||
<%= link_to content.html_safe, student_work_index_path(:homework => homework.id, :show_work_id => ma.applied.student_works_score.student_work_id, :tab => 2), :title => "#{User.find(ma.applied_user_id).show_name}申诉匿评成绩:“#{homework.name}”", :target => '_blank' %>
|
||||
</li>
|
||||
<% end %>
|
||||
<% elsif ma.class == ForgeMessage %>
|
||||
<% if ma.forge_message_type == "AppliedProject" %>
|
||||
|
|
|
@ -94,7 +94,7 @@
|
|||
<em></em>
|
||||
<font></font>
|
||||
现共有
|
||||
<span class="c_red"> <%= student_work.student_works_scores.where(:reviewer_role => 3).group_by(&:user_id).count%> </span>
|
||||
<span class="c_red"> <%= student_work.student_works_scores.where("reviewer_role = 3 and appeal_status != 3").group_by(&:user_id).count%> </span>
|
||||
名学生进行了匿评,平均分为
|
||||
<span class="c_red"> <%= format("%.1f",student_work.student_score)%> </span>分。
|
||||
</div>
|
||||
|
@ -115,7 +115,7 @@
|
|||
<em></em>
|
||||
<font></font>
|
||||
作品最终评分为
|
||||
<span class="c_red"> <%= student_work.final_score%> </span>分<br/>
|
||||
<span class="c_red"> <%= score %> </span>分<br/>
|
||||
迟交扣分
|
||||
<span class="c_red">
|
||||
<%= student_work.late_penalty %>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<% user_ids = student_work.student_work_projects.empty? ? "(-1)" : "(" + student_work.student_work_projects.map{|st| st.user_id}.join(",") + ")" %>
|
||||
<% student_work_groups = @homework.student_works.where("user_id in #{user_ids}").order("created_at asc") %>
|
||||
<% anon_count = student_work.student_works_scores.where(:reviewer_role => 3).group_by(&:user_id).count %>
|
||||
<% anon_count = student_work.student_works_scores.where("reviewer_role = 3 and appeal_status != 3").group_by(&:user_id).count %>
|
||||
<% student_work_groups.each_with_index do |st, j| %>
|
||||
<% score_open = @is_teacher || @homework.score_open == 1 || st.user == User.current %>
|
||||
<div class="syllabus_class_box" id="student_work_<%= st.id%>" style="background-color:#fff;">
|
||||
|
|
|
@ -0,0 +1,40 @@
|
|||
<div id="muban_popup_box" style="width:530px;">
|
||||
<div class="muban_popup_top">
|
||||
<h3 class="fl">匿评成绩申诉</h3>
|
||||
<a href="javascript:void(0);" class="muban_icons_close fr"></a>
|
||||
<div class="cl"></div>
|
||||
</div>
|
||||
<%= form_for('appeal',:url =>{:controller => 'student_work',:action => 'appeal_anonymous_score',:score_id => @student_work_score.id, :is_last => @is_last},
|
||||
:method => "post", :remote => true) do |f|%>
|
||||
<div class="muban_popup_con clear">
|
||||
<div class="clear mt15 ml20">
|
||||
<label style="vertical-align: top;"><span class="c_red" style="vertical-align: top;">*</span>申诉理由:</label>
|
||||
<%= f.text_area 'comment', :id => 'appeal_comment', :style => 'height: 70px; width: 414px;', :placeholder => "请输入你的申诉理由,最多250个字符。",:maxlength => 250 %>
|
||||
<p id="notice_notes" class="c_red none" style="margin-left: 68px;">请输入申诉理由</p>
|
||||
<div class="alert alert-orange mb10 mt10 mr20">
|
||||
教师或者助教将受到您的申诉<br/>
|
||||
申诉被接受后,此匿评成绩将被废弃,且评阅人的作品将被违规扣分
|
||||
</div>
|
||||
|
||||
<div class="cl"></div>
|
||||
<a href="javascript:void(0);" class="fr sy_btn_blue mr20" onclick="score_appeal_submit();">确定</a>
|
||||
<a href="javascript:void(0);" class="fr sy_btn_grey mr5" onclick="hideModal();">取消</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<% end%>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
var first_click = true;
|
||||
function score_appeal_submit(){
|
||||
if(first_click) {
|
||||
if ($.trim($("#appeal_comment").val()) != "") {
|
||||
first_click = false;
|
||||
$('#notice_notes').hide();
|
||||
$('#muban_popup_box').find('form').submit();
|
||||
} else {
|
||||
$('#notice_notes').show();
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
|
@ -53,6 +53,14 @@
|
|||
</div>
|
||||
<div class="cl"></div>
|
||||
|
||||
<% if @is_evaluation && !@stundet_works.empty? %>
|
||||
<div class="alert alert-orange mb10 f14">
|
||||
不参与匿评将直接影响作业成绩,请按照事实进行评分<br/>
|
||||
<p class="sy_cgrey">为了保障匿评的公平,允许学生对不合理的匿评成绩进行申诉</p>
|
||||
<p class="sy_cgrey">若您给出了不合理的匿评成绩,并被申诉成功,您自己的作品将被匿评违规扣分</p>
|
||||
</div>
|
||||
<% end %>
|
||||
|
||||
<div class="fl">
|
||||
<% if @homework.homework_type != 3%>
|
||||
<% if @is_evaluation && !@stundet_works.empty? %>
|
||||
|
@ -61,7 +69,7 @@
|
|||
<%= render :partial => "evaluation_un_title"%>
|
||||
<% end%>
|
||||
<% else %>
|
||||
<% if !@is_teacher && @is_evaluation && !@stundet_works.empty? %>
|
||||
<% if @is_evaluation && !@stundet_works.empty? %>
|
||||
<%= render :partial => "evaluation_title"%>
|
||||
<% else %>
|
||||
<%= render :partial => "evaluation_un_group"%>
|
||||
|
|
|
@ -14,7 +14,20 @@
|
|||
</a>
|
||||
<% end %>
|
||||
<a href="javascript:void(0);" class="fr linkBlue mr5" onclick="$('#add_score_reply_<%= score.id%>').slideToggle();">回复</a>
|
||||
<span class=" fr c_grey mr20">
|
||||
<% if @homework.anonymous_appeal == 1 %>
|
||||
<% if score.student_work.user == User.current && score.reviewer_role == 3 && score.appeal_status == 0 %>
|
||||
<a href="<%=alert_appeal_box_student_work_index_path(:score_id => score.id,:is_last => is_last) %>" data-remote="true" class="fr linkBlue mr10">申诉</a>
|
||||
<% elsif score.reviewer_role == 3 && score.appeal_status == 1 %>
|
||||
<span class="c_red fr mr10">申诉中</span>
|
||||
<% elsif score.reviewer_role == 3 && score.appeal_status == 2 %>
|
||||
<span class="c_red fr mr10">申诉已撤销</span>
|
||||
<% elsif score.reviewer_role == 3 && score.appeal_status == 3 %>
|
||||
<span class="c_red fr mr10">申诉成功</span>
|
||||
<% elsif score.reviewer_role == 3 && score.appeal_status == 4 %>
|
||||
<span class="c_red fr mr10">申诉失败</span>
|
||||
<% end %>
|
||||
<% end %>
|
||||
<span class="fr c_grey mr20">
|
||||
<%=format_time score.updated_at %>
|
||||
</span>
|
||||
<div class="cl mb5"></div>
|
||||
|
@ -31,6 +44,24 @@
|
|||
<%= render :partial => 'add_score_reply',:locals => {:score => score,:is_last => is_last}%>
|
||||
</div>
|
||||
<div class="cl"></div>
|
||||
<% unless score.student_works_scores_appeal.nil? %>
|
||||
<div class="ping_back mt10" style="border-top: 1px dashed #CCCCCC; padding-top: 10px;">
|
||||
<span class="fl">申诉</span>
|
||||
<% if score.appeal_status == 1 && score.student_work.user == User.current %>
|
||||
<a href="javascript:void(0)" onclick="deal_appeal_score(<%=score.id %>, 2);" class="fr linkBlue mr5 ml20">撤销申诉</a>
|
||||
<% elsif @is_teacher && score.appeal_status == 1 %>
|
||||
<a href="javascript:void(0)" onclick="deal_appeal_score(<%=score.id %>, 3);" class="fr linkBlue mr5">接受</a>
|
||||
<a href="javascript:void(0)" onclick="deal_appeal_score(<%=score.id %>, 4);" class="fr linkBlue mr10 ml20">拒绝</a>
|
||||
<% end %>
|
||||
<span class="fr c_grey">
|
||||
<%=format_time score.student_works_scores_appeal.updated_at %>
|
||||
</span>
|
||||
<div class="cl mb5"></div>
|
||||
<p class="break_word">
|
||||
申诉理由:<%= score.student_works_scores_appeal.comment%>
|
||||
</p>
|
||||
</div>
|
||||
<% end %>
|
||||
|
||||
<div id="replay_histroy_<%= score.id%>">
|
||||
<% score.journals_for_messages.order("created_on desc").each do |jour|%>
|
||||
|
@ -41,3 +72,25 @@
|
|||
<div class="cl"></div>
|
||||
</div>
|
||||
</ul>
|
||||
|
||||
<script>
|
||||
function deal_appeal_score(score_id, status){
|
||||
if(status == '2'){
|
||||
var htmlvalue = '<div id="muban_popup_box" style="width:400px;"><div class="muban_popup_top"><h3 class="fl">提示</h3><a href="javascript:void(0);" class="muban_icons_close fr"></a></div>'+
|
||||
'<div class="clear mt15"><p class="text_c f14">撤销后将不能再对该成绩发起申诉</p><p class="text_c mt10 f14">您是否确认撤销申诉</p><div class="cl"></div>'+
|
||||
'<a href="/student_work/deal_appeal_score?is_last=true&score_id='+ score_id + '&status=2" class="fr sy_btn_blue mr135 mt10" data-remote="true">确 定</a>'+
|
||||
'<a href="javascript:void(0);" class="fr sy_btn_grey mt10 mr10" onclick="hideModal();">取 消</a></div></div>';
|
||||
}else if(status == '3'){
|
||||
var htmlvalue = '<div id="muban_popup_box" style="width:400px;"><div class="muban_popup_top"><h3 class="fl">提示</h3><a href="javascript:void(0);" class="muban_icons_close fr"></a></div>'+
|
||||
'<div class="clear mt15"><p class="text_c f14">此匿评成绩将被废弃,且评阅人的作品将被违规扣分</p><p class="text_c mt10 f14">您是否确定接受</p><div class="cl"></div>'+
|
||||
'<a href="/student_work/deal_appeal_score?is_last=true&score_id='+ score_id + '&status=3" class="fr sy_btn_blue mr135 mt10" data-remote="true">确 定</a>'+
|
||||
'<a href="javascript:void(0);" class="fr sy_btn_grey mt10 mr10" onclick="hideModal();">取 消</a></div></div>';
|
||||
}else if(status == '4'){
|
||||
var htmlvalue = '<div id="muban_popup_box" style="width:400px;"><div class="muban_popup_top"><h3 class="fl">提示</h3><a href="javascript:void(0);" class="muban_icons_close fr"></a></div>'+
|
||||
'<div class="clear mt15"><p class="text_c f14">此匿评成绩将被认为合理</p><p class="text_c mt10 f14">您是否确定拒绝</p><div class="cl"></div>'+
|
||||
'<a href="/student_work/deal_appeal_score?is_last=true&score_id='+ score_id + '&status=4" class="fr sy_btn_blue mr135 mt10" data-remote="true">确 定</a>'+
|
||||
'<a href="javascript:void(0);" class="fr sy_btn_grey mt10 mr10" onclick="hideModal();">取 消</a></div></div>';
|
||||
}
|
||||
pop_box_new(htmlvalue, 400, 180);
|
||||
}
|
||||
</script>
|
||||
|
|
|
@ -19,7 +19,7 @@ $("#score_list_<%= @work.id%>").removeAttr("style");
|
|||
$("#student_work_<%= @work.id%>").html("<%= escape_javascript(render :partial => 'evaluation_un_group_work', :locals => {:student_work => @work}) %>");
|
||||
$("#group_member_work_<%= @work.id%>").html("<%= escape_javascript(render :partial => 'group_member_work', :locals => {:student_work => @work}) %>");
|
||||
<% else %>
|
||||
<% anon_count = @work.student_works_scores.where(:reviewer_role => 3).group_by(&:user_id).count %>
|
||||
<% anon_count = @work.student_works_scores.where("reviewer_role = 3 and appeal_status != 3").group_by(&:user_id).count %>
|
||||
$("#student_work_<%= @work.id%>").html("<%= escape_javascript(render :partial => 'evaluation_un_group_member_work', :locals => {:st => @work, :anon_count => anon_count, :score_open => score_open}) %>");
|
||||
<% end %>
|
||||
<% else %>
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
var htmlvalue = "<%=escape_javascript(render :partial => 'student_work/score_appeal_box') %>";
|
||||
pop_box_new(htmlvalue, 530, 400);
|
|
@ -0,0 +1,2 @@
|
|||
hideModal();
|
||||
$("#work_score_<%= @student_work_score.id%>").html("<%= escape_javascript(render :partial => 'student_work_score',:locals => {:score => @student_work_score,:is_last => @is_last}) %>");
|
|
@ -0,0 +1,22 @@
|
|||
hideModal();
|
||||
<% if params[:status].to_i == 3 %>
|
||||
<% score_open = @is_teacher || @homework.score_open == 1 || @work.user == User.current %>
|
||||
<% if @is_teacher %>
|
||||
<% if @homework.homework_type == 3 %>
|
||||
<% if @is_group_leader %>
|
||||
$("#student_work_<%= @work.id%>").html("<%= escape_javascript(render :partial => 'evaluation_un_group_work', :locals => {:student_work => @work}) %>");
|
||||
$("#group_member_work_<%= @work.id%>").html("<%= escape_javascript(render :partial => 'group_member_work', :locals => {:student_work => @work}) %>");
|
||||
<% else %>
|
||||
<% anon_count = @work.student_works_scores.where("reviewer_role = 3 and appeal_status != 3").group_by(&:user_id).count %>
|
||||
$("#student_work_<%= @work.id%>").html("<%= escape_javascript(render :partial => 'evaluation_un_group_member_work', :locals => {:st => @work, :anon_count => anon_count, :score_open => score_open}) %>");
|
||||
<% end %>
|
||||
<% else %>
|
||||
$("tr[id='student_work_<%= @work.id%>']").replaceWith("<%= escape_javascript(render :partial => 'evaluation_un_work',:locals => {:student_work => @work, :index => 1, :score_open => score_open}) %>");
|
||||
$("#work_num_<%= @work.id%>").html(num);
|
||||
<% end %>
|
||||
<% else %>
|
||||
$("tr[id='student_work_<%= @work.id%>']").replaceWith("<%= escape_javascript(render :partial => 'evaluation_work',:locals => {:student_work => @work, :index => 1, :score_open => score_open}) %>");
|
||||
$("#work_num_<%= @work.id%>").html(num);
|
||||
<% end%>
|
||||
<% end %>
|
||||
$("#work_score_<%= @student_work_score.id%>").html("<%= escape_javascript(render :partial => 'student_work_score',:locals => {:score => @student_work_score,:is_last => @is_last}) %>");
|
|
@ -25,5 +25,23 @@
|
|||
<ul class="homepageNewsList fl" id="applied_project_<%= ma.id %>">
|
||||
<%= render :partial => "users/applied_project_content", :locals =>{:ma => ma} %>
|
||||
</ul>
|
||||
<!-- 匿评成绩申诉 -->
|
||||
<% elsif ma && ma.applied_type == "StudentWorksScoresAppeal" %>
|
||||
<ul class="homepageNewsList fl">
|
||||
<% applied_user = User.find(ma.applied_user_id) %>
|
||||
<li class="homepageNewsPortrait fl">
|
||||
<%= link_to image_tag(url_to_avatar(applied_user), :width => "30", :height => "30"), user_path(applied_user), :target => '_blank' %>
|
||||
</li>
|
||||
<li class="homepageNewsPubType fl">
|
||||
<%=link_to applied_user.show_name, user_path(applied_user), :class => "newsBlue homepageNewsPublisher", :target => '_blank' %>
|
||||
<span class="<%= ma.viewed == 0 ? "homepageNewsTypeNotRead fl" : "homepageNewsType fl" %>">申诉匿评成绩:</span>
|
||||
</li>
|
||||
<li class="homepageNewsContent fl">
|
||||
<% homework = ma.applied.student_works_score.student_work.homework_common %>
|
||||
<%= link_to homework.name, student_work_index_path(:homework => homework.id, :show_work_id => ma.applied.student_works_score.student_work_id, :tab => 2), :class => "#{ma.viewed == 0 ? "newsBlack" : "newsGrey"}", :target => '_blank' %>
|
||||
</li>
|
||||
<li class="homepageNewsTime fl"><%= time_tag(ma.created_at).html_safe %>
|
||||
</li>
|
||||
</ul>
|
||||
<% end %>
|
||||
<% end %>
|
|
@ -550,11 +550,8 @@
|
|||
<span class="<%= ma.viewed == 0 ? "homepageNewsTypeNotRead fl" : "homepageNewsType fl" %>">重新提交了作品:</span>
|
||||
</li>
|
||||
<li class="homepageNewsContent fl">
|
||||
<%= link_to "作业标题:" + ma.course_message.name, student_work_index_path(:homework => ma.course_message.homework_common_id, :show_work_id => ma.course_message_id),
|
||||
<%= link_to "作业标题:" + ma.course_message.name, student_work_index_path(:homework => ma.course_message.homework_common_id, :show_work_id => ma.course_message_id, :tab => 2),
|
||||
:class =>"#{ma.viewed == 0 ? "newsBlack" : "newsGrey"}", :target => '_blank' %>
|
||||
<%#= link_to truncate(ma.course_message.name,:length=>25)+'(失败原因:提交作品的人数低于2人)', student_work_index_path(:homework => ma.course_message.id), :class => "#{ma.viewed == 0 ? "c_red" : "newsGrey "}" %>
|
||||
<!--:onmouseover => "message_titile_show($(this),event)",-->
|
||||
<!--:onmouseout => "message_titile_hide($(this))" %>-->
|
||||
</li>
|
||||
<li class="homepageNewsTime fl"><%= time_tag(ma.created_at).html_safe %> </li>
|
||||
</ul>
|
||||
|
@ -571,7 +568,7 @@
|
|||
<span class="<%= ma.viewed == 0 ? "homepageNewsTypeNotRead fl" : "homepageNewsType fl" %>">追加新附件了:</span>
|
||||
</li>
|
||||
<li class="homepageNewsContent fl">
|
||||
<%= link_to "作业标题:" + ma.course_message.homework_common.name, student_work_index_path(:homework => ma.course_message.homework_common_id, :show_work_id => ma.course_message_id),
|
||||
<%= link_to "作业标题:" + ma.course_message.homework_common.name, student_work_index_path(:homework => ma.course_message.homework_common_id, :show_work_id => ma.course_message_id, :tab => 2),
|
||||
:class =>"#{ma.viewed == 0 ? "newsBlack" : "newsGrey"}", :target => '_blank' %>
|
||||
<!--:onmouseover => "message_titile_show($(this),event)",-->
|
||||
<!--:onmouseout => "message_titile_hide($(this))" %>-->
|
||||
|
@ -579,6 +576,36 @@
|
|||
<li class="homepageNewsTime fl"><%= time_tag(ma.created_at).html_safe %> </li>
|
||||
</ul>
|
||||
<% end %>
|
||||
<!-- 匿评申诉 -->
|
||||
<% if ma.course_message_type == "StudentWorksScoresAppeal" && ma.course_message %>
|
||||
<ul class="homepageNewsList fl">
|
||||
<li class="homepageNewsPortrait fl">
|
||||
<%=link_to image_tag(url_to_avatar(""), :width => "30", :height => "30"), "javascript:void(0);", :target => '_blank' %>
|
||||
</li>
|
||||
<li class="homepageNewsPubType fl">
|
||||
<% if ma.status == 1 %>
|
||||
<span class="newsBlue homepageNewsPublisher">匿名用户</span>
|
||||
<% elsif ma.status == 3 || ma.status == 4 %>
|
||||
<% deal_user = User.find ma.apply_result %>
|
||||
<%= link_to deal_user.show_name, user_path(deal_user), :class => "newsBlue homepageNewsPublisher", :target => '_blank' %>
|
||||
<% end %>
|
||||
<span class="<%= ma.viewed == 0 ? "homepageNewsTypeNotRead fl" : "homepageNewsType fl" %>">
|
||||
<% if ma.status == 1 %>
|
||||
对您的评阅发起申诉:
|
||||
<% elsif ma.status == 3 %>
|
||||
接受申诉:
|
||||
<% elsif ma.status == 4 %>
|
||||
拒绝申诉:
|
||||
<% end %>
|
||||
</span>
|
||||
</li>
|
||||
<li class="homepageNewsContent fl">
|
||||
<%= link_to ma.course_message.student_works_score.student_work.homework_common.name, student_work_index_path(:homework => ma.course_message.student_works_score.student_work.homework_common_id, :show_work_id => ma.course_message.student_works_score.student_work_id, :tab => 2),
|
||||
:class =>"#{ma.viewed == 0 ? "newsBlack" : "newsGrey"}", :target => '_blank' %>
|
||||
</li>
|
||||
<li class="homepageNewsTime fl"><%= time_tag(ma.created_at).html_safe %> </li>
|
||||
</ul>
|
||||
<% end %>
|
||||
<!-- 创建课程消息 -->
|
||||
<% if ma.course_message_type == "Course" && ma.course_message %>
|
||||
<ul class="homepageNewsList fl">
|
||||
|
|
|
@ -353,6 +353,9 @@ RedmineApp::Application.routes.draw do
|
|||
get 'work_canrepeat'
|
||||
get 'get_user_infor'
|
||||
post 'add_group_member'
|
||||
post 'appeal_anonymous_score'
|
||||
get 'alert_appeal_box'
|
||||
get 'deal_appeal_score'
|
||||
end
|
||||
end
|
||||
|
||||
|
|
Loading…
Reference in New Issue