diff --git a/app/assets/javascripts/admins/competition_settings/index.js b/app/assets/javascripts/admins/competition_settings/index.js index cc56c8641..207fd0ee3 100644 --- a/app/assets/javascripts/admins/competition_settings/index.js +++ b/app/assets/javascripts/admins/competition_settings/index.js @@ -249,7 +249,8 @@ $(function () { } }) -}) +}); + //新增子阶段 function add_task_sub(item){ var index = $(item).parents(".large_panel_part").attr("attr_line"); @@ -355,7 +356,7 @@ function Del_tab(item) { $(item).parents(".large_panel_part").remove(); } //新增tab -function addNewTab() { +function addNewTab() { var count = parseInt($("#large_panel").find(".large_panel_part").length)+1; var html = '
\n' + ' tab标题\n' + diff --git a/app/controllers/weapps/code_sessions_controller.rb b/app/controllers/weapps/code_sessions_controller.rb index c92c3cb70..887e97eed 100644 --- a/app/controllers/weapps/code_sessions_controller.rb +++ b/app/controllers/weapps/code_sessions_controller.rb @@ -25,6 +25,8 @@ class Weapps::CodeSessionsController < Weapps::BaseController end set_session_unionid(user_info['unionId']) + user_info['nickname'] = user_info['nickName'] + session[:wechat_user_extra] = user_info end set_session_openid(result['openid']) diff --git a/app/controllers/weapps/sessions_controller.rb b/app/controllers/weapps/sessions_controller.rb index 371a3f7d3..8c7c57a7f 100644 --- a/app/controllers/weapps/sessions_controller.rb +++ b/app/controllers/weapps/sessions_controller.rb @@ -16,7 +16,7 @@ class Weapps::SessionsController < Weapps::BaseController end # 绑定微信号 - OpenUsers::Wechat.create!(user: user, uid: session_unionid) if user.wechat_open_user.blank? + OpenUsers::Wechat.create!(user: user, uid: session_unionid, extra: session[:wechat_user_extra]) if user.wechat_open_user.blank? successful_authentication(user) end diff --git a/app/models/competition.rb b/app/models/competition.rb index 845c5c00f..b5526f74c 100644 --- a/app/models/competition.rb +++ b/app/models/competition.rb @@ -23,8 +23,8 @@ class Competition < ApplicationRecord has_many :competition_awards, dependent: :destroy has_many :competition_schools, dependent: :destroy - has_one :sponsor_schools, -> { where(source: :sponsor) }, class_name: 'CompetitionSchool' # 主办方 - has_one :region_schools, -> { where(source: :region) }, class_name: 'CompetitionSchool' # 开放范围 + has_many :sponsor_schools, -> { where(source: :sponsor) }, class_name: 'CompetitionSchool' # 主办方 + has_many :region_schools, -> { where(source: :region) }, class_name: 'CompetitionSchool' # 开放范围 after_create :create_competition_modules @@ -85,7 +85,7 @@ class Competition < ApplicationRecord # 是否开放 def open?(user) user_school_id = user.user_extension&.school_id.to_i - competition.region_schools.size == 0 || competition.region_schools.exists?(school_id: user_school_id) + region_schools.size == 0 || region_schools.exists?(school_id: user_school_id) end # 是否禁止教师报名 diff --git a/app/services/competitions/join_team_service.rb b/app/services/competitions/join_team_service.rb index cb0253fa2..7ec453013 100644 --- a/app/services/competitions/join_team_service.rb +++ b/app/services/competitions/join_team_service.rb @@ -24,7 +24,7 @@ class Competitions::JoinTeamService < ApplicationService raise Error, '您已加入该战队' if team.team_members.exists?(user_id: user.id) enrolled = competition.team_members.exists?(user_id: user.id) - if enrolled && (is_teacher && competition.teacher_multiple_limited?) || (!is_teacher && competition.member_multiple_limited?) + if enrolled && ((is_teacher && competition.teacher_multiple_limited?) || (!is_teacher && competition.member_multiple_limited?)) raise Error, '您已加入其它战队' end diff --git a/app/views/admins/competition_settings/index.html.erb b/app/views/admins/competition_settings/index.html.erb index 34a326dee..c06dc0000 100644 --- a/app/views/admins/competition_settings/index.html.erb +++ b/app/views/admins/competition_settings/index.html.erb @@ -210,7 +210,7 @@
  
- +
~
@@ -312,74 +312,143 @@
+<% if @competition.mode == 1 %> +
+
+ 排行榜设置 + + 新增tab + 实训ID填写示例:实训地址为https://www.educoder.net/shixuns/u5plmgka/challenges,则填写“u5plmgka” +
+
+
+ <% if @competition.competition_stages.count > 0 %> + <% @competition.competition_stages.each do |stage| %> + <%= form_tag(admins_competition_competition_stage_path(competition_id: @competition.id, id: stage.id), method: :put, class: 'stage_update_form flex-1', remote: true) do %> +
+
+ tab标题 +
+ +
+ 总排行榜占比: +
+ +
% + + 删除 + 保存 +
-
-
- 排行榜设置 - + 新增tab +
+
+ 第1阶段 +
+
+ 有效时间: +
+ +
+ ~ +
+ +
+ 任务完成要求: +
+ +
+ / +
+ +
+ (总任务) + 成绩来源: +
+ +
+
+
+
+ + 删除 + +
+
+
+ <% end %> + <% end %> + <% else %> + <% end %> +
+
- 实训ID填写示例:实训地址为https://www.educoder.net/shixuns/u5plmgka/challenges,则填写“u5plmgka” -
-
-
-
-
- tab标题 -
- -
- 总排行榜占比: -
- -
% - - 删除 - 保存 -
-
-
- 第1阶段 +
+
+
+
+ tab标题 +
+ +
+ 总排行榜占比: +
+ +
%
-
- 有效时间: -
- -
- ~ -
- -
- 任务完成要求: -
- -
- / -
- -
- (总任务) - 成绩来源: -
- + 新增子阶段 + 发送短信提醒 + 计算成绩 +
+ 删除 + 保存 +
+
+
+ 第1阶段 +
+
+ 有效时间: +
+ +
+ ~ +
+ +
+ 任务完成要求: +
+ +
+ / +
+ +
+ (总任务) + 成绩来源: +
+ +
+
-
-
- + 删除 +
-
+<% end %>