Merge branch 'develop' into dev_cs
This commit is contained in:
commit
349b259c0e
|
|
@ -536,6 +536,21 @@ class AccountController < ApplicationController
|
|||
redirect_to professional_certification_account_path
|
||||
end
|
||||
|
||||
# 修改资料时判断学号是否已使用
|
||||
def check_user_student_id
|
||||
data = {result:0, account:""}
|
||||
if params[:student_id] && params[:school_id]
|
||||
if UserExtensions.where("student_id = '#{params[:student_id]}' and school_id = #{params[:school_id]} and user_id != #{User.current.id}").count > 0
|
||||
user = User.where(:id => UserExtensions.where("student_id = '#{params[:student_id]}' and school_id = #{params[:school_id]} and user_id != #{User.current.id}").map(&:user_id)).first
|
||||
data[:account] = user.mail.blank? ? user.user_phone : user.user_mail
|
||||
else
|
||||
data[:result] = 1
|
||||
end
|
||||
end
|
||||
render :json => data
|
||||
end
|
||||
|
||||
# 实名认证时判断学号是否已使用
|
||||
def check_student_id
|
||||
data = {result:0, account:""}
|
||||
if params[:student_id] && params[:school_id]
|
||||
|
|
@ -555,6 +570,7 @@ class AccountController < ApplicationController
|
|||
render :json => data
|
||||
end
|
||||
|
||||
# 实名认证时判断证件号码是否已使用
|
||||
def check_id_number
|
||||
data = {result:0, account:""}
|
||||
if params[:id_number]
|
||||
|
|
|
|||
|
|
@ -106,7 +106,7 @@ class CoursesController < ApplicationController
|
|||
end
|
||||
|
||||
def shixun_statistics
|
||||
@homeworks = @course.homework_commons.where("homework_type = 4").order("created_at asc")
|
||||
@homeworks = @course.homework_commons.where("homework_type = 4 and publish_time < '#{Time.now}'").order("publish_time desc")
|
||||
filename="#{format_date(Time.now)}_#{@course.teacher.show_real_name.to_s}_#{@course.name}_实训数据报告";
|
||||
|
||||
respond_to do |format|
|
||||
|
|
@ -2007,6 +2007,83 @@ class CoursesController < ApplicationController
|
|||
blue = Spreadsheet::Format.new :color => :blue, :weight => :bold, :size => 10
|
||||
black = Spreadsheet::Format.new :color => :black, :weight => :bold, :size => 10
|
||||
current_row = 0
|
||||
sheet = book.create_worksheet :name => "学员统计"
|
||||
sheet.row(0).default_format = blue
|
||||
sheet.row(0).concat(["学生id","学生姓名","作业编号","作业/实训名称","关卡"," 经验值","金币","评测历史","评测时间","评测结果"])
|
||||
course.student.each_with_index do |course, i|
|
||||
# 总统计
|
||||
count_exp_score = 0
|
||||
count_gold_score = 0
|
||||
count_test = 0
|
||||
count_time = 0
|
||||
game_count = 0
|
||||
# end
|
||||
user = course.student
|
||||
current_row += 1
|
||||
sheet[current_row, 0] = user.login
|
||||
sheet[current_row, 1] = user.show_real_name
|
||||
homeworks.each_with_index do |homework, j|
|
||||
# 关卡统计
|
||||
count_game_exp_score = 0
|
||||
count_game_gold_score = 0
|
||||
count_game_test = 0
|
||||
count_game_time = 0
|
||||
# end
|
||||
sheet[current_row, 2] = "# #{j + 1}"
|
||||
sheet[current_row, 3] = homework.name
|
||||
shixun = homework.homework_commons_shixuns.shixun if homework.homework_commons_shixuns
|
||||
if shixun
|
||||
shixun.challenges.each_with_index do |challenge, k|
|
||||
sheet[current_row, 4] = "第#{k+1}关"
|
||||
games = Game.where(:challenge_id => challenge.id, :user_id => user.id)
|
||||
game_count = game_count + games.count
|
||||
if games.count > 0
|
||||
games.each do |game|
|
||||
sheet[current_row, 5] = game.final_score ? "+#{game.final_score.to_s}" : "--"
|
||||
sheet[current_row, 6] = game.final_score ? (game.answer_open? ? "#{-challenge.score.to_i}" : "+#{game.final_score.to_i}") : "--"
|
||||
count_exp_score += (game.final_score ? game.final_score.to_i : 0)
|
||||
count_gold_score += (game.final_score ? (game.answer_open? ? -challenge.score.to_i : game.final_score.to_i) : 0)
|
||||
count_game_exp_score += (game.final_score ? game.final_score.to_i : 0)
|
||||
count_game_gold_score += (game.final_score ? (game.answer_open? ? -challenge.score.to_i : game.final_score.to_i) : 0)
|
||||
count = game.outputs.count
|
||||
if count > 0
|
||||
outputs = game.outputs.where(:test_set_position => 1).reorder("created_at asc")
|
||||
outputs.each_with_index do |output, k|
|
||||
count_test += 1
|
||||
count_game_test += 1
|
||||
sheet[current_row, 7] = "第#{k+1}次评测"
|
||||
sheet[current_row, 8] = k == 0 ? game_spend_time((output.created_at - game.created_at).to_i) : game_spend_time((output.created_at - outputs[k-1].created_at).to_i)
|
||||
count_time = count_time + (k == 0 ? (output.created_at - game.created_at).to_i : (output.created_at - outputs[k-1].created_at).to_i)
|
||||
count_game_time += (k == 0 ? (output.created_at - game.created_at).to_i : (output.created_at - outputs[k-1].created_at).to_i)
|
||||
sheet[current_row, 9] = game.outputs.where(:query_index => output.query_index).select{|ou| ou.result == false}.count > 0 ? "失败" : "成功"
|
||||
current_row += 1
|
||||
end
|
||||
else
|
||||
current_row += 1
|
||||
end
|
||||
end
|
||||
else
|
||||
current_row += 1
|
||||
end
|
||||
end
|
||||
end
|
||||
sheet[current_row,4] = "合计"
|
||||
sheet[current_row,5] = count_game_exp_score >= 0 ? "+#{count_game_exp_score}" : "-#{count_game_exp_score}"
|
||||
sheet[current_row,6] = count_game_gold_score >= 0 ? "+#{count_game_gold_score}" : "#{count_game_gold_score}"
|
||||
sheet[current_row,7] = "共#{count_game_test}次评测"
|
||||
sheet[current_row,8] = game_spend_time((count_game_time == 0 ? 0 : (count_game_time / count_test)).to_i)+"/次"
|
||||
sheet.row(current_row).default_format = black
|
||||
current_row += 1
|
||||
end
|
||||
sheet[current_row,2] = "合计"
|
||||
sheet[current_row,4] = "共#{game_count}"
|
||||
sheet[current_row,5] = count_exp_score >= 0 ? "+#{count_exp_score}" : "-#{count_exp_score}"
|
||||
sheet[current_row,6] = count_gold_score >= 0 ? "+#{count_gold_score}" : "#{count_gold_score}"
|
||||
sheet[current_row,7] = "共#{count_test}次评测"
|
||||
sheet[current_row,8] = game_spend_time((count_time == 0 ? 0 : (count_time / count_test)).to_i)+"/次"
|
||||
sheet.row(current_row).default_format = black
|
||||
end
|
||||
|
||||
homeworks.each_with_index do |homework, i|
|
||||
sheet = book.create_worksheet :name => "第#{i+1}次作业"
|
||||
sheet.row(0).default_format = blue
|
||||
|
|
@ -2043,14 +2120,14 @@ class CoursesController < ApplicationController
|
|||
user = game.user
|
||||
sheet[current_row,6] = user.login
|
||||
sheet[current_row,7] = user.show_real_name
|
||||
sheet[current_row,8] = game.final_score ? "+#{game.final_score.to_s} 经验值" : "--"
|
||||
sheet[current_row,8] = game.final_score ? "+#{game.final_score.to_s}" : "--"
|
||||
count_exp_score = count_exp_score + (game.final_score ? game.final_score.to_i : 0)
|
||||
sheet[current_row,9] = game.final_score ? (game.answer_open? ? "#{-challenge.score.to_i} 金币" : "+#{game.final_score.to_i} 金币") : "--"
|
||||
sheet[current_row,9] = game.final_score ? (game.answer_open? ? "#{-challenge.score.to_i}" : "+#{game.final_score.to_i}") : "--"
|
||||
count_gold_score = count_gold_score + (game.final_score ? (game.answer_open? ? -challenge.score.to_i : game.final_score.to_i) : 0)
|
||||
|
||||
count = game.outputs.count
|
||||
if count > 0
|
||||
outputs = game.outputs.where(:test_set_position => 1).order("created_at asc")
|
||||
outputs = game.outputs.where(:test_set_position => 1).reorder("created_at asc")
|
||||
outputs.each_with_index do |output, k|
|
||||
count_test = count_test + 1
|
||||
sheet[current_row,10] = "第#{k+1}次评测"
|
||||
|
|
@ -2069,8 +2146,8 @@ class CoursesController < ApplicationController
|
|||
|
||||
sheet[current_row,6] = "合计"
|
||||
sheet[current_row,7] = games.count.to_s + "人"
|
||||
sheet[current_row,8] = count_exp_score >= 0 ? "+#{count_exp_score} 经验值" : "-#{count_exp_score} 经验值"
|
||||
sheet[current_row,9] = count_gold_score >= 0 ? "+#{count_gold_score} 金币" : "-#{count_gold_score} 金币"
|
||||
sheet[current_row,8] = count_exp_score >= 0 ? "+#{count_exp_score}" : "-#{count_exp_score}"
|
||||
sheet[current_row,9] = count_gold_score >= 0 ? "+#{count_gold_score}" : "#{count_gold_score}"
|
||||
sheet[current_row,10] = "共#{count_test}次评测"
|
||||
sheet[current_row,11] = game_spend_time((count_time == 0 ? 0 : (count_time / count_test)).to_i)+"/次"
|
||||
sheet.row(current_row).default_format = black
|
||||
|
|
|
|||
|
|
@ -89,7 +89,7 @@ class GamesController < ApplicationController
|
|||
# @praise 判断是否点赞
|
||||
# @tread 判断是否踩
|
||||
# git_repository_url @myshixun, "Myshixun"
|
||||
# @st 0 实践任务 1 多选任务 2 单选任务
|
||||
# @st 0 实践任务 1 选择题任务
|
||||
def show
|
||||
# 展示全部实训
|
||||
@is_subject = params[:is_subject]
|
||||
|
|
|
|||
|
|
@ -31,22 +31,22 @@ class HomeworkCommonController < ApplicationController
|
|||
end
|
||||
if @order.blank?
|
||||
if @is_teacher
|
||||
@homework_commons = @homework_commons.order("created_at desc")
|
||||
@homework_commons = @homework_commons.order("publish_time desc")
|
||||
else
|
||||
@homework_commons = @homework_commons.where("publish_time <= '#{Time.now}'").order("created_at desc")
|
||||
@homework_commons = @homework_commons.where("publish_time <= '#{Time.now}'").order("publish_time desc")
|
||||
end
|
||||
else
|
||||
case @order
|
||||
when '1'
|
||||
@homework_commons = @homework_commons.includes(:homework_detail_manual).where("homework_detail_manuals.comment_status = #{@order} and end_time > '#{Time.now}'").order("homework_commons.created_at desc")
|
||||
@homework_commons = @homework_commons.includes(:homework_detail_manual).where("homework_detail_manuals.comment_status = #{@order} and end_time > '#{Time.now}'").order("homework_commons.publish_time desc")
|
||||
when '3'
|
||||
@homework_commons = @homework_commons.includes(:homework_detail_manual).where("homework_detail_manuals.comment_status = #{@order} and homework_detail_manuals.evaluation_end > '#{Time.now}'").order("homework_commons.created_at desc")
|
||||
@homework_commons = @homework_commons.includes(:homework_detail_manual).where("homework_detail_manuals.comment_status = #{@order} and homework_detail_manuals.evaluation_end > '#{Time.now}'").order("homework_commons.publish_time desc")
|
||||
when '4'
|
||||
@homework_commons = @homework_commons.includes(:homework_detail_manual).where("(homework_detail_manuals.comment_status = #{@order} and homework_detail_manuals.appeal_time > '#{Time.now}')").order("homework_commons.created_at desc")
|
||||
@homework_commons = @homework_commons.includes(:homework_detail_manual).where("(homework_detail_manuals.comment_status = #{@order} and homework_detail_manuals.appeal_time > '#{Time.now}')").order("homework_commons.publish_time desc")
|
||||
when '5'
|
||||
@homework_commons = @homework_commons.includes(:homework_detail_manual).where("(homework_detail_manuals.comment_status = #{@order} and archive_time > '#{Time.now}')").order("homework_commons.created_at desc")
|
||||
@homework_commons = @homework_commons.includes(:homework_detail_manual).where("(homework_detail_manuals.comment_status = #{@order} and archive_time > '#{Time.now}')").order("homework_commons.publish_time desc")
|
||||
else
|
||||
@homework_commons = @homework_commons.includes(:homework_detail_manual).where("homework_detail_manuals.comment_status = #{@order}").order("homework_commons.created_at desc")
|
||||
@homework_commons = @homework_commons.includes(:homework_detail_manual).where("homework_detail_manuals.comment_status = #{@order}").order("homework_commons.publish_time desc")
|
||||
end
|
||||
end
|
||||
@is_student = User.current.logged? && (User.current.admin? || (User.current.member_of_course?(@course) && !@is_teacher))
|
||||
|
|
|
|||
|
|
@ -823,7 +823,7 @@ end
|
|||
@courselist= @courselist.where("name like '%#{search}%'")
|
||||
end
|
||||
end
|
||||
@courselist = @courselist.order("created_at #{@sx_order}")
|
||||
@courselist = @courselist.order("id #{@sx_order}")
|
||||
@courselist_count = @courselist.count
|
||||
limit = 20
|
||||
@is_remote = true
|
||||
|
|
@ -1591,7 +1591,7 @@ end
|
|||
else #同意
|
||||
shixun.update_column('status', 2)
|
||||
apply_action.update_attributes(:status => 1, :dealer_id => User.current.id)
|
||||
shixun_modify_status_without_publish shixun, 1
|
||||
add_shixun_modify_status shixun, 1
|
||||
# 实训发布后则不允许修改代码
|
||||
# g = Gitlab.client
|
||||
# shixun.shixun_members.each do |member|
|
||||
|
|
|
|||
|
|
@ -283,6 +283,9 @@ class MessagesController < ApplicationController
|
|||
#@replies = @replies[@page * @limit..@page * @limit + 9]
|
||||
@reply = Message.new()
|
||||
@user_activity_id = params[:user_activity_id].blank? ? @topic.id : params[:user_activity_id].to_i
|
||||
if !params[:user_activity_id].blank? && params[:user_activity_id].to_i != @topic.id
|
||||
@topic.update_attributes(:visits => @topic.visits + 1)
|
||||
end
|
||||
respond_to do |format|
|
||||
format.js
|
||||
end
|
||||
|
|
|
|||
|
|
@ -235,7 +235,19 @@ class MyController < ApplicationController
|
|||
if @user.save && @se.save
|
||||
|
||||
reward_grade(@user, @user.id, 'Account', 500)
|
||||
# 修改邮箱的时候同步修改到gitlab
|
||||
|
||||
if @se.identity == 1
|
||||
school_ids = School.where(:auto_users_trial => 1).map(&:id)
|
||||
if !@se.student_id.nil? && @se.student_id != "" && !@se.school.nil? && school_ids.include?(@se.school_id)
|
||||
apply_action = ApplyAction.where(:user_id => @user.id, :container_type => "TrialAuthorization", :status => 0).first
|
||||
|
||||
unless apply_action.blank?
|
||||
@user.update_attributes(:certification => 1)
|
||||
apply_action.update_attributes(:status => 1)
|
||||
end
|
||||
end
|
||||
end
|
||||
# 修改邮箱的时候同步修改到gitlab
|
||||
# if changed_mail || changed_login
|
||||
# g = Gitlab.client
|
||||
# s = Trustie::Gitlab::Sync.new
|
||||
|
|
|
|||
|
|
@ -367,16 +367,26 @@ class ShixunsController < ApplicationController
|
|||
# jenkins回调脚本
|
||||
# gameID 及实训ID
|
||||
def publish
|
||||
@status = 0
|
||||
@position = ""
|
||||
begin
|
||||
@shixun.update_attributes!(:status => 1)
|
||||
apply = ApplyAction.where(:container_type => "ApplyShixun", :container_id => @shixun.id).order("created_at desc").first
|
||||
if apply && apply.status == 0
|
||||
@status = 0
|
||||
else
|
||||
ApplyAction.create(:container_type => "ApplyShixun", :container_id => @shixun.id, :user_id => User.current.id, :status => 0)
|
||||
notes = User.current.show_name.to_s + " 申请发布实训:<a href='#{shixun_path(@shixun)}'>#{@shixun.name}</a>"
|
||||
JournalsForMessage.create(:jour_id => 1, :jour_type => 'Principal', :user_id => User.current.id, :notes => notes, :private => 1, :reply_id => 0)
|
||||
@status = 1
|
||||
@shixun.challenges.each do |challenge|
|
||||
if challenge.challenge_tags.count == 0
|
||||
@status = 2
|
||||
@position = (@position == "" ? @position : (@position + ",")) + challenge.position.to_s + "关"
|
||||
end
|
||||
end
|
||||
if @status == 0
|
||||
@shixun.update_attributes!(:status => 1)
|
||||
apply = ApplyAction.where(:container_type => "ApplyShixun", :container_id => @shixun.id).order("created_at desc").first
|
||||
if apply && apply.status == 0
|
||||
@status = 0
|
||||
else
|
||||
ApplyAction.create(:container_type => "ApplyShixun", :container_id => @shixun.id, :user_id => User.current.id, :status => 0)
|
||||
notes = User.current.show_name.to_s + " 申请发布实训:<a href='#{shixun_path(@shixun)}'>#{@shixun.name}</a>"
|
||||
JournalsForMessage.create(:jour_id => 1, :jour_type => 'Principal', :user_id => User.current.id, :notes => notes, :private => 1, :reply_id => 0)
|
||||
@status = 1
|
||||
end
|
||||
end
|
||||
rescue Exception => e
|
||||
@jenkin_error = true
|
||||
|
|
@ -610,23 +620,28 @@ class ShixunsController < ApplicationController
|
|||
gshixun = g.edit_project(gshixun.id, new_shixun.identifier, new_shixun.identifier)
|
||||
raise "实训复制失败" if (gshixun.try(:name) != new_shixun.identifier || gshixun.try(:path) != new_shixun.identifier)
|
||||
new_shixun.update_column(:gpid, gshixun.id)
|
||||
# 同步复制者至gitlab,必须要求用户绑定了邮箱
|
||||
ShixunMember.create!(:user_id => User.current.id, :shixun_id => new_shixun.try(:id), :role => 1)
|
||||
s = Trustie::Gitlab::Sync.new
|
||||
gid = User.current.try(:gid)
|
||||
u = g.add_team_member(gshixun.id, gid, 40) # 3代表角色master
|
||||
|
||||
# 同步复制合作者,合作者加入到gitlab
|
||||
unless User.current.manager_of_shixun?(@shixun)
|
||||
ShixunMember.create!(:user_id => User.current.id, :shixun_id => new_shixun.try(:id), :role => 1)
|
||||
end
|
||||
@shixun.shixun_members.each do |shixun_member|
|
||||
if ShixunMember.where(:shixun_id => new_shixun.try(:id), :user_id => shixun_member.user_id).blank?
|
||||
ShixunMember.create!(:user_id => shixun_member.try(:user_id), :shixun_id => new_shixun.try(:id),
|
||||
:role => (shixun_member.try(:user_id) == User.current.id ? 1 : 2))
|
||||
end
|
||||
s = Trustie::Gitlab::Sync.new
|
||||
gid = User.find(shixun_member.user_id).try(:gid)
|
||||
u = s.g.add_team_member(gshixun.id, gid, 40) # 3代表角色master
|
||||
if u.blank?
|
||||
raise("同步Gitlab数据失败")
|
||||
end
|
||||
end
|
||||
# # 同步复制合作者,合作者加入到gitlab
|
||||
# unless User.current.manager_of_shixun?(@shixun)
|
||||
# ShixunMember.create!(:user_id => User.current.id, :shixun_id => new_shixun.try(:id), :role => 1)
|
||||
# end
|
||||
# @shixun.shixun_members.each do |shixun_member|
|
||||
# if ShixunMember.where(:shixun_id => new_shixun.try(:id), :user_id => shixun_member.user_id).blank?
|
||||
# ShixunMember.create!(:user_id => shixun_member.try(:user_id), :shixun_id => new_shixun.try(:id),
|
||||
# :role => (shixun_member.try(:user_id) == User.current.id ? 1 : 2))
|
||||
# end
|
||||
# s = Trustie::Gitlab::Sync.new
|
||||
# gid = User.find(shixun_member.user_id).try(:gid)
|
||||
# u = s.g.add_team_member(gshixun.id, gid, 40) # 3代表角色master
|
||||
# if u.blank?
|
||||
# raise("同步Gitlab数据失败")
|
||||
# end
|
||||
# end
|
||||
# 同步复制关卡
|
||||
if @shixun.challenges.present?
|
||||
@shixun.challenges.each do |challenge|
|
||||
|
|
@ -786,6 +801,8 @@ class ShixunsController < ApplicationController
|
|||
return
|
||||
end
|
||||
Subject.where(:id => @shixun.stage_shixuns.map(&:subject_id)).destroy_all
|
||||
g = Gitlab.client
|
||||
g.delete_project(@shixun.gpid) if @shixun.try(:gpid).present?
|
||||
@shixun.destroy
|
||||
respond_to do |format|
|
||||
format.html{ redirect_to shixuns_managements_path }
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ class StagesController < ApplicationController
|
|||
@stage.name = params[:stage_name]
|
||||
@stage.description = params[:stage_des]
|
||||
ActiveRecord::Base.transaction do
|
||||
if @stage.save && params[:shixun_id]
|
||||
if @stage.save
|
||||
begin
|
||||
@stage.stage_shixuns.destroy_all
|
||||
params[:shixun_id].each do |shixun_id|
|
||||
|
|
|
|||
|
|
@ -400,6 +400,9 @@ class UsersController < ApplicationController
|
|||
comment.root_id = reply.root_id
|
||||
reply.children << comment
|
||||
@is_project = params[:is_project] if params[:is_project]
|
||||
|
||||
redirect_to message_replies_board_message_path(@root, :board_id => @root.board_id, :user_activity_id => params[:user_activity_id])
|
||||
return
|
||||
when 'BlogComment'
|
||||
@root = reply.root
|
||||
comment = BlogComment.new
|
||||
|
|
|
|||
|
|
@ -237,7 +237,7 @@ module ApplicationHelper
|
|||
|
||||
# 实训语言的种类
|
||||
def shixun_language
|
||||
["Java", "C", "C++", "Python2.7", "Python3.6", "MySQL/Java", "Html", "JFinal", "Docker", "Ethereum", "Dynamips", "MachineLearning", "verilog"]
|
||||
["Java", "C", "C++", "Python2.7", "Python3.6", "MySQL/Java", "Html", "JFinal", "Docker", "Ethereum", "Dynamips", "MachineLearning", "Verilog","Spark","MySQL/Python3.6"]
|
||||
end
|
||||
|
||||
# 实训试用专业
|
||||
|
|
@ -4833,15 +4833,15 @@ def get_hw_index(hw,is_teacher,type=0)
|
|||
homework_commons = hw.course.homework_commons
|
||||
if is_teacher
|
||||
if type != 0
|
||||
homeworks = homework_commons.where("homework_commons.homework_type = #{type}").order("created_at asc")
|
||||
homeworks = homework_commons.where("homework_commons.homework_type = #{type}").order("publish_time desc")
|
||||
else
|
||||
homeworks = homework_commons.order("created_at asc")
|
||||
homeworks = homework_commons.order("publish_time desc")
|
||||
end
|
||||
else
|
||||
if type != 0
|
||||
homeworks = homework_commons.where("homework_commons.homework_type = #{type} and publish_time <= '#{Time.now}'").order("created_at asc")
|
||||
homeworks = homework_commons.where("homework_commons.homework_type = #{type} and publish_time <= '#{Time.now}'").order("publish_time desc")
|
||||
else
|
||||
homeworks = homework_commons.where("publish_time <= '#{Time.now}'").order("created_at asc")
|
||||
homeworks = homework_commons.where("publish_time <= '#{Time.now}'").order("publish_time desc")
|
||||
end
|
||||
end
|
||||
hw_ids = homeworks.map{|hw| hw.id} if !homeworks.blank?
|
||||
|
|
|
|||
|
|
@ -349,6 +349,7 @@
|
|||
var lens = contents.length;
|
||||
for(var i = 0; i < lens; i++){
|
||||
if($(contents[i]).val().trim() == ""){
|
||||
$(contents[i]).focus();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
@ -358,6 +359,7 @@
|
|||
// 判断选择题选择答案的个数
|
||||
function judge_choice_answer(){
|
||||
var answer = document.getElementsByName("choice[answer][]");
|
||||
var contents = document.getElementsByName("question[cnt][]");
|
||||
var lens = answer.length;
|
||||
var num = 0;
|
||||
for(var i= 0; i < lens; i++){
|
||||
|
|
@ -365,6 +367,7 @@
|
|||
num += 1;
|
||||
}
|
||||
}
|
||||
$(contents[0]).focus();
|
||||
return num;
|
||||
}
|
||||
|
||||
|
|
@ -438,6 +441,7 @@
|
|||
if(st == "1"){
|
||||
if(judge_choice_contents()) {
|
||||
error.html("选项内容不能为空").show();
|
||||
|
||||
}else if(choice_num() < 2){
|
||||
error.html("单选题选项不能少于2个").show();
|
||||
}else if(judge_choice_answer() == 0){
|
||||
|
|
|
|||
|
|
@ -56,55 +56,9 @@
|
|||
<p class="fr">
|
||||
<span class="font-12 color-grey mb10" style="display: block;">温馨提示:[单选题]属于客观题将由系统自动评分,请设置标准答案</span>
|
||||
<a href="javascript:void(0)" class="fr task-btn task-btn-blue" onclick="edit_poll_question($(this),<%= exercise_question.id %>,1);">保存</a>
|
||||
<a href="javascript:void(0)" class="fr task-btn mr10" onclick="$(this).parent().parent().parent().parent().remove();">取消</a>
|
||||
<a href="javascript:void(0)" class="fr task-btn mr10" onclick="$('#edit_poll_questions_<%=exercise_question.id %>').hide();$('#show_poll_questions_<%=exercise_question.id %>').show();">取消</a>
|
||||
</p>
|
||||
</li>
|
||||
</div>
|
||||
</div>
|
||||
<% if false %>
|
||||
<div class="questionContainer" style="width: 680px;">
|
||||
<div class="mb10 ur_item">
|
||||
<label>分值<span class="ur_index"></span>: </label>
|
||||
<input id="poll_question_score_<%=exercise_question.id %>" value="<%=exercise_question.question_score %>" type="text" name="question_score" style="width:60px; text-align:center; padding-left:0px;">分
|
||||
<span class="fr c_red" style="width: 60px;" id="question_standard_answer_<%=exercise_question.id %>"><%=convert_to_char(exercise_question.exercise_standard_answers.first.exercise_choice_id.to_s) %></span>
|
||||
<span class="fr">标准答案:</span>
|
||||
<div class="cl"></div>
|
||||
</div>
|
||||
<div class="ur_editor_title">
|
||||
<label class="questionLabel mt8">问题: </label>
|
||||
<input name="question_type" value="<%=exercise_question.question_type %>" type="hidden">
|
||||
<textarea name="question_title" style="width: 625px;" id="poll_questions_title_<%=exercise_question.id %>" class="questionTitle" placeholder="请输入单选题的题干" type="text" onfocus="autoHeight('#poll_questions_title_<%=exercise_question.id %>',30)"><%=exercise_question.question_title %></textarea>
|
||||
</div>
|
||||
|
||||
<div class="ur_editor_content">
|
||||
<ul>
|
||||
<div id="poll_answers_<%=exercise_question.id%>">
|
||||
<input style="display: none;" name="exercise_choice" id="exercise_choice_<%=exercise_question.id%>" value="<%= convert_to_char(exercise_question.exercise_standard_answers.first.exercise_choice_id.to_s) %>"/>
|
||||
<% exercise_question.exercise_choices.reorder("choice_position").each_with_index do |exercise_choice,index| %>
|
||||
<li class="ur_item new_answer">
|
||||
<a class="<%= (index + 1) == exercise_question.exercise_standard_answers.first.exercise_choice_id ? 'question_choice_blue' : 'question_choice_white' %> fl mr10 choice_btn" title="设为答案" href="javascript:void(0)" onclick="toggle_select($(this), 1, <%= exercise_question.id %>);"><%=convert_to_char (index+1).to_s %></a>
|
||||
<input maxlength="200" class="w600" type='text' name='question_answer[<%=exercise_choice.id %>]' placeholder='输入选项内容' value="<%=exercise_choice.choice_text %>">
|
||||
<a class="icon_remove" title="删除" onclick="remove_single_answer($(this))"></a>
|
||||
</li>
|
||||
<div class="cl"></div>
|
||||
<% end %>
|
||||
<li class="ur_item">
|
||||
<a class="question_choice_dash fl mr10 choice_btn"><%=convert_to_char (exercise_question.exercise_choices.count+1).to_s %></a>
|
||||
<div class="dash-block new-question w600" onclick='add_single_answer($(this), 1);'>新建选项</div>
|
||||
</li>
|
||||
<div class='cl'></div>
|
||||
</div>
|
||||
<div class="cl"></div>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="ur_editor_footer">
|
||||
<span class="fl c_red mt10">温馨提示:[单选题]属于客观题将由系统自动评分,请设置标准答案</span>
|
||||
<a class="big_blue_btn borderRadius fr" data-button="ok" onclick="edit_poll_question($(this),<%= exercise_question.id %>,1);">保存</a>
|
||||
<a class="big_grey_btn borderRadius fr mr10" data-button="cancel" onclick="resetQuestion<%=exercise_question.id%>();pollQuestionCancel(<%= exercise_question.id%>);">取消</a>
|
||||
</div>
|
||||
<div class="cl"></div>
|
||||
</div>
|
||||
<!--编辑单选 end-->
|
||||
<% end%>
|
||||
<% end%>
|
||||
|
|
@ -25,7 +25,6 @@
|
|||
<div class="clearfix">
|
||||
<p class="fl mt15 font-16 mb10">多选题</p>
|
||||
<input name="question_type" value="2" type="hidden">
|
||||
<input name="quest_id" id="quest_id" value="0" type="hidden">
|
||||
<label class="fr mt15">标准答案:<span class="color-orange current-option"id="question_standard_answer_<%=exercise_question.id %>"><%=convert_to_char(exercise_question.exercise_standard_answers.first.exercise_choice_id.to_s) %></span></label>
|
||||
<input style="display: none;" name="exercise_choice"/>
|
||||
</div>
|
||||
|
|
@ -62,57 +61,9 @@
|
|||
<p class="fr">
|
||||
<span class="font-12 color-grey mb10" style="display: block;">温馨提示:[多选题]属于客观题将由系统自动评分,请设置标准答案</span>
|
||||
<a href="javascript:void(0)" class="fr task-btn task-btn-blue" onclick="edit_poll_question($(this),<%= exercise_question.id %>,2);">保存</a>
|
||||
<a href="javascript:void(0)" class="fr task-btn mr10" onclick="$(this).parent().parent().parent().parent().remove();">取消</a>
|
||||
<a href="javascript:void(0)" class="fr task-btn mr10" onclick="$('#edit_poll_questions_<%=exercise_question.id %>').hide();$('#show_poll_questions_<%=exercise_question.id %>').show();">取消</a>
|
||||
</p>
|
||||
</li>
|
||||
</div>
|
||||
</div>
|
||||
<% if false %>
|
||||
<div class="questionContainer" style="width: 680px;">
|
||||
<div class="mb10 ur_item">
|
||||
<label>分值<span class="ur_index"></span>: </label>
|
||||
<input id="poll_question_score_<%=exercise_question.id %>" value="<%=exercise_question.question_score %>" type="text" name="question_score" style="width:60px; text-align:center; padding-left:0px;">分
|
||||
<span class="fr c_red" style="width: 60px;" id="question_standard_answer_<%=exercise_question.id %>"><%=convert_to_char(exercise_question.exercise_standard_answers.first.exercise_choice_id.to_s) %></span>
|
||||
<span class="fr">标准答案:</span>
|
||||
<div class="cl"></div>
|
||||
</div>
|
||||
<div class="ur_editor_title">
|
||||
<label class="questionLabel mt8">问题: </label>
|
||||
<input name="question_type" value="<%=exercise_question.question_type %>" type="hidden">
|
||||
<textarea name="question_title" style="width: 625px;" id="poll_questions_title_<%=exercise_question.id %>" class="questionTitle" placeholder="请输入多选题的题干" type="text" onfocus="autoHeight('#poll_questions_title_<%=exercise_question.id %>',30)"><%=exercise_question.question_title %></textarea>
|
||||
</div>
|
||||
|
||||
<div class="ur_editor_content">
|
||||
<ul>
|
||||
<div id="poll_answers_<%=exercise_question.id%>">
|
||||
<input style="display: none;" name="exercise_choice" id="exercise_choice_<%=exercise_question.id%>" value="<%= convert_to_char(exercise_question.exercise_standard_answers.first.exercise_choice_id.to_s) %>"/>
|
||||
<% exercise_question.exercise_choices.reorder("choice_position").each_with_index do |exercise_choice,index| %>
|
||||
<li class="ur_item new_answer">
|
||||
<a class="<%= exercise_question.exercise_standard_answers.first.exercise_choice_id.to_s.include?((index+1).to_s) ? 'question_choice_blue' : 'question_choice_white' %> fl mr10 choice_btn" title="设为答案" href="javascript:void(0)" onclick="toggle_select($(this), 2, <%= exercise_question.id %>);"><%=convert_to_char (index+1).to_s %></a>
|
||||
<input maxlength="200" class="w600" type='text' name='question_answer[<%= exercise_choice.id %>]' placeholder='输入选项内容' value="<%=exercise_choice.choice_text %>">
|
||||
<a class="icon_remove" title="删除" onclick="remove_single_answer($(this))"></a>
|
||||
</li>
|
||||
<div class="cl"></div>
|
||||
<% end %>
|
||||
<li class="ur_item">
|
||||
<a class="question_choice_dash fl mr10 choice_btn"><%=convert_to_char (exercise_question.exercise_choices.count+1).to_s %></a>
|
||||
<div class="dash-block new-question w600" onclick='add_single_answer($(this), 2);'>新建选项</div>
|
||||
</li>
|
||||
<div class="cl"></div>
|
||||
</div>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="ur_editor_footer">
|
||||
<span class="fl c_red mt10">温馨提示:[多选题]属于客观题将由系统自动评分,请设置标准答案</span>
|
||||
<a class="big_blue_btn borderRadius fr" data-button="ok" onclick="edit_poll_question($(this),<%= exercise_question.id %>,2);">
|
||||
保存
|
||||
</a>
|
||||
<a class="big_grey_btn borderRadius fr mr10" data-button="cancel" onclick="resetQuestion<%=exercise_question.id%>();pollQuestionCancel(<%= exercise_question.id%>);">
|
||||
<%= l(:button_cancel)%>
|
||||
</a>
|
||||
</div>
|
||||
<div class="cl"></div>
|
||||
</div>
|
||||
<!--编辑单选 end-->
|
||||
<% end %>
|
||||
<% end%>
|
||||
|
|
@ -10,7 +10,6 @@
|
|||
<div class="user_bg_shadow bor-grey-e pl15 pr30 mb20 answer_Temp" id="answer_Temp">
|
||||
<p class="fl mt15 font-16 mb10">简答题</p>
|
||||
<input name="question_type" value="4" type="hidden">
|
||||
<input name="quest_id" id="quest_id" value="0" type="hidden">
|
||||
<li class="clearfix pr mb20">
|
||||
<label class="panel-form-label fl"><span class="mr10">题目</span></label>
|
||||
<input name="question_type" value="<%=exercise_question.question_type %>" type="hidden">
|
||||
|
|
@ -28,40 +27,8 @@
|
|||
<span class="font-12 color-grey" style="display: block;">温馨提示:[简答题]属于主观题需要人工评分,未作答的情况下系统将自动评分</span>
|
||||
<span class="font-12 color-grey mb10 ml50" style="display: block;"> 参考答案仅作为人工评分的参考</span>
|
||||
<a href="javascript:void(0)" class="fr task-btn task-btn-blue" onclick="edit_poll_question($(this),<%= exercise_question.id %>,4);">保存</a>
|
||||
<a href="javascript:void(0)" class="fr task-btn mr10" onclick="$(this).parent().parent().parent().parent().remove();">取消</a>
|
||||
<a href="javascript:void(0)" class="fr task-btn mr10" onclick="$('#edit_poll_questions_<%=exercise_question.id %>').hide();$('#show_poll_questions_<%=exercise_question.id %>').show();">取消</a>
|
||||
</p>
|
||||
</li>
|
||||
</div>
|
||||
|
||||
<% if false %>
|
||||
<div class="questionContainer" style="width: 680px;">
|
||||
<div class="mb10 ur_item">
|
||||
<label class="ml25">分值<span class="ur_index"></span>: </label>
|
||||
<input id="poll_question_score_<%=exercise_question.id %>" value="<%=exercise_question.question_score %>" name="question_score" style="width:60px; text-align:center; padding-left:0px;">分
|
||||
<div class="cl"></div>
|
||||
</div>
|
||||
<div class="ur_editor_title">
|
||||
<label class="questionLabel mt8 ml25">问题: </label>
|
||||
<input name="question_type" value="<%=exercise_question.question_type %>" type="hidden">
|
||||
<textarea name="question_title" style="width: 600px;" id="poll_questions_title_<%=exercise_question.id %>" class="questionTitle" placeholder="请输入问答题的题干" onfocus="autoHeight('#poll_questions_title_<%=exercise_question.id %>',30)"><%=exercise_question.question_title %></textarea>
|
||||
</div>
|
||||
|
||||
<div class="ur_editor_content" id="edit_multi">
|
||||
<div id="poll_answers_<%=exercise_question.id%>" class="multi_input">
|
||||
<label name='candiate_items'>参考答案<span class="ur_index"></span>: </label>
|
||||
<textarea class="candiate_answer" style="width: 600px; height: 90px;" name="exercise_choice" id="poll_questions_answer_<%=exercise_question.id %>" placeholder="如有参考答案,请输入参考答案" type="text"><%=exercise_question.exercise_standard_answers.empty? ? '' : exercise_question.exercise_standard_answers.first.answer_text %></textarea>
|
||||
</div>
|
||||
<div class="cl"></div>
|
||||
</div>
|
||||
<div class="ur_editor_footer">
|
||||
<p class="fl c_red">温馨提示:[问答题]属于主观题需要人工评分,未作答的情况下系统将自动评零分<br><span class="ml60">参考答案作为人工评分时的参考</span></p>
|
||||
<a class="big_blue_btn borderRadius fr" data-button="ok" onclick="edit_poll_question($(this),<%= exercise_question.id %>,4);">保存</a>
|
||||
<a class="big_grey_btn borderRadius fr mr10" data-button="cancel" onclick="resetQuestion<%=exercise_question.id%>();pollQuestionCancel(<%= exercise_question.id%>);">
|
||||
<%= l(:button_cancel)%>
|
||||
</a>
|
||||
</div>
|
||||
<div class="cl"></div>
|
||||
</div>
|
||||
<!--编辑单选 end-->
|
||||
<% end%>
|
||||
<% end%>
|
||||
|
|
@ -24,7 +24,6 @@
|
|||
<p class="fl mt15 font-16 mb10">填空题</p>
|
||||
<li class="clearfix pr mb20">
|
||||
<input name="question_type" value="3" type="hidden">
|
||||
<input name="quest_id" id="quest_id" value="0" type="hidden">
|
||||
<label class="panel-form-label fl"><span class="mr10">题目</span></label>
|
||||
<input name="question_type" value="<%=exercise_question.question_type %>" type="hidden">
|
||||
<textarea maxlength="250" class="panel-form-width2-690 fl panel-box-sizing questionTitle" name="question_title" id="poll_questions_title_<%=exercise_question.id %>" placeholder="请输入填空题的题干(注意:目前仅支持一个空)" type="text" oninput="autoHeight('#poll_questions_title_<%=exercise_question.id %>',30)"><%=exercise_question.question_title %></textarea>
|
||||
|
|
@ -51,7 +50,7 @@
|
|||
<p class="fr">
|
||||
<span class="font-12 color-grey mb10" style="display: block;">温馨提示:[填空题]属于客观题将由系统自动评分,请设置标准答案</span>
|
||||
<a href="javascript:void(0)" class="fr task-btn task-btn-blue"onclick="edit_poll_question($(this),<%= exercise_question.id %>,3);">保存</a>
|
||||
<a href="javascript:void(0)" class="fr task-btn mr10" onclick="$(this).parent().parent().parent().parent().remove();">取消</a>
|
||||
<a href="javascript:void(0)" class="fr task-btn mr10" onclick="$('#edit_poll_questions_<%=exercise_question.id %>').hide();$('#show_poll_questions_<%=exercise_question.id %>').show();">取消</a>
|
||||
</p>
|
||||
</li>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -16,13 +16,31 @@
|
|||
<p class="color-grey font-12 mt20">
|
||||
<span>创建于<%=time_from_now exercise.created_at %></span>
|
||||
<span class="ml25">更新于<%=time_from_now exercise.updated_at %></span>
|
||||
<span class="ml50"><a href="javascript:void(0)" class="color-orange05 mr3"><%= exercise.exercise_users.where("commit_status = 1").count %></a>已答</span>
|
||||
<span class="ml50"><a href="javascript:void(0)" class="color-orange05 mr3"><%= exercise.course.student.count - exercise.exercise_users.where("commit_status = 1").count %></a>未答</span>
|
||||
<%# count = exercise.exercise_users.where("commit_status = 1 and subjective_score = -1").count %>
|
||||
<span class="ml50"><a href="javascript:void(0)" class="color-orange05 mr3"><%= un_commit_num exercise %></a>未评</span>
|
||||
<span class="ml50 <%= exercise.try(:exercise_status) == 3 ? 'color-grey' : 'color-orange' %>"><%= ex_curr_status[:time] %></span>
|
||||
<% if exercise.try(:exercise_status) == 0 && exercise.publish_time %>
|
||||
<% if exercise.try(:exercise_status) > 1 %>
|
||||
<% if @is_teacher %>
|
||||
<span class="ml50">
|
||||
<%= link_to exercise.exercise_users.where("commit_status = 1").count, student_exercise_list_exercise_path(exercise, :ex_status => ['1']), :class => "color-orange05 mr3", :target =>"_blank" %>
|
||||
已答</span>
|
||||
<span class="ml50">
|
||||
<%= link_to (exercise.course.student.count - exercise.exercise_users.where("commit_status = 1").count), student_exercise_list_exercise_path(exercise, :ex_status => ['0']), :class => "color-orange05 mr3", :target =>"_blank" %>
|
||||
未答</span>
|
||||
<%# count = exercise.exercise_users.where("commit_status = 1 and subjective_score = -1").count %>
|
||||
<span class="ml50">
|
||||
<%= link_to un_commit_num(exercise), student_exercise_list_exercise_path(exercise, :ex_comment => ['0']), :class => "color-orange05 mr3", :target =>"_blank" %>
|
||||
未评</span>
|
||||
<% else %>
|
||||
<span class="ml50">
|
||||
<%= link_to exercise.exercise_users.where("commit_status = 1").count, student_exercise_list_exercise_path(exercise), :class => "color-orange05 mr3", :target =>"_blank" %>
|
||||
已答</span>
|
||||
<span class="ml50">
|
||||
<%= link_to (exercise.course.student.count - exercise.exercise_users.where("commit_status = 1").count), student_exercise_list_exercise_path(exercise), :class => "color-orange05 mr3", :target =>"_blank" %>
|
||||
未答</span>
|
||||
<% end %>
|
||||
<% end %>
|
||||
<% if exercise.try(:exercise_status) == 1 && exercise.publish_time %>
|
||||
<span class="ml50 color-grey">将于 <span class="color-orange"><%= format_time(exercise.publish_time).to_s %></span> 发布</span>
|
||||
<% else %>
|
||||
<span class="ml50 <%= exercise.try(:exercise_status) == 3 ? 'color-grey' : 'color-orange' %>"><%= ex_curr_status[:time] %></span>
|
||||
<% end %>
|
||||
</p>
|
||||
</div>
|
||||
|
|
@ -42,7 +60,7 @@
|
|||
</li>
|
||||
<% end %>
|
||||
<!--<li><a href="javascript:void(0)">加入题库</a></li>-->
|
||||
<li><a href="javascript:void(0)" onclick="delete_confirm_box_3('<%= exercise_path(exercise) %>', '确定要删除该试卷吗?')">删除</a></li>
|
||||
<li><a href="javascript:void(0)" onclick="delete_confirm_box_3('<%= exercise_path(exercise) %>', '删除后,学生的答题情况将全部丢失,无法恢复<br/>确定要删除该试卷吗?')">删除</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<% end %>
|
||||
|
|
|
|||
|
|
@ -15,8 +15,8 @@
|
|||
</div>
|
||||
<pre class="exercise_que_title pl15 mb10 pr15"><%= exercise_question.question_title %></pre>
|
||||
<div class="clearfix bor-top-greyE padding15 answer_con">
|
||||
<p>参考答案</p>
|
||||
<p style="text-align:justify;"><%= exercise_question.exercise_standard_answers.count > 0 ? exercise_question.exercise_standard_answers.first.answer_text : "无"%></p>
|
||||
<p>参考答案:</p>
|
||||
<pre class="exercise_que_title" style="text-align:justify;"><%= exercise_question.exercise_standard_answers.count > 0 ? exercise_question.exercise_standard_answers.first.answer_text : "无"%></pre>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,10 @@
|
|||
<ul id="blacktab_nav">
|
||||
<li class="blacktab_con blacktab_hover">
|
||||
<li class="blacktab_con blacktab_hover" onclick="check_tab('blacktab_con','blacktab_hover',this);">
|
||||
<a href="javascript:void(0);" class="tab_type tab_color">测试结果</a>
|
||||
</li>
|
||||
<li class="blacktab_con" onclick="check_tab('blacktab_con','blacktab_hover',this);">
|
||||
<a href="javascript:void(0);" class="tab_type tab_color" >评测信息</a>
|
||||
</li>
|
||||
<a href="javascript:void(0);" onclick="valuation_extend_and_zoom();" id="valuation_extend_and_zoom"><i class="fa fa-expand font-16 color-grey fr mt10 mr15 fa-arrows-alt" ></i></a>
|
||||
<div class="cl"></div>
|
||||
</ul>
|
||||
|
|
@ -60,4 +63,33 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="blacktab_con_2" class="undis" >
|
||||
<div class="fit -scroll">
|
||||
<div class="-layout-v -fit">
|
||||
<div class="-flex -scroll task-padding16 loading-center undis" id="info_ajax_loading"></div>
|
||||
<div class="-flex -scroll task-padding16" id="evaluating_info">
|
||||
<% unless @game.choose_correct_num == nil %>
|
||||
<% if @game.choose_correct_num != game_challenge.challenge_chooses.count %>
|
||||
<p class="-text-danger mb10">
|
||||
<i class="fa fa-exclamation-circle font-16" ></i><span class="ml5 mr5 -text-danger"><%= @game.choose_correct_num %>/<%= game_challenge.challenge_chooses.count %></span>共有<%= game_challenge.challenge_chooses.count %>题,其中有<%= game_challenge.challenge_chooses.count - @game.choose_correct_num %>题结果不匹配。
|
||||
</p>
|
||||
<% else %>
|
||||
<p class="color-light-green mb10">
|
||||
<i class="fa fa-check-circle font-16 " ></i><span class="ml5 mr5"><%= game_challenge.challenge_chooses.count %>/<%= game_challenge.challenge_chooses.count %></span> 全部通过
|
||||
</p>
|
||||
<% end %>
|
||||
<% end %>
|
||||
<div class="-task-ces-box mb10 clearfix">
|
||||
<div class="-task-ces-info">
|
||||
<ul>
|
||||
<li><span class="-task-ces-info-left ">选择题:</span><span class="color-light-green"><%= @game.choose_correct_num.nil? ? 0 : @game.choose_correct_num %>/<%= game_challenge.challenge_chooses.count %></span></li>
|
||||
<li><span class="-task-ces-info-left">经验值:</span><span class="color-light-green" id="experience_value">+ <%= @final_score %></span></li>
|
||||
<li><span class="-task-ces-info-left">金币:</span><span class="color-light-green" id="grade_value">+ <%= @final_score %></span></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -58,10 +58,11 @@
|
|||
</span>
|
||||
<% end %>
|
||||
<% end %>
|
||||
<span class="ml50 <%= homework_common.homework_detail_manual.try(:comment_status) == 6 ? 'color-grey' : 'color-orange' %>"><%= homework_curr_status[:time] %></span>
|
||||
<% if homework_common.homework_detail_manual.try(:comment_status) == 0 && homework_common.publish_time %>
|
||||
<span class="ml50 color-grey">将于 <span class="color-orange"><%= format_time(homework_common.publish_time).to_s %></span> 发布</span>
|
||||
<% end %>
|
||||
<% else %>
|
||||
<span class="ml50 <%= homework_common.homework_detail_manual.try(:comment_status) == 6 ? 'color-grey' : 'color-orange' %>"><%= homework_curr_status[:time] %></span>
|
||||
<% end %>
|
||||
</p>
|
||||
</div>
|
||||
<% if @is_teacher %>
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@
|
|||
<!--<td><%#= syllabus.syllabus_first_level_discipline == "" ? "--" : syllabus.syllabus_first_level_discipline %></td>-->
|
||||
<!--<td><%#= syllabus.syllabus_major == "" ? "--" : syllabus.syllabus_major %></td>-->
|
||||
<td class="edu-txt-left">
|
||||
<%= courselist.name %>
|
||||
<%= courselist.name %>
|
||||
</td>
|
||||
<td>
|
||||
<%= courselist.courses.count %>
|
||||
|
|
|
|||
|
|
@ -8,9 +8,12 @@
|
|||
<% if result %>
|
||||
<% if @status == 0 %>
|
||||
已发布过申请,请等待管理员审核
|
||||
<% else %>
|
||||
<% elsif @status == 1 %>
|
||||
发布申请已提交,请等待管理员的审核<br/>
|
||||
<span class="font-12 color-grey"> • 我们将在1-2个工作日内完成审核</span>
|
||||
<% else %>
|
||||
每一个关卡至少需要一个技能标签<br/>
|
||||
第<%= @position %>尚未设置技能标签,请补充
|
||||
<% end %>
|
||||
<% else %>
|
||||
实训云平台繁忙(繁忙等级:80)
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
<% unless @status && @status = 1 %>
|
||||
<% unless @status && @status == 1 %>
|
||||
$("#apply_publish_shixun").attr("data-option", 1);
|
||||
$("#apply_publish_shixun").removeClass("disabled-grey-bg");
|
||||
<% end %>
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
<% content_for :header_tags do %>
|
||||
<%= import_ke(enable_at: false, prettify: false, init_activity: false) %>
|
||||
<% end %>
|
||||
<%= stylesheet_link_tag '/editormd/css/editormd' %>
|
||||
<%= javascript_include_tag '/editormd/editormd' %>
|
||||
<div class="active-class ">
|
||||
<p style="line-height: 42px;">
|
||||
<i class="fa fa-map-marker mr5 color-grey"></i>
|
||||
|
|
@ -9,40 +8,28 @@
|
|||
</p>
|
||||
<div class="box_bg_shandow bor-grey-e mb30">
|
||||
<div class="edu-con-top ">
|
||||
<span class="ml15 color-grey font-16">编辑实训路径</span>
|
||||
</div>
|
||||
<span class="ml15 color-grey font-16">编辑实训路径</span>
|
||||
</div>
|
||||
<div class="edu-bg createmain mb20 pt30 ">
|
||||
<%= labelled_form_for @subject do |f| %>
|
||||
<li class="clearfix pt20">
|
||||
<label class="panel-form-label label fl"><span class="color-orange">*</span> 名称</label>
|
||||
<input type="text" name="subject[name]" value="<%= @subject.name %>" id="new_subject_name" class="task task-height-40 panel-box-sizing task-form-70 fl color-grey ml20" maxlength="100" placeholder="例如:Python程序设计-从入门到精通">
|
||||
<div class="cl"></div>
|
||||
<span class="color-orange ml20 fl none" style="margin-left: 12%;" id="new_subject_name_notice"><i class="fa fa-exclamation-circle mr5" ></i>请输入名称</span>
|
||||
</li>
|
||||
<!--<li class="clearfix pt20">-->
|
||||
<%= labelled_form_for @subject do |f| %>
|
||||
<li class="clearfix pt20">
|
||||
<label class="panel-form-label label fl"><span class="color-orange">*</span> 名称</label>
|
||||
<input type="text" name="subject[name]" value="<%= @subject.name %>" id="new_subject_name" class="task task-height-40 panel-box-sizing task-form-80 fl color-grey ml20" maxlength="100" placeholder="例如:Python程序设计-从入门到精通">
|
||||
<div class="cl"></div>
|
||||
<span class="color-orange ml20 fl none" style="margin-left: 12%;" id="new_subject_name_notice"><i class="fa fa-exclamation-circle mr5" ></i>请输入名称</span>
|
||||
</li>
|
||||
<!--<li class="clearfix pt20">-->
|
||||
<!--<label class="panel-form-label label fl"><span class="color-orange">*</span> 描述</label>-->
|
||||
<!--<input type="text" name="subject[introduction]" value="<%#= @subject.introduction %>" id="new_subject_intro" class="task task-height-40 panel-box-sizing task-form-80 fl color-grey ml20" maxlength="50" placeholder="一句话描述一下,吸引更多人学习吧(不超过50个字符)">-->
|
||||
<!--<div class="cl"></div>-->
|
||||
<!--<span class="color-orange ml20 fl none" style="margin-left: 12%;" id="new_subject_intro_notice"><i class="fa fa-exclamation-circle mr5" ></i>请输入描述</span>-->
|
||||
<!--</li>-->
|
||||
<!--</li>-->
|
||||
<li class="clearfix pt20">
|
||||
<label class="panel-form-label label fl mr20"><span class="color-orange">*</span>简介</label>
|
||||
<%= hidden_field_tag :asset_id, params[:asset_id], :required => false, :style => 'display:none' %>
|
||||
<textarea class="panel-form-width-690 panel-form-height-150 fl panel-box-sizing" style="display: none"></textarea>
|
||||
<%= f.kindeditor :description, :editor_id => 'subject_description_editor',
|
||||
:owner_id => @subject.nil? ? 0: @subject.id,
|
||||
:owner_type => OwnerTypeHelper::SUBJECT,
|
||||
:local_storage_mdu => "subject_description_#{User.current.id}_#{@subject.id}",
|
||||
:local_storage_id => "desc",
|
||||
:width => '80%',
|
||||
:height => 200,
|
||||
:minHeight=>200,
|
||||
:placeholder => "请在此输入实训路径的简介",
|
||||
:class => 'talk_text fl',
|
||||
:input_html => { :id => 'new_subject_description',
|
||||
:class => 'talk_text fl',
|
||||
:maxlength => 5000 }
|
||||
%>
|
||||
<div id="shixun_introduction" class="new_li fl">
|
||||
<textarea class="panel-form-width-690 panel-form-height-150 fl panel-box-sizing" name="subject[description]" style="display: none"><%= @subject.description %></textarea>
|
||||
</div>
|
||||
<div class="cl"></div>
|
||||
<p id="e_tip_desc" style="margin-left: 140px" class="c_grey"></p>
|
||||
<p id="e_tips_desc" style="margin-left: 140px" class="c_grey"></p>
|
||||
|
|
@ -50,32 +37,116 @@
|
|||
</li>
|
||||
<li class="clearfix pt20">
|
||||
<label class="panel-form-label label fl mr20"><span class="color-orange">*</span> 学习须知</label>
|
||||
<textarea class="panel-form-width-690 panel-form-height-150 fl panel-box-sizing" style="display: none"></textarea>
|
||||
<%= f.kindeditor :learning_notes, :editor_id => 'subject_learning_notes_editor',
|
||||
:owner_id => @subject.nil? ? 0: @subject.id,
|
||||
:owner_type => OwnerTypeHelper::SUBJECT,
|
||||
:local_storage_mdu => "subject_notes_#{User.current.id}_#{@subject.id}",
|
||||
:local_storage_id => "notes",
|
||||
:width => '80%',
|
||||
:height => 200,
|
||||
:minHeight=>200,
|
||||
:placeholder => "请在此输入实训路径的学习须知",
|
||||
:class => 'talk_text fl',
|
||||
:input_html => { :id => 'new_learning_notes',
|
||||
:class => 'talk_text fl',
|
||||
:maxlength => 5000 }
|
||||
%>
|
||||
<div id="shixun_propaedeutics" class="new_li fl">
|
||||
<textarea class="panel-form-width-690 panel-form-height-150 fl panel-box-sizing" name="subject[learning_notes]" style="display: none"><%= @subject.learning_notes %></textarea>
|
||||
</div>
|
||||
<div class="cl"></div>
|
||||
<p id="e_tip_notes" style="margin-left: 140px" class="c_grey"></p>
|
||||
<p id="e_tips_notes" style="margin-left: 140px" class="c_grey"></p>
|
||||
<span class="color-orange ml20 fl none" style="margin-left: 12%;" id="new_learning_notes_notice"><i class="fa fa-exclamation-circle mr5" ></i>请输入学习须知</span>
|
||||
</li>
|
||||
<li class="clearfix pt20 pb20">
|
||||
<label class="panel-form-label label fl"> </label>
|
||||
<%= link_to "取消", subject_path(@subject), :class => "task-btn fl mr10 ml20" %>
|
||||
<a href="javascript:void(0);" onclick="submit_edit_subject(<%= @subject.id %>);" class="task-btn task-btn-blue fl">保存</a>
|
||||
</li>
|
||||
<% end %>
|
||||
<li class="clearfix pt20 pb20">
|
||||
<label class="panel-form-label label fl"> </label>
|
||||
<%= link_to "取消", subject_path(@subject), :class => "task-btn fl mr10 ml20" %>
|
||||
<a href="javascript:void(0);" onclick="submit_edit_subject(<%= @subject.id %>);" class="task-btn task-btn-blue fl">保存</a>
|
||||
</li>
|
||||
<% end %>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
/* ------------------------------- 简介md ------------------------------*/
|
||||
var shixun_editormd = editormd("shixun_introduction", {
|
||||
width : "80%",
|
||||
height : 600,
|
||||
syncScrolling : "single",
|
||||
//你的lib目录的路径,我这边用JSP做测试的
|
||||
path : "/editormd/lib/",
|
||||
tex : true,
|
||||
toolbarIcons : function() {
|
||||
// Or return editormd.toolbarModes[name]; // full, simple, mini
|
||||
// Using "||" set icons align right.
|
||||
return ["bold", "italic", "|", "list-ul", "list-ol", "|", "code", "code-block", "|", "testIcon", "testIcon1", '|', "image", "table", '|', "watch", "clear" ]
|
||||
},
|
||||
|
||||
toolbarCustomIcons : {
|
||||
testIcon : "<a type=\"inline\" class=\"latex\" ><div class='zbg'></div></a>",
|
||||
testIcon1 : "<a type=\"latex\" class=\"latex\" ><div class='zbg_latex'></div></a>"
|
||||
},
|
||||
//这个配置在simple.html中并没有,但是为了能够提交表单,使用这个配置可以让构造出来的HTML代码直接在第二个隐藏的textarea域中,方便post提交表单。
|
||||
saveHTMLToTextarea : true,
|
||||
autoFocus: false,
|
||||
// 用于增加自定义工具栏的功能,可以直接插入HTML标签,不使用默认的元素创建图标
|
||||
dialogMaskOpacity : 0.6,
|
||||
placeholder: "请在此输入实训路径的简介",
|
||||
imageUpload : true,
|
||||
imageFormats : ["jpg", "jpeg", "gif", "png", "bmp", "webp", "JPG", "JPEG", "GIF", "PNG", "BMP", "WEBP"],
|
||||
imageUploadURL : "<%= upload_with_markdown_path(:container_id => @subject.id, :container_type => @subject.class) %>" //url
|
||||
});
|
||||
|
||||
/* --------------------------------- 学习须知 -------------------------------------- */
|
||||
var shixun_propaedeutics = editormd("shixun_propaedeutics", {
|
||||
width : "80%",
|
||||
height : 600,
|
||||
syncScrolling : "single",
|
||||
//你的lib目录的路径,我这边用JSP做测试的
|
||||
path : "/editormd/lib/",
|
||||
tex : true,
|
||||
toolbarIcons : function() {
|
||||
// Or return editormd.toolbarModes[name]; // full, simple, mini
|
||||
// Using "||" set icons align right.
|
||||
return ["bold", "italic", "|", "list-ul", "list-ol", "|", "code", "code-block", "|", "testIcon", "testIcon1", '|', "image", "table", '|', "watch", "clear" ]
|
||||
},
|
||||
toolbarCustomIcons : {
|
||||
testIcon : "<a type=\"inline\" class=\"latex\" ><div class='zbg'></div></a>",
|
||||
testIcon1 : "<a type=\"latex\" class=\"latex\" ><div class='zbg_latex'></div></a>"
|
||||
},
|
||||
//这个配置在simple.html中并没有,但是为了能够提交表单,使用这个配置可以让构造出来的HTML代码直接在第二个隐藏的textarea域中,方便post提交表单。
|
||||
saveHTMLToTextarea : true,
|
||||
autoFocus: false,
|
||||
// 用于增加自定义工具栏的功能,可以直接插入HTML标签,不使用默认的元素创建图标
|
||||
dialogMaskOpacity : 0.6,
|
||||
placeholder: "请在此输入实训路径的学习须知",
|
||||
imageUpload : true,
|
||||
imageFormats : ["jpg", "jpeg", "gif", "png", "bmp", "webp", "JPG", "JPEG", "GIF", "PNG", "BMP", "WEBP"],
|
||||
imageUploadURL : "<%= upload_with_markdown_path(:container_id => @subject.id, :container_type => @subject.class) %>" //url
|
||||
});
|
||||
window.onload = function(){
|
||||
console.log(shixun_editormd);
|
||||
|
||||
$("#shixun_introduction [type=\"latex\"]").bind("click", function(){
|
||||
shixun_editormd.cm.replaceSelection("```latex");
|
||||
shixun_editormd.cm.replaceSelection("\n");
|
||||
shixun_editormd.cm.replaceSelection("\n");
|
||||
shixun_editormd.cm.replaceSelection("```");
|
||||
var __Cursor = shixun_editormd.cm.getDoc().getCursor();
|
||||
shixun_editormd.cm.setCursor(__Cursor.line-1, 0);
|
||||
});
|
||||
|
||||
$("#shixun_propaedeutics [type=\"latex\"]").bind("click", function(){
|
||||
shixun_propaedeutics.cm.replaceSelection("```latex");
|
||||
shixun_propaedeutics.cm.replaceSelection("\n");
|
||||
shixun_propaedeutics.cm.replaceSelection("\n");
|
||||
shixun_propaedeutics.cm.replaceSelection("```");
|
||||
var __Cursor = shixun_propaedeutics.cm.getDoc().getCursor();
|
||||
shixun_propaedeutics.cm.setCursor(__Cursor.line-1, 0);
|
||||
});
|
||||
|
||||
$("#shixun_introduction [type=\"inline\"]").bind("click", function(){
|
||||
shixun_editormd.cm.replaceSelection("$$$$");
|
||||
var __Cursor = shixun_editormd.cm.getDoc().getCursor();
|
||||
shixun_editormd.cm.setCursor(__Cursor.line, __Cursor.ch-2);
|
||||
shixun_editormd.cm.focus();
|
||||
});
|
||||
|
||||
$("#shixun_propaedeutics [type=\"inline\"]").bind("click", function(){
|
||||
shixun_propaedeutics.cm.replaceSelection("$$$$");
|
||||
var __Cursor = shixun_propaedeutics.cm.getDoc().getCursor();
|
||||
shixun_propaedeutics.cm.setCursor(__Cursor.line, __Cursor.ch-2);
|
||||
shixun_propaedeutics.cm.focus();
|
||||
});
|
||||
$("[type=\"inline\"]").attr("title", "行内公式");
|
||||
$("[type=\"latex\"]").attr("title", "多行公式");
|
||||
|
||||
};
|
||||
</script>
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
<% content_for :header_tags do %>
|
||||
<%= import_ke(enable_at: false, prettify: false, init_activity: false) %>
|
||||
<% end %>
|
||||
<%= stylesheet_link_tag '/editormd/css/editormd' %>
|
||||
<%= javascript_include_tag '/editormd/editormd' %>
|
||||
|
||||
<div class="active-class ">
|
||||
<p style="line-height: 42px;">
|
||||
<i class="fa fa-map-marker mr5 color-grey"></i>
|
||||
|
|
@ -9,81 +9,57 @@
|
|||
</p>
|
||||
<div class="box_bg_shandow bor-grey-e mb30">
|
||||
<div class="edu-con-top">
|
||||
<span class="ml15 color-grey3 font-16">新建实训路径</span>
|
||||
</div>
|
||||
<span class="ml15 color-grey3 font-16">新建实训路径</span>
|
||||
</div>
|
||||
<div class="edu-bg createmain mb20 pt30 ">
|
||||
<%= labelled_form_for @subject do |f| %>
|
||||
<li class="clearfix pt20">
|
||||
<label class="panel-form-label label fl"><span class="color-orange">*</span> 名称</label>
|
||||
<input type="text" name="subject[name]" id="new_subject_name" class="task task-height-40 panel-box-sizing task-form-80 fl color-grey ml20" maxlength="50" placeholder="例如:Python程序设计-从入门到精通">
|
||||
<div class="cl"></div>
|
||||
<span class="color-orange ml20 fl none" style="margin-left: 12%;" id="new_subject_name_notice"><i class="fa fa-exclamation-circle mr5" ></i>请输入名称</span>
|
||||
</li>
|
||||
<!--<li class="clearfix pt20">-->
|
||||
<%= labelled_form_for @subject do |f| %>
|
||||
<li class="clearfix pt20">
|
||||
<label class="panel-form-label label fl"><span class="color-orange">*</span> 名称</label>
|
||||
<input type="text" name="subject[name]" id="new_subject_name" class="task task-height-40 panel-box-sizing task-form-80 fl color-grey ml20" maxlength="50" placeholder="例如:Python程序设计-从入门到精通">
|
||||
<div class="cl"></div>
|
||||
<span class="color-orange ml20 fl none" style="margin-left: 12%;" id="new_subject_name_notice"><i class="fa fa-exclamation-circle mr5" ></i>请输入名称</span>
|
||||
</li>
|
||||
<!--<li class="clearfix pt20">-->
|
||||
<!--<label class="panel-form-label label fl"><span class="color-orange">*</span> 描述</label>-->
|
||||
<!--<input type="text" name="subject[introduction]" id="new_subject_intro" class="task task-height-40 panel-box-sizing task-form-80 fl color-grey ml20" maxlength="50" placeholder="一句话描述一下,吸引更多人学习吧(不超过50个字符)">-->
|
||||
<!--<div class="cl"></div>-->
|
||||
<!--<span class="color-orange ml20 fl none" style="margin-left: 12%;" id="new_subject_intro_notice"><i class="fa fa-exclamation-circle mr5" ></i>请输入描述</span>-->
|
||||
<!--</li>-->
|
||||
<li class="clearfix pt20">
|
||||
<label class="panel-form-label label fl mr20"><span class="color-orange">*</span>简介</label>
|
||||
<%= hidden_field_tag :asset_id, params[:asset_id], :required => false, :style => 'display:none' %>
|
||||
<textarea class="panel-form-width-690 panel-form-height-150 fl panel-box-sizing" style="display: none"></textarea>
|
||||
<%= f.kindeditor :description, :editor_id => 'subject_description_editor',
|
||||
:owner_id => @subject.nil? ? 0: @subject.id,
|
||||
:owner_type => OwnerTypeHelper::SUBJECT,
|
||||
:local_storage_mdu => "subject_description_#{User.current.id}",
|
||||
:local_storage_id => "desc",
|
||||
:width => '80%',
|
||||
:height => 200,
|
||||
:minHeight=>200,
|
||||
:placeholder => "请在此输入实训路径的简介",
|
||||
:class => 'talk_text fl',
|
||||
:input_html => { :id => 'new_subject_description',
|
||||
:class => 'talk_text fl',
|
||||
:maxlength => 5000 }
|
||||
%>
|
||||
<div class="cl"></div>
|
||||
<p id="e_tip_desc" style="margin-left: 140px" class="c_grey"></p>
|
||||
<p id="e_tips_desc" style="margin-left: 140px" class="c_grey"></p>
|
||||
<span class="color-orange ml20 fl none" style="margin-left: 12%;" id="new_subject_description_notice"><i class="fa fa-exclamation-circle mr5" ></i>请输入简介</span>
|
||||
</li>
|
||||
<li class="clearfix pt20">
|
||||
<label class="panel-form-label label fl mr20"><span class="color-orange">*</span> 学习须知</label>
|
||||
<textarea class="panel-form-width-690 panel-form-height-150 fl panel-box-sizing" style="display: none"></textarea>
|
||||
<%= f.kindeditor :learning_notes, :editor_id => 'subject_learning_notes_editor',
|
||||
:owner_id => @subject.nil? ? 0: @subject.id,
|
||||
:owner_type => OwnerTypeHelper::SUBJECT,
|
||||
:local_storage_mdu => "subject_notes_#{User.current.id}",
|
||||
:local_storage_id => "notes",
|
||||
:width => '80%',
|
||||
:height => 200,
|
||||
:minHeight=>200,
|
||||
:placeholder => "请在此输入实训路径的学习须知",
|
||||
:class => 'talk_text fl',
|
||||
:input_html => { :id => 'new_learning_notes',
|
||||
:class => 'talk_text fl',
|
||||
:maxlength => 5000 }
|
||||
%>
|
||||
<!--textarea type="text" name="subject[learning_notes]" id="new_learning_notes" class="task task-height-220 panel-box-sizing task-form-70 fl color-grey ml20" placeholder=""></textarea>-->
|
||||
<div class="cl"></div>
|
||||
<p id="e_tip_notes" style="margin-left: 140px" class="c_grey"></p>
|
||||
<p id="e_tips_notes" style="margin-left: 140px" class="c_grey"></p>
|
||||
<span class="color-orange ml20 fl none" style="margin-left: 12%;" id="new_learning_notes_notice"><i class="fa fa-exclamation-circle mr5" ></i>请输入学习须知</span>
|
||||
</li>
|
||||
<!--<li class="clearfix pt20">
|
||||
<label class="panel-form-label label fl"><span class="color-orange">*</span> 学习须知</label>
|
||||
<textarea name="subject[base]" placeholder="例如:了解Python的基础知识" class="task task-height-220 panel-box-sizing task-form-80 fl color-grey ml20"></textarea>
|
||||
</li>-->
|
||||
<li class="clearfix pt20 pb20">
|
||||
<label class="panel-form-label label fl"> </label>
|
||||
<%= link_to "取消", subjects_path(), :class => "task-btn fl mr10 ml20" %>
|
||||
<a href="javascript:void(0);" onclick="submit_new_subject();" class="task-btn task-btn-blue fl">保存</a>
|
||||
</li>
|
||||
<% end %>
|
||||
</div>
|
||||
</div>
|
||||
<!--</li>-->
|
||||
<li class="clearfix pt20">
|
||||
<label class="panel-form-label label fl mr20"><span class="color-orange">*</span>简介</label>
|
||||
<%= hidden_field_tag :asset_id, params[:asset_id], :required => false, :style => 'display:none' %>
|
||||
<div id="shixun_introduction" class="new_li fl">
|
||||
<textarea class="panel-form-width-690 panel-form-height-150 fl panel-box-sizing" name="subject[description]" style="display: none"></textarea>
|
||||
</div>
|
||||
<div class="cl"></div>
|
||||
<p id="e_tip_desc" style="margin-left: 140px" class="c_grey"></p>
|
||||
<p id="e_tips_desc" style="margin-left: 140px" class="c_grey"></p>
|
||||
<span class="color-orange ml20 fl none" style="margin-left: 12%;" id="new_subject_description_notice"><i class="fa fa-exclamation-circle mr5" ></i>请输入简介</span>
|
||||
</li>
|
||||
<li class="clearfix pt20">
|
||||
<label class="panel-form-label label fl mr20"><span class="color-orange">*</span> 学习须知</label>
|
||||
<div id="shixun_propaedeutics" class="new_li fl">
|
||||
<textarea class="panel-form-width-690 panel-form-height-150 fl panel-box-sizing" name="subject[learning_notes]" style="display: none"></textarea>
|
||||
</div>
|
||||
<!--textarea type="text" name="subject[learning_notes]" id="new_learning_notes" class="task task-height-220 panel-box-sizing task-form-70 fl color-grey ml20" placeholder=""></textarea>-->
|
||||
<div class="cl"></div>
|
||||
<p id="e_tip_notes" style="margin-left: 140px" class="c_grey"></p>
|
||||
<p id="e_tips_notes" style="margin-left: 140px" class="c_grey"></p>
|
||||
<span class="color-orange ml20 fl none" style="margin-left: 12%;" id="new_learning_notes_notice"><i class="fa fa-exclamation-circle mr5" ></i>请输入学习须知</span>
|
||||
</li>
|
||||
<!--<li class="clearfix pt20">
|
||||
<label class="panel-form-label label fl"><span class="color-orange">*</span> 学习须知</label>
|
||||
<textarea name="subject[base]" placeholder="例如:了解Python的基础知识" class="task task-height-220 panel-box-sizing task-form-80 fl color-grey ml20"></textarea>
|
||||
</li>-->
|
||||
<li class="clearfix pt20 pb20">
|
||||
<label class="panel-form-label label fl"> </label>
|
||||
<%= link_to "取消", subjects_path(), :class => "task-btn fl mr10 ml20" %>
|
||||
<a href="javascript:void(0);" onclick="submit_new_subject();" class="task-btn task-btn-blue fl">保存</a>
|
||||
</li>
|
||||
<% end %>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
function rec_data(k,mdu,id){
|
||||
|
|
@ -96,4 +72,98 @@
|
|||
clear_data(k,mdu,id);
|
||||
}
|
||||
}
|
||||
</script>
|
||||
/* ------------------------------- 简介md ------------------------------*/
|
||||
var shixun_editormd = editormd("shixun_introduction", {
|
||||
width : "80%",
|
||||
height : 600,
|
||||
syncScrolling : "single",
|
||||
//你的lib目录的路径,我这边用JSP做测试的
|
||||
path : "/editormd/lib/",
|
||||
tex : true,
|
||||
toolbarIcons : function() {
|
||||
// Or return editormd.toolbarModes[name]; // full, simple, mini
|
||||
// Using "||" set icons align right.
|
||||
return ["bold", "italic", "|", "list-ul", "list-ol", "|", "code", "code-block", "|", "testIcon", "testIcon1", '|', "image", "table", '|', "watch", "clear" ]
|
||||
},
|
||||
|
||||
toolbarCustomIcons : {
|
||||
testIcon : "<a type=\"inline\" class=\"latex\" ><div class='zbg'></div></a>",
|
||||
testIcon1 : "<a type=\"latex\" class=\"latex\" ><div class='zbg_latex'></div></a>"
|
||||
},
|
||||
//这个配置在simple.html中并没有,但是为了能够提交表单,使用这个配置可以让构造出来的HTML代码直接在第二个隐藏的textarea域中,方便post提交表单。
|
||||
saveHTMLToTextarea : true,
|
||||
autoFocus: false,
|
||||
// 用于增加自定义工具栏的功能,可以直接插入HTML标签,不使用默认的元素创建图标
|
||||
dialogMaskOpacity : 0.6,
|
||||
placeholder: "请在此输入实训路径的简介",
|
||||
imageUpload : true,
|
||||
imageFormats : ["jpg", "jpeg", "gif", "png", "bmp", "webp", "JPG", "JPEG", "GIF", "PNG", "BMP", "WEBP"],
|
||||
imageUploadURL : "<%= upload_with_markdown_path(:container_id => @subject.id, :container_type => @subject.class) %>" //url
|
||||
});
|
||||
|
||||
/* --------------------------------- 学习须知 -------------------------------------- */
|
||||
var shixun_propaedeutics = editormd("shixun_propaedeutics", {
|
||||
width : "80%",
|
||||
height : 600,
|
||||
syncScrolling : "single",
|
||||
//你的lib目录的路径,我这边用JSP做测试的
|
||||
path : "/editormd/lib/",
|
||||
tex : true,
|
||||
toolbarIcons : function() {
|
||||
// Or return editormd.toolbarModes[name]; // full, simple, mini
|
||||
// Using "||" set icons align right.
|
||||
return ["bold", "italic", "|", "list-ul", "list-ol", "|", "code", "code-block", "|", "testIcon", "testIcon1", '|', "image", "table", '|', "watch", "clear" ]
|
||||
},
|
||||
toolbarCustomIcons : {
|
||||
testIcon : "<a type=\"inline\" class=\"latex\" ><div class='zbg'></div></a>",
|
||||
testIcon1 : "<a type=\"latex\" class=\"latex\" ><div class='zbg_latex'></div></a>"
|
||||
},
|
||||
//这个配置在simple.html中并没有,但是为了能够提交表单,使用这个配置可以让构造出来的HTML代码直接在第二个隐藏的textarea域中,方便post提交表单。
|
||||
saveHTMLToTextarea : true,
|
||||
autoFocus: false,
|
||||
// 用于增加自定义工具栏的功能,可以直接插入HTML标签,不使用默认的元素创建图标
|
||||
dialogMaskOpacity : 0.6,
|
||||
placeholder: "请在此输入实训路径的学习须知",
|
||||
imageUpload : true,
|
||||
imageFormats : ["jpg", "jpeg", "gif", "png", "bmp", "webp", "JPG", "JPEG", "GIF", "PNG", "BMP", "WEBP"],
|
||||
imageUploadURL : "<%= upload_with_markdown_path(:container_id => @subject.id, :container_type => @subject.class) %>" //url
|
||||
});
|
||||
window.onload = function(){
|
||||
console.log(shixun_editormd);
|
||||
|
||||
$("#shixun_introduction [type=\"latex\"]").bind("click", function(){
|
||||
shixun_editormd.cm.replaceSelection("```latex");
|
||||
shixun_editormd.cm.replaceSelection("\n");
|
||||
shixun_editormd.cm.replaceSelection("\n");
|
||||
shixun_editormd.cm.replaceSelection("```");
|
||||
var __Cursor = shixun_editormd.cm.getDoc().getCursor();
|
||||
shixun_editormd.cm.setCursor(__Cursor.line-1, 0);
|
||||
});
|
||||
|
||||
$("#shixun_propaedeutics [type=\"latex\"]").bind("click", function(){
|
||||
shixun_propaedeutics.cm.replaceSelection("```latex");
|
||||
shixun_propaedeutics.cm.replaceSelection("\n");
|
||||
shixun_propaedeutics.cm.replaceSelection("\n");
|
||||
shixun_propaedeutics.cm.replaceSelection("```");
|
||||
var __Cursor = shixun_propaedeutics.cm.getDoc().getCursor();
|
||||
shixun_propaedeutics.cm.setCursor(__Cursor.line-1, 0);
|
||||
});
|
||||
|
||||
$("#shixun_introduction [type=\"inline\"]").bind("click", function(){
|
||||
shixun_editormd.cm.replaceSelection("$$$$");
|
||||
var __Cursor = shixun_editormd.cm.getDoc().getCursor();
|
||||
shixun_editormd.cm.setCursor(__Cursor.line, __Cursor.ch-2);
|
||||
shixun_editormd.cm.focus();
|
||||
});
|
||||
|
||||
$("#shixun_propaedeutics [type=\"inline\"]").bind("click", function(){
|
||||
shixun_propaedeutics.cm.replaceSelection("$$$$");
|
||||
var __Cursor = shixun_propaedeutics.cm.getDoc().getCursor();
|
||||
shixun_propaedeutics.cm.setCursor(__Cursor.line, __Cursor.ch-2);
|
||||
shixun_propaedeutics.cm.focus();
|
||||
});
|
||||
$("[type=\"inline\"]").attr("title", "行内公式");
|
||||
$("[type=\"latex\"]").attr("title", "多行公式");
|
||||
|
||||
};
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -1,3 +1,6 @@
|
|||
<%= stylesheet_link_tag '/editormd/css/editormd','/editormd/css/editormd.min.css' %>
|
||||
<%= javascript_include_tag '/editormd/lib/marked.min.js','/editormd/lib/prettify.min.js','/editormd/lib/raphael.min.js','/editormd/lib/underscore.min.js','/editormd/lib/sequence-diagram.min.js',
|
||||
'/editormd/lib/flowchart.min.js','/editormd/lib/jquery.flowchart.min.js','/editormd/editormd.js'%>
|
||||
<div class="with75 fl pr15 mb20" style="box-sizing: border-box;width: 73%">
|
||||
<!--简介-->
|
||||
<% if !@subject.description.blank? || User.current.manager_of_subject?(@subject) %>
|
||||
|
|
@ -8,8 +11,10 @@
|
|||
<a href="<%= edit_subject_path(@subject) %>"><i class="fa fa-pencil fr mt10 mr5 color-grey-c edit-produce"data-tip-down="编辑"></i></a>
|
||||
<% end %>
|
||||
</p>
|
||||
<div class="color-grey3 <%= @subject.description.blank? ? 'color-light-grey' : '' %> justify">
|
||||
<pre class="pre_word font-15" style="font-family: '微软雅黑','宋体';"><%= @subject.description.blank? ? "暂未填写" : (@subject.description.html_safe) %></pre>
|
||||
<div class="color-grey3 clearfix <%= @subject.description.blank? ? 'color-light-grey' : '' %> ">
|
||||
<div id="shixuns_propaedeutics" class="new_li fl" style="padding: 0px;text-align: justify;">
|
||||
<textarea name="subject[description]" style="display: none"><%= @subject.description.blank? ? "暂未填写" : (@subject.description) %></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<% end %>
|
||||
|
|
@ -142,7 +147,9 @@
|
|||
<a href="<%= edit_subject_path(@subject) %>"><i class="fa fa-pencil mt10 mr5 color-grey-c edit-produce font-12"data-tip-down="编辑" style="position: relative;top:-3px"></i></a>
|
||||
<% end %>
|
||||
</p>
|
||||
<div class="mt10 mb10 color-grey justify"><pre class="pre_word font-15" style="font-family: '微软雅黑','宋体';"><%= @subject.learning_notes.blank? ? "暂未填写" : @subject.learning_notes.html_safe %></pre></div>
|
||||
<div id="subject_learning_notes" class="new_li flmt10 mb10 color-grey" style="margin-bottom: 20px;padding: 0px;text-align: justify;">
|
||||
<textarea name="subject[learning_notes]" style="display: none"><%= @subject.learning_notes.blank? ? "暂未填写" : @subject.learning_notes %></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="edu-class-right-box ml15 bor-radius4 bor-grey01 pt20 mb40">
|
||||
<p class="font-18 mb20" style="text-align: center">教学团队
|
||||
|
|
@ -176,6 +183,22 @@
|
|||
</div>
|
||||
</div>
|
||||
<script>
|
||||
/* -------------- 简介Md -------------------- */
|
||||
var shixunPro = editormd.markdownToHTML("shixuns_propaedeutics", {
|
||||
htmlDecode: "style,script,iframe", // you can filter tags decode
|
||||
taskList: true,
|
||||
tex: true, // 默认不解析
|
||||
flowChart: true, // 默认不解析
|
||||
sequenceDiagram: true // 默认不解析
|
||||
});
|
||||
/* -------------- 简介Md -------------------- */
|
||||
var shixunPro = editormd.markdownToHTML("subject_learning_notes", {
|
||||
htmlDecode: "style,script,iframe", // you can filter tags decode
|
||||
taskList: true,
|
||||
tex: true, // 默认不解析
|
||||
flowChart: true, // 默认不解析
|
||||
sequenceDiagram: true // 默认不解析
|
||||
});
|
||||
var flag = true;
|
||||
$(function() {
|
||||
//初始化拖拽层
|
||||
|
|
|
|||
|
|
@ -63,8 +63,4 @@ $("#activity_post_reply_<%= @user_activity_id%>").html("<%= escape_javascript(re
|
|||
$("#discusses_count").html("<%= @discusses_count %>");
|
||||
<% end %>
|
||||
<% end %>
|
||||
<% if @discusses_count > 0 %>
|
||||
$("#discusses_count").html("<%= @discusses_count %>");
|
||||
//window.location.href = "<%#= myshixun_game_path(@challenge.current_user_game, :myshixun_id => @challenge.current_user_game.try(:myshixun)) %>";
|
||||
<% end %>
|
||||
sd_create_editor_from_data(<%= @user_activity_id%>,"","100%", "UserActivity");
|
||||
|
|
@ -832,6 +832,7 @@ RedmineApp::Application.routes.draw do
|
|||
match 'account/apply_auth', :to => 'account#apply_auth', :via => :post, :as => "apply_auth_account"
|
||||
match 'account/apply_pro_certification', :to => 'account#apply_pro_certification', :via => :post, :as => "apply_pro_certification_account"
|
||||
match 'account/check_student_id', :to => 'account#check_student_id', :via => :post
|
||||
match 'account/check_user_student_id', :to => 'account#check_user_student_id', :via => :post
|
||||
match 'account/cancel_pro_apply', :to => 'account#cancel_pro_apply', :via => :get, :as => "cancel_pro_apply_account"
|
||||
match 'account/check_id_number', :to => 'account#check_id_number', :via => :post
|
||||
match 'account/codepedia_login', :to => 'account#codepedia_login', :via => [:get, :post]
|
||||
|
|
|
|||
|
|
@ -0,0 +1,19 @@
|
|||
# encoding: utf-8
|
||||
class MigrateShixunMajorCourse < ActiveRecord::Migration
|
||||
def up
|
||||
c_courses = CourseList.where("name = 'C++程序设计' and id != 5")
|
||||
ShixunMajorCourse.where(:course_list_id => c_courses.map(&:id)).update_all(:course_list_id => 5)
|
||||
c_courses.destroy_all
|
||||
|
||||
c_courses = CourseList.where("id in (70, 86)")
|
||||
ShixunMajorCourse.where(:course_list_id => c_courses.map(&:id)).update_all(:course_list_id => 1)
|
||||
c_courses.destroy_all
|
||||
|
||||
c_courses = CourseList.where("id = 84")
|
||||
ShixunMajorCourse.where(:course_list_id => c_courses.map(&:id)).update_all(:course_list_id => 79)
|
||||
c_courses.destroy_all
|
||||
end
|
||||
|
||||
def down
|
||||
end
|
||||
end
|
||||
|
|
@ -246,7 +246,23 @@ function my_account_form_submit() {
|
|||
$("#school_name_hint").hide();
|
||||
}
|
||||
|
||||
$('#my_account_form').submit();
|
||||
if($("#user_student_id").parent().is(":visible") == true && $("#user_student_id").val() != ""){
|
||||
$.ajax({
|
||||
url: '/account/check_user_student_id',
|
||||
type: 'post',
|
||||
data: {student_id:$("#user_student_id").val(), school_id:$("input[name='occupation']").val()},
|
||||
success: function(data){
|
||||
if(data.result == 0){
|
||||
notice_box("该学号已被另一个账号(" + data.account + ")使用");
|
||||
}
|
||||
else if (data.result == 1){
|
||||
$('#my_account_form').submit();
|
||||
}
|
||||
}
|
||||
});
|
||||
} else{
|
||||
$('#my_account_form').submit();
|
||||
}
|
||||
}
|
||||
|
||||
//申请单位
|
||||
|
|
@ -728,7 +744,7 @@ function submit_pro_certification(){
|
|||
data: {student_id:$("#user_student_id").val(), school_id:$("input[name='occupation']").val()},
|
||||
success: function(data){
|
||||
if(data.result == 0){
|
||||
notice_box("该学号已被另一个账号用于(" + data.account + ")认证");
|
||||
notice_box("该学号已被另一个账号(" + data.account + ")用于认证");
|
||||
}
|
||||
else if (data.result == 1){
|
||||
$('#my_pro_certification_form').submit();
|
||||
|
|
@ -772,7 +788,7 @@ function submit_user_auth(){
|
|||
success: function(data){
|
||||
if(data.result == 0){
|
||||
$("#user_auth_submit_a").removeAttr("disabled");
|
||||
notice_box("该证件号码已被另一个账号用于(" + data.account + ")认证");
|
||||
notice_box("该证件号码已被另一个账号(" + data.account + ")用于认证");
|
||||
}
|
||||
else if (data.result == 1){
|
||||
$('#my_user_auth_form').submit();
|
||||
|
|
|
|||
|
|
@ -1199,21 +1199,19 @@ function submit_new_subject(){
|
|||
} else{
|
||||
$("#new_subject_name_notice").hide();
|
||||
}
|
||||
if(subject_description_editor.isEmpty()){
|
||||
if(shixun_editormd.getValue() == ""){
|
||||
check = false;
|
||||
$("#new_subject_description_notice").show();
|
||||
} else{
|
||||
$("#new_subject_description_notice").hide();
|
||||
}
|
||||
if(subject_learning_notes_editor.isEmpty()){
|
||||
if(shixun_propaedeutics.getValue() == ""){
|
||||
check = false;
|
||||
$("#new_learning_notes_notice").show();
|
||||
} else {
|
||||
$("#new_learning_notes_notice").hide();
|
||||
}
|
||||
if(check){
|
||||
subject_description_editor.sync();
|
||||
subject_learning_notes_editor.sync();
|
||||
$("#new_subject").submit();
|
||||
}
|
||||
}
|
||||
|
|
@ -1226,21 +1224,19 @@ function submit_edit_subject(id){
|
|||
} else{
|
||||
$("#new_subject_name_notice").hide();
|
||||
}
|
||||
if(subject_description_editor.isEmpty()){
|
||||
if(shixun_editormd.getValue() == ""){
|
||||
check = false;
|
||||
$("#new_subject_description_notice").show();
|
||||
} else{
|
||||
$("#new_subject_description_notice").hide();
|
||||
}
|
||||
if(subject_learning_notes_editor.isEmpty()){
|
||||
if(shixun_propaedeutics.getValue() == ""){
|
||||
check = false;
|
||||
$("#new_learning_notes_notice").show();
|
||||
} else {
|
||||
$("#new_learning_notes_notice").hide();
|
||||
}
|
||||
if(check){
|
||||
subject_description_editor.sync();
|
||||
subject_learning_notes_editor.sync();
|
||||
$("#edit_subject_"+id).submit();
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue