Merge remote-tracking branch 'origin/dev_aliyun' into dev_tj

merge aliyun
dev_daiao
tangjiang 5 years ago
commit 9badfaebb6

@ -16,7 +16,7 @@ class Admins::LaboratorySettingsController < Admins::BaseController
def form_params
params.permit(:identifier, :name,
:nav_logo, :login_logo, :tab_logo,
:nav_logo, :login_logo, :tab_logo, :oj_banner,
:subject_banner, :course_banner, :competition_banner, :moop_cases_banner,
:footer, navbar: %i[name link hidden])
end

@ -15,10 +15,9 @@ class HackUserLastestCodesController < ApplicationController
render_ok
end
# 复初始代码
# 复初始代码
def restore_initial_code
@my_hack.update_attribute(:code, @hack.code)
render_ok
end
# 调试代码
@ -55,7 +54,9 @@ class HackUserLastestCodesController < ApplicationController
end
# 提交记录
def submit_records;end
def submit_records
@records = @my_hack.hack_user_codes.created_order
end
# 提交记录详情

@ -199,7 +199,7 @@ class HacksController < ApplicationController
end
def start_hack_auth
return true if @hack == 1
return true if @hack.status == 1
require_auth_identity
end

@ -453,7 +453,9 @@ class HomeworkCommonsController < ApplicationController
# 课堂结束后不能再更新
unless @course.is_end
UpdateHomeworkSettingService.call(@homework, publish_params)
# 作业未发布时unified_setting参数不能为空
=begin
if @homework.publish_time.nil? || @homework.publish_time > Time.now
tip_exception("缺少统一设置的参数") if params[:unified_setting].nil?
if params[:unified_setting] || @course.course_groups_count == 0
@ -549,6 +551,7 @@ class HomeworkCommonsController < ApplicationController
@homework.end_time = @homework.max_group_end_time
end
end
=end
# 补交设置
tip_exception("缺少allow_late参数") if params[:allow_late].nil?
@ -635,7 +638,7 @@ class HomeworkCommonsController < ApplicationController
@homework.save!
if score_change && @homework.end_or_late_none_group
UpdateShixunWorkScoreJob.perform_now(@homework.id)
UpdateShixunWorkScoreJob.perform_later(@homework.id)
elsif update_eff_score && (@homework.end_or_late_none_group || @homework.max_efficiency > 0)
# 更新所有学生的效率分(作业允许补交且补交已截止 或者 作业不允许补交且提交已截止 或者作业已计算过效率分)
HomeworksService.new.update_student_eff_score HomeworkCommon.find_by(id: @homework.id)
@ -826,12 +829,16 @@ class HomeworkCommonsController < ApplicationController
end
end
HomeworkCommonPushNotifyJob.perform_later(@homework.id, publish_group_ids) if send_tiding
normal_status(0, "更新成功")
else
tip_exception("课堂已结束不能再更新")
end
# rescue ActiveRecord::RecordInvalid
# render_error("保存失败")
# rescue ApplicationService::Error => ex
# uid_logger(ex.message)
# render_error(ex.message)
# raise ActiveRecord::Rollback
rescue Exception => e
uid_logger(e.backtrace)
tip_exception(e.message)
@ -1101,7 +1108,7 @@ class HomeworkCommonsController < ApplicationController
else
homework.unified_setting = false
# 创建作业分班设置homework_group_setting
create_homework_group_settings(homework)
homework.create_homework_group_settings
# 选中的分班设置的发布时间改为当前时间,截止时间改为传的截止时间参数
if params[:detail]
@ -1137,7 +1144,7 @@ class HomeworkCommonsController < ApplicationController
# 发消息
HomeworkCommonPushNotifyJob.perform_later(homework.id, tiding_group_ids)
else
create_homework_group_settings(homework)
homework.create_homework_group_settings
none_publish_settings = homework.homework_group_settings.where(course_group_id: publish_groups).none_published
if params[:detail]
@ -1211,7 +1218,7 @@ class HomeworkCommonsController < ApplicationController
# 分组设置
if !params[:group_ids].blank?
# 确保之前是统一设置或者有新创建的分班的数据一致性
create_homework_group_settings(homework)
homework.create_homework_group_settings
homework.unified_setting = false if homework.unified_setting && end_groups.length != @course.course_groups_count
@ -1582,15 +1589,6 @@ class HomeworkCommonsController < ApplicationController
end
def create_homework_group_settings homework
if homework.homework_group_settings.size != @course.course_groups.size
@course.course_groups.where.not(id: homework.homework_group_settings.pluck(:course_group_id)).each do |group|
homework.homework_group_settings << HomeworkGroupSetting.new(course_group_id: group.id, course_id: @course.id,
publish_time: homework.publish_time, end_time: homework.end_time)
end
end
end
def get_new_code_reviews_result homework
if homework.code_reviews_new_results?
# 获取最新的查询id
@ -1653,4 +1651,8 @@ class HomeworkCommonsController < ApplicationController
homework_bank
end
def publish_params
params.permit(:unified_setting, :publish_time, :end_time, group_settings: [])
end
end

@ -0,0 +1,37 @@
class Weapps::HomeworkCommonsController < Weapps::BaseController
before_action :require_login
before_action :find_homework, :user_course_identity
before_action :teacher_allowed
def update_settings
begin
# 课堂结束后不能再更新
if @course.is_end
UpdateHomeworkSettingService.call(@homework, publish_params)
else
tip_exception("课堂已结束不能再更新")
end
rescue Exception => e
uid_logger(e.backtrace)
tip_exception(e.message)
raise ActiveRecord::Rollback
end
end
private
def teacher_allowed
return render_forbidden unless @user_course_identity < Course::STUDENT
end
def find_homework
@homework = HomeworkCommon.find_by!(id: params[:id])
@course = @homework.course
@homework_detail_manual = @homework.homework_detail_manual
end
def publish_params
params.permit(:unified_setting, :publish_time, :end_time, group_settings: [])
end
end

@ -1,4 +1,6 @@
class HackUserCode < ApplicationRecord
# 用户编程题的信息
belongs_to :hack
scope :created_order, ->{ order("created_at desc")}
end

@ -285,6 +285,15 @@ class HomeworkCommon < ApplicationRecord
homework_challenge_settings.find_by(challenge_id: challenge_id)&.score.to_f
end
def create_homework_group_settings
if homework_group_settings.size != course.course_groups.size
course.course_groups.where.not(id: homework_group_settings.pluck(:course_group_id)).each do |group|
homework_group_settings << HomeworkGroupSetting.new(course_group_id: group.id, course_id: course.id,
publish_time: publish_time, end_time: end_time)
end
end
end
def update_homework_work_score
if unified_setting
works = student_works

@ -42,6 +42,10 @@ class LaboratorySetting < ApplicationRecord
image_url('_moop_cases_banner')
end
def oj_banner_url
image_url('_oj_banner')
end
def default_navbar
self.class.default_config[:navbar]
end

@ -43,6 +43,7 @@ class Admins::SaveLaboratorySettingService < ApplicationService
save_image_file(params[:course_banner], '_course_banner')
save_image_file(params[:competition_banner], '_competition_banner')
save_image_file(params[:moop_cases_banner], '_moop_cases_banner')
save_image_file(params[:oj_banner], '_oj_banner')
end
def save_image_file(file, type)

