commit
1035301d89
|
@ -40,7 +40,7 @@ class AvatarController < ApplicationController
|
|||
@urlfile='/' << File.join("images","avatars",avatar_directory(@source_type),avatar_filename(@source_id,@image_file))
|
||||
|
||||
# 用户头像上传时进行特别处理
|
||||
if @is_direct == '1' && (@source_type == 'User' || @source_type == 'Course' || @source_type == 'Project' || @source_type == 'Organization')
|
||||
if @is_direct == '1' && (@source_type == 'User' || @source_type == 'Course' || @source_type == 'Project' || @source_type == 'Organization'|| @source_type == 'Contest')
|
||||
diskfile += "temp"
|
||||
@urlfile += "temp"
|
||||
end
|
||||
|
|
|
@ -261,6 +261,18 @@ class BoardsController < ApplicationController
|
|||
respond_to do |format|
|
||||
format.js
|
||||
end
|
||||
elsif @contest
|
||||
parent = Board.find params[:board_id].to_i
|
||||
board = @contest.boards.build
|
||||
board.name = params[:name]
|
||||
board.description = board.name
|
||||
board.project_id = -1
|
||||
board.course_id = -1
|
||||
board.position = parent.children.count + 1
|
||||
parent.children << board
|
||||
respond_to do |format|
|
||||
format.js
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -284,7 +296,7 @@ class BoardsController < ApplicationController
|
|||
after_boards = @board.parent.children.where("position > #{@board.position}")
|
||||
after_boards.update_all("position = position - 1")
|
||||
@board.destroy
|
||||
if @course
|
||||
if @course || @contest
|
||||
respond_to do |format|
|
||||
format.js
|
||||
end
|
||||
|
@ -294,7 +306,7 @@ class BoardsController < ApplicationController
|
|||
end
|
||||
|
||||
def update_position
|
||||
if @course
|
||||
if @course || @contest
|
||||
boards = @board.parent.children
|
||||
if params[:opr] == 'up' && @board.position > 1
|
||||
before_board = boards.where("position = #{@board.position - 1}").first
|
||||
|
@ -314,7 +326,7 @@ class BoardsController < ApplicationController
|
|||
end
|
||||
|
||||
def update_name
|
||||
if @course
|
||||
if @course || @contest
|
||||
@board.update_attribute("name", params[:name])
|
||||
@board.update_attribute("description", params[:name])
|
||||
respond_to do |format|
|
||||
|
|
|
@ -48,10 +48,13 @@ class ContestantWorksController < ApplicationController
|
|||
@all_homework_commons = @contest.works.order("created_at desc")
|
||||
@is_teacher = User.current.admin_of_contest?(@contest) || User.current.admin?
|
||||
@is_judge = User.current.judge_of_contest?(@contest)
|
||||
@is_evaluation = @is_judge && @contestwork.work_status == 3 && @contestwork.online_evaluation
|
||||
|
||||
@show_all = false
|
||||
|
||||
if @is_teacher || @is_judge
|
||||
is_judge_open = @is_judge && (!@contestwork.online_evaluation || (@contestwork.online_evaluation && @contestwork.work_status == 4))
|
||||
is_contestant_open = User.current.contestant_of_contest?(@contest) && ((!@contestwork.online_evaluation && @contestwork.work_status == 2 && @contestwork.score_open) || (@contestwork.online_evaluation && @contestwork.work_status == 4 && @contestwork.score_open))
|
||||
if @is_teacher || is_judge_open || is_contestant_open
|
||||
# if @order == 'lastname'
|
||||
# @stundet_works = search_homework_member @homework.student_works.no_copy.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'
|
||||
|
@ -60,7 +63,15 @@ class ContestantWorksController < ApplicationController
|
|||
@stundet_works = @contestwork.contestant_works.no_copy.select("contestant_works.*,contestant_works.work_score as score").includes(:user => {:user_extensions => []}, :project => {}, :contestant_work_scores => {}).order("#{@order} #{@b_sort}")
|
||||
#end
|
||||
@show_all = true
|
||||
elsif User.current.member_of_contest?(@contest)
|
||||
elsif @is_evaluation
|
||||
if @contestwork.work_detail_manual.evaluation_num == -1
|
||||
@stundet_works = @contestwork.contestant_works.no_copy.select("contestant_works.*,contestant_works.work_score as score").includes(:user => {:user_extensions => []}, :project => {}, :contestant_work_scores => {}).order("#{@order} #{@b_sort}")
|
||||
else
|
||||
@stundet_works = User.current.contestant_work_evaluation_distributions.map(&:contestant_work).select { |cwork| cwork.work_id == @contestwork.id}
|
||||
end
|
||||
elsif User.current.judge_of_contest?(@contest)
|
||||
@stundet_works = []
|
||||
elsif User.current.contestant_of_contest?(@contest)
|
||||
if @contestwork.work_type == 3
|
||||
pro = @contestwork.contestant_work_projects.where(:user_id => User.current.id).first
|
||||
if pro.nil?
|
||||
|
@ -95,9 +106,10 @@ class ContestantWorksController < ApplicationController
|
|||
end
|
||||
|
||||
def show
|
||||
#@score = student_work_score @work,User.current
|
||||
@score = ContestantWorkScore.where(:user_id => User.current.id,:contestant_work_id => @work.id,:reviewer_role => 2).last
|
||||
@is_evaluation = User.current.judge_of_contest?(@contest) && @contestwork.work_status == 3 && @contestwork.online_evaluation
|
||||
@is_teacher = User.current.admin_of_contest?(@contest) || User.current.judge_of_contest?(@contest) || User.current.admin?
|
||||
if @contestwork.work_status == 3 && User.current.judge_of_contest?(@contest) && @contestwork.online_evaluation
|
||||
if @is_evaluation
|
||||
@student_work_scores = @work.contestant_work_scores.where("user_id = #{User.current.id} and reviewer_role = 2").order("updated_at desc")
|
||||
else
|
||||
@student_work_scores = contestant_work_score_record(@work)
|
||||
|
@ -368,9 +380,10 @@ class ContestantWorksController < ApplicationController
|
|||
|
||||
def add_score
|
||||
@is_last = params[:is_last] == "true"
|
||||
@is_teacher = User.current.admin_of_contest?(@contest) || User.current.judge_of_contest?(@contest) || User.current.admin?
|
||||
@is_evaluation = User.current.judge_of_contest?(@contest) && @contestwork.work_status == 3 && @contestwork.online_evaluation
|
||||
#@is_teacher = User.current.admin_of_contest?(@contest) || User.current.judge_of_contest?(@contest) || User.current.admin?
|
||||
#老师、教辅可以随时评分,学生只能在匿评作业的匿评阶段进行评分
|
||||
render_403 and return unless User.current.judge_of_contest?(@contest) && @contestwork.work_status == 3
|
||||
render_403 and return unless @is_evaluation
|
||||
@is_last_a = @work.contestant_work_scores.empty?
|
||||
@new_score = ContestantWorkScore.new
|
||||
@new_score.score = params[:score].to_i
|
||||
|
@ -403,6 +416,8 @@ class ContestantWorksController < ApplicationController
|
|||
@contestwork.update_column('updated_at', Time.now)
|
||||
update_contest_activity(@contestwork.class,@contestwork.id)
|
||||
update_user_activity(@contestwork.class,@contestwork.id)
|
||||
judge_score = ContestantWorkScore.find_by_sql("SELECT AVG(score) AS score FROM (SELECT * FROM (SELECT * FROM contestant_work_scores WHERE contestant_work_id = #{@work.id} AND reviewer_role = 2 ORDER BY created_at DESC) AS t GROUP BY user_id) AS a")
|
||||
@work.judge_score = judge_score.first.score.nil? ? nil : judge_score.first.score.try(:round, 2).to_f
|
||||
if @work.save
|
||||
@work = @contestwork.contestant_works.select("contestant_works.*,contestant_works.work_score as score").where(:id => @work.id).first
|
||||
@count = @contestwork.contestant_works.has_committed.count
|
||||
|
|
|
@ -4,8 +4,12 @@ class ContestsController < ApplicationController
|
|||
include ContestsHelper
|
||||
helper :contest_members
|
||||
helper :users
|
||||
helper :attachments
|
||||
helper :files
|
||||
include AvatarHelper
|
||||
|
||||
before_filter :find_contest, :only => [:show, :settings, :update, :destroy, :contest_activities, :search_member, :private_or_public, :switch_role, :set_invite_code_halt, :renew]
|
||||
before_filter :find_contest, :only => [:show, :settings, :update, :destroy, :contest_activities, :search_member, :private_or_public, :switch_role, :set_invite_code_halt, :renew,
|
||||
:member]
|
||||
before_filter :is_logged, :only => [:index, :new, :create]
|
||||
before_filter :is_admin?, :only => [:settings, :set_invite_code_halt, :destroy]
|
||||
before_filter :is_member?, :only => [:show, :contest_activities]
|
||||
|
@ -131,11 +135,8 @@ class ContestsController < ApplicationController
|
|||
end
|
||||
|
||||
def settings
|
||||
if params[:tab] && params[:tab] == 'boards'
|
||||
@tab = 2
|
||||
else
|
||||
@tab = 0
|
||||
end
|
||||
@select_tab = params[:tab]
|
||||
|
||||
@member ||= @contest.contest_members.new
|
||||
@roles = Role.where("id in (13, 14, 15)")
|
||||
@members = @contest.member_principals.includes(:roles, :principal).all.sort
|
||||
|
@ -253,6 +254,36 @@ class ContestsController < ApplicationController
|
|||
end
|
||||
end
|
||||
|
||||
# 成员列表
|
||||
def member
|
||||
if (User.current.admin? || @contest.is_public || (!@contest.is_public && User.current.member_of_contest?(@contest)))
|
||||
@role = params[:role].nil? ? '3' : params[:role]
|
||||
case @role
|
||||
when '1'
|
||||
@members = contest_managers @contest
|
||||
when '2'
|
||||
@members = contest_judges @contest
|
||||
when '3'
|
||||
@members = contest_contestants @contest
|
||||
end
|
||||
if params[:name]
|
||||
q = "#{params[:name].strip}"
|
||||
@members = search_member_by_name_login_school @members, q
|
||||
end
|
||||
@limit = 50
|
||||
@page = params[:page].nil? ? 1 : params['page'].to_i
|
||||
@members_count = @members.count
|
||||
@mem_pages = Paginator.new @members_count, @limit, @page
|
||||
@members = paginateHelper @members, @limit
|
||||
respond_to do |format|
|
||||
format.html {render :layout => 'base_contests'}
|
||||
format.js
|
||||
end
|
||||
else
|
||||
render_403
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def find_contest
|
||||
|
|
|
@ -490,14 +490,17 @@ class CoursesController < ApplicationController
|
|||
end
|
||||
|
||||
def export_course_member_excel
|
||||
if params[:group_id]
|
||||
if params[:group_id] && params[:group_id] != "0" && params[:group_id] != "-1"
|
||||
group = CourseGroup.find params[:group_id]
|
||||
unless group.nil?
|
||||
@all_members = student_homework_score(group.id,0,0,"desc")
|
||||
end
|
||||
elsif params[:group_id] && params[:group_id] == "-1"
|
||||
@all_members = student_homework_score(-1, 0, 10,"desc")
|
||||
else
|
||||
@all_members = student_homework_score(0,0,0,"desc")
|
||||
@all_members = student_homework_score(0, 0, 10,"desc")
|
||||
end
|
||||
|
||||
@homeworks = @course.homework_commons.where("publish_time <= '#{Date.today}'").order("created_at asc")
|
||||
filename="#{@course.teacher.lastname.to_s + @course.teacher.firstname.to_s }_#{@course.name}_#{@course.time.to_s + @course.term}#{l(:excel_member_list)}";
|
||||
|
||||
|
|
|
@ -93,6 +93,9 @@ class MyController < ApplicationController
|
|||
if params[:course]
|
||||
@course = Course.find params[:course]
|
||||
diskfile = disk_filename('Course', @course.id)
|
||||
elsif params[:contest]
|
||||
@contest = Contest.find params[:contest]
|
||||
diskfile = disk_filename('Contest', @contest.id)
|
||||
elsif params[:project]
|
||||
@project = Project.find params[:project]
|
||||
diskfile = disk_filename('Project', @project.id)
|
||||
|
@ -116,6 +119,9 @@ class MyController < ApplicationController
|
|||
when 'Course'
|
||||
@course = Course.find params[:source_id]
|
||||
diskfile = disk_filename('Course', @course.id)
|
||||
when 'Contest'
|
||||
@contest = Contest.find params[:source_id]
|
||||
diskfile = disk_filename('Contest', @contest.id)
|
||||
when 'Project'
|
||||
@project = Project.find params[:source_id]
|
||||
diskfile = disk_filename('Project', @project.id)
|
||||
|
|
|
@ -868,8 +868,12 @@ class StudentWorkController < ApplicationController
|
|||
end
|
||||
when 2 #教辅评分 教辅评分显示平均分
|
||||
#@work.teaching_asistant_score = @work.student_works_scores.where(:reviewer_role => 2).average(:score).try(:round, 2).to_f
|
||||
ts_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 = 2 AND score IS NOT NULL ORDER BY created_at DESC) AS t GROUP BY user_id) AS a")
|
||||
@work.teaching_asistant_score = ts_score.first.score.nil? ? nil : ts_score.first.score.try(:round, 2).to_f
|
||||
if @homework.homework_detail_manual.ta_mode == 1
|
||||
ts_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 = 2 AND score IS NOT NULL ORDER BY created_at DESC) AS t GROUP BY user_id) AS a")
|
||||
@work.teaching_asistant_score = ts_score.first.score.nil? ? nil : ts_score.first.score.try(:round, 2).to_f
|
||||
else
|
||||
@work.teaching_asistant_score = @new_score.score
|
||||
end
|
||||
if @is_group_leader && params[:same_score]
|
||||
add_score_to_member @work, @homework, @new_score
|
||||
end
|
||||
|
@ -1072,6 +1076,24 @@ class StudentWorkController < ApplicationController
|
|||
homework_detail_manual.save if homework_detail_manual
|
||||
end
|
||||
|
||||
if params[:ta_mode] && homework_detail_manual.ta_mode.to_i != params[:ta_mode].to_i
|
||||
homework_detail_manual.ta_mode = params[:ta_mode].to_i
|
||||
homework_detail_manual.save
|
||||
if homework_detail_manual.ta_mode == 1
|
||||
@homework.student_works.where("work_status != 0").each do |student_work|
|
||||
ts_score = StudentWorksScore.find_by_sql("SELECT AVG(score) AS score FROM (SELECT * FROM (SELECT * FROM student_works_scores WHERE student_work_id = #{student_work.id} AND reviewer_role = 2 AND score IS NOT NULL ORDER BY created_at DESC) AS t GROUP BY user_id) AS a")
|
||||
student_work.teaching_asistant_score = ts_score.first.score.nil? ? nil : ts_score.first.score.try(:round, 2).to_f
|
||||
student_work.save
|
||||
end
|
||||
else
|
||||
@homework.student_works.where("work_status != 0").each do |student_work|
|
||||
ts_score = StudentWorksScore.where("student_work_id = #{student_work.id} AND reviewer_role = 2 AND score IS NOT NULL").order("created_at DESC")
|
||||
student_work.teaching_asistant_score = ts_score.first.nil? ? nil : ts_score.first.score
|
||||
student_work.save
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
teacher_priority = params[:teacher_priority].to_i
|
||||
if homework_detail_manual.ta_proportion.to_s != params[:ta_proportion].to_s || @homework.teacher_priority.to_s != teacher_priority.to_s || (homework_detail_programing && homework_detail_programing.ta_proportion.to_s != params[:sy_proportion].to_s)
|
||||
homework_detail_manual.ta_proportion = params[:ta_proportion]
|
||||
|
|
|
@ -257,11 +257,11 @@ class WorksController < ApplicationController
|
|||
score_valid = params[:score_valid].to_i == 1 ? true : false
|
||||
if score_valid != @contestwork.score_valid
|
||||
@contestwork.score_valid = score_valid
|
||||
@contestwork.save
|
||||
@contestwork.contestant_works.has_committed.each do |c_work|
|
||||
c_work.save
|
||||
end
|
||||
end
|
||||
@contestwork.save
|
||||
if params[:student_path] && params[:student_path] == "true"
|
||||
redirect_to contestant_works_path(:work => @contestwork.id)
|
||||
else
|
||||
|
|
|
@ -3986,6 +3986,10 @@ def get_cw_status contest_work
|
|||
end
|
||||
elsif contest_work.work_status == 2
|
||||
str += '<span class="red_homework_btn_cir ml5">提交已截止</span>'
|
||||
elsif contest_work.work_status == 3
|
||||
str += '<span class="green_homework_btn_cir ml5">在线评审中</span>'
|
||||
elsif contest_work.work_status == 4
|
||||
str += '<span class="red_homework_btn_cir ml5">评审已截止</span>'
|
||||
end
|
||||
str
|
||||
end
|
||||
|
|
|
@ -18,15 +18,14 @@ module ContestantWorksHelper
|
|||
def set_final_score contestwork, contestant_work
|
||||
if contestwork.online_evaluation
|
||||
if contestwork.score_valid
|
||||
if ContestantWorkScore.find_by_sql("SELECT * FROM (SELECT * FROM contestant_work_scores WHERE contestant_work_id = #{contestant_work.id} AND reviewer_role = 2 ORDER BY created_at DESC) AS t GROUP BY user_id").count < 2
|
||||
judge_score = ContestantWorkScore.find_by_sql("SELECT AVG(score) AS score FROM (SELECT * FROM (SELECT * FROM contestant_work_scores WHERE contestant_work_id = #{contestant_work.id} AND reviewer_role = 2 ORDER BY created_at DESC) AS t GROUP BY user_id) AS a")
|
||||
contestant_work.work_score = contestant_work.judge_score
|
||||
else
|
||||
if ContestantWorkScore.find_by_sql("SELECT * FROM (SELECT * FROM contestant_work_scores WHERE contestant_work_id = #{contestant_work.id} AND reviewer_role = 2 ORDER BY created_at DESC) AS t GROUP BY user_id").count <= 2
|
||||
contestant_work.work_score = contestant_work.judge_score
|
||||
else
|
||||
judge_score = ContestantWorkScore.find_by_sql("SELECT (SUM(score)-MIN(score)-MAX(score))/(COUNT(score)-2) AS score FROM (SELECT * FROM (SELECT * FROM contestant_work_scores WHERE contestant_work_id = #{contestant_work.id} AND reviewer_role = 2 ORDER BY created_at DESC) AS t GROUP BY user_id) AS a")
|
||||
contestant_work.work_score = judge_score.first.score.try(:round, 2).to_f
|
||||
end
|
||||
@work.work_score = judge_score.first.score.try(:round, 2).to_f
|
||||
else
|
||||
judge_score = ContestantWorkScore.find_by_sql("SELECT AVG(score) AS score FROM (SELECT * FROM (SELECT * FROM contestant_work_scores WHERE contestant_work_id = #{contestant_work.id} AND reviewer_role = 2 ORDER BY created_at DESC) AS t GROUP BY user_id) AS a")
|
||||
@work.work_score = judge_score.first.score.try(:round, 2).to_f
|
||||
end
|
||||
else
|
||||
contestant_work.work_score = nil
|
||||
|
|
|
@ -76,4 +76,21 @@ module ContestsHelper
|
|||
end
|
||||
result
|
||||
end
|
||||
|
||||
def search_member_by_name_login_school members, name
|
||||
mems = []
|
||||
if name != ""
|
||||
name = name.to_s.downcase
|
||||
school_ids = School.where("name like '%#{name}%'").map{|school| school.id}
|
||||
members.each do |m|
|
||||
username = m.user[:lastname].to_s.downcase + m.user[:firstname].to_s.downcase
|
||||
if(m.user[:login].to_s.downcase.include?(name) || school_ids.include?(m.user.user_extensions[:school_id]) || username.include?(name))
|
||||
mems << m
|
||||
end
|
||||
end
|
||||
else
|
||||
mems = members
|
||||
end
|
||||
mems
|
||||
end
|
||||
end
|
||||
|
|
|
@ -15,6 +15,7 @@ class Contest < ActiveRecord::Base
|
|||
has_many :works
|
||||
has_many :contestant_work_projects, :dependent => :destroy
|
||||
has_many :boards, :dependent => :destroy, :order => "position ASC"
|
||||
has_many :files
|
||||
|
||||
|
||||
has_many :news, :dependent => :destroy, :include => :author
|
||||
|
@ -31,6 +32,10 @@ class Contest < ActiveRecord::Base
|
|||
|
||||
scope :visible, lambda {|*args| where(Contest.where("is_delete =?", 0).visible_condition(args.shift || User.current, *args)) }
|
||||
|
||||
def contest_judges
|
||||
self.contest_members.select{|cm| cm.roles.to_s.include?("Judge")}
|
||||
end
|
||||
|
||||
# 删除竞赛所有成员
|
||||
def delete_all_members
|
||||
if self.contest_members && self.contest_members.count > 0
|
||||
|
|
|
@ -1,4 +1,7 @@
|
|||
class ContestMessage < ActiveRecord::Base
|
||||
# Work:status:
|
||||
# nil:发布了作业; 1:截止时间到了提醒!;2:开启在线评审; 3:关闭在线评审; 4:匿评开始失败; 5:在线评审时间快到了
|
||||
|
||||
attr_accessible :content, :contest_message_id, :contest_message_type, :status, :viewed, :user_id, :contest_id
|
||||
|
||||
belongs_to :contest_message ,:polymorphic => true
|
||||
|
|
|
@ -26,6 +26,8 @@ class ContestantWork < ActiveRecord::Base
|
|||
end
|
||||
|
||||
def set_work_score
|
||||
set_final_score self.work,self
|
||||
if self.id
|
||||
set_final_score self.work,self
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -2,6 +2,7 @@ class ContestantWorkScore < ActiveRecord::Base
|
|||
belongs_to :contestant_work
|
||||
belongs_to :user
|
||||
attr_accessible :comment, :reviewer_role, :score, :contestant_work_id, :user_id
|
||||
acts_as_attachable
|
||||
|
||||
has_many :journals_for_messages
|
||||
end
|
||||
|
|
|
@ -114,6 +114,13 @@ class User < Principal
|
|||
has_many :apply_homeworks, :dependent => :destroy
|
||||
has_many :apply_resources, :dependent => :destroy
|
||||
#end
|
||||
#竞赛
|
||||
has_many :contests, :dependent => :destroy
|
||||
has_many :works, :dependent => :destroy
|
||||
has_many :contestant_works, :dependent => :destroy
|
||||
has_many :contestant_work_evaluation_distributions, :dependent => :destroy
|
||||
has_many :contestant_work_scores
|
||||
has_many :contestant_work_projects
|
||||
|
||||
has_and_belongs_to_many :groups, :after_add => Proc.new {|user, group| group.user_added(user)},
|
||||
:after_remove => Proc.new {|user, group| group.user_removed(user)}
|
||||
|
@ -392,6 +399,7 @@ class User < Principal
|
|||
user = User.current
|
||||
onclick_time = user.onclick_time.onclick_time
|
||||
course_count = CourseMessage.where("user_id =? and viewed =? and created_at >?", user.id, 0, onclick_time).count
|
||||
contest_count = ContestMessage.where("user_id =? and viewed =? and created_at >?", user.id, 0, onclick_time).count
|
||||
forge_count = ForgeMessage.where("user_id =? and viewed =? and created_at >?", user.id, 0, onclick_time).count
|
||||
user_feedback_count = UserFeedbackMessage.where("user_id =? and viewed =? and created_at >?", user.id, 0, onclick_time).count
|
||||
user_memo_count = MemoMessage.where("user_id =? and viewed =? and created_at >?", user.id, 0, onclick_time).count
|
||||
|
@ -399,7 +407,7 @@ class User < Principal
|
|||
at_count = AtMessage.where("user_id =? and viewed =? and created_at >?", user.id, 0, onclick_time).count
|
||||
org_count = OrgMessage.where("user_id=? and viewed =? and created_at >?", user.id,0, onclick_time).count
|
||||
applied_count = AppliedMessage.where("user_id=? and viewed =? and created_at >?", user.id, 0, onclick_time).count
|
||||
messages_count = course_count + forge_count + user_feedback_count + user_memo_count + system_messages_count + at_count + org_count + applied_count
|
||||
messages_count = course_count + contest_count + forge_count + user_feedback_count + user_memo_count + system_messages_count + at_count + org_count + applied_count
|
||||
end
|
||||
|
||||
# 查询指派给我的缺陷记录
|
||||
|
|
|
@ -0,0 +1,31 @@
|
|||
<% if source.id == 786 %>
|
||||
<img src="/images/game/appbanner.jpg" width="968" height="110" id="avatar_image"/>
|
||||
<% else %>
|
||||
<%= image_tag(url_to_avatar(source), :width => "968", :height => "110", :id => "avatar_image", :alt => "竞赛图片")%>
|
||||
<% end %>
|
||||
<% if is_admin %>
|
||||
<a class="banner-inner" href="javascript:void(0)" onclick="$('#upload_contest_logo').click();"></a>
|
||||
<a class="banner-notice" href="javascript:void(0)" onclick="$('#upload_contest_logo').click();">点击替换图片(968*110)</a>
|
||||
<%= file_field_tag 'avatar[image]',
|
||||
:id => 'upload_contest_logo',
|
||||
:class => 'undis upload_file',
|
||||
:size => "1",
|
||||
:multiple => true,
|
||||
:data => {
|
||||
:max_file_size => Setting.upload_avatar_max_size,
|
||||
:max_file_size_message => l(:error_upload_avatar_to_large, :max_size => number_to_human_size(Setting.upload_avatar_max_size.to_i)),
|
||||
:max_concurrent_uploads => Redmine::Configuration['max_concurrent_ajax_uploads'].to_i,
|
||||
:file_type => Redmine::Configuration['pic_types'].to_s,
|
||||
:type_support_message => l(:error_pic_type),
|
||||
:upload_path => upload_avatar_path(:format => 'js'),
|
||||
:description_placeholder => nil ,# l(:label_optional_description)
|
||||
:source_type => source.class.to_s,
|
||||
:source_id => source.id.to_s,
|
||||
:is_direct => 0
|
||||
} %>
|
||||
<!--</span>-->
|
||||
<%#= content_for(:header_tags) do %>
|
||||
<%#= javascript_include_tag '/javascripts/jq-upload/jquery.ui.widget', '/javascripts/jq-upload/jquery.iframe-transport', '/javascripts/jq-upload/jquery.fileupload', '/javascripts/jq-upload/upload' %>
|
||||
<%# end %>
|
||||
<% end %>
|
||||
<div class="cl"></div>
|
|
@ -1,4 +1,4 @@
|
|||
<% if @is_direct == '1' && (@source_type=='User'|| @source_type == 'Course' || @source_type == 'Project' || @source_type == 'Organization') %>
|
||||
<% if @is_direct == '1' && (@source_type=='User'|| @source_type == 'Course' || @source_type == 'Project' || @source_type == 'Organization'|| @source_type == 'Contest') %>
|
||||
var imgSpan = $("img[nhname='avatar_image']");
|
||||
imgSpan.attr({"src":'<%= "#{@urlfile.to_s}?#{Time.now.to_i}" %>'});
|
||||
<% else %>
|
||||
|
|
|
@ -26,9 +26,9 @@
|
|||
</div>
|
||||
|
||||
<% is_teacher = User.current.logged? && (User.current.admin? || User.current.admin_of_contest?(@board.contest)) %>
|
||||
<%# if is_teacher %>
|
||||
<%#= link_to "添加子栏目", settings_course_path(@board.course.id,'boards'), :class => "link-blue fr mt5" %>
|
||||
<%# end %>
|
||||
<% if is_teacher %>
|
||||
<%= link_to "添加子栏目", settings_contest_path(@board.contest.id, :tab => 'boards'), :class => "link-blue fr mt5" %>
|
||||
<% end %>
|
||||
</div>
|
||||
<div nhname="topic_form">
|
||||
<% if User.current.logged? %>
|
||||
|
|
|
@ -2,4 +2,8 @@
|
|||
$("#tbc_04").html("<%=escape_javascript(render :partial => 'courses/settings/boards_setting') %>");
|
||||
<% course_board = @course.boards.where("parent_id is NULL").first %>
|
||||
$("#board_children_list").html("<%= escape_javascript(render :partial => 'layouts/board_children_list', :locals => {:course_board => course_board})%>");
|
||||
<% elsif @contest %>
|
||||
$("#game-setting-content-3").html("<%=escape_javascript(render :partial => 'contests/boards') %>");
|
||||
<% contest_board = @contest.boards.where("parent_id is NULL").first %>
|
||||
$("#board_children_list").html("<%= escape_javascript(render :partial => 'layouts/contest_board_children_list', :locals => {:contest_board => contest_board})%>");
|
||||
<% end %>
|
|
@ -2,4 +2,9 @@
|
|||
$("#tbc_04").html("<%=escape_javascript(render :partial => 'courses/settings/boards_setting') %>");
|
||||
<% course_board = @course.boards.where("parent_id is NULL").first %>
|
||||
$("#board_children_list").html("<%= escape_javascript(render :partial => 'layouts/board_children_list', :locals => {:course_board => course_board})%>");
|
||||
<% elsif @contest %>
|
||||
hideModal();
|
||||
$("#game-setting-content-3").html("<%=escape_javascript(render :partial => 'contests/boards') %>");
|
||||
<% contest_board = @contest.boards.where("parent_id is NULL").first %>
|
||||
$("#board_children_list").html("<%= escape_javascript(render :partial => 'layouts/contest_board_children_list', :locals => {:contest_board => contest_board})%>");
|
||||
<% end %>
|
|
@ -2,4 +2,9 @@
|
|||
$("#tbc_04").html("<%=escape_javascript(render :partial => 'courses/settings/boards_setting') %>");
|
||||
<% course_board = @course.boards.where("parent_id is NULL").first %>
|
||||
$("#board_children_list").html("<%= escape_javascript(render :partial => 'layouts/board_children_list', :locals => {:course_board => course_board})%>");
|
||||
<% elsif @contest %>
|
||||
hideModal();
|
||||
$("#game-setting-content-3").html("<%=escape_javascript(render :partial => 'contests/boards') %>");
|
||||
<% contest_board = @contest.boards.where("parent_id is NULL").first %>
|
||||
$("#board_children_list").html("<%= escape_javascript(render :partial => 'layouts/contest_board_children_list', :locals => {:contest_board => contest_board})%>");
|
||||
<% end %>
|
|
@ -2,4 +2,8 @@
|
|||
$("#tbc_04").html("<%=escape_javascript(render :partial => 'courses/settings/boards_setting') %>");
|
||||
<% course_board = @course.boards.where("parent_id is NULL").first %>
|
||||
$("#board_children_list").html("<%= escape_javascript(render :partial => 'layouts/board_children_list', :locals => {:course_board => course_board})%>");
|
||||
<% elsif @contest %>
|
||||
$("#game-setting-content-3").html("<%=escape_javascript(render :partial => 'contests/boards') %>");
|
||||
<% contest_board = @contest.boards.where("parent_id is NULL").first %>
|
||||
$("#board_children_list").html("<%= escape_javascript(render :partial => 'layouts/contest_board_children_list', :locals => {:contest_board => contest_board})%>");
|
||||
<% end %>
|
|
@ -1,4 +1,4 @@
|
|||
<%= form_for('new_form', :remote => true, :method => :post,:url => add_score_contestant_works_path(work.id),:id=>'add_score_'+work.id.to_s) do |f|%>
|
||||
<%= form_for('new_form', :remote => true, :method => :post,:url => add_score_contestant_work_path(work.id),:id=>'add_score_'+work.id.to_s) do |f|%>
|
||||
<li >
|
||||
<span class="tit_fb"> 评价:</span>
|
||||
<%= f.text_area 'user_message', :class => 'hwork_ping_text', :id => 'score_comment_'+work.id.to_s, :placeholder => l(:text_caracters_maximum,:count=>500),:maxlength => 500 %>
|
||||
|
@ -40,11 +40,4 @@
|
|||
$('#about_hwork_'+id).html('');
|
||||
}
|
||||
}
|
||||
function submit_teacher_score(id){
|
||||
if (first_click_score) {
|
||||
first_click_score = false;
|
||||
$("#work_submit_"+id).parent().parent().submit();
|
||||
hideModal();
|
||||
}
|
||||
}
|
||||
</script>
|
|
@ -0,0 +1,9 @@
|
|||
<div class="syllabus_courses_box">
|
||||
<% @stundet_works.each_with_index do |student_work, i| %>
|
||||
<div class="syllabus_courses_list" id="student_work_<%= student_work.id%>" style="cursor: default; background-color:#f6f6f6;">
|
||||
<%= render :partial => 'contest_evaluation_group_work', :locals => {:student_work => student_work} %>
|
||||
</div>
|
||||
<div id="about_hwork_<%= student_work.id %>" class="about_hwork"></div>
|
||||
<% end %>
|
||||
</div>
|
||||
<div class="cl"></div>
|
|
@ -0,0 +1,68 @@
|
|||
<div class="sy_courses_open f14 fontGrey3">
|
||||
<div>
|
||||
<span class="fl" style="width:280px;" onclick="show_student_work('<%= contestant_work_path(student_work)%>');">
|
||||
<span class="hidden fl" style="max-width:220px;"><%= student_work.name %></span>
|
||||
<span class="fontGrey2 ml5 fl">
|
||||
<% if student_work.work_status %>
|
||||
<%= get_status student_work.work_status %>
|
||||
<% end %>
|
||||
</span>
|
||||
</span>
|
||||
<a href="javascript:void(0)" class="linkBlue2 fr" onclick="show_student_work('<%= contestant_work_path(student_work)%>');">评分</a>
|
||||
<div class="cl"></div>
|
||||
<% if @contestwork.work_detail_group.base_on_project %>
|
||||
<div class="pr">
|
||||
<span class="fl fontGrey2">关联项目:</span>
|
||||
<div class="fl projectName">
|
||||
<% if student_work.project.status != 9 && (student_work.project.is_public || User.current.member_of?(student_work.project) || User.current.admin? || User.current.admin_of_contest?(@contestwork.contest) || User.current.judge_of_contest?(@contestwork.contest)) %>
|
||||
<%= link_to student_work.project.name, project_path(student_work.project.id), :class => 'link-blue fl hidden', :style => "max-width:550px;", :title => "项目名称", :target => "_blank" %>
|
||||
<% elsif student_work.project.status != 9 %>
|
||||
<span class="fontBlue fr hidden" style="max-width:550px;" title="该项目是私有的"><%= student_work.project.name %></span>
|
||||
<% else %>
|
||||
<span class="fontGrey2 fr hidden" style="max-width:550px;" title="该项目已删除"><%= student_work.project.name %>(已删除)</span><% end %>
|
||||
<% project = student_work.project %>
|
||||
<div class="score-tip none tl f12" style="width:300px; top:-48px; right:-372px;">
|
||||
<em style="bottom:45px;"></em>
|
||||
<font style="bottom:45px;"></font>
|
||||
|
||||
<p class="fb break_word mw280"><%= project.name %><%= project.status == 9 ? "(已删除)" : ""%></p>
|
||||
|
||||
<p class="mb10">
|
||||
<span class="mr15">创建者:<%= project.creater %></span><span>成员数量:<%= project.members.count %></span></p>
|
||||
<% project_score = project.project_score %>
|
||||
<p>项目综合得分:<%= project.status == 9 ? 0 : static_project_score(project_score).to_i %></p>
|
||||
|
||||
<% if project.status != 9 %>
|
||||
<p>= 代码提交得分 + issue得分 + 资源得分 + 帖子得分</p>
|
||||
|
||||
<p>= <%= (project_score.changeset_num||0) * 4 %>
|
||||
+ <%= project_score.issue_num * 4 + project_score.issue_journal_num %> + <%= project_score.attach_num * 5 %>
|
||||
+ <%= project_score.board_num * 2 + project_score.board_message_num + project_score.news_num %></p>
|
||||
<% end %>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<% end %>
|
||||
</div>
|
||||
<div class="cl"></div>
|
||||
</div>
|
||||
<div class="fl sy_p_grey" style="margin-left: 0px;" onclick="show_student_work('<%= contestant_work_path(student_work)%>');">
|
||||
<span class="fl" style="width:180px;">提交时间:<%= format_date(student_work.commit_time) %></span>
|
||||
<span class="fl" style="width:105px; text-align: center">人数:<%=student_work.contestant_work_projects.count %>人</span>
|
||||
|
||||
<div class="flex-container fl" style="width:400px;">
|
||||
<div class="flex-cell">我的评分:
|
||||
<% my_score = ContestantWorkScore.where(:user_id => User.current.id,:contestant_work_id => student_work.id,:reviewer_role => 2).last %>
|
||||
<span class="<%= my_score.nil? ? 'c_grey' : score_color(my_score.score) %>"><%= my_score.nil? ? "--" : format("%.1f",my_score.score)%></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="cl"></div>
|
||||
|
||||
<script>
|
||||
$(".projectName").mouseenter(function () {
|
||||
$(this).children().next().show();
|
||||
}).mouseleave(function () {
|
||||
$(this).children().next().hide();
|
||||
});
|
||||
</script>
|
|
@ -0,0 +1,29 @@
|
|||
<table class="hwork-table-wrap" id="homework_table">
|
||||
<tr class="b_grey hworkH30">
|
||||
<th class="hworkList40 hworkH30 pl5 pr5">序号</th>
|
||||
<th class="hworkList50"> </th>
|
||||
<th class="hworkList230 pl5 pr5 hide-text">
|
||||
姓名
|
||||
</th>
|
||||
<th class="hworkList190">
|
||||
提交时间
|
||||
</th>
|
||||
<th class="hworkList140">
|
||||
我的评分
|
||||
</th>
|
||||
<th class="hworkList40 pl5 pr5 hide-text">
|
||||
</th>
|
||||
</tr>
|
||||
<%# end %>
|
||||
<% @stundet_works.each_with_index do |student_work, i| %>
|
||||
<% score_open = true %>
|
||||
<a name="<%= student_work.id%>"></a>
|
||||
<%= render :partial => "contest_evaluation_work", :locals => {:student_work => student_work, :index => i, :score_open => score_open} %>
|
||||
<tr>
|
||||
<td colspan="12">
|
||||
<div id="about_hwork_<%= student_work.id %>" class="about_hwork">
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<% end %>
|
||||
</table>
|
|
@ -1,9 +1,16 @@
|
|||
<div class="syllabus_courses_box">
|
||||
<% @stundet_works.each_with_index do |student_work, i| %>
|
||||
<div class="syllabus_courses_list" id="student_work_<%= student_work.id%>" onclick="show_student_work('<%= contestant_work_path(student_work)%>');" style="cursor: default; background-color:#f6f6f6;">
|
||||
<%= render :partial => 'contest_evaluation_un_group_work', :locals => {:student_work => student_work} %>
|
||||
</div>
|
||||
<div id="about_hwork_<%= student_work.id %>" class="about_hwork"></div>
|
||||
<% end %>
|
||||
</div>
|
||||
<div class="cl"></div>
|
||||
<% if @is_judge && @contestwork.online_evaluation && @contestwork.work_status < 3 %>
|
||||
<div class="pro_new_info mt50" style="width:720px;height:405px;">
|
||||
<div class="icons_tishi"><img src="/images/new_project/icons_smile.png" width="110" height="110" alt=""></div>
|
||||
<p class="sy_tab_con_p ">在线评审启动之前,无法查看具体作品</p>
|
||||
</div>
|
||||
<% else %>
|
||||
<div class="syllabus_courses_box">
|
||||
<% @stundet_works.each_with_index do |student_work, i| %>
|
||||
<div class="syllabus_courses_list" id="student_work_<%= student_work.id%>" style="cursor: default; background-color:#f6f6f6;">
|
||||
<%= render :partial => 'contest_evaluation_un_group_work', :locals => {:student_work => student_work} %>
|
||||
</div>
|
||||
<div id="about_hwork_<%= student_work.id %>" class="about_hwork"></div>
|
||||
<% end %>
|
||||
</div>
|
||||
<div class="cl"></div>
|
||||
<% end %>
|
|
@ -1,13 +1,14 @@
|
|||
<div class="sy_courses_open f14 fontGrey3">
|
||||
<div>
|
||||
<span class="fl" style="width:280px;">
|
||||
<span class="hidden fl" style="max-width:220px;"><%= student_work.name %></span>
|
||||
<span class="fontGrey2 ml5 fl">
|
||||
<% if student_work.work_status %>
|
||||
<%= get_status student_work.work_status %>
|
||||
<% end %>
|
||||
<span class="fl" style="width:280px;" onclick="show_student_work('<%= contestant_work_path(student_work)%>');">
|
||||
<span class="hidden fl" style="max-width:220px;"><%= student_work.name %></span>
|
||||
<span class="fontGrey2 ml5 fl">
|
||||
<% if student_work.work_status %>
|
||||
<%= get_status student_work.work_status %>
|
||||
<% end %>
|
||||
</span>
|
||||
</span>
|
||||
</span>
|
||||
<a href="javascript:void(0)" class="linkBlue2 fr" onclick="show_student_work('<%= contestant_work_path(student_work)%>');">查看</a>
|
||||
<div class="cl"></div>
|
||||
<% if @contestwork.work_detail_group.base_on_project %>
|
||||
<div class="pr">
|
||||
|
@ -45,13 +46,37 @@
|
|||
</div>
|
||||
<div class="cl"></div>
|
||||
</div>
|
||||
<div class="fl sy_p_grey" style="margin-left: 0px;">
|
||||
<div class="fl sy_p_grey" style="margin-left: 0px;" onclick="show_student_work('<%= contestant_work_path(student_work)%>');">
|
||||
<span class="fl" style="width:180px;">提交时间:<%= format_date(student_work.commit_time) %></span>
|
||||
<span class="fl" style="width:105px; text-align: center">人数:<%=student_work.contestant_work_projects.count %>人</span>
|
||||
|
||||
<div class="flex-container fl" style="width:400px;">
|
||||
<div class="flex-cell">评委评分:--</div>
|
||||
<div class="flex-cell">最终成绩:--</div>
|
||||
<div class="flex-cell">评委评分:
|
||||
<span class="<%= score_color student_work.judge_score %>"><%=student_work.judge_score.nil? ? "--" : format("%.1f",student_work.judge_score) %></span>
|
||||
<% unless student_work.judge_score.nil? %>
|
||||
<span class="<%= score_color student_work.judge_score %>">(<%= student_work.contestant_work_scores.where(:reviewer_role => 2).group_by(&:user_id).count%>)</span>
|
||||
<% end %>
|
||||
</div>
|
||||
<div class="flex-cell student_final_scor_info pr">最终成绩:
|
||||
<span class="<%= score_color student_work.work_score %>"><%=student_work.work_score.nil? ? "--" : format("%.1f",student_work.work_score) %></span>
|
||||
<% unless student_work.work_score.nil? %>
|
||||
<div class="contest-group-score-tip none tl" style="line-height: 18px;">
|
||||
<em></em>
|
||||
<font></font>
|
||||
评委平均分
|
||||
<span class="c_red"> <%= format("%.1f",student_work.judge_score < 0 ? 0 : student_work.judge_score)%> </span>分<br/>
|
||||
<% if !@contestwork.score_valid && student_work.contestant_work_scores.where(:reviewer_role => 2).group_by(&:user_id).count > 2 %>
|
||||
<% work_scores = student_work.contestant_work_scores.where(:reviewer_role => 2).order("score desc") %>
|
||||
去除最高分
|
||||
<span class="c_red"> <%= format("%.1f",work_scores.first.score < 0 ? 0 : work_scores.first.score) %> </span>分<br/>
|
||||
去除最低分
|
||||
<span class="c_red"> <%= format("%.1f",work_scores.last.score < 0 ? 0 : work_scores.last.score) %> </span>分<br/>
|
||||
<% end %>
|
||||
作品最终成绩为
|
||||
<span class="c_red"> <%= format("%.1f",student_work.work_score < 0 ? 0 : student_work.work_score)%> </span>分<br/>
|
||||
</div>
|
||||
<% end %>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="cl"></div>
|
||||
|
|
|
@ -1,34 +1,30 @@
|
|||
<table class="hwork-table-wrap" id="homework_table">
|
||||
<%# if @homework.homework_type == 1 %>
|
||||
<%#= render :partial => 'evaluation_un_common_title' %>
|
||||
<%# elsif @homework.homework_type == 2 %>
|
||||
<%#= render :partial => 'evaluation_un_pro_title' %>
|
||||
<%# elsif @homework.homework_type == 3 %>
|
||||
<%#= render :partial => 'evaluation_un_group_title' %>
|
||||
<%# else %>
|
||||
<tr class="b_grey hworkH30">
|
||||
<th class="hworkList40 hworkH30 pl5 pr5">序号</th>
|
||||
<th class="hworkList50"> </th>
|
||||
<th class="hworkList190 pl5 pr5 hide-text">
|
||||
姓名
|
||||
</th>
|
||||
|
||||
<th class="hworkList80 pl5 pr5 hide-text">
|
||||
</th>
|
||||
|
||||
<th class="hworkList130">
|
||||
状态
|
||||
</th>
|
||||
<th class="hworkList100">
|
||||
评委评分
|
||||
</th>
|
||||
|
||||
<th class="hworkList100">
|
||||
最终成绩
|
||||
</th>
|
||||
</tr>
|
||||
<%# end %>
|
||||
<% @stundet_works.each_with_index do |student_work, i| %>
|
||||
<%# end %>
|
||||
<% if @is_judge && @contestwork.online_evaluation && @contestwork.work_status < 3 %>
|
||||
<div class="pro_new_info mt50" style="width:720px;height:405px;">
|
||||
<div class="icons_tishi"><img src="/images/new_project/icons_smile.png" width="110" height="110" alt=""></div>
|
||||
<p class="sy_tab_con_p ">在线评审启动之前,无法查看具体作品</p>
|
||||
</div>
|
||||
<% else %>
|
||||
<table class="hwork-table-wrap" id="homework_table">
|
||||
<tr class="b_grey hworkH30">
|
||||
<th class="hworkList40 hworkH30 pl5 pr5">序号</th>
|
||||
<th class="hworkList50"> </th>
|
||||
<th class="hworkList230 pl5 pr5 hide-text">
|
||||
姓名
|
||||
</th>
|
||||
<th class="hworkList130">
|
||||
提交时间
|
||||
</th>
|
||||
<th class="hworkList100">
|
||||
评委评分
|
||||
</th>
|
||||
<th class="hworkList100">
|
||||
最终成绩
|
||||
</th>
|
||||
<th class="hworkList40 pl5 pr5 hide-text">
|
||||
</th>
|
||||
</tr>
|
||||
<% @stundet_works.each_with_index do |student_work, i| %>
|
||||
<% score_open = true %>
|
||||
<a name="<%= student_work.id%>"></a>
|
||||
<%= render :partial => "contest_evaluation_un_work", :locals => {:student_work => student_work, :index => i, :score_open => score_open} %>
|
||||
|
@ -38,5 +34,6 @@
|
|||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<% end %>
|
||||
</table>
|
||||
<% end %>
|
||||
</table>
|
||||
<% end %>
|
||||
|
|
|
@ -3,24 +3,42 @@
|
|||
<td class="hworkPortrait pr10 float-none">
|
||||
<%= link_to(image_tag(url_to_avatar(student_work.user),:width =>"40",:height => "40",:style => "display:block;"),user_path(student_work.user), :target => '_blank') %>
|
||||
</td>
|
||||
<td class="hworkStName190 pr10 float-none hidden" title="<%= student_work.user.show_name%>" style="cursor:pointer; text-align: center;">
|
||||
<td class="hworkList230 pl5 pr5 float-none hidden" title="<%= student_work.user.show_name%>" style="cursor:pointer; text-align: center;">
|
||||
<%= link_to student_work.user.show_name ,user_path(student_work.user), :target => '_blank' %>
|
||||
</td>
|
||||
|
||||
<td class="hworkList80 student_work_<%= student_work.id%>" onclick="show_student_work('<%= contestant_work_path(student_work)%>');">
|
||||
</td>
|
||||
|
||||
<td class="hworkList130 c_grey student_work_<%= student_work.id%>" onclick="show_student_work('<%= contestant_work_path(student_work)%>');" style="cursor: pointer;">
|
||||
<% if student_work.work_status%>
|
||||
<%=get_status student_work.work_status %>
|
||||
<%=format_time student_work.commit_time %>
|
||||
</td>
|
||||
<td class="hworkList100 <%= score_color student_work.judge_score %>">
|
||||
<%=student_work.judge_score.nil? ? "--" : format("%.1f",student_work.judge_score) %>
|
||||
<% unless student_work.judge_score.nil? %>
|
||||
<span>(<%= student_work.contestant_work_scores.where(:reviewer_role => 2).group_by(&:user_id).count%>)</span>
|
||||
<% end %>
|
||||
</td>
|
||||
<td class="hworkList100 <%= score_color nil %>">
|
||||
--
|
||||
</td>
|
||||
|
||||
<td class="hworkList100 <%= score_color nil %> student_final_scor_info pr">
|
||||
--
|
||||
<td class="hworkList100 <%= score_color student_work.work_score %> student_final_scor_info pr">
|
||||
<%=student_work.work_score.nil? ? "--" : format("%.1f",student_work.work_score) %>
|
||||
<% unless student_work.work_score.nil? %>
|
||||
<div class="contest-score-tip none tl" style="line-height: 18px;">
|
||||
<em></em>
|
||||
<font></font>
|
||||
评委平均分
|
||||
<span class="c_red"> <%= format("%.1f",student_work.judge_score < 0 ? 0 : student_work.judge_score)%> </span>分<br/>
|
||||
<% if !@contestwork.score_valid && student_work.contestant_work_scores.where(:reviewer_role => 2).group_by(&:user_id).count > 2 %>
|
||||
<% work_scores = student_work.contestant_work_scores.where(:reviewer_role => 2).order("score desc") %>
|
||||
去除最高分
|
||||
<span class="c_red"> <%= format("%.1f",work_scores.first.score < 0 ? 0 : work_scores.first.score) %> </span>分<br/>
|
||||
去除最低分
|
||||
<span class="c_red"> <%= format("%.1f",work_scores.last.score < 0 ? 0 : work_scores.last.score) %> </span>分<br/>
|
||||
<% end %>
|
||||
作品最终成绩为
|
||||
<span class="c_red"> <%= format("%.1f",student_work.work_score < 0 ? 0 : student_work.work_score)%> </span>分<br/>
|
||||
</div>
|
||||
<% end %>
|
||||
</td>
|
||||
<td class="hworkList40 student_work_<%= student_work.id%>">
|
||||
<a href="javascript:void(0)" class="linkBlue2" onclick="show_student_work('<%= contestant_work_path(student_work)%>');">查看</a>
|
||||
</td>
|
||||
<td><div style="position:relative;"><div class="hworkTip" style="display: none" id="work_click_<%= student_work.id%>"><em></em><span></span><font class="fontGrey2">点击查看详情</font></div></div></td>
|
||||
</tr>
|
||||
|
|
|
@ -0,0 +1,33 @@
|
|||
<tr class="hworkListRow" id="student_work_<%= student_work.id%>">
|
||||
<td class="hworkList40 pl5 pr5" id="work_num_<%=student_work.id %>"><%=index + 1 %></td>
|
||||
<td class="hworkPortrait pr10 float-none">
|
||||
<%= link_to(image_tag(url_to_avatar(student_work.user),:width =>"40",:height => "40",:style => "display:block;"),user_path(student_work.user), :target => '_blank') %>
|
||||
</td>
|
||||
<td class="hworkList230 pl5 pr5 float-none hidden" title="<%= student_work.user.show_name%>" style="cursor:pointer; text-align: center;">
|
||||
<%= link_to student_work.user.show_name ,user_path(student_work.user), :target => '_blank' %>
|
||||
</td>
|
||||
|
||||
<td class="hworkList190 c_grey student_work_<%= student_work.id%>" onclick="show_student_work('<%= contestant_work_path(student_work)%>');" style="cursor: pointer;">
|
||||
<%=format_time student_work.commit_time %>
|
||||
</td>
|
||||
|
||||
<% my_score = ContestantWorkScore.where(:user_id => User.current.id,:contestant_work_id => student_work.id,:reviewer_role => 2).last %>
|
||||
<td class="hworkList140 <%= my_score.nil? ? 'c_grey' : score_color(my_score.score) %> student_final_scor_info pr">
|
||||
<%= my_score.nil? ? "--" : format("%.1f",my_score.score)%>
|
||||
</td>
|
||||
<td class="hworkList40 student_work_<%= student_work.id%>">
|
||||
<a href="javascript:void(0)" class="linkBlue2" onclick="show_student_work('<%= contestant_work_path(student_work)%>');">评分</a>
|
||||
</td>
|
||||
<td><div style="position:relative;"><div class="hworkTip" style="display: none" id="work_click_<%= student_work.id%>"><em></em><span></span><font class="fontGrey2">点击进行评分</font></div></div></td>
|
||||
</tr>
|
||||
<%# end %>
|
||||
<script type="text/javascript">
|
||||
$(".student_work_<%= student_work.id%>").mouseenter(function(){
|
||||
if($("#about_hwork_<%= student_work.id%>").html().trim() == "") {
|
||||
$("#work_click_<%= student_work.id%>").show();
|
||||
}
|
||||
}).mouseleave(function(){
|
||||
$("#work_click_<%= student_work.id%>").hide();
|
||||
}).mouse;
|
||||
</script>
|
||||
|
|
@ -38,9 +38,17 @@
|
|||
|
||||
<div class="fl">
|
||||
<% if @contestwork.work_type != 3%>
|
||||
<%= render :partial => "contest_evaluation_un_title"%>
|
||||
<% if @is_evaluation && !@stundet_works.empty? %>
|
||||
<%= render :partial => "contest_evaluation_title"%>
|
||||
<% else%>
|
||||
<%= render :partial => "contest_evaluation_un_title"%>
|
||||
<% end%>
|
||||
<% else %>
|
||||
<%= render :partial => "contest_evaluation_un_group"%>
|
||||
<% if @is_evaluation && !@stundet_works.empty? %>
|
||||
<%= render :partial => "contest_evaluation_group"%>
|
||||
<% else %>
|
||||
<%= render :partial => "contest_evaluation_un_group"%>
|
||||
<% end%>
|
||||
<% end %>
|
||||
</div>
|
||||
<div class="cl"></div>
|
||||
|
|
|
@ -1,16 +1,14 @@
|
|||
<ul class="ping_box_ul <%= is_last ? '' : 'ping_line'%> fl">
|
||||
<% show_real_name = @is_teacher || score.user == User.current || score.reviewer_role != 3 %>
|
||||
<%= link_to image_tag(url_to_avatar(show_real_name ? score.user : ""), :width => "34", :height => "34"), show_real_name ? user_path(score.user) : "javascript:void(0)",:class => "ping_pic fl" %>
|
||||
<% show_real_score = @contestwork.score_open || @is_teacher || score.contestant_work.user == User.current || score.user == User.current %>
|
||||
<%= link_to image_tag(url_to_avatar(score.user), :width => "34", :height => "34"), user_path(score.user), :class => "ping_pic fl" %>
|
||||
<div class="pingBoxTit">
|
||||
<%= link_to show_real_name ? score.user.show_name : "匿名", show_real_name ? user_path(score.user) : "javascript:void(0)", :title => show_real_name ? score.user.show_name : "匿评用户", :class => "linkBlue fl" %>
|
||||
<%= link_to score.user.show_name, user_path(score.user), :title => score.user.show_name, :class => "linkBlue fl" %>
|
||||
<span class="ml5 fl">
|
||||
(<%= student_work_score_role score%>)
|
||||
(评委)
|
||||
</span>
|
||||
<% unless score.score.nil? %>
|
||||
<span class="ml20 fl">评分:</span>
|
||||
<a href="javascript:void(0);" class="c_orange fl" >
|
||||
<%= show_real_score ? score.score : "**" %>分
|
||||
<%= score.score %>分
|
||||
</a>
|
||||
<% end %>
|
||||
<!--<a href="javascript:void(0);" class="fr linkBlue mr5" onclick="$('#add_score_reply_<%#= score.id%>').slideToggle();">回复</a>-->
|
||||
|
|
|
@ -75,15 +75,15 @@
|
|||
<% end%>
|
||||
<div class="cl"></div>
|
||||
</li>
|
||||
<!--<li >-->
|
||||
<!--<%# if @contestwork.online_evaluation && User.current.judge_of_contest?(@contestwork.contest) && @contestwork.work_status == 3 %>-->
|
||||
<!--<!– 老师 || 开启匿评状态 && 不是当前用户自己的作品 –>-->
|
||||
<!--<div id="add_student_score_<%#= work.id%>" class="mt10 evaluation">-->
|
||||
<!--<%#= render :partial => 'add_score',:locals => {:work => work,:score => score,:is_member_work => is_member_work}%>-->
|
||||
<!--</div>-->
|
||||
<!--<%# end%>-->
|
||||
<!--<div class="cl"></div>-->
|
||||
<!--</li>-->
|
||||
<li >
|
||||
<% if @is_evaluation %>
|
||||
<!-- 评委&&评审中 -->
|
||||
<div id="add_student_score_<%= work.id%>" class="mt10 evaluation">
|
||||
<%= render :partial => 'add_score',:locals => {:work => work,:score => score,:is_member_work => is_member_work}%>
|
||||
</div>
|
||||
<% end%>
|
||||
<div class="cl"></div>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<!--<div id="revise_attachment">-->
|
||||
|
@ -104,9 +104,9 @@
|
|||
<!--</ul>-->
|
||||
<% end %>
|
||||
|
||||
<!--<div class="ping_box fl" id="score_list_<%#= work.id%>" style="<%#= student_work_scores.empty? ? 'padding:0px;' : ''%>">-->
|
||||
<!--<%#= render :partial => 'contestant_work_score_records', :locals => {:student_work_scores => student_work_scores, :is_member_work => is_member_work} %>-->
|
||||
<!--</div>-->
|
||||
<div class="ping_box fl" id="score_list_<%= work.id%>" style="<%= student_work_scores.empty? ? 'padding:0px;' : ''%>">
|
||||
<%= render :partial => 'contestant_work_score_records', :locals => {:student_work_scores => student_work_scores, :is_member_work => is_member_work} %>
|
||||
</div>
|
||||
<div class="cl"></div>
|
||||
<!---ping_box end--->
|
||||
<a href="javascript:void(0);" class="linkBlue mt5 mb5" style="margin-left:auto; margin-right: auto; display:block; width: 24px;" onclick="$('#about_hwork_<%= work.id%>').html('');">收起</a>
|
||||
|
|
|
@ -9,9 +9,9 @@ var num = $("#work_num_<%= @work.id%>").html();
|
|||
$("#score_list_<%= @work.id%>").removeAttr("style");
|
||||
|
||||
<% if @contestwork.work_type == 3 %>
|
||||
$("#student_work_<%= @work.id%>").html("<%= escape_javascript(render :partial => 'contest_evaluation_un_group_work', :locals => {:student_work => @work}) %>");
|
||||
$("#student_work_<%= @work.id%>").html("<%= escape_javascript(render :partial => 'contest_evaluation_group_work', :locals => {:student_work => @work}) %>");
|
||||
<% else %>
|
||||
$("tr[id='student_work_<%= @work.id%>']").replaceWith("<%= escape_javascript(render :partial => 'contest_evaluation_un_work',:locals => {:student_work => @work, :index => 1, :score_open => score_open}) %>");
|
||||
$("tr[id='student_work_<%= @work.id%>']").replaceWith("<%= escape_javascript(render :partial => 'contest_evaluation_work',:locals => {:student_work => @work, :index => 1, :score_open => score_open}) %>");
|
||||
$("#work_num_<%= @work.id%>").html(num);
|
||||
<% end %>
|
||||
|
||||
|
|
|
@ -4,6 +4,6 @@ if($("#about_hwork_<%= @work.id%>").children().length > 0){
|
|||
else{
|
||||
$(".about_hwork").html("");
|
||||
|
||||
$("#about_hwork_<%= @work.id%>").html("<%= escape_javascript(render :partial => 'show',:locals => {:work =>@work}) %>");
|
||||
$("#about_hwork_<%= @work.id%>").html("<%= escape_javascript(render :partial => 'show',:locals => {:work =>@work, :score => @score, :student_work_scores => @student_work_scores}) %>");
|
||||
$('#score_<%= @work.id%>').peSlider({range: 'min'});
|
||||
}
|
|
@ -1,15 +1,21 @@
|
|||
<div class="pro_new_setting_conbox " style="width:100%; border:none;">
|
||||
<div class=" sy_new_tchbox clear " style="margin-left:10px; margin-right:10px; " >
|
||||
<ul class="pro_newsetting_con mb15">
|
||||
<li class="mb10 clear">
|
||||
<label class=" fl">新增子栏目名称 : </label>
|
||||
<input type="text" class="w695 fl" placeholder=" 请输入子栏目名称">
|
||||
</li>
|
||||
</ul>
|
||||
<a href="javascript:void(0);" class="fr sy_btn_grey ">取消</a><a href="javascript:void(0);" class="fr sy_btn_blue mr5">保存</a>
|
||||
<% board = @contest.boards.where("parent_id is NULL").first %>
|
||||
<div class="pro_new_setting_conbox" style="width:100%; border:none;">
|
||||
<div class="sy_new_tchbox clear undis" style="margin-left:10px; margin-right:10px;" id="add_sub_board">
|
||||
<%= form_tag url_for(:controller => 'boards', :action => 'create', :contest_id => @contest.id, :board_id => board.id), :id=> 'add_board_form_subboard',:remote => true do %>
|
||||
<ul class="pro_newsetting_con mb15">
|
||||
<li class="mb10 clear">
|
||||
<label class="fl">新增子栏目名称 : </label>
|
||||
<input id="subfield_name" name="name" placeholder="请输入子栏目名称" maxlength="30" class="w695 fl h28" type="text">
|
||||
<div class="cl"></div>
|
||||
<span id="new_notice" class="undis ml10 fl c_red">名称不能为空</span>
|
||||
</li>
|
||||
</ul>
|
||||
<a href="javascript:void(0);" class="fr sy_btn_grey" onclick="$('#add_sub_board').toggle();">取消</a>
|
||||
<a href="javascript:void(0);" class="fr sy_btn_blue mr5" id="subMenuSubmit">保存</a>
|
||||
<% end %>
|
||||
</div>
|
||||
<div class=" clear ml10 mr10" >
|
||||
<table class="sy_new_table clearfix mb15 " cellpadding="0" cellspacing="0">
|
||||
<div class="clear ml10 mr10">
|
||||
<table class="sy_new_table clearfix mb15" cellpadding="0" cellspacing="0">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>名称</th>
|
||||
|
@ -18,23 +24,85 @@
|
|||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th class="game-text-left"><span class=" ml20"></span>竞赛讨论区</th>
|
||||
<th class="game-text-right"><a href="javascript:void(0);" class=" sy_btn_green mr5 ">添加子栏目</a></th>
|
||||
<td class="game-text-left"><span class="ml20"></span>竞赛讨论区</td>
|
||||
<td class="game-text-right"><a href="javascript:void(0);" class="sy_btn_green mr5" onclick="$('#add_sub_board').toggle();">添加子栏目</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class="game-text-left"><span class=" ml40"></span>技术讨论区</th>
|
||||
<th class="game-text-right"><a href="javascript:void(0);" class=" sy_btn_blue mr5 ">下移</a><a href="javascript:void(0);" class=" sy_btn_blue mr5 ">编辑</a><a href="javascript:void(0);" class=" sy_btn_grey mr5 ">删除</a></th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class="game-text-left"><span class=" ml40"></span>学术论区</th>
|
||||
<th class="game-text-right"><a href="javascript:void(0);" class=" sy_btn_blue mr5 ">上移</a><a href="javascript:void(0);" class=" sy_btn_blue mr5 ">下移</a><a href="javascript:void(0);" class=" sy_btn_blue mr5 ">编辑</a><a href="javascript:void(0);" class=" sy_btn_grey mr5 ">删除</a></th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class="game-text-left"><span class=" ml40"></span>学术论区</th>
|
||||
<th class="game-text-right"><a href="javascript:void(0);" class=" sy_btn_blue mr5 ">上移</a><a href="javascript:void(0);" class=" sy_btn_blue mr5 ">编辑</a><a href="javascript:void(0);" class=" sy_btn_grey mr5 ">删除</a></th>
|
||||
</tr>
|
||||
|
||||
<% count = board.children.count %>
|
||||
<% board.children.reorder("position asc").each_with_index do |board, i|%>
|
||||
<tr>
|
||||
<td class="game-text-left">
|
||||
<div id="board_sub_show_<%= board.id %>" class="ml40 w350 hidden" title="<%=board.name %>"><%=board.name %></div>
|
||||
<div id="board_sub_edit_<%= board.id %>" style="display:none;" class="ml40">
|
||||
<input type="text" name="name" class="h28 w300" id="board_sub_name_<%=board.id %>" onblur="update_sub_board_name('#board_sub_show_<%= board.id %>','#board_sub_edit_<%= board.id %>','<%= board.id %>','<%= @contest.id %>',$(this).val());" value="<%= board.name %>"/>
|
||||
</div>
|
||||
</td>
|
||||
<td class="game-text-right">
|
||||
<% unless i == 0 %>
|
||||
<%= link_to('上移', {:controller => 'boards', :action => 'update_position', :id => board.id, :contest_id => @contest.id, :opr => 'up'},:remote => true, :method => 'post', :class => "sy_btn_blue mr5", :title => '上移') %>
|
||||
<% end %>
|
||||
<% if i < count - 1 %>
|
||||
<%= link_to('下移', {:controller => 'boards', :action => 'update_position', :id => board.id, :contest_id => @contest.id, :opr => 'down'},:remote => true, :method => 'post', :class => "sy_btn_blue mr5", :title => '下移') %>
|
||||
<% end %>
|
||||
<a href="javascript:void(0);" class="sy_btn_blue mr5" onclick="edit('#board_sub_show_<%= board.id %>','#board_sub_edit_<%= board.id %>');">编辑</a>
|
||||
<a href="javascript:void(0);" class="sy_btn_blue mr5" onclick="delete_confirm_box_2('<%=contest_board_path(board, :contest_id => @contest.id) %>', '确定要删除<%=board.name %>吗?')">删除</a>
|
||||
</td>
|
||||
</tr>
|
||||
<% end %>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
$(function(){
|
||||
$("#subMenuSubmit").one('click', function(){
|
||||
sub_board_submit();
|
||||
});
|
||||
});
|
||||
function sub_board_submit(){
|
||||
if ($("#subfield_name").val().trim() != ""){
|
||||
$("#new_notice").hide();
|
||||
$("#add_board_form_subboard").submit();
|
||||
} else {
|
||||
$("#new_notice").show();
|
||||
$("#subMenuSubmit").one('click', function(){
|
||||
sub_board_submit();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function update_sub_board_name(show_id, edit_id, field_id, domain_id, input_value) {
|
||||
if (input_value.trim() != "" && $(show_id).html().trim() != input_value.trim()) {
|
||||
var htmlvalue = '<div id="muban_popup_box" style="width:300px;"><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 f16 fontGrey7">确定修改为' + input_value + '?</p><div class="cl"></div><a href="javascript:void(0)" class="fr sy_btn_blue mt10"' +
|
||||
' style="margin-right: 92px;" onclick="update_confirm(1,' + field_id + ',' + domain_id + ');">确定</a>'+
|
||||
'<a href="javascript:void(0);" class="fr sy_btn_grey mt10 mr10" onclick="update_confirm(2,' + field_id + ',' + domain_id + ');">取消</a></div></div>';
|
||||
pop_box_new(htmlvalue, 300, 140);
|
||||
}
|
||||
$(show_id).show();
|
||||
$(edit_id).hide();
|
||||
}
|
||||
|
||||
function update_confirm(type, field_id, domain_id){
|
||||
if(type == 1){
|
||||
$.ajax({
|
||||
url: "/boards/" + field_id + "/update_name?contest_id=" + domain_id + "&name=" + $("#board_sub_name_"+field_id).val(),
|
||||
type: 'put'
|
||||
});
|
||||
} else {
|
||||
hideModal();
|
||||
$("#board_sub_edit_"+field_id).children("input").val($("#board_sub_show_"+field_id).html().trim());
|
||||
}
|
||||
}
|
||||
|
||||
function edit(show_id, edit_id) {
|
||||
$(show_id).toggle();
|
||||
$(edit_id).toggle();
|
||||
$(edit_id).find('input').focus();
|
||||
$(edit_id).find('input').on('keypress', function (e) {
|
||||
if (e.keyCode == 13) {
|
||||
this.blur();
|
||||
}
|
||||
})
|
||||
}
|
||||
</script>
|
|
@ -0,0 +1,37 @@
|
|||
<% if @members.count > 0 %>
|
||||
<table class="sy_new_table clearfix" cellpadding="0" cellspacing="0">
|
||||
<thead>
|
||||
<tr class="clearfix">
|
||||
<th style="width:50px;">序号</th>
|
||||
<th style="width:150px">姓名</th>
|
||||
<th style="width:150px;">登录名</th>
|
||||
<th style="width:368px; ">单位</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<% @members.each_with_index do |member, index| %>
|
||||
<% user = member.user %>
|
||||
<tr class="clearfix">
|
||||
<td><%= index + 1%></td>
|
||||
<td>
|
||||
<%= link_to image_tag(url_to_avatar(user), :width => "30", :height => "30", :style => "display: block;"), user_path(user), :class => 'sy_class_users_st fl mt5 mr5' ,:alt => "用户头像", :target => '_blank' %>
|
||||
<%= link_to user.show_name, user_path(user), :class => 'fl sy_class_users_st_name ml5', :style => "width: 105px; text-align: left;", :title => "#{user.show_name}", :target => '_blank' %>
|
||||
<div class="cl"></div>
|
||||
</td>
|
||||
<td><span class="sy_new_name ml15" ><%= user.login%></span></td>
|
||||
<td><%=user.user_extensions.school ? user.user_extensions.school.name : '--' %></td>
|
||||
</tr>
|
||||
<% end %>
|
||||
</tbody>
|
||||
</table>
|
||||
<div style="text-align:center;">
|
||||
<div class="pages" style="width:auto; display:inline-block;">
|
||||
<ul id="homework_pository_ref_pages">
|
||||
<%= pagination_links_full @mem_pages, @members_count, :per_page_links => false, :remote => @is_remote, :flag => true, :is_new => true%>
|
||||
</ul>
|
||||
<div class="cl"></div>
|
||||
</div>
|
||||
</div>
|
||||
<% else %>
|
||||
<%= render :partial => 'users/no_data'%>
|
||||
<% end %>
|
|
@ -9,11 +9,12 @@
|
|||
|
||||
<div class="cl"></div>
|
||||
<div class="banner-game">
|
||||
<% if @contest.id == 786 %>
|
||||
<img src="/images/game/appbanner.jpg" width="968" height="110"/>
|
||||
<% else %>
|
||||
<img src="/images/game/banner-game.png" width="968" height="110"/>
|
||||
<%= image_tag(url_to_avatar(@contest), :width => "968", :height => "110", :alt => "竞赛图片", :id=>'nh_source_tx')%>
|
||||
<% if User.current.admin_of_contest?(@contest) || User.current.admin? %>
|
||||
<a class="banner-inner" href="<%=my_clear_user_avatar_temp_path(:contest => @contest.id) %>" data-remote="true"></a>
|
||||
<a class="banner-notice" href="<%=my_clear_user_avatar_temp_path(:contest => @contest.id) %>" data-remote="true">点击替换图片(968*110)</a>
|
||||
<% end %>
|
||||
<%#=render :partial => 'avatar/new_contest_avatar_form', :locals => {source: @contest, is_admin: User.current.admin_of_contest?(@contest) || User.current.admin?} %>
|
||||
</div>
|
||||
<div class="sy_class_info fl">
|
||||
<div class="sy_class_titbox">
|
||||
|
@ -22,9 +23,9 @@
|
|||
<div class="cl"></div>
|
||||
</div>
|
||||
<p class="sy_cgrey ">
|
||||
<span class=" mr15">管理员:<a class="sy_cblue" id="admin_num"><%= contest_managers(@contest).count %></a></span>
|
||||
<span class=" mr15">评委:<a class="sy_cblue" id="judge_num"><%= contest_judges(@contest).count %></a></span>
|
||||
<span class=" mr15">参赛者:<a class="sy_cblue" id="contestant_num"><%= contest_contestants(@contest).count %></a></span>
|
||||
<span class=" mr15">管理员:<a class="sy_cblue" href="<%= member_contest_path(@contest, :role => 1)%>" id="admin_num"><%= contest_managers(@contest).count %></a></span>
|
||||
<span class=" mr15">评委:<a class="sy_cblue" href="<%= member_contest_path(@contest, :role => 2)%>" id="judge_num"><%= contest_judges(@contest).count %></a></span>
|
||||
<span class=" mr15">参赛者:<a class="sy_cblue" href="<%= member_contest_path(@contest, :role => 3)%>" id="contestant_num"><%= contest_contestants(@contest).count %></a></span>
|
||||
</p>
|
||||
</div>
|
||||
<% if User.current.member_of_contest?(@contest) %>
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
<table class="sy_new_table clearfix mb15" cellpadding="0" cellspacing="0">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>序号</th>
|
||||
<th style="width:320px;">用户</th>
|
||||
<th style="width: 35px;">序号</th>
|
||||
<th style="width:320px;">姓名</th>
|
||||
<th>角色</th>
|
||||
<th class="sy_new_namebox">操作</th>
|
||||
</tr>
|
||||
|
|
|
@ -0,0 +1,51 @@
|
|||
<div id="sy_popup_box" style="width:1000px;">
|
||||
<div class="sy_popup_top">
|
||||
<h3 class="fl">上传图片</h3>
|
||||
<a href="javascript:void(0);" class="sy_icons_close fr" onclick="hideModal()"></a>
|
||||
<div class="cl"></div>
|
||||
</div>
|
||||
<div class="">
|
||||
<div style="margin: 10px 20px;">
|
||||
<a type="button" class="BlueCirBtn" onclick="$('#upload_avatar').click();">上传图片</a>
|
||||
<%= file_field_tag 'avatar[image]',
|
||||
:id => "upload_avatar",
|
||||
:style => 'display:none;',#added by young
|
||||
:size => "1",
|
||||
:multiple => false,
|
||||
:onchange => 'addInputAvatar(this);',
|
||||
:data => {
|
||||
:max_file_size => Setting.attachment_max_size.to_i.kilobytes,
|
||||
:max_file_size_message => l(:error_attachment_too_big, :max_size => number_to_human_size(Setting.attachment_max_size.to_i.kilobytes)),
|
||||
:max_concurrent_uploads => Redmine::Configuration['max_concurrent_ajax_uploads'].to_i,
|
||||
:file_type => Redmine::Configuration['pic_types'].to_s,
|
||||
:type_support_message => l(:error_pic_type),
|
||||
:upload_path => upload_avatar_path(:format => 'js'),
|
||||
:description_placeholder => nil ,# l(:label_optional_description)
|
||||
:source_type => source.class.to_s,
|
||||
:source_id => source.id.to_s,
|
||||
:is_direct => 1
|
||||
} %>
|
||||
<!--<br/>-->
|
||||
<!--<span>只支持jpg,png,gif,大小不超过5M</span>-->
|
||||
</div>
|
||||
<div class="cl"></div>
|
||||
<div>
|
||||
<p style="text-align: center; font-size: 16px;">预览(968px*110px)</p>
|
||||
<%= image_tag(url_to_avatar(source), :style=>"width:968px;height:110px;",:class=>"mb5 mt10 ml16",:nhname=>'avatar_image') %>
|
||||
<br/>
|
||||
</div>
|
||||
<div class="cl mb10"></div>
|
||||
<a href="<%= url_for(:controller => 'my', :action => 'save_user_avatar', :source_id => source.id, :source_type => source.class.to_s) %>" data-remote="true" class="sy_btn_blue fr mr16 f14">确 定</a>
|
||||
<a href="javascript:hideModal();" class="fr sy_btn_grey mr5 f14"> 取 消</a>
|
||||
<div class="cl"></div>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
function submit_join_course(){
|
||||
|
||||
}
|
||||
|
||||
function disable_contestant_choose(){
|
||||
|
||||
}
|
||||
</script>
|
|
@ -0,0 +1,23 @@
|
|||
<div class="sy_class_r fr ml10">
|
||||
<h3 class="game-setting-h3 clear">
|
||||
<span class="ml15"></span>
|
||||
<%= @role == '1' ? '管理员' : @role == '2' ? '评委' : '参赛者' %>列表
|
||||
<% if User.current.admin_of_contest?(@contest) %>
|
||||
<%=link_to "成员管理", {:controller => 'contests', :action => 'settings', :id => @contest.id, :tab=>'member'}, :class => 'fr mr15 sy_cblue'%>
|
||||
<% end %>
|
||||
</h3>
|
||||
<div class="hw_search_box fr mt15 mr15 mb10">
|
||||
<%= form_tag(member_contest_path(@contest), method: 'get',:class => "f_l",:remote=>true,:id => "search_member") do %>
|
||||
<input class="hw_search-input" name="name" id="search_member_input" placeholder="输入<%= @role == '1' ? '管理员' : @role == '2' ? '评委' : '参赛者' %>登录名/姓名/单位名称进行搜索" type="text">
|
||||
<input type="hidden" name="role" value="<%=@role %>"/>
|
||||
<% end %>
|
||||
<a href="javascript:void(0)" class="hw_btn_search" onclick="$('#search_member').submit();"></a>
|
||||
<div class="cl"></div>
|
||||
</div>
|
||||
|
||||
<div class="ml15 mr15 mb15" id="contest_all_member">
|
||||
<%=render :partial => 'contest_all_member' %>
|
||||
</div>
|
||||
|
||||
|
||||
</div><!--sy_class_r end-->
|
|
@ -0,0 +1 @@
|
|||
$("#contest_all_member").html("<%=escape_javascript(render :partial => 'contest_all_member') %>");
|
|
@ -3,13 +3,13 @@
|
|||
<div class="game-setting-tab">
|
||||
<ul id="game-setting-tab-nav">
|
||||
<li id="game-setting-tab-nav-1" class="game-setting-nav-hover" onclick="HoverLi(1);">
|
||||
<a href="javascript:void(0);" >基本信息</a>
|
||||
<a href="javascript:void(0);">基本信息</a>
|
||||
</li>
|
||||
<li id="game-setting-tab-nav-2" onclick="HoverLi(2);">
|
||||
<a href="javascript:void(0);" >成员</a>
|
||||
<a href="javascript:void(0);">成员</a>
|
||||
</li>
|
||||
<li id="game-setting-tab-nav-3" >
|
||||
<!--<a href="javascript:void(0);" >讨论区设置</a>-->
|
||||
<li id="game-setting-tab-nav-3" onclick="HoverLi(3);">
|
||||
<a href="javascript:void(0);">讨论区设置</a>
|
||||
</li>
|
||||
<div class="cl"></div>
|
||||
</ul>
|
||||
|
@ -30,6 +30,13 @@
|
|||
|
||||
|
||||
<script type="text/javascript">
|
||||
$(function(){
|
||||
<% if @select_tab == 'member'%>
|
||||
$("#game-setting-tab-nav-2").click();
|
||||
<% elsif @select_tab == 'boards'%>
|
||||
$("#game-setting-tab-nav-3").click();
|
||||
<% end %>
|
||||
});
|
||||
function g(o){
|
||||
return document.getElementById(o);
|
||||
}
|
||||
|
@ -39,7 +46,7 @@
|
|||
g('game-setting-tab-nav-'+i).className='game-setting-nav-nomall';
|
||||
g('game-setting-content-'+i).className='undis';
|
||||
}
|
||||
g('game-setting-content-'+n).className='dis';
|
||||
g('game-setting-content-'+n).className='game-dis';
|
||||
g('game-setting-tab-nav-'+n).className='game-setting-nav-hover';
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
<h3 class="fl"><%= @subPage_title %></h3>
|
||||
<% if User.current.allowed_to?(:as_teacher,@course) %>
|
||||
<%=link_to "成员管理", {:controller => 'courses', :action => 'settings', :id => @course.id, :tab => 'member'}, :class => 'link-blue ml10 fr mt5' %>
|
||||
<% end %>
|
||||
<%= link_to "导出成绩", export_course_member_excel_course_path(@course,:group_id => (@group ? (@group == -1 ? -1 : @group.id) : 0),:format => 'xls'), :class => 'link-blue fr mt5'%>
|
||||
<div class="cl"></div>
|
|
@ -11,13 +11,8 @@
|
|||
</div>
|
||||
<% else %>
|
||||
<div class="sy_class_r sy_class_nobg fr ml10">
|
||||
<div class="sy_class_r_head mb10">
|
||||
<h3 class="fl"><%= @subPage_title %></h3>
|
||||
<% if User.current.allowed_to?(:as_teacher,@course) %>
|
||||
<%=link_to "成员管理", {:controller => 'courses', :action => 'settings', :id => @course.id, :tab => 'member'}, :class => 'link-blue ml10 fr mt5' %>
|
||||
<% end %>
|
||||
<%= link_to "导出成绩", export_course_member_excel_course_path(@course,:format => 'xls'), :class => 'link-blue fr mt5'%>
|
||||
<div class="cl"></div>
|
||||
<div class="sy_class_r_head mb10" id="course_member_opr">
|
||||
<%= render :partial => 'course_member_opr' %>
|
||||
</div>
|
||||
<%= render :partial => 'course_student', :locals => {:members => @members} %>
|
||||
</div>
|
||||
|
|
|
@ -3,4 +3,5 @@
|
|||
*/
|
||||
$("#search_members").html("<%= escape_javascript( render :partial => 'searchmembers')%>");
|
||||
$("#st_groups").html("<%= escape_javascript( render :partial => 'new_groups_name', locals: {:course_groups => @course_groups})%>");
|
||||
$("#member_content").html("<%= escape_javascript( render :partial => @render_file, :locals => {:members => @results})%>");
|
||||
$("#member_content").html("<%= escape_javascript( render :partial => @render_file, :locals => {:members => @results})%>");
|
||||
$("#course_member_opr").html("<%= escape_javascript( render :partial => 'course_member_opr')%>");
|
|
@ -1,4 +1,4 @@
|
|||
<div id="muban_popup_box" style="width:600px;">
|
||||
<div id="muban_popup_box" style="width:630px;">
|
||||
<div class="muban_popup_top">
|
||||
<h3 class="fl">评分设置</h3>
|
||||
<a href="javascript:void(0);" class="muban_icons_close fr"></a>
|
||||
|
@ -8,40 +8,109 @@
|
|||
<div class="muban_popup_con clear">
|
||||
<div class="clear mt15 ml20">
|
||||
<ul class="pro_newsetting_con fl">
|
||||
<li class="mb10 clear">
|
||||
<li class="mb10 fl">
|
||||
<label class="pop_box_label fl">迟交扣分 : </label>
|
||||
<input type="text" name="late_penalty" id="late_penalty_num" placeholder="0-50" class="fl issues_calendar_input" value="<%= homework.late_penalty%>" onkeyup="check_late_penalty('late_penalty_num')"/>
|
||||
<input type="text" name="late_penalty" id="late_penalty_num" placeholder="0-50" class="fl w180" value="<%= homework.late_penalty%>" onkeyup="check_late_penalty('late_penalty_num')"/>
|
||||
</li>
|
||||
<li class="mb10 clear">
|
||||
<div class="fl ml20 clear popup_tip_box fontGrey2 mb10 w230">
|
||||
<em></em>
|
||||
<span></span>
|
||||
<p >请输入数值0-50</p>
|
||||
</div>
|
||||
<div class="cl"></div>
|
||||
<span class="separator_long"></span>
|
||||
|
||||
<li class="mb10 mt10 fl">
|
||||
<label class="pop_box_label fl">缺评扣分 : </label>
|
||||
<input type="text" name="absence_penalty" id="absence_penalty_num" placeholder="0-50" class="fl issues_calendar_input" value="<%= homework.homework_detail_manual.absence_penalty%>" onkeyup="check_late_penalty('absence_penalty_num')"/>
|
||||
<input type="text" name="absence_penalty" id="absence_penalty_num" placeholder="0-50" class="fl w180" value="<%= homework.homework_detail_manual.absence_penalty%>" onkeyup="check_late_penalty('absence_penalty_num')"/>
|
||||
</li>
|
||||
<li class="mb10 clear">
|
||||
<div class="fl ml20 clear popup_tip_box fontGrey2 mb10 mt10 w230">
|
||||
<em></em>
|
||||
<span></span>
|
||||
<p >请输入数值0-50</p>
|
||||
</div>
|
||||
<li class="mb10 fl">
|
||||
<input type="checkbox" class="fl ml100" id="no_anon_penalty" name="no_anon_penalty" <%=homework.homework_detail_manual.no_anon_penalty == 0 ? 'checked' : '' %> value="<%=homework.homework_detail_manual.no_anon_penalty%>"/>
|
||||
<label class="pop_box_label fl ml10" for="no_anon_penalty" style="text-align: left; width: 120px;">扣分(不参加匿评)</label>
|
||||
</li>
|
||||
<li class="mb10 clear mt30">
|
||||
<div class="fl clear popup_tip_box fontGrey2 mb10 w230" style="margin-left: 64px;">
|
||||
<em></em>
|
||||
<span></span>
|
||||
<p>匿评开启后提交的作品,未能参加匿评,<br/>按照全部缺评扣分</p>
|
||||
</div>
|
||||
<div class="cl"></div>
|
||||
<span class="separator_long"></span>
|
||||
|
||||
<li class="fl mt10">
|
||||
<label class="pop_box_label fl">匿评申诉 : </label>
|
||||
<ul class="fl">
|
||||
<li class="clear">
|
||||
<li class="fl">
|
||||
<input type="radio" class="fl" id="anonymous_appeal" value="1" name="anonymous_appeal"/>
|
||||
<label for="anonymous_appeal" class="fl ml5">启用</label>
|
||||
</li>
|
||||
<li class="clear" style="margin-top: 27px;">
|
||||
<div class="fl clear popup_tip_box fontGrey2 mb10 w230" style="margin-left: 165px; line-height: 1.5">
|
||||
<em></em>
|
||||
<span></span>
|
||||
<p>学生可对匿评成绩发起申诉<br/>您可以接受或者拒绝申诉<br/></p>
|
||||
</div>
|
||||
<div class="cl"></div>
|
||||
<li class="fl">
|
||||
<label class="pop_box_label fl">违规匿评扣分 : </label>
|
||||
<input type="text" style="width: 75px; padding-left: 10px;" id="appeal_penalty" name="appeal_penalty" placeholder="0-50" value="<%=homework.homework_detail_manual.appeal_penalty %>" class="fl">
|
||||
</li>
|
||||
<div class="fl ml20 clear popup_tip_box fontGrey2 mb10 w230" style="line-height: 1.5">
|
||||
<em></em>
|
||||
<span></span>
|
||||
<p>请输入数值0-50<br/>若匿评时评出不合理的成绩被申诉成功,<br/>扣违规匿评分<br/></p>
|
||||
</div>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="mb10 clear" style="margin-top: 45px;">
|
||||
<li class="mb10 fl">
|
||||
<label class="pop_box_label fl"> </label>
|
||||
<input type="radio" class="fl" value="0" id="no_anonymous_appeal" name="anonymous_appeal"/><label for="no_anonymous_appeal" class="fl ml5">禁用</label>
|
||||
</li>
|
||||
<li class="mb10 clear">
|
||||
<div class="fl clear popup_tip_box fontGrey2 mb10 w230" style="margin-left: 165px;">
|
||||
<em></em>
|
||||
<span></span>
|
||||
<p>学生不能对匿评成绩发起申诉</p>
|
||||
</div>
|
||||
<div class="cl"></div>
|
||||
<span class="separator_long"></span>
|
||||
|
||||
<li class="mt10">
|
||||
<label class="pop_box_label fl">助教评分 : </label>
|
||||
<input type="radio" class="fl" value="1" id="ta_normal_mode" name="ta_mode"/>
|
||||
<label for="ta_normal_mode" class=" fl ml5">普通模式</label>
|
||||
</li>
|
||||
<div class="fl clear popup_tip_box fontGrey2 mb10 mt5 w230" style="margin-left: 141px;">
|
||||
<em></em>
|
||||
<span></span>
|
||||
<p >助教评分 = 各助教最新评分的平均分</p>
|
||||
</div>
|
||||
<div class="cl"></div>
|
||||
<li class="">
|
||||
<label class="pop_box_label fl"> </label>
|
||||
<input type="radio" class="fl" id="ta_re_mode" value="2" name="ta_mode"/>
|
||||
<label for="ta_re_mode" class="fl ml5">复审模式</label>
|
||||
</li>
|
||||
<div class="fl clear popup_tip_box fontGrey2 mb10 w230" style="margin-left: 141px;">
|
||||
<em></em>
|
||||
<span></span>
|
||||
<p >助教评分 = 最新的助教评分</p>
|
||||
</div>
|
||||
<div class="cl"></div>
|
||||
<span class="separator_long"></span>
|
||||
|
||||
<li class="mb10 mt10 fl">
|
||||
<label class="pop_box_label fl">最终得分 : </label>
|
||||
<input type="radio" class="fl" value="1" id="teacher_score" name="teacher_priority"/><label for="teacher_score" class=" fl ml5">教师评分</label>
|
||||
</li>
|
||||
<li class="mb10 clear">
|
||||
<div class="fl ml20 clear popup_tip_box fontGrey2 mb10 mt10 w230" style="margin-left: 141px;">
|
||||
<em></em>
|
||||
<span></span>
|
||||
<p>教师评分-迟交扣分-缺评扣分-违规匿评扣分</p>
|
||||
</div>
|
||||
<li class="mb10 fl">
|
||||
<label class="pop_box_label fl"> </label>
|
||||
<ul class="fl">
|
||||
<li class="clear">
|
||||
|
@ -57,54 +126,17 @@
|
|||
<span class="fl ml5">学生匿评</span>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="fl clear popup_tip_box fontGrey2 w230" style="margin-left: 78px;">
|
||||
<em></em>
|
||||
<span></span>
|
||||
<p >助教评分*其百分比+ <br/>
|
||||
学生匿评平均分*其百分比- <br/>
|
||||
( 迟交扣分+缺评扣分+违规匿评扣分 )</p>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="fl ml20">
|
||||
<div class="popup_tip_box fontGrey2 mb10">
|
||||
<em></em>
|
||||
<span></span>
|
||||
<p >请输入数值0-50</p>
|
||||
</div>
|
||||
<div class="popup_tip_box fontGrey2 mb10">
|
||||
<em></em>
|
||||
<span></span>
|
||||
<p >请输入数值0-50</p>
|
||||
</div>
|
||||
<div class="popup_tip_box fontGrey2 mb10">
|
||||
<em></em>
|
||||
<span></span>
|
||||
<p>匿评开启后提交的作品,未能参加<br/>匿评,按照全部缺评扣分</p>
|
||||
</div>
|
||||
<div class="popup_tip_box fontGrey2 mb10">
|
||||
<em></em>
|
||||
<span></span>
|
||||
<p>学生可对匿评成绩发起申诉<br/>您可以接受或者拒绝申诉<br/></p>
|
||||
</div>
|
||||
<div class="popup_tip_box fontGrey2 mb10">
|
||||
<em></em>
|
||||
<span></span>
|
||||
<p>请输入数值0-50<br/>若匿评时评出不合理的成绩被申诉成功,<br/>扣违规匿评分<br/></p>
|
||||
</div>
|
||||
<div class="popup_tip_box fontGrey2 mb10">
|
||||
<em></em>
|
||||
<span></span>
|
||||
<p>学生不能对匿评成绩发起申诉</p>
|
||||
</div>
|
||||
<div class="popup_tip_box fontGrey2 mb10">
|
||||
<em></em>
|
||||
<span></span>
|
||||
<p >教师评分-迟交扣分-缺评扣分-违规匿评扣分</p>
|
||||
</div>
|
||||
<div class="popup_tip_box fontGrey2">
|
||||
<em></em>
|
||||
<span></span>
|
||||
<p >助教评分*其百分比+ <br/>
|
||||
学生匿评平均分*其百分比- <br/>
|
||||
( 迟交扣分+缺评扣分+违规匿评扣分 )</p>
|
||||
</div>
|
||||
</ul>
|
||||
<div class="cl"></div>
|
||||
<a href="javascript:void(0);" class="fr sy_btn_blue mr80" onclick="set_score_rule_submit();">确定</a>
|
||||
<a href="javascript:void(0);" class="fr sy_btn_blue mr50" onclick="set_score_rule_submit();">确定</a>
|
||||
<a href="javascript:void(0);" class="fr sy_btn_grey mr5" onclick="hideModal();">取消</a>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -122,6 +154,11 @@
|
|||
<% else %>
|
||||
$("#other_score").attr("checked", "checked");
|
||||
<% end %>
|
||||
<% if homework.homework_detail_manual.ta_mode == 1 %>
|
||||
$("#ta_normal_mode").attr("checked", "checked");
|
||||
<% else %>
|
||||
$("#ta_re_mode").attr("checked", "checked");
|
||||
<% end %>
|
||||
$("#teacher_score").change(function(){
|
||||
if($("#teacher_score").attr("checked")){
|
||||
$("#late_penalty_num").val("0");
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<div id="muban_popup_box" style="width:500px;">
|
||||
<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>
|
||||
|
@ -8,40 +8,62 @@
|
|||
<div class="muban_popup_con clear">
|
||||
<div class="clear mt15 ml20">
|
||||
<ul class="pro_newsetting_con fl">
|
||||
<li class="mb10 clear">
|
||||
<li class="mb10 fl">
|
||||
<label class="pop_box_label fl">迟交扣分 : </label>
|
||||
<input type="text" name="late_penalty" id="late_penalty_num" placeholder="0-50" class="fl issues_calendar_input" value="<%= homework.late_penalty%>" onkeyup="check_late_penalty('late_penalty_num')"/>
|
||||
</li>
|
||||
<li class="mb10 clear">
|
||||
<label class="pop_box_label fl">最终得分 : </label>
|
||||
<input type="radio" class="fl" value="1" id="teacher_score" name="teacher_priority"/>
|
||||
<label for="teacher_score" class=" fl ml5">教师评分</label>
|
||||
</li>
|
||||
<li class="mb10 clear">
|
||||
<label class="pop_box_label fl"> </label>
|
||||
<input type="radio" class="fl" id="other_score" value="0" name="teacher_priority"/>
|
||||
<label for="other_score" class="fl ml5">助教评分</label>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="fl ml20" >
|
||||
<div class="popup_tip_box fontGrey2 mb10">
|
||||
<div class="fl ml20 clear popup_tip_box fontGrey2 mb10 w190">
|
||||
<em></em>
|
||||
<span></span>
|
||||
<p >请输入数值0-50</p>
|
||||
</div>
|
||||
<div class="popup_tip_box fontGrey2 mb10">
|
||||
<div class="cl"></div>
|
||||
<span class="separator_short"></span>
|
||||
<li class="mb10">
|
||||
<label class="pop_box_label fl">助教评分 : </label>
|
||||
<input type="radio" class="fl" value="1" id="ta_normal_mode" name="ta_mode"/>
|
||||
<label for="ta_normal_mode" class=" fl ml5">普通模式</label>
|
||||
</li>
|
||||
<div class="fl clear popup_tip_box fontGrey2 mb10 w190" style="margin-left: 92px;">
|
||||
<em></em>
|
||||
<span></span>
|
||||
<p >助教评分 = 各助教最新评分的平均分</p>
|
||||
</div>
|
||||
<li class="mb10">
|
||||
<label class="pop_box_label fl"> </label>
|
||||
<input type="radio" class="fl" id="ta_re_mode" value="2" name="ta_mode"/>
|
||||
<label for="ta_re_mode" class="fl ml5">复审模式</label>
|
||||
</li>
|
||||
<div class="fl clear popup_tip_box fontGrey2 mb10 w190" style="margin-left: 92px;">
|
||||
<em></em>
|
||||
<span></span>
|
||||
<p >助教评分 = 最新的助教评分</p>
|
||||
</div>
|
||||
<div class="cl"></div>
|
||||
<span class="separator_short"></span>
|
||||
<li class="mb10">
|
||||
<label class="pop_box_label fl">最终得分 : </label>
|
||||
<input type="radio" class="fl" value="1" id="teacher_score" name="teacher_priority"/>
|
||||
<label for="teacher_score" class=" fl ml5">教师评分</label>
|
||||
</li>
|
||||
<div class="fl clear popup_tip_box fontGrey2 mb10 w190" style="margin-left: 92px;">
|
||||
<em></em>
|
||||
<span></span>
|
||||
<p >教师评分 - 迟交扣分 </p>
|
||||
</div>
|
||||
<div class="popup_tip_box fontGrey2 mb10">
|
||||
<li class="mb10">
|
||||
<label class="pop_box_label fl"> </label>
|
||||
<input type="radio" class="fl" id="other_score" value="0" name="teacher_priority"/>
|
||||
<label for="other_score" class="fl ml5">助教评分</label>
|
||||
</li>
|
||||
<div class="fl clear popup_tip_box fontGrey2 mb10 w190" style="margin-left: 92px;">
|
||||
<em></em>
|
||||
<span></span>
|
||||
<p >助教评分 - 迟交扣分 </p>
|
||||
</div>
|
||||
</ul>
|
||||
<div class="cl"></div>
|
||||
<a href="javascript:void(0);" class="fr sy_btn_blue mr90" onclick="set_score_rule_submit();">确定</a>
|
||||
<a href="javascript:void(0);" class="fr sy_btn_blue mr40" onclick="set_score_rule_submit();">确定</a>
|
||||
<a href="javascript:void(0);" class="fr sy_btn_grey mr5" onclick="hideModal();">取消</a>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -55,6 +77,11 @@
|
|||
<% else %>
|
||||
$("#other_score").attr("checked", "checked");
|
||||
<% end %>
|
||||
<% if homework.homework_detail_manual.ta_mode == 1 %>
|
||||
$("#ta_normal_mode").attr("checked", "checked");
|
||||
<% else %>
|
||||
$("#ta_re_mode").attr("checked", "checked");
|
||||
<% end %>
|
||||
$("#teacher_score").change(function(){
|
||||
if($("#teacher_score").attr("checked")){
|
||||
$("#late_penalty_num").val("0");
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<div id="muban_popup_box" style="width:600px;">
|
||||
<div id="muban_popup_box" style="width:630px;">
|
||||
<div class="muban_popup_top">
|
||||
<h3 class="fl">评分设置</h3>
|
||||
<a href="javascript:void(0);" class="muban_icons_close fr"></a>
|
||||
|
@ -8,40 +8,109 @@
|
|||
<div class="muban_popup_con clear">
|
||||
<div class="clear mt15 ml20">
|
||||
<ul class="pro_newsetting_con fl">
|
||||
<li class="mb10 clear">
|
||||
<li class="mb10 fl">
|
||||
<label class="pop_box_label fl">迟交扣分 : </label>
|
||||
<input type="text" name="late_penalty" id="late_penalty_num" placeholder="0-50" class="fl w180" value="<%= homework.late_penalty%>" onkeyup="check_late_penalty('late_penalty_num')"/>
|
||||
</li>
|
||||
<li class="mb10 clear">
|
||||
<div class="fl ml20 clear popup_tip_box fontGrey2 mb10 w230">
|
||||
<em></em>
|
||||
<span></span>
|
||||
<p >请输入数值0-50</p>
|
||||
</div>
|
||||
<div class="cl"></div>
|
||||
<span class="separator_long"></span>
|
||||
|
||||
<li class="mb10 mt10 fl">
|
||||
<label class="pop_box_label fl">缺评扣分 : </label>
|
||||
<input type="text" name="absence_penalty" id="absence_penalty_num" placeholder="0-50" class="fl w180" value="<%= homework.homework_detail_manual.absence_penalty%>" onkeyup="check_late_penalty('absence_penalty_num')"/>
|
||||
</li>
|
||||
<li class="mb10 clear">
|
||||
<div class="fl ml20 clear popup_tip_box fontGrey2 mb10 mt10 w230">
|
||||
<em></em>
|
||||
<span></span>
|
||||
<p >请输入数值0-50</p>
|
||||
</div>
|
||||
<li class="mb10 fl">
|
||||
<input type="checkbox" class="fl ml100" id="no_anon_penalty" name="no_anon_penalty" <%=homework.homework_detail_manual.no_anon_penalty == 0 ? 'checked' : '' %> value="<%=homework.homework_detail_manual.no_anon_penalty%>"/>
|
||||
<label class="pop_box_label fl ml10" for="no_anon_penalty" style="text-align: left; width: 120px;">扣分(不参加匿评)</label>
|
||||
</li>
|
||||
<li class="mb10 clear mt30">
|
||||
<div class="fl clear popup_tip_box fontGrey2 mb10 w230" style="margin-left: 64px;">
|
||||
<em></em>
|
||||
<span></span>
|
||||
<p>匿评开启后提交的作品,未能参加匿评,<br/>按照全部缺评扣分</p>
|
||||
</div>
|
||||
<div class="cl"></div>
|
||||
<span class="separator_long"></span>
|
||||
|
||||
<li class="fl mt10">
|
||||
<label class="pop_box_label fl">匿评申诉 : </label>
|
||||
<ul class="fl">
|
||||
<li class="clear">
|
||||
<li class="fl">
|
||||
<input type="radio" class="fl" id="anonymous_appeal" value="1" name="anonymous_appeal"/>
|
||||
<label for="anonymous_appeal" class="fl ml5">启用</label>
|
||||
</li>
|
||||
<li class="clear" style="margin-top: 27px;">
|
||||
<div class="fl clear popup_tip_box fontGrey2 mb10 w230" style="margin-left: 165px; line-height: 1.5">
|
||||
<em></em>
|
||||
<span></span>
|
||||
<p>学生可对匿评成绩发起申诉<br/>您可以接受或者拒绝申诉<br/></p>
|
||||
</div>
|
||||
<div class="cl"></div>
|
||||
<li class="fl">
|
||||
<label class="pop_box_label fl">违规匿评扣分 : </label>
|
||||
<input type="text" style="width: 75px; padding-left: 10px;" id="appeal_penalty" name="appeal_penalty" placeholder="0-50" value="<%=homework.homework_detail_manual.appeal_penalty %>" class="fl" onkeyup="check_late_penalty('appeal_penalty')">
|
||||
</li>
|
||||
<div class="fl ml20 clear popup_tip_box fontGrey2 mb10 w230" style="line-height: 1.5">
|
||||
<em></em>
|
||||
<span></span>
|
||||
<p>请输入数值0-50<br/>若匿评时评出不合理的成绩被申诉成功,<br/>扣违规匿评分<br/></p>
|
||||
</div>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="mb10 clear" style="margin-top: 45px;">
|
||||
<li class="mb10 fl">
|
||||
<label class="pop_box_label fl"> </label>
|
||||
<input type="radio" class="fl" value="0" id="no_anonymous_appeal" name="anonymous_appeal"/><label for="no_anonymous_appeal" class="fl ml5">禁用</label>
|
||||
</li>
|
||||
<li class="mb10 clear">
|
||||
<div class="fl clear popup_tip_box fontGrey2 mb10 w230" style="margin-left: 165px;">
|
||||
<em></em>
|
||||
<span></span>
|
||||
<p>学生不能对匿评成绩发起申诉</p>
|
||||
</div>
|
||||
<div class="cl"></div>
|
||||
<span class="separator_long"></span>
|
||||
|
||||
<li class="mt10">
|
||||
<label class="pop_box_label fl">助教评分 : </label>
|
||||
<input type="radio" class="fl" value="1" id="ta_normal_mode" name="ta_mode"/>
|
||||
<label for="ta_normal_mode" class=" fl ml5">普通模式</label>
|
||||
</li>
|
||||
<div class="fl clear popup_tip_box fontGrey2 mb10 mt5 w230" style="margin-left: 141px;">
|
||||
<em></em>
|
||||
<span></span>
|
||||
<p >助教评分 = 各助教最新评分的平均分</p>
|
||||
</div>
|
||||
<div class="cl"></div>
|
||||
<li class="">
|
||||
<label class="pop_box_label fl"> </label>
|
||||
<input type="radio" class="fl" id="ta_re_mode" value="2" name="ta_mode"/>
|
||||
<label for="ta_re_mode" class="fl ml5">复审模式</label>
|
||||
</li>
|
||||
<div class="fl clear popup_tip_box fontGrey2 mb10 w230" style="margin-left: 141px;">
|
||||
<em></em>
|
||||
<span></span>
|
||||
<p >助教评分 = 最新的助教评分</p>
|
||||
</div>
|
||||
<div class="cl"></div>
|
||||
<span class="separator_long"></span>
|
||||
|
||||
<li class="mb10 mt10 fl">
|
||||
<label class="pop_box_label fl">最终得分 : </label>
|
||||
<input type="radio" class="fl" value="1" id="teacher_score" name="teacher_priority"/><label for="teacher_score" class=" fl ml5">教师评分</label>
|
||||
</li>
|
||||
<li class="mb10 clear">
|
||||
<div class="fl ml20 clear popup_tip_box fontGrey2 mb10 mt10 w230" style="margin-left: 141px;">
|
||||
<em></em>
|
||||
<span></span>
|
||||
<p>教师评分-迟交扣分-缺评扣分-违规匿评扣分</p>
|
||||
</div>
|
||||
<li class="mb10 fl">
|
||||
<label class="pop_box_label fl"> </label>
|
||||
<ul class="fl">
|
||||
<li class="clear">
|
||||
|
@ -61,55 +130,18 @@
|
|||
<span class="fl ml5">学生匿评</span>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="fl clear popup_tip_box fontGrey2 w230" style="margin-left: 27px;">
|
||||
<em></em>
|
||||
<span></span>
|
||||
<p>系统评分*其百分比+ <br/>
|
||||
助教评 *其百分比+ <br/>
|
||||
学生匿评平均分*其百分比 - <br/>
|
||||
( 迟交扣分+缺评扣分+违规匿评扣分 )</p>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="fl ml20">
|
||||
<div class="popup_tip_box fontGrey2 mb10">
|
||||
<em></em>
|
||||
<span></span>
|
||||
<p id="late_penalty_notice" class="">请输入数值0-50</p>
|
||||
</div>
|
||||
<div class="popup_tip_box fontGrey2 mb10">
|
||||
<em></em>
|
||||
<span></span>
|
||||
<p id="absence_penalty_notice" class="">请输入数值0-50</p>
|
||||
</div>
|
||||
<div class="popup_tip_box fontGrey2 mb10">
|
||||
<em></em>
|
||||
<span></span>
|
||||
<p>匿评开启后提交的作品,未能参加匿评,<br/>按照全部缺评扣分</p>
|
||||
</div>
|
||||
<div class="popup_tip_box fontGrey2 mb10">
|
||||
<em></em>
|
||||
<span></span>
|
||||
<p>学生可对匿评成绩发起申诉<br/>您可以接受或者拒绝申诉<br/></p>
|
||||
</div>
|
||||
<div class="popup_tip_box fontGrey2 mb10">
|
||||
<em></em>
|
||||
<span></span>
|
||||
<p>请输入数值0-50<br/>若匿评时评出不合理的成绩被申诉成功,<br/>扣违规匿评分<br/></p>
|
||||
</div>
|
||||
<div class="popup_tip_box fontGrey2 mb10">
|
||||
<em></em>
|
||||
<span></span>
|
||||
<p>学生不能对匿评成绩发起申诉</p>
|
||||
</div>
|
||||
<div class="popup_tip_box fontGrey2 mb10">
|
||||
<em></em>
|
||||
<span></span>
|
||||
<p>教师评分-迟交扣分-缺评扣分-违规匿评扣分</p>
|
||||
</div>
|
||||
<div class="popup_tip_box fontGrey2">
|
||||
<em></em>
|
||||
<span></span>
|
||||
<p>系统评分*其百分比+ <br/>
|
||||
助教评 *其百分比+ <br/>
|
||||
学生匿评平均分*其百分比 - <br/>
|
||||
( 迟交扣分+缺评扣分+违规匿评扣分 )</p>
|
||||
</div>
|
||||
</ul>
|
||||
<div class="cl"></div>
|
||||
<a href="javascript:void(0);" class="fr sy_btn_blue mr70" onclick="set_score_rule_submit();">确定</a>
|
||||
<a href="javascript:void(0);" class="fr sy_btn_blue mr50" onclick="set_score_rule_submit();">确定</a>
|
||||
<a href="javascript:void(0);" class="fr sy_btn_grey mr5" onclick="hideModal();">取消</a>
|
||||
</div>
|
||||
|
||||
|
@ -132,6 +164,11 @@
|
|||
<% else %>
|
||||
$("#other_score").attr("checked", "checked");
|
||||
<% end %>
|
||||
<% if homework.homework_detail_manual.ta_mode == 1 %>
|
||||
$("#ta_normal_mode").attr("checked", "checked");
|
||||
<% else %>
|
||||
$("#ta_re_mode").attr("checked", "checked");
|
||||
<% end %>
|
||||
$("#teacher_score").change(function(){
|
||||
if($("#teacher_score").attr("checked")){
|
||||
$("#late_penalty_num").val("0");
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<div id="muban_popup_box" style="width:500px;">
|
||||
<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>
|
||||
|
@ -8,16 +8,50 @@
|
|||
<div class="muban_popup_con clear">
|
||||
<div class="clear mt15 ml20">
|
||||
<ul class="pro_newsetting_con fl">
|
||||
<li class="mb10 clear">
|
||||
<li class="mb10 fl">
|
||||
<label class="pop_box_label fl">迟交扣分 : </label>
|
||||
<input type="text" name="late_penalty" id="late_penalty_num" placeholder="0-50" class="fl issues_calendar_input" value="<%= homework.late_penalty%>" onkeyup="check_late_penalty('late_penalty_num')"/>
|
||||
</li>
|
||||
<li class="mb10 clear">
|
||||
<div class="fl ml20 clear popup_tip_box fontGrey2 mb10 w190">
|
||||
<em></em>
|
||||
<span></span>
|
||||
<p >请输入数值0-50</p>
|
||||
</div>
|
||||
<div class="cl"></div>
|
||||
<span class="separator_short"></span>
|
||||
<li class="mb10 fl">
|
||||
<label class="pop_box_label fl">助教评分 : </label>
|
||||
<input type="radio" class="fl" value="1" id="ta_normal_mode" name="ta_mode"/>
|
||||
<label for="ta_normal_mode" class=" fl ml5">普通模式</label>
|
||||
</li>
|
||||
<div class="fl clear popup_tip_box fontGrey2 mb10 w190" style="margin-left: 92px;">
|
||||
<em></em>
|
||||
<span></span>
|
||||
<p >助教评分 = 各助教最新评分的平均分</p>
|
||||
</div>
|
||||
<li class="mb10 fl">
|
||||
<label class="pop_box_label fl"> </label>
|
||||
<input type="radio" class="fl" id="ta_re_mode" value="2" name="ta_mode"/>
|
||||
<label for="ta_re_mode" class="fl ml5">复审模式</label>
|
||||
</li>
|
||||
<div class="fl clear popup_tip_box fontGrey2 mb10 w190" style="margin-left: 92px;">
|
||||
<em></em>
|
||||
<span></span>
|
||||
<p >助教评分 = 最新的助教评分</p>
|
||||
</div>
|
||||
<div class="cl"></div>
|
||||
<span class="separator_short"></span>
|
||||
<li class="mb10 fl">
|
||||
<label class="pop_box_label fl">最终得分 : </label>
|
||||
<input type="radio" class="fl" value="1" id="teacher_score" name="teacher_priority"/>
|
||||
<label for="teacher_score" class=" fl ml5">教师评分</label>
|
||||
</li>
|
||||
<li class="mb10 clear">
|
||||
<div class="fl clear popup_tip_box fontGrey2 mb10 w190" style="margin-left: 92px;">
|
||||
<em></em>
|
||||
<span></span>
|
||||
<p >教师评分 - 迟交扣分 </p>
|
||||
</div>
|
||||
<li class="mb10 fl">
|
||||
<label class="pop_box_label fl"> </label>
|
||||
<ul class="fl">
|
||||
<li class="clear">
|
||||
|
@ -32,29 +66,17 @@
|
|||
<span class="fl ml5">助教评分</span>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="fl clear popup_tip_box fontGrey2 mb10 w190 ml30">
|
||||
<em></em>
|
||||
<span></span>
|
||||
<p >系统评分 * 其百分比 + <br/>
|
||||
助教评分 * 其百分比 - <br/>
|
||||
迟交扣分 </p>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="fl ml20">
|
||||
<div class="popup_tip_box fontGrey2 mb10">
|
||||
<em></em>
|
||||
<span></span>
|
||||
<p >请输入数值0-50</p>
|
||||
</div>
|
||||
<div class="popup_tip_box fontGrey2 mb10">
|
||||
<em></em>
|
||||
<span></span>
|
||||
<p >教师评分 - 迟交扣分 </p>
|
||||
</div>
|
||||
<div class="popup_tip_box fontGrey2 mb10">
|
||||
<em></em>
|
||||
<span></span>
|
||||
<p >系统评分 * 其百分比 + <br/>
|
||||
助教评分 * 其百分比 - <br/>
|
||||
迟交扣分 </p>
|
||||
</div>
|
||||
</ul>
|
||||
<div class="cl"></div>
|
||||
<a href="javascript:void(0);" class="fr sy_btn_blue mr75" onclick="set_score_rule_submit();">确定</a>
|
||||
<a href="javascript:void(0);" class="fr sy_btn_blue mr40" onclick="set_score_rule_submit();">确定</a>
|
||||
<a href="javascript:void(0);" class="fr sy_btn_grey mr5" onclick="hideModal();">取消</a>
|
||||
</div>
|
||||
|
||||
|
@ -77,6 +99,11 @@
|
|||
<% else %>
|
||||
$("#other_score").attr("checked", "checked");
|
||||
<% end %>
|
||||
<% if homework.homework_detail_manual.ta_mode == 1 %>
|
||||
$("#ta_normal_mode").attr("checked", "checked");
|
||||
<% else %>
|
||||
$("#ta_re_mode").attr("checked", "checked");
|
||||
<% end %>
|
||||
$("#teacher_score").change(function(){
|
||||
if($("#teacher_score").attr("checked")){
|
||||
$("#late_penalty_num").val("0");
|
||||
|
|
|
@ -1,18 +1,18 @@
|
|||
<% if @homework.homework_type == 2 %>
|
||||
<% if @homework.anonymous_comment == 0 %>
|
||||
var htmlvalue = "<%= escape_javascript(render :partial => 'homework_common/set_score_rule_pro',:locals => {:homework => @homework, :student_path => false, :user_activity_id => @user_activity_id,:hw_status => @hw_status}) %>";
|
||||
pop_box_new(htmlvalue, 600, 580);
|
||||
pop_box_new(htmlvalue, 630, 758);
|
||||
<% else %>
|
||||
var htmlvalue = "<%= escape_javascript(render :partial => 'homework_common/set_score_rule_pro_anon',:locals => {:homework => @homework, :student_path => false, :user_activity_id => @user_activity_id,:hw_status => @hw_status}) %>";
|
||||
pop_box_new(htmlvalue, 500, 285);
|
||||
pop_box_new(htmlvalue, 530, 404);
|
||||
<% end %>
|
||||
<% else %>
|
||||
<% if @homework.anonymous_comment == 0 %>
|
||||
var htmlvalue = "<%= escape_javascript(render :partial => 'homework_common/set_score_rule_non_pro',:locals => {:homework => @homework, :student_path => false, :user_activity_id => @user_activity_id,:hw_status => @hw_status}) %>";
|
||||
pop_box_new(htmlvalue, 600, 550);
|
||||
pop_box_new(htmlvalue, 630, 758);
|
||||
<% else %>
|
||||
var htmlvalue = "<%= escape_javascript(render :partial => 'homework_common/set_score_rule_none_pro_anon',:locals => {:homework => @homework, :student_path => false, :user_activity_id => @user_activity_id,:hw_status => @hw_status}) %>";
|
||||
pop_box_new(htmlvalue, 500, 225);
|
||||
pop_box_new(htmlvalue, 530, 332);
|
||||
<% end %>
|
||||
<% end %>
|
||||
function set_score_rule_submit() {
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<ul class="sub-menu">
|
||||
<% course_board.children.reorder("position asc").each do |board| %>
|
||||
<li id="board_children_<%=board.id %>">
|
||||
<% count = board ? (board.topics.count + Message.where("board_id =? and parent_id is not ?", board.id, nil).count) : 0 %>
|
||||
<% count = board ? board.messages.count : 0 %>
|
||||
<a href="<%=course_boards_path(@course, :board_id =>board.id) %>"><font class="hidden dis" style="max-width: 120px;"><%=board.name %></font><span style="vertical-align: top;"><%=count %></span></a>
|
||||
<% if User.current.logged? %>
|
||||
<%= link_to( "",course_boards_path(@course, :board_id =>board.id, :flag => true, :is_new => 1), :class => 'sy_class_add', :title =>"#{l(:label_message_new)}") %>
|
||||
|
|
|
@ -0,0 +1,17 @@
|
|||
<% is_admin = User.current.admin? || User.current.admin_of_contest?(@contest) %>
|
||||
<% unless contest_board.children.empty? %>
|
||||
<ul class="sub-menu">
|
||||
<% contest_board.children.reorder("position asc").each do |board| %>
|
||||
<li id="board_children_<%=board.id %>">
|
||||
<% count = board ? board.messages.count : 0 %>
|
||||
<a href="<%=contest_boards_path(@contest, :board_id =>board.id) %>">
|
||||
<font class="hidden dis" style="max-width: 120px;"><%=board.name %></font>
|
||||
<span style="vertical-align: top;"><%=count %></span>
|
||||
</a>
|
||||
<% if User.current.logged? && is_admin %>
|
||||
<%= link_to( "",contest_boards_path(@contest, :board_id =>board.id, :flag => true, :is_new => 1), :class => 'sy_class_add', :title =>"#{l(:label_message_new)}") %>
|
||||
<% end %>
|
||||
</li>
|
||||
<% end %>
|
||||
</ul>
|
||||
<% end %>
|
|
@ -96,6 +96,50 @@
|
|||
<% elsif ma.course_message_type == "Exercise" && ma.status == 3 %>
|
||||
<li><a href="<%=exercise_path(:id => ma.course_message.id) %>" target="_blank" title="<%=ma.course_message.user.show_name %>老师 发布的测验:<%=ma.course_message.exercise_name %> 截止时间快到了"><span class="shadowbox_news_user"><%=ma.course_message.user.show_name %>老师 </span>发布的测验:<%=ma.course_message.exercise_name %> 截止时间快到了</a></li>
|
||||
<% end %>
|
||||
<% elsif ma.class == ContestMessage %>
|
||||
<% if ma.contest_message_type == "News" %>
|
||||
<li><a href="<%=news_path(ma.contest_message.id) %>" target="_blank" title="<%=ma.contest_message.author.show_name %> 发布了竞赛通知:<%= ma.contest_message.title%>"><span class="shadowbox_news_user"><%=ma.contest_message.author.show_name %> </span>发布了竞赛通知:<%= ma.contest_message.title%></a></li>
|
||||
<% elsif ma.contest_message_type == "Comment" %>
|
||||
<li><a href="<%=news_path(ma.contest_message.commented.id) %>" target="_blank" title="<%=ma.contest_message.author.show_name %> 回复了竞赛通知:<%=ma.contest_message.commented.title%>"><span class="shadowbox_news_user"><%=ma.contest_message.author.show_name %> </span>回复了竞赛通知:<%= ma.contest_message.commented.title%></a></li>
|
||||
<% elsif ma.contest_message_type == "Work" && ma.status.nil? %>
|
||||
<li><a href="<%= User.current.contestant_of_contest?(ma.contest_message.contest) && cur_user_works_for_work(ma.contest_message).nil? && ma.contest_message.work_status == 1 ? new_contestant_work_path(:work => ma.contest_message.id) : contestant_works_path(:work => ma.contest_message.id) %>" target="_blank" title="<%=ma.contest_message.user.show_name %> 发布了竞赛题:<%= ma.contest_message.name%>"><span class="shadowbox_news_user"><%=ma.contest_message.user.show_name %> </span>发布了竞赛题:<%= ma.contest_message.name%></a></li>
|
||||
<% elsif ma.contest_message_type == "Work" && ma.status == 1 %>
|
||||
<li><a href="<%= contestant_works_path(:work => ma.contest_message.id) %>" target="_blank" title="<%=ma.contest_message.user.show_name %> 发布的竞赛题:<%= ma.contest_message.name%>的截止日期快到了"><span class="shadowbox_news_user"><%=ma.contest_message.user.show_name %> </span>发布的竞赛题:<%= ma.contest_message.name%>的截止时间快到啦</a></li>
|
||||
<% elsif ma.contest_message_type == "Work" && ma.status == 2 %>
|
||||
<li><a href="<%= contestant_works_path(:work => ma.contest_message.id) %>" target="_blank" title="<%=ma.contest_message.user.show_name %> 启动了在线评审:<%= ma.contest_message.name%>"><span class="shadowbox_news_user"><%=ma.contest_message.user.show_name %> </span>启动了在线评审:<%= ma.contest_message.name%></a></li>
|
||||
<% elsif ma.contest_message_type == "Work" && ma.status == 4 %>
|
||||
<li><a href="<%= contestant_works_path(:work => ma.contest_message.id) %>" target="_blank" title="<%=ma.contest_message.user.show_name %> 在线评审启动失败(评委数为0或作品数为0):<%= ma.contest_message.name%>"><span class="shadowbox_news_user"><%=ma.contest_message.user.show_name %> </span>在线评审启动失败(评委数为0或作品数为0):<%= ma.contest_message.name%></a></li>
|
||||
<% elsif ma.contest_message_type == "Work" && ma.status == 5 %>
|
||||
<li><a href="<%= contestant_works_path(:work => ma.contest_message.id) %>" target="_blank" title="<%=ma.contest_message.user.show_name %> 启动的在线评审:<%= ma.contest_message.name%>"><span class="shadowbox_news_user"><%=ma.contest_message.user.show_name %> </span>启动的在线评审:<%= ma.contest_message.name%>的截止时间快到啦</a></li>
|
||||
<% elsif ma.contest_message_type == "Message" %>
|
||||
<% content = ma.contest_message.parent_id.nil? ? ma.contest_message.subject : message_content(ma.contest_message.content) %>
|
||||
<% href = board_message_path(ma.contest_message.board_id, ma.contest_message.parent_id ? ma.contest_message.parent_id : ma.contest_message.id) %>
|
||||
<li><a href="<%= href %>" target="_blank" title="<%=ma.contest_message.author.show_name %> <%= ma.contest_message.parent_id.nil? ? "发布了竞赛帖子:" : "回复了竞赛帖子:" %><%= content%>"><span class="shadowbox_news_user"><%=ma.contest_message.author.show_name %> </span><%= ma.contest_message.parent_id.nil? ? "发布了竞赛帖子:" : "回复了竞赛帖子:" %><%= content%></a></li>
|
||||
<% elsif ma.contest_message_type == "JournalsForMessage" %>
|
||||
<% if ma.contest_message.jour_type == 'Contest' %>
|
||||
<li><a href="<%= contest_feedback_path(ma.contest_id) %>" target="_blank" title="<%=ma.contest_message.user.show_name %> <%= ma.contest_message.m_parent_id.nil? ? "发布了竞赛留言:" : "回复了竞赛留言:"%><%= message_content(ma.contest_message.notes)%>"><span class="shadowbox_news_user"><%=ma.contest_message.user.show_name %> </span><%= ma.contest_message.m_parent_id.nil? ? "发布了竞赛留言:" : "回复了竞赛留言:"%><%= message_content(ma.contest_message.notes)%></a></li>
|
||||
<% end %>
|
||||
<% elsif ma.contest_message_type == "ContestRequestDealResult" %>
|
||||
<% if ma.content
|
||||
role_str = ""
|
||||
if ma.content.include?('13') && ma.content.include?('14')
|
||||
role_str = "管理员、评委"
|
||||
elsif ma.content.include?('13')
|
||||
role_str = "管理员"
|
||||
elsif ma.content.include?('14')
|
||||
role_str = "评委"
|
||||
elsif ma.content.include?('15')
|
||||
role_str = "参赛者"
|
||||
end
|
||||
end %>
|
||||
<li><a href="<%=contest_path(ma.contest_id) %>" target="_blank" title='系统提示 竞赛申请进度反馈:您申请成为竞赛"<%=Contest.find(ma.contest_id).name %>"的"<%=role_str %>"<%= ma.status == 1 ? "申请已通过" : "的申请被拒绝"%>'><span class="shadowbox_news_user">系统提示 </span>竞赛申请进度反馈:您申请成为竞赛"<%=Contest.find(ma.contest_id).name %>"的"<%=role_str %>"<%= ma.status == 1 ? "申请已通过" : "的申请被拒绝"%></a></li>
|
||||
<% elsif ma.contest_message_type == "JoinContest" and ma.status == 0 %>
|
||||
<li><a href="<%=contest_path(ma.contest) %>" target="_blank" title="<%=User.find(ma.contest_message_id).show_name %> 将您加入了竞赛:<%= ma.contest.name%>"><span class="shadowbox_news_user"><%=User.find(ma.contest_message_id).show_name %> </span>将您加入了竞赛:<%= ma.contest.name%></a></li>
|
||||
<% elsif ma.contest_message_type == "JoinContest" and ma.status == 1 %>
|
||||
<li><a href="<%=settings_contest_path(ma.contest_id, :tab=>'member') %>" target="_blank" title="系统提示 您增加了新的竞赛成员:<%= User.find(ma.contest_message_id).login+"("+User.find(ma.contest_message_id).show_name+")"%>"><span class="shadowbox_news_user">系统提示 </span>您增加了新的竞赛成员:<%= User.find(ma.contest_message_id).login+"("+User.find(ma.contest_message_id).show_name+")"%></a></li>
|
||||
<% elsif ma.contest_message_type == "JoinContest" and ma.status == 1 %>
|
||||
<li><a href="<%=contest_path(ma.contest) %>" target="_blank" title="<%=User.find(ma.contest_message_id).show_name %> 将您移出了竞赛:<%= ma.contest.name%>"><span class="shadowbox_news_user"><%=User.find(ma.contest_message_id).show_name %> </span>将您移出了竞赛:<%= ma.contest.name%></a></li>
|
||||
<% end %>
|
||||
<% elsif ma.class == AppliedMessage %>
|
||||
<% if ma.applied_type == "AppliedProject" %>
|
||||
<li><%=link_to "<span class='shadowbox_news_user'>#{applied_project_users(ma)}</span>".html_safe, user_path(applied_project_users(ma)), :target => '_blank' %>
|
||||
|
|
|
@ -11,11 +11,22 @@
|
|||
<%= favicon %>
|
||||
<%= javascript_heads %>
|
||||
<%= heads_for_theme %>
|
||||
<%= call_hook :view_layouts_base_html_head %>
|
||||
<%= stylesheet_link_tag 'jquery/jquery-ui-1.9.2','css/common','css/public', 'css/structure','prettify', 'css/courses','css/popup','sy_public','syllabus', 'css/moduel','css/contest'%>
|
||||
<%= javascript_include_tag "course","avatars","header","attachments",'prettify','contest' %>
|
||||
<%= call_hook :view_layouts_base_html_head %>
|
||||
<!-- page specific tags -->
|
||||
<%= yield :header_tags -%>
|
||||
|
||||
<!-- MathJax的配置 -->
|
||||
<script type="text/javascript" src="/javascripts/MathJax/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
|
||||
<!-- 配置 : 在生成的公式图片上去掉Math定义的右键菜单,$$ $$ \( \) \[ \] 中的公式给予显示-->
|
||||
<script type="text/x-mathjax-config">
|
||||
MathJax.Hub.Config({
|
||||
showMathMenu: false,
|
||||
showMathMenuMSIE: false,
|
||||
tex2jax: {inlineMath: [['$','$'], ['\\(','\\)']]}
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<!--add by huang-->
|
||||
|
@ -45,11 +56,15 @@
|
|||
<a href="<%= works_path(:contest => @contest.id,:is_new => 1) %>" class="sy_class_add"></a>
|
||||
<% end %>
|
||||
</li>
|
||||
<% contest_board = @contest.boards.where("parent_id is NULL").first %>
|
||||
<li id="sy_04" class="sy_icons_boards">
|
||||
<% count = @contest.boards.first ? (@contest.boards.first.topics.count + Message.where("board_id =? and parent_id is not ?", @contest.boards.first.id, nil).count) : 0 %>
|
||||
<% count = contest_board ? contest_board.messages.count : 0 %>
|
||||
<a href="<%=contest_boards_path(@contest) %>">讨论区<span><%=count %></span></a>
|
||||
<%= link_to( "",contest_boards_path(@contest, :flag => true, :is_new => 1), :class => 'sy_class_add', :title =>"#{l(:label_message_new)}") if is_admin %>
|
||||
</li>
|
||||
<div id="board_children_list">
|
||||
<%= render :partial => 'layouts/contest_board_children_list', :locals => {:contest_board => contest_board} %>
|
||||
</div>
|
||||
<li id="sy_05" class="sy_icons_news">
|
||||
<%= link_to "通知<span>#{@contest.news.count}</span>".html_safe, contest_news_index_path(@contest), :class => "sy_icons_feedback" %>
|
||||
<% if is_admin %>
|
||||
|
@ -84,21 +99,12 @@
|
|||
</div>
|
||||
<div id="ajax-modal" style="display:none;"></div>
|
||||
<div id="nh_tx_dialog_html" class="white_content" style="display:none;">
|
||||
<%=render :partial => 'layouts/upload_avatar', :locals => {:source => @contest} %>
|
||||
<%=render :partial => 'contests/upload_img', :locals => {:source => @contest} %>
|
||||
<%#=render :partial => 'layouts/upload_avatar', :locals => {:source => @contest} %>
|
||||
</div>
|
||||
<%= call_hook :view_layouts_base_body_bottom %>
|
||||
</body>
|
||||
<!-- MathJax的配置 -->
|
||||
<script type="text/javascript" src="/javascripts/MathJax/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
|
||||
<!-- 配置 : 在生成的公式图片上去掉Math定义的右键菜单,$$ $$ \( \) \[ \] 中的公式给予显示-->
|
||||
<script type="text/x-mathjax-config">
|
||||
MathJax.Hub.Config({
|
||||
showMathMenu: false,
|
||||
showMathMenuMSIE: false,
|
||||
tex2jax: {inlineMath: [['$','$'], ['\\(','\\)']]}
|
||||
});
|
||||
</script>
|
||||
<%= javascript_include_tag 'cookie','project',"avatars", 'header','prettify','select_list_move','attachments' %>
|
||||
|
||||
<script>
|
||||
var blog_artile_list_html = '';
|
||||
$(function(){
|
||||
|
|
|
@ -65,9 +65,9 @@
|
|||
</li>
|
||||
<% end %>
|
||||
<% course_board = @course.boards.where("parent_id is NULL").first %>
|
||||
<% unless show_nav?(course_board ? course_board.topics.count : 0) %>
|
||||
<% unless show_nav?(course_board ? course_board.messages.count : 0) %>
|
||||
<li id="sy_02" class="sy_icons_boards">
|
||||
<% count = course_board ? (course_board.topics.count + Message.where("board_id =? and parent_id is not ?", course_board.id, nil).count) : 0 %>
|
||||
<% count = course_board ? course_board.messages.count : 0 %>
|
||||
<a href="<%=course_boards_path(@course) %>">讨论区<span><%=count %></span></a>
|
||||
<%= link_to( "",course_boards_path(@course, :flag => true, :is_new => 1), :class => 'sy_class_add', :title =>"#{l(:label_message_new)}") if User.current.logged? %>
|
||||
</li>
|
||||
|
|
|
@ -1,8 +1,13 @@
|
|||
$("img[nhname='avatar_image']").attr('src',$("#nh_source_tx").attr('src'));
|
||||
<% if @contest %>
|
||||
var htmlvalue = $("#nh_tx_dialog_html").html();
|
||||
pop_box_new(htmlvalue, 1000, 400);
|
||||
<% else %>
|
||||
$('#ajax-modal').html($("#nh_tx_dialog_html").html());
|
||||
showModal('ajax-modal','460px');
|
||||
$('#ajax-modal').siblings().hide();
|
||||
$('#ajax-modal').parent().removeClass("alert_praise").removeClass("copyCoursePopup");
|
||||
$('#ajax-modal').parent().css("top","30%").css("left","40%");
|
||||
$('#ajax-modal').parent().addClass("alert_box");
|
||||
$('#ajax-modal').parent().css("border", "3px solid #269ac9").css("border-radius", "0").css(" -webkit-border-radius", "0").css(" -moz-border-radius", "0");
|
||||
$('#ajax-modal').parent().css("border", "3px solid #269ac9").css("border-radius", "0").css(" -webkit-border-radius", "0").css(" -moz-border-radius", "0");
|
||||
<% end %>
|
|
@ -6,6 +6,8 @@ $("#nh_source_tx").replaceWith('<%= image_tag(url_to_avatar(@course), :id=>'nh_s
|
|||
if($("#course_avatar_form").length > 0) {
|
||||
window.location.href = "<%=settings_course_path(@course) %>";
|
||||
}
|
||||
<% elsif @contest %>
|
||||
$("#nh_source_tx").replaceWith('<%= image_tag(url_to_avatar(@contest), :id=>'nh_source_tx',:style=>"width:968px;height:110px;overflow:hidden",:alt=>"竞赛图片") %>');
|
||||
<% elsif @project %>
|
||||
$("#nh_source_tx").replaceWith('<%= image_tag(url_to_avatar(@project), :id=>'nh_source_tx',:style=>"width:110px;height:110px;overflow:hidden",:alt=>"项目logo") %>');
|
||||
if($("#project_avatar_form").length > 0) {
|
||||
|
|
|
@ -45,7 +45,7 @@
|
|||
<% end %>
|
||||
</th>
|
||||
<th class="hworkList70">
|
||||
<%= link_to "教辅", @show_all ? student_work_index_path(:homework => @homework.id, :order => "teaching_asistant_score", :sort => @score, :name => @name, :group => @group) : "javascript:void(0)", :class => "c_dark f14 fb", :remote => true %>
|
||||
<%= link_to "助教", @show_all ? student_work_index_path(:homework => @homework.id, :order => "teaching_asistant_score", :sort => @score, :name => @name, :group => @group) : "javascript:void(0)", :class => "c_dark f14 fb", :remote => true %>
|
||||
<% if @show_all && @order == "teaching_asistant_score" %>
|
||||
<%= link_to "", student_work_index_path(:homework => @homework.id, :order => "teaching_asistant_score", :sort => @score, :name => @name, :group => @group), :class => "#{@score == 'desc' ? 'sort_up' : 'sort_down'} float-none", :style => "line-height:30px; vertical-align:middle;", :remote => true %>
|
||||
<% end %>
|
||||
|
|
|
@ -48,7 +48,8 @@
|
|||
<div class="cl"></div>
|
||||
</div>
|
||||
<% else %>
|
||||
<p class="nodata"><%= l(:label_no_data) %></p>
|
||||
<div class="icons_tishi"><img src="/images/sy/icons_smile.png" width="110" height="110" alt="" ></div>
|
||||
<p class="sy_tab_con_p">没有数据可以显示!</p>
|
||||
<% end %>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
role_str = "参赛者"
|
||||
end
|
||||
end %>
|
||||
<%= link_to ma.status == 1 ?
|
||||
<%= link_to ma.status == 1 ?
|
||||
'您申请成为竞赛"'+Contest.find(ma.contest_id).name+'"的'+ role_str +'申请已通过'
|
||||
:
|
||||
'您申请成为竞赛"'+Contest.find(ma.contest_id).name+'"的'+ role_str +'的申请被拒绝', contest_path(Contest.find(ma.contest_id)),
|
||||
|
@ -145,6 +145,67 @@
|
|||
<li class="homepageNewsTime fr"><%= time_tag(ma.created_at).html_safe %> </li>
|
||||
</ul>
|
||||
|
||||
<!--竞赛启动在线评审-->
|
||||
<% elsif ma.contest_message_type == "Work" && ma.status == 2 && ma.contest_message %>
|
||||
<ul class="homepageNewsList fl">
|
||||
<div class="longMessageWidth">
|
||||
<li class="homepageNewsPortrait fl">
|
||||
<%= link_to image_tag(url_to_avatar(ma.contest_message.user), :width => "30", :height => "30"), user_path(ma.contest_message.user), :target => '_blank' %>
|
||||
</li>
|
||||
<li class="homepageNewsPubType fl">
|
||||
<%= link_to ma.contest_message.user.show_name, user_path(ma.contest_message.user), :class => "newsBlue homepageNewsPublisher", :target => '_blank' %>
|
||||
<span class="homepageNewsType fl">启动了在线评审:</span>
|
||||
</li>
|
||||
<li class="messageInformationContents">
|
||||
<%= link_to ma.contest_message.name, contestant_works_path(:work => ma.contest_message.id), :class => "#{ma.viewed == 0 ? "newsBlack" : "newsGrey"}"%>
|
||||
</li>
|
||||
</div>
|
||||
<li class="homepageNewsTime fr"><%= time_tag(ma.created_at).html_safe %> </li>
|
||||
</ul>
|
||||
|
||||
<!--在线评审启动失败-->
|
||||
<% elsif ma.contest_message_type == "Work" && ma.status == 4 && ma.contest_message %>
|
||||
<ul class="homepageNewsList fl">
|
||||
<div class="longMessageWidth">
|
||||
<li class="homepageNewsPortrait fl">
|
||||
<%= link_to image_tag(url_to_avatar(ma.contest_message.user), :width => "30", :height => "30"), user_path(ma.contest_message.user), :target => '_blank' %>
|
||||
</li>
|
||||
<li class="homepageNewsPubType fl">
|
||||
<%= link_to ma.contest_message.user.show_name, user_path(ma.contest_message.user), :class => "newsBlue homepageNewsPublisher", :target => '_blank' %>
|
||||
<span class="homepageNewsType fl">在线评审启动失败<font class="fr c_red">(评委数为0或作品数为0):</font></span>
|
||||
</li>
|
||||
<li class="messageInformationContents">
|
||||
<%= link_to ma.contest_message.name, contestant_works_path(:work => ma.contest_message.id), :class => "#{ma.viewed == 0 ? "newsBlack" : "newsGrey"}"%>
|
||||
</li>
|
||||
</div>
|
||||
<li class="homepageNewsTime fr"><%= time_tag(ma.created_at).html_safe %> </li>
|
||||
</ul>
|
||||
|
||||
<!--在线评审时间快到了-->
|
||||
<% elsif ma.contest_message_type == "Work" && ma.status == 5 && ma.contest_message %>
|
||||
<ul class="homepageNewsList fl">
|
||||
<div class="shortMessageWidth">
|
||||
<li class="homepageNewsPortrait fl">
|
||||
<%=link_to image_tag(url_to_avatar(ma.contest_message.user), :width => "30", :height => "30"), user_path(ma.contest_message.user), :target => '_blank' %>
|
||||
</li>
|
||||
<li class="homepageNewsPubType fl">
|
||||
<%=link_to ma.contest_message.user.show_name, user_path(ma.contest_message.user),
|
||||
:class => "newsBlue homepageNewsPublisher",
|
||||
:title => "#{ma.contest_message.user.show_name}",
|
||||
:target => '_blank' %>
|
||||
<span class="homepageNewsType fl">启动的在线评审:</span></li>
|
||||
<li class="messageInformationContents">
|
||||
<%= link_to ma.contest_message.name, contestant_works_path(:work => ma.contest_message.id),
|
||||
:class => "#{ma.viewed == 0 ? "newsBlack" : "newsGrey"}",
|
||||
:target => '_blank',
|
||||
:title => "竞赛题:#{ma.contest_message.name}"
|
||||
%>
|
||||
</li>
|
||||
</div>
|
||||
<li class="messageOperateContents fl" title="截止时间快到啦">截止时间快到啦</li>
|
||||
<li class="homepageNewsTime fr"><%= time_tag(ma.created_at).html_safe %> </li>
|
||||
</ul>
|
||||
|
||||
<!--发布竞赛通知-->
|
||||
<% elsif ma.contest_message_type == "News" && ma.contest_message %>
|
||||
<ul class="homepageNewsList fl">
|
||||
|
@ -216,7 +277,25 @@
|
|||
<% end %>
|
||||
</div>
|
||||
<li class="homepageNewsTime fr"><%= time_tag(ma.created_at).html_safe %> </li>
|
||||
</ul>
|
||||
|
||||
<!--发布/回复了竞赛留言-->
|
||||
<% elsif ma.contest_message_type == "JournalsForMessage" && ma.contest_message && ma.contest_message.jour_type == 'Contest' %>
|
||||
<ul class="homepageNewsList fl">
|
||||
<div class="longMessageWidth">
|
||||
<li class="homepageNewsPortrait fl">
|
||||
<%= link_to image_tag(url_to_avatar(ma.contest_message.user), :width => "30", :height => "30"), user_path(ma.contest_message.user), :target => '_blank' %>
|
||||
</li>
|
||||
<li class="homepageNewsPubType fl">
|
||||
<%= link_to ma.contest_message.user.try(:show_name), user_path(ma.contest_message.user), :class => "newsBlue homepageNewsPublisher", :target => '_blank' %>
|
||||
<span class="homepageNewsType fl"><%= ma.contest_message.m_parent_id.nil? ? "发布了竞赛留言:" : "回复了竞赛留言:" %></span>
|
||||
</li>
|
||||
<li class="messageInformationContents">
|
||||
<%= link_to message_content(ma.contest_message.notes), contest_feedback_path(:id => ma.contest_id),
|
||||
:class => "#{ma.viewed == 0 ? "newsBlack" : "newsGrey"}", :target => '_blank' %>
|
||||
</li>
|
||||
</div>
|
||||
<li class="homepageNewsTime fr"><%= time_tag(ma.created_at).html_safe %> </li>
|
||||
</ul>
|
||||
<% end %>
|
||||
<% end %>
|
|
@ -629,28 +629,23 @@ RedmineApp::Application.routes.draw do
|
|||
|
||||
member do
|
||||
match 'settings' , :via => [:get, :post]
|
||||
get 'feedback', :action => 'feedback', :as => 'contest_feedback'
|
||||
get 'dealwith_apply_request'
|
||||
get 'contest_activities'
|
||||
get 'private_or_public'
|
||||
get "switch_role"
|
||||
get 'set_invite_code_halt'
|
||||
get 'renew'
|
||||
get 'member'
|
||||
end
|
||||
|
||||
resources :boards
|
||||
resources :files, :only => [:index, :new, :create] do
|
||||
collection do
|
||||
match "getattachtype", :via => [:get, :post]
|
||||
match "search",:via => [:post,:get]
|
||||
match "searchone4reload",:via => [:post,:get]
|
||||
match "search_tag_attachment", :via => [:post,:get]
|
||||
end
|
||||
resource :files do
|
||||
member do
|
||||
match "quote_resource_show", :via => [:get]
|
||||
get "file_hidden"
|
||||
post "republish_file"
|
||||
get "update_file_description"
|
||||
post "edit_file_description"
|
||||
|
||||
end
|
||||
collection do
|
||||
|
||||
end
|
||||
end
|
||||
resources :news, :except => [:show, :edit, :update, :destroy]
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
class AddTaModeToHomework < ActiveRecord::Migration
|
||||
def change
|
||||
add_column :homework_detail_manuals, :ta_mode, :integer, :default => 1
|
||||
end
|
||||
end
|
|
@ -0,0 +1,5 @@
|
|||
class AddJudgeScoreToContestantWork < ActiveRecord::Migration
|
||||
def change
|
||||
add_column :contestant_works, :judge_score, :integer
|
||||
end
|
||||
end
|
|
@ -9,7 +9,7 @@ namespace :contest_work_endtime do
|
|||
homework_commons.each do |homework_common|
|
||||
if ContestMessage.where("contest_message_type =? and contest_message_id =? and status =?", "Work", homework_common.id, 1).first.nil?
|
||||
homework_common.contest.contestants.each do |s|
|
||||
homework_common.contest_messages << ContestMessage.new(:user_id => s.student_id, :contest_id => homework_common.contest_id, :viewed => false, :status => true)
|
||||
homework_common.contest_messages << ContestMessage.new(:user_id => s.student_id, :contest_id => homework_common.contest_id, :viewed => false, :status => 1)
|
||||
# 发送邮件通知
|
||||
# Mailer.homework_endtime__added(homework_common, s.student_id).deliver
|
||||
end
|
||||
|
@ -17,4 +17,22 @@ namespace :contest_work_endtime do
|
|||
end
|
||||
puts "--------------------------------contest_work_endtime end"
|
||||
end
|
||||
|
||||
task :evaluation_message => :environment do
|
||||
puts "--------------------------------contest_work_evaluation_endtime start"
|
||||
contrast_time = Time.now - 86400
|
||||
works = Work.where(:online_evaluation => true, :work_status => 3)
|
||||
work_ids = works.blank? ? "(-1)" : "(" + works.map{|work| work.id}.join(",") + ")"
|
||||
work_detail_manuals = WorkDetailManual.where("evaluation_end >=? and evaluation_end <= '#{Date.today}' and work_id in #{work_ids}",contrast_time)
|
||||
|
||||
work_detail_manuals.each do |work_detail|
|
||||
work = work_detail.work
|
||||
if ContestMessage.where("contest_message_type =? and contest_message_id =? and status =?", "Work", work.id, 5).first.nil?
|
||||
work.contest.contest_judges.each do |s|
|
||||
work.contest_messages << ContestMessage.new(:user_id => s.user_id, :contest_id => work.contest_id, :viewed => false, :status => 5)
|
||||
end
|
||||
end
|
||||
end
|
||||
puts "--------------------------------contest_work_evaluation_endtime end"
|
||||
end
|
||||
end
|
||||
|
|
|
@ -12,40 +12,59 @@ namespace :contest_work_evaluation do
|
|||
def contest_judges contest
|
||||
contest.contest_members.select{|cm| cm.roles.to_s.include?("Judge")}
|
||||
end
|
||||
# 获取竞赛的管理人员
|
||||
def contest_managers contest
|
||||
contest.contest_members.select{|cm| cm.roles.to_s.include?("ContestManager")}
|
||||
end
|
||||
#自动开启匿评的任务
|
||||
task :start_evaluation => :environment do
|
||||
Rails.logger.info("log--------------------------------contest_work_start_evaluation start")
|
||||
puts "--------------------------------contest_work_start_evaluation start"
|
||||
works = Work.where(:online_evaluation => true, :work_status => [1, 2])
|
||||
work_ids = works.blank? ? "(-1)" : "(" + works.map{|work| work.id}.join(",") + ")"
|
||||
puts "1111 #{work_ids}"
|
||||
homework_detail_manuals = WorkDetailManual.where("evaluation_start <= '#{Date.today}' and work_id in #{work_ids}")
|
||||
homework_detail_manuals.each do |homework_detail_manual|
|
||||
puts "222 #{homework_detail_manual.evaluation_start}"
|
||||
work = homework_detail_manual.work
|
||||
contestant_works = work.contestant_works.has_committed
|
||||
if homework_detail_manual.evaluation_num != -1
|
||||
judges = contest_judges work.contest
|
||||
n = homework_detail_manual.evaluation_num
|
||||
n = (n < judges.size && n != -1) ? n : judges.size
|
||||
contestant_works.each_with_index do |work, index|
|
||||
user = work.user
|
||||
assigned_judges = get_assigned_contestant_works(judges, n, index, judges.size)
|
||||
assigned_judges.each do |h|
|
||||
contestant_works_evaluation_distributions = ContestantWorkEvaluationDistribution.new(user_id: h.user_id, contestant_work_id: work.id)
|
||||
contestant_works_evaluation_distributions.save
|
||||
end
|
||||
end
|
||||
judges = contest_judges work.contest
|
||||
|
||||
work.update_column('work_status', 3)
|
||||
# 匿评开启消息邮件通知,# 所有人
|
||||
#send_message_anonymous_comment(homework_common, 2)
|
||||
# 作品数为0||评委数为0 启动失败给管理员发消息
|
||||
if contestant_works.count == 0 || judges.count == 0
|
||||
contest = work.contest
|
||||
contest.contest_members.each do |m|
|
||||
work.contest_messages << ContestMessage.new(:user_id => m.user_id, :contest_id => contest.id, :viewed => false, :status => 2)
|
||||
contest_managers(contest).each do |m|
|
||||
work.contest_messages << ContestMessage.new(:user_id => m.user_id, :contest_id => contest.id, :viewed => false, :status => 4)
|
||||
end
|
||||
else
|
||||
#限定评审人数
|
||||
if homework_detail_manual.evaluation_num != -1
|
||||
# 分配作品 启动成功给评委发消息
|
||||
n = homework_detail_manual.evaluation_num
|
||||
n = (n < judges.size && n != -1) ? n : judges.size
|
||||
contestant_works.each_with_index do |work, index|
|
||||
user = work.user
|
||||
assigned_judges = get_assigned_contestant_works(judges, n, index, judges.size)
|
||||
assigned_judges.each do |h|
|
||||
contestant_works_evaluation_distributions = ContestantWorkEvaluationDistribution.new(user_id: h.user_id, contestant_work_id: work.id)
|
||||
contestant_works_evaluation_distributions.save
|
||||
end
|
||||
end
|
||||
|
||||
work.update_column('work_status', 3)
|
||||
# 匿评开启消息邮件通知,# 所有人
|
||||
#send_message_anonymous_comment(homework_common, 2)
|
||||
contest = work.contest
|
||||
contest.contest_members.each do |m|
|
||||
work.contest_messages << ContestMessage.new(:user_id => m.user_id, :contest_id => contest.id, :viewed => false, :status => 2)
|
||||
end
|
||||
|
||||
#未限定评审人数
|
||||
else
|
||||
work.update_column('work_status', 3)
|
||||
contest = work.contest
|
||||
contest.contest_members.each do |m|
|
||||
work.contest_messages << ContestMessage.new(:user_id => m.user_id, :contest_id => contest.id, :viewed => false, :status => 2)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 114 KiB After Width: | Height: | Size: 17 KiB |
|
@ -160,6 +160,7 @@ h4{ font-size:14px;}/*color:#3b3b3b;*/
|
|||
.mr10{ margin-right:10px;}
|
||||
.mr12{ margin-right:12px;}
|
||||
.mr15 {margin-right:15px;}
|
||||
.mr16 {margin-right:16px;}
|
||||
.mr18 {margin-right:18px;}
|
||||
.mr20{ margin-right:20px;}
|
||||
.mr25 {margin-right:25px;}
|
||||
|
@ -882,3 +883,6 @@ input.btn-grey:hover{background: #717171; color: #fff; cursor:default;}
|
|||
.icons-user-homework{background:url(/images/user/home-user-left.png) 0px -150px no-repeat; }
|
||||
.homework-user-leftnav-li{ height: 25px; line-height: 40px; padding-left: 25px; color: #666;background:url(/images/user/home-user-left.png) 0px -149px no-repeat; font-size: 14px; position: relative; }
|
||||
.homework-user-leftnav-li:hover{ height: 25px; line-height: 40px; padding-left: 25px; background:#f4f4f4; background:url(/images/user/home-user-left.png) 0px -186px no-repeat; font-size: 14px; position: relative; }
|
||||
|
||||
.separator_short{margin-top: 5px; margin-bottom: 5px; margin-left: 37px; width: 433px; display: block; border-bottom: 1px solid #d9d9d9;}
|
||||
.separator_long{margin-top: 5px; margin-bottom: 5px; margin-left: 37px; width: 522px; display: block; border-bottom: 1px solid #d9d9d9;}
|
||||
|
|
|
@ -27,11 +27,29 @@ p.pro_new_grey{ line-height: 1.9; }
|
|||
.game-setting-nav-hover{border-bottom:3px solid #3498db; font-weight:bold; }
|
||||
.game-setting-nav-nomall {border-bottom:none; }
|
||||
.undis {display:none;}
|
||||
.dis {display:block;}
|
||||
.game-dis {display:block;}
|
||||
/* 竞赛*/
|
||||
.banner-game { width: 968px; height: 110px;}
|
||||
.game-text-right{ text-align: right;}
|
||||
.game-text-left{ text-align: left;}
|
||||
.banner-game { width: 968px; height: 110px; position: relative; overflow: hidden;}
|
||||
.banner-inner {
|
||||
display: block;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 100%;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: #000;
|
||||
text-align: center;
|
||||
opacity: 0.3;
|
||||
-moz-transition: top ease 200ms;
|
||||
-o-transition: top ease 200ms;
|
||||
-webkit-transition: top ease 200ms;
|
||||
transition: top ease 200ms;
|
||||
}
|
||||
a.banner-notice {position: absolute; font-size: 16px; line-height: 20px; top: 152px; left: 394px; color: #fff; padding:2px 5px;}
|
||||
.banner-game:hover .banner-inner { top: 0;}
|
||||
.banner-game:hover .banner-notice { top: 42px;}
|
||||
.sy_new_table tbody tr td.game-text-right{ text-align: right;}
|
||||
.sy_new_table tbody tr td.game-text-left{ text-align: left;}
|
||||
.game-setting-h3{ width: 100%; height: 40px; line-height: 40px; font-size: 14px; color: #666; font-weight: normal; background: #fff; border-bottom: 10px solid #eaebec;}
|
||||
.w695{width: 695px; }
|
||||
.w625{width: 625px; }
|
||||
|
@ -40,3 +58,10 @@ p.pro_new_grey{ line-height: 1.9; }
|
|||
.contestRightBanner {width:718px; margin:0px auto; float:right; background-color: #ffffff; padding:10px 15px;}
|
||||
|
||||
.sy_new_table tbody tr th{ height:40px; line-height:40px; border-bottom:1px solid #e5e5e5; color:#888;}
|
||||
|
||||
.contest-score-tip {width:140px; color:#666; position:absolute; padding:3px 5px; border:1px solid #eaeaea; right:-223px; top:18px; background-color:#ffffff; line-height:20px; box-shadow:0px 2px 8px rgba(146, 153, 169, 0.5); white-space:nowrap;}
|
||||
.contest-score-tip em {display:block; border-width:8px; position:absolute; top:6px; left:-16px; border-style:dashed solid dashed dashed; border-color:transparent #eaeaea transparent transparent; font-size:0; line-height:0;}
|
||||
.contest-score-tip font {display:block; border-width:8px; position:absolute; top:6px; left:-15px; border-style:dashed solid dashed dashed; border-color:transparent #FFF transparent transparent; font-size:0; line-height:0;}
|
||||
.contest-group-score-tip {width:140px; color:#666; position:absolute; padding:3px 5px; border:1px solid #eaeaea; right:-193px; top:-4px; background-color:#ffffff; line-height:20px; box-shadow:0px 2px 8px rgba(146, 153, 169, 0.5); white-space:nowrap;}
|
||||
.contest-group-score-tip em {display:block; border-width:8px; position:absolute; top:6px; left:-16px; border-style:dashed solid dashed dashed; border-color:transparent #eaeaea transparent transparent; font-size:0; line-height:0;}
|
||||
.contest-group-score-tip font {display:block; border-width:8px; position:absolute; top:6px; left:-15px; border-style:dashed solid dashed dashed; border-color:transparent #FFF transparent transparent; font-size:0; line-height:0;}
|
||||
|
|
Loading…
Reference in New Issue