From 0aa85d486ea4e1392f74cb08f4db619f6d19ff19 Mon Sep 17 00:00:00 2001 From: cxt <853663049@qq.com> Date: Thu, 24 Oct 2019 09:14:44 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/competitions/competitions/common_header.json.jbuilder | 1 + 1 file changed, 1 insertion(+) diff --git a/app/views/competitions/competitions/common_header.json.jbuilder b/app/views/competitions/competitions/common_header.json.jbuilder index c5732a51d..a90ab14ee 100644 --- a/app/views/competitions/competitions/common_header.json.jbuilder +++ b/app/views/competitions/competitions/common_header.json.jbuilder @@ -13,6 +13,7 @@ json.nearly_published @competition.published_at.present? json.competition_modules @competition_modules do |com_module| json.(com_module, :id, :name, :position, :module_type) json.module_url com_module.module_url + json.has_url com_module.url.present? end json.stages From a6af66476b6e022417540be248aadcb7734f1657 Mon Sep 17 00:00:00 2001 From: cxt <853663049@qq.com> Date: Thu, 24 Oct 2019 09:32:51 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E7=AB=9E=E8=B5=9B=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/competition.rb | 11 +++++++++++ .../competitions/competitions/index.json.jbuilder | 1 + 2 files changed, 12 insertions(+) diff --git a/app/models/competition.rb b/app/models/competition.rb index d8a8318b3..39e4f4dfe 100644 --- a/app/models/competition.rb +++ b/app/models/competition.rb @@ -40,6 +40,17 @@ class Competition < ApplicationRecord end end + def competition_status + if !status + com_status = "nearly_published" + elsif end_time > Time.now + com_status = "progressing" + else + com_status = "ended" + end + com_status + end + def teacher_staff_num teacher_staff ? "#{teacher_staff.minimum}~#{teacher_staff.maximum}" : "--" end diff --git a/app/views/competitions/competitions/index.json.jbuilder b/app/views/competitions/competitions/index.json.jbuilder index 8e99d754d..810cbfd18 100644 --- a/app/views/competitions/competitions/index.json.jbuilder +++ b/app/views/competitions/competitions/index.json.jbuilder @@ -3,6 +3,7 @@ json.competitions do json.array! @competitions.each do |competition| json.extract! competition, :id, :identifier, :name, :sub_title, :bonus, :description, :mode + json.competition_status competition.competition_status json.visits_count competition.visits member_count = @member_count_map&.fetch(competition.id, 0) || competition.team_members.count json.member_count member_count.zero? ? 268 : member_count From 9871042d20cf3fea37a4af43f0453e9a12934825 Mon Sep 17 00:00:00 2001 From: p31729568 Date: Thu, 24 Oct 2019 09:33:28 +0800 Subject: [PATCH 3/3] competition: fix form valid bug --- app/forms/competitions/save_team_form.rb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/forms/competitions/save_team_form.rb b/app/forms/competitions/save_team_form.rb index 10685d260..dd2610083 100644 --- a/app/forms/competitions/save_team_form.rb +++ b/app/forms/competitions/save_team_form.rb @@ -73,10 +73,10 @@ class Competitions::SaveTeamForm # 竞赛是否限制了职业 def check_creator_identity_enrollable - if user.is_teacher? && competition.teacher_enroll_forbidden? + if creator.is_teacher? && competition.teacher_enroll_forbidden? errors.add(:creator, :teacher_enroll_forbidden) return false - elsif !user.is_teacher? && competition.member_enroll_forbidden? + elsif !creator.is_teacher? && competition.member_enroll_forbidden? errors.add(:creator, :member_enroll_forbidden) return false end @@ -86,9 +86,9 @@ class Competitions::SaveTeamForm # 创建者是否能多次报名 def check_creator_multiple_enrollable - return unless competition.enrolled?(user) + return unless competition.enrolled?(creator) - if (user.is_teacher? && competition.teacher_multiple_limited?) || (!user.is_teacher? && competition.member_multiple_limited?) + if (creator.is_teacher? && competition.teacher_multiple_limited?) || (!creator.is_teacher? && competition.member_multiple_limited?) errors.add(:creator, :enrolled) return false end