@ -0,0 +1,115 @@
class UpdateHomeworkSettingService < ApplicationService
attr_reader :homework, :params
def initialize(homework, params)
@params = params
@homework = homework
end
def call
course = homework.course
# 作业未发布时unified_setting参数不能为空
if homework.publish_time.nil? || homework.publish_time > Time.now
tip_exception("缺少统一设置的参数") if params[:unified_setting].nil?
if params[:unified_setting] || course.course_groups_count == 0
tip_exception("发布时间不能为空") if params[:publish_time].blank?
tip_exception("截止时间不能为空") if params[:end_time].blank?
tip_exception("发布时间不能早于当前时间") if params[:publish_time] <= Time.now.strftime("%Y-%m-%d %H:%M:%S")
tip_exception("截止时间不能早于当前时间") if params[:end_time] <= Time.now.strftime("%Y-%m-%d %H:%M:%S")
tip_exception("截止时间不能早于发布时间") if params[:publish_time] > params[:end_time]
tip_exception("截止时间不能晚于课堂结束时间(#{course.end_date.end_of_day.strftime("%Y-%m-%d %H:%M")}") if
course.end_date.present? && params[:end_time] > course.end_date.end_of_day
homework.unified_setting = 1
homework.homework_group_settings.destroy_all
homework.publish_time = params[:publish_time]
# 截止时间为空时取发布时间后一个月
homework.end_time = params[:end_time]
else
tip_exception("分班发布设置不能为空") if params[:group_settings].blank?
# 创建作业的分班设置
homework.create_homework_group_settings
setting_group_ids = []
params[:group_settings].each do |setting|
tip_exception("分班id不能为空") if setting[:group_id].length == 0
tip_exception("发布时间不能为空") if setting[:publish_time].blank?
tip_exception("截止时间不能为空") if setting[:end_time].blank?
tip_exception("发布时间不能早于当前时间") if setting[:publish_time] <= strf_time(Time.now)
tip_exception("截止时间不能早于当前时间") if setting[:end_time] <= strf_time(Time.now)
tip_exception("截止时间不能早于发布时间") if setting[:publish_time] > setting[:end_time]
tip_exception("截止时间不能晚于课堂结束时间(#{course.end_date.end_of_day.strftime("%Y-%m-%d %H:%M")}") if
course.end_date.present? && setting[:end_time] > course.end_date.end_of_day
publish_time = setting[:publish_time] == "" ? Time.now : setting[:publish_time]
# 截止时间为空时取发布时间后一个月
end_time = setting[:end_time]
HomeworkGroupSetting.where(homework_common_id: homework.id, course_group_id: setting[:group_id]).
update_all(publish_time: publish_time, end_time: end_time)
setting_group_ids << setting[:group_id]
end
# 未设置的分班发布时间和截止时间都为nil
HomeworkGroupSetting.where.not(course_group_id: setting_group_ids).where(homework_common_id: homework.id).
update_all(publish_time: nil, end_time: nil)
# 记录已发布需要发消息的分班
publish_group_ids = HomeworkGroupSetting.where(homework_common_id: homework.id).group_published.pluck(:course_group_id)
homework.unified_setting = 0
homework.publish_time = homework.min_group_publish_time
homework.end_time = homework.max_group_end_time
end
# 如果作业立即发布则更新状态、发消息
if homework.publish_time <= Time.now and homework_detail_manual.comment_status == 0
homework_detail_manual.comment_status = 1
send_tiding = true
end
# 作业在"提交中"状态时
else
if homework.end_time > Time.now && homework.unified_setting
tip_exception("截止时间不能为空") if params[:end_time].blank?
tip_exception("截止时间不能早于当前时间") if params[:end_time] <= strf_time(Time.now)
tip_exception("截止时间不能晚于课堂结束时间(#{course.end_date.end_of_day.strftime("%Y-%m-%d %H:%M")}") if
course.end_date.present? && params[:end_time] > strf_time(course.end_date.end_of_day)
homework.end_time = params[:end_time]
elsif !homework.unified_setting
homework.create_homework_group_settings
tip_exception("分班发布设置不能为空") if params[:group_settings].blank?
params[:group_settings].each do |setting|
group_settings = HomeworkGroupSetting.where(homework_common_id: homework.id, course_group_id: setting[:group_id])
tip_exception("分班id不能为空") if setting[:group_id].length == 0
tip_exception("发布时间不能为空") if setting[:publish_time].blank?
tip_exception("截止时间不能为空") if setting[:end_time].blank?
# 如果该发布规则 没有已发布的分班则需判断发布时间
tip_exception("发布时间不能早于等于当前时间") if setting[:publish_time] <= strf_time(Time.now) && group_settings.group_published.count == 0
tip_exception("截止时间不能早于等于当前时间") if setting[:end_time] <= strf_time(Time.now) && group_settings.none_end.count > 0
tip_exception("截止时间不能早于发布时间") if setting[:publish_time] > setting[:end_time]
tip_exception("截止时间不能晚于课堂结束时间(#{course.end_date.end_of_day.strftime("%Y-%m-%d %H:%M")}") if
course.end_date.present? && setting[:end_time] > strf_time(course.end_date.end_of_day)
group_settings.none_published.update_all(publish_time: setting[:publish_time])
group_settings.none_end.update_all(end_time: setting[:end_time])
end
homework.end_time = homework.max_group_end_time
end
end
homework.save!
HomeworkCommonPushNotifyJob.perform_later(homework.id, publish_group_ids) if send_tiding
end
private
def tip_exception(status = -1, message)
raise Educoder::TipException.new(status, message)
end
end

