2014-04-03 22:38:18 +08:00
|
|
|
|
#enconding:utf-8
|
|
|
|
|
# fq
|
|
|
|
|
module ContestsHelper
|
|
|
|
|
|
|
|
|
|
def render_notes(contest, journal, options={})
|
|
|
|
|
content = ''
|
|
|
|
|
removable = User.current == journal.user || User.current == contest.author
|
|
|
|
|
links = []
|
|
|
|
|
if !journal.notes.blank?
|
|
|
|
|
links << link_to(image_tag('comment.png'),
|
|
|
|
|
{:controller => 'contests', :action => 'new', :id => contest, :journal_id => journal},
|
|
|
|
|
:remote => true,
|
|
|
|
|
:method => 'post',
|
|
|
|
|
:title => l(:button_quote)) if options[:reply_links]
|
|
|
|
|
if removable
|
|
|
|
|
url = {:controller => 'contests',
|
|
|
|
|
:action => 'destroy',
|
|
|
|
|
:object_id => journal,
|
|
|
|
|
:id => contest}
|
|
|
|
|
links << ' '
|
|
|
|
|
links << link_to(image_tag('delete.png'), url,
|
|
|
|
|
:remote => true, :method => 'delete', :class => "delete", :title => l(:button_delete))
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
content << content_tag('div', links.join(' ').html_safe, :class => 'contextual') unless links.empty?
|
|
|
|
|
content << textilizable(journal.notes)
|
|
|
|
|
css_classes = "wiki"
|
|
|
|
|
content_tag('div', content.html_safe, :id => "journal-#{journal.id}-notes", :class => css_classes)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def link_to_in_place_notes_editor(text, field_id, url, options={})
|
|
|
|
|
onclick = "$.ajax({url: '#{url_for(url)}', type: 'get'}); return false;"
|
|
|
|
|
link_to text, '#', options.merge(:onclick => onclick)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
# this method is used to get all projects that tagged one tag
|
|
|
|
|
# added by william
|
|
|
|
|
def get_contests_by_tag(tag_name)
|
|
|
|
|
Contest.tagged_with(tag_name).order('updated_on desc')
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
#added by huang
|
|
|
|
|
def sort_contest_enterprise(state, project_type)
|
|
|
|
|
content = ''.html_safe
|
|
|
|
|
case state
|
|
|
|
|
when 0
|
|
|
|
|
content << content_tag('li', link_to(l(:label_sort_by_active), calls_path(:contest_sort_type => '1', :project_type => project_type)))
|
|
|
|
|
content << content_tag('li', link_to(l(:label_sort_by_time), calls_path(:contest_sort_type => '0', :project_type => project_type), :class=>"selected"), :class=>"selected")
|
|
|
|
|
|
|
|
|
|
when 1
|
|
|
|
|
content << content_tag('li', link_to(l(:label_sort_by_active), calls_path(:contest_sort_type => '1', :project_type => project_type), :class=>"selected"), :class=>"selected")
|
|
|
|
|
content << content_tag('li', link_to(l(:label_sort_by_time), calls_path(:contest_sort_type => '0', :project_type => project_type)))
|
|
|
|
|
end
|
|
|
|
|
content = content_tag('ul', content)
|
|
|
|
|
content_tag('div', content, :class => "tabs_enterprise")
|
|
|
|
|
end
|
|
|
|
|
#end
|
2014-05-29 16:35:34 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-04-03 22:38:18 +08:00
|
|
|
|
#huang
|
|
|
|
|
def sort_contest(state)
|
|
|
|
|
content = ''.html_safe
|
|
|
|
|
case state
|
|
|
|
|
when 0
|
2014-04-26 10:58:03 +08:00
|
|
|
|
content << content_tag('li', link_to(l(:label_sort_by_time), {controller: 'contests', action: 'index' ,:contest_sort_type => '1'}))
|
|
|
|
|
content << content_tag('li', link_to(l(:label_sort_by_active), {controller: 'contests', action: 'index' ,:contest_sort_type => '0'}, :class=>"selected"), :class=>"selected")
|
2014-04-03 22:38:18 +08:00
|
|
|
|
|
|
|
|
|
when 1
|
2014-04-26 10:58:03 +08:00
|
|
|
|
content << content_tag('li', link_to(l(:label_sort_by_time), {controller: 'contests', action: 'index' ,:contest_sort_type => '1'}, :class=>"selected"), :class=>"selected")
|
|
|
|
|
content << content_tag('li', link_to(l(:label_sort_by_active), {controller: 'contests', action: 'index' ,:contest_sort_type => '0'}))
|
2014-04-03 22:38:18 +08:00
|
|
|
|
end
|
|
|
|
|
content = content_tag('ul', content)
|
|
|
|
|
content_tag('div', content, :class => "tabs")
|
|
|
|
|
end
|
|
|
|
|
#end
|
|
|
|
|
|
|
|
|
|
# def course_options_for_select(courses)
|
|
|
|
|
# # <option value = '0'>#{l(:label_choose_reward)}</option>
|
|
|
|
|
# html = ''
|
|
|
|
|
# courses.each do |course|
|
|
|
|
|
# html << "<option value = #{course.id}>"
|
|
|
|
|
# html << course.name
|
|
|
|
|
# html << "</option>"
|
|
|
|
|
# end
|
|
|
|
|
# html.html_safe
|
|
|
|
|
# end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# used to get the reward and handle the value which can be used to display in views
|
|
|
|
|
# added by william
|
|
|
|
|
def get_prize(c_project)
|
|
|
|
|
c_project.get_reward
|
|
|
|
|
end
|
2014-05-14 16:19:12 +08:00
|
|
|
|
|
|
|
|
|
def get_prize(c_softapplication)
|
|
|
|
|
c_softapplication.get_reward
|
|
|
|
|
end
|
2014-04-03 22:38:18 +08:00
|
|
|
|
|
|
|
|
|
def count_contest_project
|
|
|
|
|
contests = Contest.find(:id)
|
|
|
|
|
@projects = []
|
|
|
|
|
for contest in contests
|
|
|
|
|
@projects += contest.contesting_projects
|
|
|
|
|
end
|
|
|
|
|
@projects.count
|
|
|
|
|
end
|
|
|
|
|
|
2014-04-11 09:00:00 +08:00
|
|
|
|
def count_contest_softapplication
|
|
|
|
|
contests = Contest.find(:id)
|
|
|
|
|
@softapplications = []
|
|
|
|
|
for contest in contests
|
2014-04-11 16:40:09 +08:00
|
|
|
|
@softapplications += contest.contesting_softapplications
|
2014-04-11 09:00:00 +08:00
|
|
|
|
end
|
|
|
|
|
@projects.count
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
2014-04-03 22:38:18 +08:00
|
|
|
|
def count_contest_user
|
|
|
|
|
contests = Contest.find(:id)
|
|
|
|
|
@users = []
|
|
|
|
|
for contest in contests
|
|
|
|
|
for project in contest.projects
|
|
|
|
|
@users += project.users
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
@users.count
|
|
|
|
|
end
|
|
|
|
|
|
2014-04-11 16:40:09 +08:00
|
|
|
|
def count_contest_softapplication_user
|
|
|
|
|
contests = Contest.find(:id)
|
|
|
|
|
@users = []
|
|
|
|
|
for contest in contests
|
|
|
|
|
for project in contest.softapplications
|
|
|
|
|
@users += softapplication.users
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
@users.count
|
|
|
|
|
end
|
2014-04-03 22:38:18 +08:00
|
|
|
|
def im_watching_student_id? contest
|
|
|
|
|
people = []
|
|
|
|
|
people << contest.author
|
|
|
|
|
# case bid.reward_type # 天煞的bid分了三用途,里面各种hasmany还不定能用!
|
|
|
|
|
# when 1
|
|
|
|
|
# when 2
|
|
|
|
|
# bid.join_in_contests.each do |jic|
|
|
|
|
|
# people << jic.user
|
|
|
|
|
# end
|
|
|
|
|
# when 3
|
|
|
|
|
# people += bid.courses.first.users.to_a
|
|
|
|
|
# else
|
|
|
|
|
# raise 'bids_helper: unknow bid type' # 出了错看这里!不知道的抛异常,省的找不到出错的地方!
|
|
|
|
|
# end
|
|
|
|
|
|
|
|
|
|
contest.join_in_contests.each do |jic|
|
|
|
|
|
people << jic.user
|
|
|
|
|
end
|
|
|
|
|
people.include?(User.current)
|
|
|
|
|
end
|
|
|
|
|
|
2014-05-22 12:38:30 +08:00
|
|
|
|
# def select_option_helper option
|
|
|
|
|
# tmp = Hash.new
|
|
|
|
|
# tmp={"" => ""}
|
|
|
|
|
# option.each do |project|
|
|
|
|
|
# tmp[project.name] = project.identifier
|
|
|
|
|
# end
|
|
|
|
|
# tmp
|
|
|
|
|
# end
|
2014-04-11 09:00:00 +08:00
|
|
|
|
def select_option_app_helper options
|
|
|
|
|
tmp = Hash.new
|
2014-04-11 16:40:09 +08:00
|
|
|
|
options.each do |option|
|
|
|
|
|
tmp[option.name] = option.id
|
2014-04-11 09:00:00 +08:00
|
|
|
|
end
|
|
|
|
|
tmp
|
|
|
|
|
end
|
2014-04-16 17:32:58 +08:00
|
|
|
|
|
2014-04-03 22:38:18 +08:00
|
|
|
|
|
|
|
|
|
end
|