dev_auth
cxt 5 years ago
parent 8d1fe03177
commit 6a1686f40f

@ -445,15 +445,10 @@ $(document).on('turbolinks:load', function(){
' <div class="col-2 no_padding input_middle">\n' +
' <input type="text" name="stage[][end_time]" id="stage__end_time" value="" autocomplete="off" class="section-end-time form-control" placeholder="有效结束时间">\n' +
' </div>\n' +
' <span class="col-2 text-right mt-2 no_padding">任务完成要求:</span>\n' +
' <span class="col-2 text-right mt-2 no_padding">总任务数:</span>\n' +
' <div class="col-1 no_padding input_small">\n' +
' <input type="number" class="form-control" name="stage[][mission_count]" value="1">\n' +
' <input type="number" class="form-control" onchange="change_total(this)" value="3" name="stage[][entry]">\n' +
' </div>\n' +
' <span class="mt-2 ml10 mr10">/</span>\n' +
' <div class="col-1 no_padding input_small">\n' +
' <input type="number" class="form-control task_all" onchange="change_total(this)" value="3" name="stage[][entry]">\n' +
' </div>\n' +
' <span class=" mt-2">(总任务)</span>\n' +
' <span class="col-1 text-right mt-2 no_padding">成绩来源:</span>\n' +
' <div class="col-2 no_padding input_middle">\n' +
' <select class="form-control" name="stage[][score_source]">\n' +
@ -526,15 +521,10 @@ $(document).on('turbolinks:load', function(){
' <div class="col-2 no_padding input_middle">\n' +
' <input type="text" name="stage[][end_time]" id="stage__end_time" value="" autocomplete="off" class="section-end-time form-control" placeholder="有效结束时间">\n' +
' </div>\n' +
' <span class="col-2 text-right mt-2 no_padding">任务完成要求:</span>\n' +
' <div class="col-1 no_padding input_small">\n' +
' <input type="number" class="form-control" name="stage[][mission_count]" value="1">\n' +
' </div>\n' +
' <span class="mt-2 ml10 mr10">/</span>\n' +
' <span class="col-2 text-right mt-2 no_padding">总任务数:</span>\n' +
' <div class="col-1 no_padding input_small">\n' +
' <input type="number" class="form-control task_all" onchange="change_total(this)" value="3" name="stage[][entry]">\n' +
' <input type="number" class="form-control" onchange="change_total(this)" value="3" name="stage[][entry]">\n' +
' </div>\n' +
' <span class=" mt-2">(总任务)</span>\n' +
' <span class="col-1 text-right mt-2 no_padding">成绩来源:</span>\n' +
' <div class="col-2 no_padding input_middle">\n' +
' <select class="form-control" name="stage[][score_source]">\n' +
@ -672,15 +662,10 @@ function addNewTab(competition_id) {
' <div class="col-2 no_padding input_middle">\n' +
' <input type="text" name="stage[][end_time]" id="stage__end_time" value="" autocomplete="off" class="section-end-time form-control" placeholder="有效结束时间">\n' +
' </div>\n' +
' <span class="col-2 text-right mt-2 no_padding">任务完成要求:</span>\n' +
' <div class="col-1 no_padding input_small">\n' +
' <input type="number" class="form-control" name="stage[][mission_count]" value="1">\n' +
' </div>\n' +
' <span class="mt-2 ml10 mr10">/</span>\n' +
' <span class="col-2 text-right mt-2 no_padding">总任务数:</span>\n' +
' <div class="col-1 no_padding input_small">\n' +
' <input type="number" class="form-control task_all" onchange="change_total(this)" value="3" name="stage[][entry]">\n' +
' <input type="number" class="form-control" onchange="change_total(this)" value="3" name="stage[][entry]">\n' +
' </div>\n' +
' <span class=" mt-2">(总任务)</span>\n' +
' <span class="col-1 text-right mt-2 no_padding">成绩来源:</span>\n' +
' <div class="col-2 no_padding input_middle">\n' +
' <select class="form-control" name="stage[][score_source]">\n' +

@ -28,6 +28,6 @@ class Admins::CompetitionSettingsController < Admins::BaseController
def nav_form_params
params.permit(:enroll_end_time,
competition_staffs: %i[category minimum maximum mutiple_limited],
navbar: %i[module_type name hidden position url])
navbar: %i[module_type module_id name hidden position url])
end
end

@ -107,7 +107,7 @@ class Admins::CompetitionStagesController < Admins::BaseController
end
def update_form_params
params.permit(:stage_name, :score_rate, stage: [:start_time, :end_time, :mission_count, :entry, :score_source, identifiers: []])
params.permit(:stage_name, :score_rate, stage: [:start_time, :end_time, :entry, :score_source, identifiers: []])
end

@ -155,8 +155,8 @@ class Competitions::CompetitionsController < Competitions::BaseController
@competition_head_cells = []
@competition_cells_column = []
max_staff = competition.competition_staffs.sum(:maximum)
if max_staff < 2 # 个人赛
personal = competition.personal?
if personal # 个人赛
@competition_head_cells = %w(序号 姓名 学校 学号)
else # 战队赛
@competition_head_cells = %w(序号 战队名 指导老师 队员 学校)
@ -173,7 +173,7 @@ class Competitions::CompetitionsController < Competitions::BaseController
row_cells_column = []
row_cells_column << index + 1
record_user = record.user
if max_staff < 2
if personal
row_cells_column << record_user.real_name
row_cells_column << record_user.school_name
row_cells_column << record_user.student_id

@ -8,21 +8,25 @@ class Admins::CompetitionNavSettingService < ApplicationService
def call
ActiveRecord::Base.transaction do
competition.competition_modules.where(module_type: 'md').destroy_all
# hidden_module_type = competition.all_module_types - params[:module_type]
# competition.competition_modules.where(module_type: hidden_module_type).update_all(hidden: 1)
old_module_ids = competition.competition_modules.pluck(:id)
module_ids = []
params[:navbar].each do |nav|
module_type = nav["module_type"]
if competition.all_module_types.include?(module_type)
com_module = competition.competition_modules.find_by(module_type: module_type)
if nav["module_id"]
module_ids << nav["module_id"].to_i
com_module = competition.competition_modules.find_by(id: nav["module_id"])
else
com_module = CompetitionModule.create!(competition_id: competition.id, module_type: 'md')
end
com_module.update_attributes!(hidden: nav["hidden"] ? 0 : 1, position: nav["position"] ? nav["position"] : com_module.position, name: nav["name"], url: nav["url"])
end
delete_module_ids = old_module_ids - module_ids
competition.competition_modules.where(id: delete_module_ids).destroy_all
competition.update_attributes!(enroll_end_time: params[:enroll_end_time])
if params[:competition_staffs].present?
competition.competition_staffs.delete_all

@ -13,8 +13,7 @@ class Admins::CompetitionStageCreateService < ApplicationService
params[:stage].each do |section|
stage_section = CompetitionStageSection.create!(competition_id: competition.id, competition_stage_id: stage.id,
start_time: section["start_time"], end_time: section["end_time"],
mission_count: section["mission_count"], entry: section["entry"],
score_source: section["score_source"])
entry: section["entry"], score_source: section["score_source"])
section["identifiers"].each do |identifier|
CompetitionEntry.create!(competition_stage_section_id: stage_section.id, competition_stage_id: stage.id,
shixun_identifier: identifier)

@ -16,8 +16,7 @@ class Admins::CompetitionStageUpdateService < ApplicationService
params[:stage].each do |section|
stage_section = CompetitionStageSection.create!(competition_id: competition.id, competition_stage_id: stage.id,
start_time: section["start_time"], end_time: section["end_time"],
mission_count: section["mission_count"], entry: section["entry"],
score_source: section["score_source"])
entry: section["entry"], score_source: section["score_source"])
section["identifiers"].each do |identifier|
CompetitionEntry.create!(competition_stage_section_id: stage_section.id, competition_stage_id: stage.id,
shixun_identifier: identifier)

@ -176,6 +176,7 @@
</label>
</div>
<div class="col-md-4">
<input type="hidden" value="<%= com_module.id %>" name="navbar[][module_id]">
<%= text_field_tag('navbar[][name]', com_module.name, id: nil, class: 'form-control', placeholder: '首页') %>
<input type="hidden" value="<%= com_module.module_type %>" name="navbar[][module_type]">
</div>
@ -192,6 +193,7 @@
</label>
</div>
<div class="col-md-8 color-blue mt-1">
<input type="hidden" value="<%= com_module.id %>" name="navbar[][module_id]">
<input type="hidden" value="<%= com_module.module_type %>" name="navbar[][module_type]">
<input type="hidden" value="报名" name="navbar[][name]">
报名
@ -261,6 +263,7 @@
</label>
</div>
<div class="col-md-label mt-2">
<input type="hidden" value="<%= com_module.id %>" name="navbar[][module_id]">
<input type="hidden" value="<%= com_module.module_type %>" name="navbar[][module_type]">
<input type="hidden" value="<%= com_module.name %>" name="navbar[][name]">
<%= com_module.name %>
@ -283,6 +286,7 @@
</label>
</div>
<div class="col-md-label mt-1">
<input type="hidden" value="<%= com_module.id %>" name="navbar[][module_id]">
<input type="hidden" value="<%= com_module.module_type %>" name="navbar[][module_type]">
<%= text_field_tag('navbar[][name]', com_module.name, id: nil, class: 'form-control', placeholder: '请输入模块名称') %>
</div>
@ -325,6 +329,12 @@
<div class="card mb-5 competition-chart-stages">
<div class="card-header d-flex justify-content-between align-items-center">
<span>排行榜设置</span>
<i class="fa fa-question-circle font-14" data-toggle="tooltip" data-html="true" data-placement="top" title="温馨提示:<br/>
需要参赛选手完成几个实训,请相应的创建几个阶段;<br/>
若多个实训只需要参赛选手选择完成1个请将其配置在同一个阶段<br/>
一个阶段多个实训时,请注意实训关卡数及各关卡的经验值设置保持相同;<br/>
同阶段的各个实训,请保持相同的成绩来源;<br/>
每阶段每个实训关卡的得分,将按照组内成员最高得分计算,总分为各阶段得分加和。"></i>
<a href="javascript:void(0)" class="btn btn-primary btn-custom waves-effect add-new-tab waves-light ml20" data-competition-id="<%= @competition.id %>">+ 新增tab</a>
<span class="flex-1 text-right color-orange">实训ID填写示例实训地址为https://www.educoder.net/shixuns/u5plmgka/challenges则填写“u5plmgka”</span>
@ -346,7 +356,7 @@
<input type="number" class="form-control" name="score_rate" value="<%= (stage.score_rate * 100).to_i %>"/>
</div><span class=" mt-2">%</span>
<div class="flex-1">
<a href="javascript:void(0)"class="btn btn-outline-primary export-action ml20 add-task-sub">新增子阶段</a>
<a href="javascript:void(0)" class="btn btn-outline-primary export-action ml20 add-task-sub">新增子阶段</a>
<% if stage.max_end_time > Time.now %>
<%= agree_link '发送短信提醒', send_message_admins_competition_competition_stage_path(@competition, stage, element: ".send-message-#{stage.id}"),
class: 'btn btn-outline-primary ml20', 'data-confirm': '确认执行发送短信操作?' %>
@ -374,15 +384,10 @@
<div class="col-2 no_padding input_middle">
<%= text_field_tag 'stage[][end_time]', section.end_time&.strftime('%Y-%m-%d %H:%M'), autocomplete: 'off', class: 'section-end-time form-control', placeholder: '有效结束时间' %>
</div>
<span class="col-2 text-right mt-2 no_padding">任务完成要求:</span>
<div class="col-1 no_padding input_small">
<input type="number" class="form-control" value="<%= section.mission_count %>" name="stage[][mission_count]"/>
</div>
<span class="mt-2 ml10 mr10">/</span>
<span class="col-2 text-right mt-2 no_padding">总任务数:</span>
<div class="col-1 no_padding input_small">
<input type="number" class="form-control task_all" value="<%= section.entry %>" onchange="change_total(this)" name="stage[][entry]"/>
</div>
<span class=" mt-2">(总任务)</span>
<span class="col-1 text-right mt-2 no_padding">成绩来源:</span>
<div class="col-2 no_padding input_middle">
<select class="form-control" name="stage[][score_source]">
@ -425,7 +430,7 @@
<input type="number" class="form-control" name="score_rate" value="100"/>
</div><span class=" mt-2">%</span>
<div class="flex-1">
<a href="javascript:void(0)"class="btn btn-outline-primary export-action ml20 add_task_sub" onclick="add_task_sub(this)">新增子阶段</a>
<a href="javascript:void(0)"class="btn btn-outline-primary export-action ml20 add-task-sub">新增子阶段</a>
</div>
<a href="javascript:void(0)" class="btn btn-default ml20" onclick="Del_tab(this)">删除</a>
<a href="javascript:void(0)" class="btn btn-outline-primary update-stage export-action ml20">保存</a>
@ -443,15 +448,10 @@
<div class="col-2 no_padding input_middle">
<%= text_field_tag 'stage[][end_time]', '', autocomplete: 'off', class: 'section-end-time form-control', placeholder: '有效结束时间' %>
</div>
<span class="col-2 text-right mt-2 no_padding">任务完成要求:</span>
<div class="col-1 no_padding input_small">
<input type="number" class="form-control" name="stage[][mission_count]" value="1"/>
</div>
<span class="mt-2 ml10 mr10">/</span>
<span class="col-2 text-right mt-2 no_padding">总任务数:</span>
<div class="col-1 no_padding input_small">
<input type="number" class="form-control task_all" onchange="change_total(this)" value="3" name="stage[][entry]"/>
</div>
<span class=" mt-2">(总任务)</span>
<span class="col-1 text-right mt-2 no_padding">成绩来源:</span>
<div class="col-2 no_padding input_middle">
<select class="form-control" name="stage[][score_source]">

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long
Loading…
Cancel
Save