@ -129,6 +129,16 @@
<label for="moop_cases_banner" class="banner-item-upload" data-toggle="tooltip" data-title="选择图片"></label>
</div>
</div>
<div class="col-12 col-md-4 banner-item">
<%- oj_banner = setting.oj_banner_url -%>
<div class="banner-item-top">开发者社区</div>
<div class="banner-item-bottom <%= oj_banner ? 'has-img' : '' %>">
<img class="banner-item-img oj-banner-img" src="<%= oj_banner %>" style="<%= oj_banner.present? ? '' : 'display: none' %>"/>
<%= file_field_tag(:oj_banner, accept: 'image/*', style: 'display: none', value: params[:oj_banner]) %>
<label for="oj_banner" class="banner-item-upload" data-toggle="tooltip" data-title="选择图片"></label>
</div>
</div>
</div>
</div>

@ -1,3 +1,4 @@
json.(@hack_user, :id, :status, :error_line, :error_msg, :expected_output,
:input, :output, :execute_time, :execute_memory)
json.language @hack_user.hack.language
:input, :output, :execute_time, :execute_memory, :created_at, :code)
json.language @hack_user.hack.language
json.name @hack_user.hack.name

@ -1,5 +1,5 @@
json.hack do
json.(@hack, :difficult, :time_limit, :description, :score, :identifier)
json.(@hack, :name, :difficult, :time_limit, :description, :score, :identifier)
json.language @hack.language
json.username @hack.user.real_name
json.code @my_hack.code

@ -1,4 +1,4 @@
json.array! @my_hack.hack_user_codes do |hack_user|
json.array! @records do |hack_user|
json.(hack_user, :id, :created_at, :status, :execute_time, :execute_memory)
json.language hack_user.hack.language
end

@ -10,6 +10,7 @@ json.setting do
json.course_banner_url (setting.course_banner_url || default_setting.course_banner_url)&.[](1..-1)
json.competition_banner_url (setting.competition_banner_url || default_setting.competition_banner_url)&.[](1..-1)
json.moop_cases_banner_url (setting.moop_cases_banner_url || default_setting.moop_cases_banner_url)&.[](1..-1)
json.oj_banner_url (setting.oj_banner_url || default_setting.oj_banner_url)&.[](1..-1)
json.navbar setting.navbar || default_setting.navbar

@ -926,6 +926,10 @@ Rails.application.routes.draw do
delete :delete_course_students
end
end
resources :homework_commons do
post :update_settings, on: :member
end
end
resources :users_for_partners, only: [:index]

@ -1,27 +1,27 @@
class MigrateExerciseSingleQuestionScore < ActiveRecord::Migration[5.2]
def change
# 删除判断、单选题中生成多条记录但exercise_choice_id不同的数据
sql = %Q(delete from exercise_answers where (exercise_question_id, user_id) in
(select * from (select exercise_question_id, user_id from exercise_answers join exercise_questions eq on exercise_question_id = eq.id where eq.question_type in (0, 2) group by exercise_question_id, user_id having count(*) > 1) a)
and id not in (select * from (select min(exercise_answers.id) from exercise_answers join exercise_questions eq on exercise_question_id = eq.id where eq.question_type in (0, 2) group by exercise_question_id, user_id having count(*) > 1 order by exercise_answers.id) b))
ActiveRecord::Base.connection.execute sql
# 更新成绩
exercise_answers = ExerciseAnswer.joins(:exercise_question).where(score: -1, exercise_questions: {question_type: [0, 2]})
exercise_answers.includes(:exercise_choice, exercise_question: :exercise_standard_answers).find_each do |answer|
question = answer.exercise_question
exercise_user = ExerciseUser.find_by(exercise_id: question.exercise_id, user_id: answer.user_id)
if exercise_user && exercise_user.commit_status == 1
user_choice_position = answer.exercise_choice&.choice_position
if user_choice_position && (user_choice_position.to_i == question.exercise_standard_answers.take&.exercise_choice_id.to_i)
answer.update!(score: question.question_score)
score = exercise_user.score + question.question_score
objective_score = exercise_user.objective_score + question.question_score
exercise_user.update!(score: score, objective_score: objective_score)
end
end
end
# # 删除判断、单选题中生成多条记录但exercise_choice_id不同的数据
# sql = %Q(delete from exercise_answers where (exercise_question_id, user_id) in
# (select * from (select exercise_question_id, user_id from exercise_answers join exercise_questions eq on exercise_question_id = eq.id where eq.question_type in (0, 2) group by exercise_question_id, user_id having count(*) > 1) a)
# and id not in (select * from (select min(exercise_answers.id) from exercise_answers join exercise_questions eq on exercise_question_id = eq.id where eq.question_type in (0, 2) group by exercise_question_id, user_id having count(*) > 1 order by exercise_answers.id) b))
# ActiveRecord::Base.connection.execute sql
#
# # 更新成绩
# exercise_answers = ExerciseAnswer.joins(:exercise_question).where(score: -1, exercise_questions: {question_type: [0, 2]})
# exercise_answers.includes(:exercise_choice, exercise_question: :exercise_standard_answers).find_each do |answer|
#
# question = answer.exercise_question
# exercise_user = ExerciseUser.find_by(exercise_id: question.exercise_id, user_id: answer.user_id)
#
# if exercise_user && exercise_user.commit_status == 1
# user_choice_position = answer.exercise_choice&.choice_position
# if user_choice_position && (user_choice_position.to_i == question.exercise_standard_answers.take&.exercise_choice_id.to_i)
# answer.update!(score: question.question_score)
# score = exercise_user.score.to_f + question.question_score
# objective_score = exercise_user.objective_score + question.question_score
# exercise_user.update!(score: score, objective_score: objective_score)
# end
# end
# end
end
end

