|
|
|
@ -15,11 +15,15 @@ class Competitions::SaveTeamForm
|
|
|
|
|
|
|
|
|
|
validate :check_teachers_enrollable
|
|
|
|
|
def check_teachers_enrollable
|
|
|
|
|
if competition.teacher_enroll_forbidden? && teacher_ids.present?
|
|
|
|
|
if competition.teacher_enroll_forbidden? # 禁止老师报名
|
|
|
|
|
if teacher_ids.present?
|
|
|
|
|
errors.add(:teacher_ids, :enroll_forbidden)
|
|
|
|
|
return
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
return if creator.is_teacher? # 因为创建者有单独校验,所以这里跳过
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
self.teacher_ids = teacher_ids.map(&:to_i)
|
|
|
|
|
all_teachers = creator.is_teacher? ? teacher_ids + [creator.id] : teacher_ids
|
|
|
|
|
all_teachers.uniq!
|
|
|
|
@ -43,11 +47,15 @@ class Competitions::SaveTeamForm
|
|
|
|
|
|
|
|
|
|
validate :check_members_enrollable
|
|
|
|
|
def check_members_enrollable
|
|
|
|
|
if competition.member_enroll_forbidden? && member_ids.present?
|
|
|
|
|
if competition.member_enroll_forbidden? # 禁止学生报名
|
|
|
|
|
if member_ids.present?
|
|
|
|
|
errors.add(:member_ids, :enroll_forbidden)
|
|
|
|
|
return
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
return unless creator.is_teacher? # 因为创建者有单独校验,所以这里跳过
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
self.member_ids = member_ids.map(&:to_i)
|
|
|
|
|
all_members = creator.is_teacher? ? member_ids : member_ids + [creator.id]
|
|
|
|
|
all_members.uniq!
|
|
|
|
|