You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
97 lines
2.7 KiB
97 lines
2.7 KiB
module ContestsHelper
|
|
|
|
# 获取动态列表名称
|
|
def get_acts_list_type type
|
|
case type
|
|
when "work"
|
|
l(:label_work_acts)
|
|
when "news"
|
|
l(:label_news_acts)
|
|
when "attachment"
|
|
l(:label_attachment_acts)
|
|
when "message"
|
|
l(:label_message_acts)
|
|
when "journalsForMessage"
|
|
l(:label_journalsForMessage_acts)
|
|
when "poll"
|
|
l(:label_poll_acts)
|
|
else
|
|
l(:label_contest_cats)
|
|
end
|
|
end
|
|
|
|
# 判断当前用户是否为竞赛管理员
|
|
def is_contest_manager?(user_id, contest_id)
|
|
@result = false
|
|
mem = ContestMember.where("user_id = ? and contest_id = ?",user_id, contest_id)
|
|
unless mem.blank?
|
|
@result = mem.first.roles.to_s.include?("ContestManager") ? true : false
|
|
end
|
|
return @result
|
|
end
|
|
|
|
# 获取竞赛的管理人员
|
|
def contest_managers contest
|
|
contest.contest_members.select{|cm| cm.roles.to_s.include?("ContestManager")}
|
|
end
|
|
|
|
# 获取竞赛的评委人员
|
|
def contest_judges contest
|
|
contest.contest_members.select{|cm| cm.roles.to_s.include?("Judge")}
|
|
end
|
|
|
|
# 获取竞赛的参赛人员
|
|
def contest_contestants contest
|
|
contest.contest_members.select{|cm| cm.roles.to_s.include?("Contestant")}
|
|
end
|
|
|
|
def searchmember_by_name members, name
|
|
#searchPeopleByRoles(project, StudentRoles)
|
|
mems = []
|
|
if name != ""
|
|
name = name.to_s.downcase
|
|
members.each do |m|
|
|
username = m.user[:lastname].to_s.downcase + m.user[:firstname].to_s.downcase
|
|
if(m.user[:login].to_s.downcase.include?(name) || m.user.user_extensions[:student_id].to_s.downcase.include?(name) || username.include?(name))
|
|
mems << m
|
|
end
|
|
end
|
|
else
|
|
mems = members
|
|
end
|
|
mems
|
|
end
|
|
|
|
def zh_contest_role role
|
|
if role == "ContestManager"
|
|
result = l(:label_CM)
|
|
elsif role == "Judge"
|
|
result = l(:label_judge)
|
|
elsif role == "Contestant"
|
|
result = l(:label_contestant)
|
|
elsif role == "Manager"
|
|
result = l(:field_admin)
|
|
elsif role.include?("ContestManager") && role.include?("Judge")
|
|
result = l(:label_CM) + " " + l(:label_judge)
|
|
end
|
|
result
|
|
end
|
|
|
|
def search_member_by_name_login_school members, name
|
|
mems = []
|
|
if name != ""
|
|
name = name.to_s.downcase
|
|
school_ids = School.where("name like '%#{name}%'").map{|school| school.id}
|
|
members.each do |m|
|
|
username = m.user[:lastname].to_s.downcase + m.user[:firstname].to_s.downcase
|
|
if(m.user[:login].to_s.downcase.include?(name) || school_ids.include?(m.user.user_extensions[:school_id]) || username.include?(name))
|
|
mems << m
|
|
end
|
|
end
|
|
else
|
|
mems = members
|
|
end
|
|
mems
|
|
end
|
|
end
|