@ -213,7 +213,7 @@ class PollDetailIndex extends Component{
user_permission && user_permission.poll_publish_count>0 ?
<li className="fl mr20">
<CancelPublish
{...this.props}
{...this.props}
{...this.state}
style="blue"
checkBoxValues={[this.props.match.params.pollId]}
@ -231,9 +231,11 @@ class PollDetailIndex extends Component{
{
user_permission && user_permission.current_status!=3 ?
<WordsBtn style="blue" to={`/courses/${this.props.match.params.coursesId}/polls/${this.props.match.params.pollId}/users/${this.props.current_user.login}`}>
{ user_permission && user_permission.current_status ==0 ? "继续答题" : user_permission.current_status == 1 ?
(polls_status===2?"":polls_status===3?"":polls_status===4?"":"查看答题")
: "开始答题" }
{ user_permission && user_permission.current_status ==0 ? "继续答题" :
user_permission.current_status == 1 ?
(polls_status===1?"":"查看答题")
:user_permission.current_status == 2 ?(polls_status===3?"":polls_status===4?"":"开始答题"):""
}
</WordsBtn>
:""
}
@ -266,4 +268,4 @@ class PollDetailIndex extends Component{
)
}
}
export default PollDetailIndex
export default PollDetailIndex

@ -3151,8 +3151,11 @@ class PollNew extends Component {
onClick={() => this.Deleteadddom(indexo,true)}>取消</ActionBtn>
<ActionBtn style="blue" className="mr20 w100"
onClick={() => this.Deleteadddomthree(indexo, itemo,true)}>保存</ActionBtn>
{
polls_status && polls_status < 2 ?
<ActionBtn style="blue" className=" w100"
onClick={() => this.Deleteadddomtwo(indexo, itemo,true)}>保存并继续</ActionBtn>
:""}
</span>
</div>
</div>
@ -3248,8 +3251,11 @@ class PollNew extends Component {
onClick={() => this.Deleteadddom(indexo,true)}>取消</ActionBtn>
<ActionBtn style="blue" className="mr20 w100"
onClick={() => this.Deleteadddomthree(indexo, itemo,true)}>保存</ActionBtn>
{
polls_status && polls_status < 2 ?
<ActionBtn style="blue" className=" w100"
onClick={() => this.Deleteadddomtwo(indexo, itemo,true)}>保存并继续</ActionBtn>
:""}
</span>
</div>
@ -3261,8 +3267,11 @@ class PollNew extends Component {
onClick={() => this.Deleteadddom(indexo,true)}>取消</ActionBtn>
<ActionBtn style="blue" className="mr20 w100"
onClick={() => this.Deleteadddomthree(indexo, itemo,true)}>保存</ActionBtn>
{
polls_status && polls_status < 2 ?
<ActionBtn style="blue" className=" w100"
onClick={() => this.Deleteadddomtwo(indexo, itemo,true)}>保存并继续</ActionBtn>
:""}
</span>
</div>
)
@ -3274,8 +3283,11 @@ class PollNew extends Component {
onClick={() => this.Deleteadddom(indexo,true)}>取消</ActionBtn>
<ActionBtn style="blue" className="mr20 w100"
onClick={() => this.Deleteadddomthree(indexo, itemo,true)}>保存</ActionBtn>
{
polls_status && polls_status < 2 ?
<ActionBtn style="blue" className=" w100"
onClick={() => this.Deleteadddomtwo(indexo, itemo,true)}>保存并继续</ActionBtn>
:""}
</span>
</div>
:
@ -3393,8 +3405,11 @@ class PollNew extends Component {
onClick={() => this.Deleteadddom(indexo,true)}>取消</ActionBtn>
<ActionBtn style="blue" className="mr20 w100"
onClick={() => this.Deleteadddomthree(indexo, itemo,true)}>保存</ActionBtn>
{
polls_status && polls_status < 2 ?
<ActionBtn style="blue" className=" w100"
onClick={() => this.Deleteadddomtwo(indexo, itemo,true)}>保存并继续</ActionBtn>
:""}
</span>
</div>
</div>
@ -3490,8 +3505,11 @@ class PollNew extends Component {
onClick={() => this.Deleteadddom(indexo,true)}>取消</ActionBtn>
<ActionBtn style="blue" className="mr20 w100"
onClick={() => this.Deleteadddomthree(indexo, itemo,true)}>保存</ActionBtn>
{
polls_status && polls_status < 2 ?
<ActionBtn style="blue" className=" w100"
onClick={() => this.Deleteadddomtwo(indexo, itemo,true)}>保存并继续</ActionBtn>
:""}
</span>
</div>
@ -3503,8 +3521,11 @@ class PollNew extends Component {
onClick={() => this.Deleteadddom(indexo,true)}>取消</ActionBtn>
<ActionBtn style="blue" className="mr20 w100"
onClick={() => this.Deleteadddomthree(indexo, itemo,true)}>保存</ActionBtn>
{
polls_status && polls_status < 2 ?
<ActionBtn style="blue" className=" w100"
onClick={() => this.Deleteadddomtwo(indexo, itemo,true)}>保存并继续</ActionBtn>
:""}
</span>
</div>
)
@ -3516,8 +3537,11 @@ class PollNew extends Component {
onClick={() => this.Deleteadddom(indexo,true)}>取消</ActionBtn>
<ActionBtn style="blue" className="mr20 w100"
onClick={() => this.Deleteadddomthree(indexo, itemo,true)}>保存</ActionBtn>
{
polls_status && polls_status < 2 ?
<ActionBtn style="blue" className=" w100"
onClick={() => this.Deleteadddomtwo(indexo, itemo,true)}>保存并继续</ActionBtn>
:""}
</span>
</div>
:
@ -3644,8 +3668,12 @@ class PollNew extends Component {
onClick={() => this.Deleteadddom(indexo)}>取消</ActionBtn>
<ActionBtn style="blue" className="mr20 w100"
onClick={() => this.Deleteadddomthree(indexo, itemo)}>保存</ActionBtn>
<ActionBtn style="blue" className=" w100"
onClick={() => this.Deleteadddomtwo(indexo, itemo)}>保存并继续</ActionBtn>
{
polls_status && polls_status < 2 ?
<ActionBtn style="blue" className=" w100"
onClick={() => this.Deleteadddomtwo(indexo, itemo)}>保存并继续</ActionBtn>
:""
}
</span>
</div>
</div>
@ -3741,8 +3769,12 @@ class PollNew extends Component {
onClick={() => this.Deleteadddom(indexo)}>取消</ActionBtn>
<ActionBtn style="blue" className="mr20 w100"
onClick={() => this.Deleteadddomthree(indexo, itemo)}>保存</ActionBtn>
{
polls_status&&polls_status<2?
<ActionBtn style="blue" className=" w100"
onClick={() => this.Deleteadddomtwo(indexo, itemo)}>保存并继续</ActionBtn>
:""
}
</span>
</div>
@ -3754,8 +3786,12 @@ class PollNew extends Component {
onClick={() => this.Deleteadddom(indexo)}>取消</ActionBtn>
<ActionBtn style="blue" className="mr20 w100"
onClick={() => this.Deleteadddomthree(indexo, itemo)}>保存</ActionBtn>
{
polls_status&&polls_status<2?
<ActionBtn style="blue" className=" w100"
onClick={() => this.Deleteadddomtwo(indexo, itemo)}>保存并继续</ActionBtn>
:""
}
</span>
</div>
)
@ -3767,8 +3803,13 @@ class PollNew extends Component {
onClick={() => this.Deleteadddom(indexo)}>取消</ActionBtn>
<ActionBtn style="blue" className="mr20 w100"
onClick={() => this.Deleteadddomthree(indexo, itemo)}>保存</ActionBtn>
<ActionBtn style="blue" className=" w100"
onClick={() => this.Deleteadddomtwo(indexo, itemo)}>保存并继续</ActionBtn>
{
polls_status&&polls_status<2?
<ActionBtn style="blue" className=" w100"
onClick={() => this.Deleteadddomtwo(indexo, itemo)}>保存并继续</ActionBtn>
:""
}
</span>
</div>
:
@ -3873,4 +3914,4 @@ class PollNew extends Component {
const WrappedPollNew = Form.create({name: 'taskPollNew'})(PollNew);
// RouteHOC()
export default (WrappedPollNew);
export default (WrappedPollNew);

@ -144,8 +144,8 @@ class Trainingjobsetting extends Component {
}
componentDidMount() {
console.log("Trainingjobsetting");
console.log("componentDidMount");
//console.log("Trainingjobsetting");
//console.log("componentDidMount");
this.getTrainingjobsetting(true);
let query = this.props.location.pathname;
const type = query.split('/');
@ -339,6 +339,7 @@ class Trainingjobsetting extends Component {
var datas = challenge_settings;
var challenge_scoredata = [];
let datasinde=0;
for (var i = 0; i < datas.length; i++) {
if (datas[i].checked === true) {
// var object = {
@ -347,9 +348,16 @@ class Trainingjobsetting extends Component {
// };
challenge_scoredata.push(datas[i].challenge_score);
// array.push(object)
}else{
datasinde=datasinde+1;
}
}
// //console.log("datasinde Calculatethetotalscore");
// //console.log(datasinde);
// //console.log(datas.length);
// if(array === "[]" || array.length === 0){
// this.props.showNotification(`没有关卡不能更新设置`);
// return;
@ -361,32 +369,27 @@ class Trainingjobsetting extends Component {
// latedeductiontwos = this.state.latedeductiontwo;
// }
// if(challenge_scoredata.length>0){
let len = 0;
console.log(challenge_scoredata);
for (var k = 0; k < challenge_scoredata.length; k++) {
len = len + parseFloat(challenge_scoredata[k]);
// console.log(challenge_scoredata[k]);
// console.log(len);
if(datasinde!==datas.length){
let len = 0;
//console.log(challenge_scoredata);
for (var k = 0; k < challenge_scoredata.length; k++) {
len = len + parseFloat(challenge_scoredata[k]);
}
let max = latedeductiontwos + len;
let maxs = max.toFixed(1);
this.setState({
CalculateMax: maxs,
})
}
let max = latedeductiontwos + len;
let maxs = max.toFixed(1);
console.log("Calculatethetotalscore");
console.log(maxs);
this.setState({
CalculateMax: maxs,
})
// }
}
//提交数据
pustdate = () => {
var thiss = this;
// console.log("pustdate");
// //console.log("pustdate");
var homeworkid = this.props.match.params.homeworkid
var array = [];
var datas = this.state.challenge_settings;
@ -399,9 +402,9 @@ class Trainingjobsetting extends Component {
};
challenge_scoredata.push(datas[i].challenge_score);
array.push(object)
// console.log("datas[i].challenge_score");
// console.log(i);
// console.log(datas[i].challenge_score);
// //console.log("datas[i].challenge_score");
// //console.log(i);
// //console.log(datas[i].challenge_score);
}
}
@ -690,7 +693,7 @@ class Trainingjobsetting extends Component {
if (this.state.unifiedsetting === true) {
console.log("统一设置");
//console.log("统一设置");
data = {
unified_setting: this.state.unifiedsetting, //统一配置
publish_time: moment(this.state.publish_time).format('YYYY-MM-DD HH:mm'), //发布时间
@ -999,21 +1002,21 @@ class Trainingjobsetting extends Component {
for (var i = 0; i < challenge_settingsdata.length; i++) {
if (challenge_settingsdata[i].checked === true) {
if (srbool === false) {
console.log(intkks);
//console.log(intkks);
mact = mact + 1;
if (mact === srorelength) {
challenge_settingsdata[i].challenge_score = (parseFloat(Proportion.toFixed(1)) + parseFloat(intkks.toFixed(1))).toFixed(1);
console.log(challenge_settingsdata[i].challenge_score);
//console.log(challenge_settingsdata[i].challenge_score);
} else {
challenge_settingsdata[i].challenge_score = Proportion.toFixed(1);
}
} else {
console.log(intkk);
//console.log(intkk);
mact = mact + 1;
if (mact === srorelength) {
challenge_settingsdata[i].challenge_score = (parseFloat(Proportion.toFixed(1)) + parseFloat(intkk.toFixed(1))).toFixed(1);
console.log(challenge_settingsdata[i].challenge_score);
//console.log(challenge_settingsdata[i].challenge_score);
} else {
challenge_settingsdata[i].challenge_score = Proportion.toFixed(1);
}
@ -1092,14 +1095,14 @@ class Trainingjobsetting extends Component {
if (mact === macts) {
if (bool === true) {
challenge_settingsdata[i].challenge_score = (parseFloat(challenge_settingsdata[i].challenge_score) + parseFloat(expzsy.toFixed(1))).toFixed(1);
console.log(parseFloat(challenge_settingsdata[i].challenge_score) + parseFloat(expzsy.toFixed(1)));
console.log(parseFloat(expzsy.toFixed(1)));
//console.log(parseFloat(challenge_settingsdata[i].challenge_score) + parseFloat(expzsy.toFixed(1)));
//console.log(parseFloat(expzsy.toFixed(1)));
} else {
challenge_settingsdata[i].challenge_score = (parseFloat(challenge_settingsdata[i].challenge_score) - parseFloat(expzsy.toFixed(1))).toFixed(1);
console.log(parseFloat(challenge_settingsdata[i].challenge_score) - parseFloat(expzsy.toFixed(1)));
console.log(parseFloat(expzsy.toFixed(1)));
//console.log(parseFloat(challenge_settingsdata[i].challenge_score) - parseFloat(expzsy.toFixed(1)));
//console.log(parseFloat(expzsy.toFixed(1)));
}
}
@ -1407,7 +1410,7 @@ class Trainingjobsetting extends Component {
});
}
ontimeonok = (value) => {
console.log("ontimeonok点击了2");
//console.log("ontimeonok点击了2");
if (value === undefined) {
return;
@ -1479,7 +1482,7 @@ class Trainingjobsetting extends Component {
}
}
onStartChange = (value, dateString) => {
console.log("onStartChange点击了1");
//console.log("onStartChange点击了1");
if (value == null) {
this.setState({
@ -1508,8 +1511,8 @@ class Trainingjobsetting extends Component {
} catch (e) {
}
// console.log(value);
console.log(dateString);
// //console.log(value);
//console.log(dateString);
// console.log(handleDateString(dateString));
// this.onChangedata('publish_time', value, dateString);
this.setState({
@ -1662,7 +1665,7 @@ class Trainingjobsetting extends Component {
rulesdata.map((item, key) => {
if (item.publish_time != "Invalid date") {
if (moment(value, "YYYY-MM-DD HH:mm") <= moment(item.publish_time)) {
console.log(moment(item.publish_time, "YYYY-MM-DD HH:mm") <= moment(publish_time))
//console.log(moment(item.publish_time, "YYYY-MM-DD HH:mm") <= moment(publish_time))
let kes = key + 1;
this.setState({
hand__e_tip: "补交时间不能早于发布规则" + kes + "的发布时间",
@ -2061,9 +2064,9 @@ class Trainingjobsetting extends Component {
}
} catch (e) {
console.log("报错editSettings");
console.log(1);
console.log(e);
//console.log("报错editSettings");
//console.log(1);
//console.log(e);
}
@ -2089,8 +2092,8 @@ class Trainingjobsetting extends Component {
}
}
} catch (e) {
console.log(2);
console.log(e);
//console.log(2);
//console.log(e);
this.setState({
flagPageEditsbox: true,
flagPageEdit: true,
@ -2121,8 +2124,8 @@ class Trainingjobsetting extends Component {
}
} catch (e) {
console.log(3);
console.log(e);
//console.log(3);
//console.log(e);
}
};
//取消编辑
@ -2167,8 +2170,8 @@ class Trainingjobsetting extends Component {
}
}
console.log(rules);
console.log(datas);
//console.log(rules);
//console.log(datas);
this.setState({
rules,
rulesdata: datas,

Loading…
Cancel
Save