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.
pgfqe6ch8/app/helpers/contests_helper.rb

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