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

dev_auth
杨树明 5 years ago
commit 54da53b28c

@ -57,7 +57,7 @@ $(document).on('turbolinks:load', function(){
var valid = $basicForm.valid(); var valid = $basicForm.valid();
if ($("input[name='mode']:checked").val() == 2) { if ($("input[name='mode']:checked").val() == 2) {
var $courseId = $("input[name='course_id'"); var $courseId = $("input[name='course_id']");
if ($courseId.val() === undefined || $courseId.val().length === 0) { if ($courseId.val() === undefined || $courseId.val().length === 0) {
$courseId.addClass('danger text-danger'); $courseId.addClass('danger text-danger');
valid = false; valid = false;
@ -65,8 +65,8 @@ $(document).on('turbolinks:load', function(){
$courseId.removeClass('danger text-danger'); $courseId.removeClass('danger text-danger');
} }
} else if ($("input[name='mode']:checked").val() == 3) { } else if ($("input[name='mode']:checked").val() == 3) {
var $techStartTime = $("input[name='teach_start_time'"); var $techStartTime = $("input[name='teach_start_time']");
var $techEndTime = $("input[name='teach_end_time'"); var $techEndTime = $("input[name='teach_end_time']");
if ($techStartTime.val() === undefined || $techStartTime.val().length === 0) { if ($techStartTime.val() === undefined || $techStartTime.val().length === 0) {
$techStartTime.addClass('danger text-danger'); $techStartTime.addClass('danger text-danger');
valid = false; valid = false;
@ -81,9 +81,9 @@ $(document).on('turbolinks:load', function(){
$techEndTime.removeClass('danger text-danger'); $techEndTime.removeClass('danger text-danger');
} }
} else { } else {
$("input[name='course_id'").removeClass('danger text-danger'); $("input[name='course_id']").removeClass('danger text-danger');
$("input[name='teach_start_time'").removeClass('danger text-danger'); $("input[name='teach_start_time']").removeClass('danger text-danger');
$("input[name='teach_end_time'").removeClass('danger text-danger'); $("input[name='teach_end_time']").removeClass('danger text-danger');
} }
if (!valid) return; if (!valid) return;

@ -21,7 +21,7 @@ class Competitions::CompetitionsController < Competitions::BaseController
@count = competitions.count @count = competitions.count
competitions = competitions.order(published_at: :desc, online_time: :desc) competitions = competitions.order(published_at: :desc, online_time: :desc)
@competitions = paginate(competitions.includes(current_stage_section: :competition_stage)) @competitions = paginate(competitions.includes(sponsor_schools: :school, current_stage_section: :competition_stage))
ids = @competitions.map(&:id) ids = @competitions.map(&:id)
@member_count_map = TeamMember.where(competition_id: ids).group(:competition_id).count @member_count_map = TeamMember.where(competition_id: ids).group(:competition_id).count
@ -130,7 +130,7 @@ class Competitions::CompetitionsController < Competitions::BaseController
} }
end end
else else
@records = @records.includes(:user, :team_members).limit(@competition.awards_count) @records = @records.includes(:team_members, user: :user_extension).limit(@competition.awards_count)
end end
end end

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

@ -23,7 +23,8 @@ module ApplicationHelper
ol p pre q rp rt ruby s samp small strike strong sub sup table tbody td ol p pre q rp rt ruby s samp small strike strong sub sup table tbody td
tfoot th thead time tr u ul var wbr div span tfoot th thead time tr u ul var wbr div span
) )
sanitize content, tags: tags attributes = %w(href src width height alt cite datetime title class name xml:lang abbr style)
sanitize content, tags: tags, attributes: attributes
end end
def graduation_navigation graduation def graduation_navigation graduation

@ -43,6 +43,10 @@ class Competition < ApplicationRecord
end end
end end
def sponsor_schools_name
sponsor_schools.map{|sponsor| sponsor.school.name}
end
def competition_status def competition_status
if !status if !status
com_status = "nearly_published" com_status = "nearly_published"

@ -1,7 +1,7 @@
json.user_ranks @user_ranks.each do |user_rank| json.user_ranks @user_ranks.each do |user_rank|
rank = @records.map(&:id).index(user_rank.id) rank = @records.map(&:id).index(user_rank.id)
rank = rank.present? ? (rank+1) : 0 rank = rank.present? ? (rank+1) : 0
json.rank rank == 0 ? "--" : user_rank.rank json.rank rank == 0 ? "--" : rank
json.team_name user_rank.name json.team_name user_rank.name
json.user_name user_rank.user.real_name json.user_name user_rank.user.real_name
json.cost_time rank == 0 && user_rank.cost_time ? "--" : com_spend_time(user_rank.cost_time) json.cost_time rank == 0 && user_rank.cost_time ? "--" : com_spend_time(user_rank.cost_time)

@ -6,11 +6,14 @@ json.member_count member_count.zero? ? 268 : member_count
json.start_time @competition.start_time&.strftime("%Y-%m-%d") json.start_time @competition.start_time&.strftime("%Y-%m-%d")
json.end_time @competition.end_time&.strftime("%Y-%m-%d") json.end_time @competition.end_time&.strftime("%Y-%m-%d")
json.enroll_end_time @competition.enroll_end_time&.strftime("%Y-%m-%d %H:%M:%S") json.enroll_end_time @competition.enroll_end_time&.strftime("%Y-%m-%d %H:%M:%S")
json.enroll_end @competition.enroll_end_time && @competition.enroll_end_time < Time.now
json.published @competition.published? json.published @competition.published?
json.nearly_published @competition.published_at.present? json.nearly_published @competition.published_at.present?
json.competition_status @competition.competition_status json.competition_status @competition.competition_status
json.avatar_url url_to_avatar(@competition)
json.competition_modules @competition_modules do |com_module| json.competition_modules @competition_modules do |com_module|
json.(com_module, :id, :name, :position, :module_type) json.(com_module, :id, :name, :position, :module_type)
json.module_url com_module.module_url json.module_url com_module.module_url

@ -17,6 +17,7 @@ json.competitions do
json.end_time competition.end_time&.strftime("%Y-%m-%d") json.end_time competition.end_time&.strftime("%Y-%m-%d")
json.enroll_end_time competition.enroll_end_time&.strftime("%Y-%m-%d %H:%M:%S") json.enroll_end_time competition.enroll_end_time&.strftime("%Y-%m-%d %H:%M:%S")
json.sponsor_schools competition.sponsor_schools_name
# section = competition.current_stage_section # section = competition.current_stage_section
# if section # if section
# json.current_stage do # json.current_stage do

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -135,7 +135,7 @@
background: #C3C1C1; background: #C3C1C1;
height: 54px; height: 54px;
width: 156px; width: 156px;
border-radius: 4px; border-radius: 10px;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;

Loading…
Cancel
Save