|  |  | #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
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |   #huang
 | 
						
						
						
							|  |  |   def sort_contest(state)
 | 
						
						
						
							|  |  |     content = ''.html_safe
 | 
						
						
						
							|  |  |     case state
 | 
						
						
						
							|  |  |     when 0
 | 
						
						
						
							|  |  |       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")
 | 
						
						
						
							|  |  |       
 | 
						
						
						
							|  |  |     when 1
 | 
						
						
						
							|  |  |       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'}))
 | 
						
						
						
							|  |  |     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
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |   def get_prize(c_softapplication)
 | 
						
						
						
							|  |  |       c_softapplication.get_reward
 | 
						
						
						
							|  |  |   end
 | 
						
						
						
							|  |  |   
 | 
						
						
						
							|  |  |   def count_contest_project
 | 
						
						
						
							|  |  |     contests = Contest.find(:id)
 | 
						
						
						
							|  |  |     @projects = []
 | 
						
						
						
							|  |  |     # Modified by longjun
 | 
						
						
						
							|  |  |     # for contest in contests
 | 
						
						
						
							|  |  |     contests.each do |contest|
 | 
						
						
						
							|  |  |     # end longjun
 | 
						
						
						
							|  |  |       @projects += contest.contesting_projects
 | 
						
						
						
							|  |  |     end
 | 
						
						
						
							|  |  |     @projects.count
 | 
						
						
						
							|  |  |   end
 | 
						
						
						
							|  |  |   
 | 
						
						
						
							|  |  |   def count_contest_softapplication
 | 
						
						
						
							|  |  |     contests = Contest.find(:id)
 | 
						
						
						
							|  |  |     @softapplications = []
 | 
						
						
						
							|  |  |     # Modified by alan
 | 
						
						
						
							|  |  |     # for contest in contests
 | 
						
						
						
							|  |  |     contests.each do |contest|
 | 
						
						
						
							|  |  |     # end alan
 | 
						
						
						
							|  |  |       @softapplications += contest.contesting_softapplications
 | 
						
						
						
							|  |  |     end
 | 
						
						
						
							|  |  |     @projects.count
 | 
						
						
						
							|  |  |   end  
 | 
						
						
						
							|  |  |  
 | 
						
						
						
							|  |  |   
 | 
						
						
						
							|  |  |   def count_contest_user
 | 
						
						
						
							|  |  |     contests = Contest.find(:id)
 | 
						
						
						
							|  |  |     @users = []
 | 
						
						
						
							|  |  |     # Modified by alan
 | 
						
						
						
							|  |  |     # for contest in contests
 | 
						
						
						
							|  |  |     contests.each do |contest|
 | 
						
						
						
							|  |  |    
 | 
						
						
						
							|  |  |       contest.projects.each do |project|
 | 
						
						
						
							|  |  |     
 | 
						
						
						
							|  |  |         @users += project.users
 | 
						
						
						
							|  |  |       end
 | 
						
						
						
							|  |  |     end
 | 
						
						
						
							|  |  |      # end alan
 | 
						
						
						
							|  |  |      
 | 
						
						
						
							|  |  |     @users.count
 | 
						
						
						
							|  |  |   end
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |   def count_contest_softapplication_user
 | 
						
						
						
							|  |  |     contests = Contest.find(:id)
 | 
						
						
						
							|  |  |     @users = []
 | 
						
						
						
							|  |  |      # Modified by alan
 | 
						
						
						
							|  |  |     # for contest in contests
 | 
						
						
						
							|  |  |     contests.each do |contest|
 | 
						
						
						
							|  |  |    
 | 
						
						
						
							|  |  |       contest.projects.each do |softapplications|
 | 
						
						
						
							|  |  |       # for project in contest.softapplications
 | 
						
						
						
							|  |  |         @users += softapplication.users
 | 
						
						
						
							|  |  |       end
 | 
						
						
						
							|  |  |     end
 | 
						
						
						
							|  |  |     @users.count
 | 
						
						
						
							|  |  |   end
 | 
						
						
						
							|  |  |   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
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |   # def select_option_helper option
 | 
						
						
						
							|  |  |     # tmp = Hash.new
 | 
						
						
						
							|  |  |     # tmp={"" => ""}
 | 
						
						
						
							|  |  |     # option.each do |project|
 | 
						
						
						
							|  |  |       # tmp[project.name] = project.identifier
 | 
						
						
						
							|  |  |     # end
 | 
						
						
						
							|  |  |     # tmp
 | 
						
						
						
							|  |  |   # end
 | 
						
						
						
							|  |  |   def select_option_app_helper options
 | 
						
						
						
							|  |  |     tmp = Hash.new
 | 
						
						
						
							|  |  |     options.each do |option|
 | 
						
						
						
							|  |  |       tmp[option.name] = option.id
 | 
						
						
						
							|  |  |     end
 | 
						
						
						
							|  |  |     tmp
 | 
						
						
						
							|  |  |   end
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |   #作品分类下拉框
 | 
						
						
						
							|  |  |   def work_type_opttion
 | 
						
						
						
							|  |  |     type = []
 | 
						
						
						
							|  |  |     #work_types = WorksCategory.all
 | 
						
						
						
							|  |  |     WorksCategory.all.each do |work_type|
 | 
						
						
						
							|  |  |       option = []
 | 
						
						
						
							|  |  |       option << work_type.category
 | 
						
						
						
							|  |  |       option << work_type.category
 | 
						
						
						
							|  |  |       type << option
 | 
						
						
						
							|  |  |     end
 | 
						
						
						
							|  |  |     type
 | 
						
						
						
							|  |  |   end
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | end |