|
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097 |
- # # fq
- #Bid功能已经废弃,代码参考用
- # class BidsController < ApplicationController
- # #Added by young
- # menu_item l(:label_homework), :only => [:edit, :udpate]
- # menu_item :respond
- # menu_item :course, :only => :show_courseEx
- # menu_item :project, :only => [:show_project,:show_results, :new_submit_homework]
- # menu_item :homework_respond, :only => :homework_respond
- # menu_item :homework_statistics, :only => :homework_statistics
- # menu_item :edit, :only => :edit
- #
- # before_filter :auth_login1, :only => [:show_courseEx]
- #
- # before_filter :can_show_course,only: []
- # before_filter :can_show_contest,only: []
- # #Ended by young
- # before_filter :find_bid, :only => [:show, :show_project, :create,:destroy,:more,:back,:add,:delete,:new,:show_results,:set_reward, :add_homework, :fork, :create_fork,
- # :show_course, :show_courseEx,:show_bid_project, :show_bid_user, :join_in_contest, :unjoin_in_contest, :new_join,:show_participator, :settings]
- # # added by fq
- # before_filter :require_login, :only => [:join_in_contest, :unjoin_in_contest]
- # # end
- # before_filter :require_login,:only => [:set_reward, :destroy, :add, :new, ]
- #
- # #before_filter :memberAccess, only: :show_project
- #
- # helper :watchers
- # helper :attachments
- # include AttachmentsHelper
- # include ApplicationHelper
- # include BidsHelper
- #
- # helper :projects
- # helper :words
- # helper :welcome
- # helper :project_score
- #
- # def find_project_by_bid_id
- # @bid = Bid.find(params[:id])
- # @project = @bid.courses[0]
- # rescue ActiveRecord::RecordNotFound
- # render_404
- # end
- #
- # def homework_ajax_modal
- # @bid = Bid.find_by_id(params[:id])
- # # find_bid
- # respond_to do |format|
- # format.js
- # end
- # end
- #
- #
- # def index
- # @project_type = params[:project_type]
- # # Modified by nie
- # # @requirement_title = "4"
- # @offset, @limit = api_offset_and_limit({:limit => 10})
- # if @project_type == '1'
- # @bids = Bid.visible.where('reward_type = ?', 3)
- # # elsif
- # # @bids = Bid.visible.where('reward_type = ? or reward_type = ?', 4)
- # else
- # @bids = Bid.visible.where('reward_type = ?', 1)
- # end
- #
- # @bids = @bids.like(params[:name]) if params[:name].present?
- # @bid_count = @bids.count
- # @bid_pages = Paginator.new @bid_count, @limit, params['page']
- #
- # @offset ||= @bid_pages.reverse_offset
- # #added by nie
- # if params[:bid_sort_type].present?
- # case params[:bid_sort_type]
- # when '0'
- # unless @offset == 0
- # @bids = @bids.offset(@offset).limit(@limit).all.reverse
- # else
- # limit = @bid_count % @limit
- # limit = @limit if limit == 0
- # @bids = @bids.offset(@offset).limit(limit).all.reverse
- # end
- # @s_state = 0
- # when '1'
- # unless @offset == 0
- # @bids = @bids.reorder('bids.commit').offset(@offset).limit(@limit).all.reverse
- # else
- # limit = @bid_count % @limit
- # limit = @limit if limit == 0
- # @bids = @bids.reorder('bids.commit').offset(@offset).limit(limit).all.reverse
- # end
- # @s_state = 1
- # when '2'
- # unless @offset == 0
- # @bids = @bids.offset(@offset).limit(@limit).all.reverse
- # else
- # limit = @bid_count % @limit
- # limit = @limit if limit == 0
- # @bids = @bids.offset(@offset).limit(@limit).all.reverse
- # end
- # @s_state = 0
- # end
- # else
- # unless @offset == 0
- # @bids = @bids.reorder('bids.commit').offset(@offset).limit(@limit).all.reverse
- # else
- # limit = @bid_count % @limit
- # limit = @limit if limit == 0
- # @bids = @bids.reorder('bids.commit').offset(@offset).limit(limit).all.reverse
- # end
- # @s_state = 1
- # end
- # #end
- # end
- # #huang
- # def contest
- #
- # # Modified by nie
- # # @requirement_title = "4"
- # @offset, @limit = api_offset_and_limit({:limit => 10})
- #
- # @bids = Bid.visible.where('reward_type = ?', 2)
- #
- # # elsif
- # # @bids = Bid.visible.where('reward_type = ? or reward_type = ?', 4)
- # @bids = @bids.like(params[:name]) if params[:name].present?
- # @bid_count = @bids.count
- # @bid_pages = Paginator.new @bid_count, @limit, params['page']
- #
- # @offset ||= @bid_pages.reverse_offset
- # #added by nie
- # if params[:contest_sort_type].present?
- # case params[:contest_sort_type]
- # when '0'
- # unless @offset == 0
- # @bids = @bids.offset(@offset).limit(@limit).all.reverse
- # else
- # limit = @bid_count % @limit
- # limit = @limit if limit == 0
- # @bids = @bids.offset(@offset).limit(limit).all.reverse
- # end
- # @s_state = 0
- # when '1'
- # unless @offset == 0
- # @bids = @bids.reorder('bids.commit').offset(@offset).limit(@limit).all.reverse
- # else
- # limit = @bid_count % @limit
- # limit = @limit if limit == 0
- # @bids = @bids.reorder('bids.commit').offset(@offset).limit(limit).all.reverse
- # end
- # @s_state = 1
- # when '2'
- # unless @offset == 0
- # @bids = @bids.offset(@offset).limit(@limit).all.reverse
- # else
- # limit = @bid_count % @limit
- # limit = @limit if limit == 0
- # @bids = @bids.offset(@offset).limit(@limit).all.reverse
- # end
- # @s_state = 0
- # end
- # else
- # unless @offset == 0
- # @bids = @bids.reorder('bids.commit').offset(@offset).limit(@limit).all.reverse
- # else
- # limit = @bid_count % @limit
- # limit = @limit if limit == 0
- # @bids = @bids.reorder('bids.commit').offset(@offset).limit(limit).all.reverse
- # end
- # @s_state = 1
- # end
- # #end
- # end
- #
- # def fork
- # @courses = []
- # @membership = User.current.memberships.all(:conditions => Project.visible_condition(User.current))
- # @membership.each do |membership|
- # if membership.project.project_type == 1
- # @courses << membership.project
- # end
- # end
- # end
- #
- # #将某个企业外包需求选为作业,目前此功能已放弃
- # def create_fork
- # @homework = Bid.new
- # @homework.name = params[:bid][:name]
- # @homework.description = params[:bid][:description]
- # @homework.reward_type = 3
- # # @bid.budget = params[:bid][:budget]
- # @homework.deadline = params[:bid][:deadline]
- # @homework.budget = 0
- # @homework.author_id = User.current.id
- # @homework.commit = 0
- # @homework.homework_type = 1
- # @homework.is_evaluation = params[:bid][:is_evaluation]
- # @homework.parent_id = @bid.id
- # @homework.save_attachments(params[:attachments] || (params[:bid] && params[:bid][:uploads]))
- # # @bid.
- # if @homework.save
- # HomeworkForCourse.create(:course_id => params[:course], :bid_id => @homework.id)
- # unless @bid.watched_by?(User.current)
- # if @bid.add_watcher(User.current)
- # flash[:notice] = l(:label_bid_succeed)
- # end
- # end
- # redirect_to course_for_bid_path(@homework)
- # else
- # @bid.safe_attributes = params[:bid]
- # @courses = []
- # @membership = User.current.coursememberships.all#(:conditions => Project.visible_condition(User.current))
- # @membership.each do |membership|
- # @courses << membership.course
- # end
- # render :action => 'fork'
- # end
- # end
- #
- # #有两个路由链接到此方法:/bids/:id /calls/:id但是貌似这两个路由都不能访问。。方法作用有待确认
- # def show
- # @user = @bid.author
- # @jours = @bid.journals_for_messages.where('m_parent_id IS NULL').order('created_on DESC')
- # @limit = 10
- # @feedback_count = @jours.count
- # @feedback_pages = Paginator.new @feedback_count, @limit, params['page']
- # @offset ||= @feedback_pages.offset
- # @jour = @jours[@offset, @limit]
- # @state = false
- #
- # respond_to do |format|
- # layout_file = ''
- # case @bid.reward_type
- # when 3
- # html_title(l(:label_question_student))
- # layout_file = 'base_homework'
- # when 1
- # layout_file = 'base_bids'
- # else
- # layout_file = 'base_contest'
- # end
- # format.html {
- # render :layout => layout_file
- # }
- # format.api
- # end
- # end
- #
- # def join_in_contest
- # if @bid.reward_type == 2 && params[:course_password] == @bid.password
- # JoinInContest.create(:user_id => User.current.id, :bid_id => @bid.id)
- # @state = 0
- # else
- # @state = 1
- # end
- # respond_to do |format|
- # format.js { render :partial => 'set_join', :locals => {:user => User.current, :object_id => params[:id]} }
- # end
- # end
- #
- # def unjoin_in_contest
- # joined = JoinInContest.where('bid_id = ? and user_id = ?', @bid.id, User.current.id)
- # joined.each do |join|
- # join.delete
- # end
- # respond_to do |format|
- # format.js { render :partial => 'set_join', :locals => {:user => User.current, :object_id => params[:id]} }
- # end
- # end
- #
- # def new_join
- #
- # end
- #
- # # added by bai 增加了参与者和竞赛设置
- # def show_participator
- # render :layout => 'base_contest'
- # end
- #
- # #配置竞赛
- # def settings
- # if @bid.author.id == User.current.id
- # if @bid.reward_type == 2
- # @contest = Bid.find_by_reward_type(@bid.reward_type)
- # render :layout => 'base_contest'
- # end
- # else
- # render_403 :message => :notice_not_contest_setting_authorized
- # end
- # end
- # #end
- #
- # # 显示课程作业,但是好像已经废弃
- # def show_course
- # bids = Bid.where('parent_id = ?', @bid.id)
- # @courses = []
- # for bid in bids
- # @courses << bid.courses.first
- # end
- #
- # respond_to do |format|
- # if @bid.reward_type == 3
- # format.html {
- # render :layout => 'base_homework'
- # }
- # elsif @bid.reward_type == 1
- # format.html {
- # render :layout => 'base_bids'
- # }
- # else
- # format.html {
- # render :layout => 'base_contest'
- # }
- # end
- # format.api
- #
- # end
- # end
- #
- # def show_bid_project
- # bids = Bid.where('parent_id = ?', @bid.id)
- # @projects = []
- # for bid in bids
- # @projects += bid.biding_projects
- # end
- #
- # respond_to do |format|
- # if @bid.reward_type == 3
- # format.html {
- # render :layout => 'base_homework'
- # }
- # elsif @bid.reward_type == 1
- # format.html {
- # render :layout => 'base_bids'
- # }
- # else
- # format.html {
- # render :layout => 'base_contest'
- # }
- # end
- # format.api
- #
- # end
- # end
- #
- # def show_bid_user
- # bids = Bid.where('parent_id = ?', @bid.id)
- # @users = []
- # for bid in bids
- # for project in bid.projects
- # @users += project.users
- # end
- # end
- #
- # respond_to do |format|
- # if @bid.reward_type == 3
- # format.html {
- # render :layout => 'base_homework'
- # }
- # elsif @bid.reward_type == 1
- # format.html {
- # render :layout => 'base_bids'
- # }
- # else
- # format.html {
- # render :layout => 'base_contest'
- # }
- # end
- # format.api
- #
- # end
- # end
- #
- # def show_project
- # # flash[:notice] = ""
- # @membership = User.current.memberships.all(:conditions => Project.visible_condition(User.current))
- # @option = []
- # @membership.each do |membership|
- # unless(membership.project.project_type==1)
- # if membership.user.allowed_to?(:quote_project,membership.project)
- # @option << membership.project
- # end
- # end
- # end
- #
- # # a = [1]
- # # @project = Project.where("id in []", a)
- # @user = @bid.author
- # @bidding_project = @bid.biding_projects.all
- # if params[:student_id].present?
- # @temp = []
- # @bidding_project.each do |pro|
- # if pro.project && pro.project.project_status
- # if /#{params[:student_id]}/ =~ pro.user.user_extensions.student_id
- # @temp << pro
- # end
- # end
- # @temp
- # end
- # @bidding_project = @temp
- # else
- # #added by nie
- # @temp = []
- # @bidding_project.each do |pro|
- # if pro.project && pro.project.project_status
- # @temp << pro
- # end
- # @temp
- # end
- # if @temp.size > 0
- # @bidding_project = @temp.sort {|a,b| b.project.project_status.grade <=> a.project.project_status.grade}
- # end
- # #ended
- # end
- #
- # if @bid.homework_type == 1
- # @homework = HomeworkAttach.new
- # #@homework_list = @bid.homeworks
- # #增加作业按评分排序,
- # @homework_list = @bid.homeworks.eager_load(:rate_averages, :user, :attachments).order('seems_rateable_cached_ratings.avg DESC').order("#{HomeworkAttach.table_name}.created_at ASC")
- # if params[:student_id].present?
- # @temp = []
- # @homework_list.each do |pro|
- # if /#{params[:student_id]}/ =~ pro.user.user_extensions.student_id
- # @temp << pro
- # end
- # @temp
- # end
- # @homework_list = @temp
- # end
- # end
- #
- # respond_to do |format|
- # if @bid.reward_type == 3
- # format.html {
- # render :layout => 'base_homework'
- # }
- # elsif @bid.reward_type == 1
- # format.html {
- # render :layout => 'base_bids'
- # }
- # else
- # format.html {
- # render :layout => 'base_contest'
- # }
- # end
- # format.api
- # end
- # end
- #
- # # 显示作业课程
- # # add by nwb
- # def show_courseEx
- #
- # if (User.current.logged? && (User.current.member_of_course?(@bid.courses.first) || User.current.admin?))
- # @membership = User.current.coursememberships.all(:conditions => Course.visible_condition(User.current))
- # @user = @bid.author
- # @bidding_project = @bid.biding_projects.all
- #
- # if params[:student_id].present?
- # @temp = []
- # @bidding_project.each do |pro|
- # if pro.project && pro.project.project_status
- # if /#{params[:student_id]}/ =~ pro.user.user_extensions.student_id
- # @temp << pro
- # end
- # end
- # @temp
- # end
- # @bidding_project = @temp
- # else
- # #added by nie
- # @temp = []
- # @bidding_project.each do |pro|
- # if pro.project && pro.project.project_status
- # @temp << pro
- # end
- # @temp
- # end
- # if @temp.size > 0
- # @bidding_project = @temp.sort {|a,b| b.project.project_status.grade <=> a.project.project_status.grade}
- # end
- # #ended
- # end
- #
- # if @bid.homework_type
- # @homework = HomeworkAttach.new
- # @is_teacher = is_course_teacher(User.current,@bid.courses.first)
- # if @is_teacher
- # all_homework_list = HomeworkAttach.find_by_sql("SELECT * FROM (SELECT homework_attaches.*,
- # (SELECT stars FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = homework_attaches.id AND is_teacher_score = 1 AND stars IS NOT NULL ORDER BY updated_at DESC limit 0,1) AS t_score,
- # (SELECT AVG(stars) FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = homework_attaches.id AND is_teacher_score = 0) AS s_score
- # FROM homework_attaches WHERE bid_id = #{@bid.id} ORDER BY s_score DESC,created_at ASC) AS table1
- # WHERE table1.t_score IS NULL")
- # @not_batch_homework = true
- # @cur_type = 1
- # else
- # all_homework_list = HomeworkAttach.find_by_sql("SELECT homework_attaches.*,
- # (SELECT stars FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = homework_attaches.id AND is_teacher_score = 1 AND stars IS NOT NULL ORDER BY updated_at DESC limit 0,1) AS t_score,
- # (SELECT AVG(stars) FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = homework_attaches.id AND is_teacher_score = 0) AS s_score,
- # (SELECT stars FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = homework_attaches.id AND rater_id = #{User.current.id} AND is_teacher_score = #{@is_teacher ? 1 : 0}) AS m_score
- # FROM homework_attaches
- # INNER JOIN homework_evaluations ON homework_evaluations.homework_attach_id = homework_attaches.id
- # WHERE homework_attaches.bid_id = #{@bid.id} AND homework_evaluations.user_id = #{User.current.id} ORDER BY s_score DESC")
- # @is_student_batch_homework = true
- # @cur_type = 4
- # end
- #
- # @cur_page = params[:page] || 1
- # # @homework_list = paginateHelper all_homework_list,10
- # @homework_list = all_homework_list
- # @jours_count = @bid.journals_for_messages.where('m_parent_id IS NULL').count
- # if params[:student_id].present?
- # @temp = []
- # @homework_list.each do |pro|
- # if /#{params[:student_id]}/ =~ pro.user.user_extensions.student_id
- # @temp << pro
- # end
- # @temp
- # end
- # @homework_list = @temp
- # end
- # end
- #
- # respond_to do |format|
- # if @bid.reward_type == 3
- # format.html {
- # html_title(l(:label_homework_info))
- # render :layout => 'base_homework'
- # }
- # elsif @bid.reward_type == 1
- # format.html {
- # render :layout => 'base_bids'
- # }
- # else
- # format.html {
- # render :layout => 'base_contest'
- # }
- # end
- # format.api
- # end
- # else
- # render_403 :message => :notice_not_authorized
- # end
- # end
- #
- # ##### by huang
- # def show_project_homework
- # # flash[:notice] = ""
- # @membership = User.current.memberships.all(:conditions => Project.visible_condition(User.current))
- # @option = []
- # @membership.each do |membership|
- # end
- # # a = [1]
- # # @project = Project.where("id in []", a)
- # @user = @bid.author
- # @bidding_project = @bid.biding_projects
- # respond_to do |format|
- # if @bid.reward_type == 3
- # format.html {
- # render :layout => 'base_homework'
- # }
- # elsif @bid.reward_type == 1
- # format.html {
- # render :layout => 'base_bids'
- # }
- # else
- # format.html {
- # render :layout => 'base_contest'
- # }
- # end
- # format.api
- # end
- # end
- #
- # ###添加应标项目
- # def add
- # project = Project.find(params[:bid])
- # bid_message = params[:bid_for_save][:bid_message]
- # if BidingProject.where("project_id = ? and bid_id = ?", project.id, @bid.id).size == 0
- # if BidingProject.cerate_bidding(@bid.id, project.id, bid_message)
- #
- # # added by bai type ==1 需求,type==2 竞赛, type==3 作业
- # if @bid.reward_type == 1
- # flash.now[:notice] = l(:label_bidding_succeed)
- #
- # elsif @bid.reward_type == 2
- # flash.now[:notice] = l(:label_bidding_contest_succeed)
- #
- # else @bid.reward_type == 3
- # flash.now[:notice] = l(:label_bidding_homework_succeed)
- # end
- # # end
- #
- # end
- # else
- # if @bid.reward_type == 3
- # flash.now[:error] = l(:label_bidding_homework_fail)
- # else
- # flash.now[:error] = l(:label_bidding_fail)
- # end
- # end
- # @bidding_project = @bid.biding_projects
- # respond_to do |format|
- # # format.html { redirect_to_referer_or {render :text => 'Watcher added.', :layout => true}}
- # # format.html
- # format.html { redirect_to :back }
- # format.js
- # #format.api { render_api_ok }
- # end
- # end
- #
- # #删除已提交的项目作业(不删项目)
- # def delete
- # binding_project = params[:binding_project]
- # if can_delete_project_homework(BidingProject.find(binding_project),User.current)
- # if BidingProject.delete(binding_project)
- # redirect_to project_for_bid_url
- # else
- # render_403;
- # end
- # end
- # end
- # ## 新建留言
- # def create
- #
- # if params[:bid_message][:message].size>0
- # if params[:reference_content]
- # message = params[:bid_message][:message] + "\n" + params[:reference_content]
- # else
- # message = params[:bid_message][:message]
- # @m = message
- # end
- # refer_user_id = params[:bid_message][:reference_user_id].to_i
- # @bid.add_jour(User.current, message, refer_user_id)
- # end
- # @user = @bid.author
- # @jours = @bid.journals_for_messages.where('m_parent_id IS NULL').order('created_on DESC')
- # @jour = paginateHelper @jours,10
- # @bid.set_commit(@feedback_count)
- # respond_to do |format|
- # format.js
- # #format.api { render_api_ok }
- # end
- #
- # end
- #
- # ##删除留言
- # def destroy
- # @user = @bid.author
- # if User.current.admin? || User.current.id == @user.id
- # JournalsForMessage.delete_message(params[:object_id])
- # end
- # @jours = @bid.journals_for_messages.reverse
- # @limit = 10
- # @feedback_count = @jours.count
- # @feedback_pages = Paginator.new @feedback_count, @limit, params['page']
- # @offset ||= @feedback_pages.offset
- # @jour = @jours[@offset, @limit]
- #
- # @bid.set_commit(@feedback_count)
- # # if a_message.size > 5
- # # @message = a_message[-5, 5]
- # # else
- # # @message = a_message
- # # end
- # # @message_count = a_message.count
- #
- # respond_to do |format|
- # # format.html
- # format.js
- # #format.api { render_api_ok }
- # end
- # end
- #
- # #删除作业
- # #by xianbo
- # def homework_destroy
- # @bid_to_destroy = Bid.find params[:id]
- # course_url = course_homework_path(@bid_to_destroy.courses.first)
- # (render_403; return false) unless User.current.admin?||User.current.id==@bid_to_destroy.author_id
- # @bid_to_destroy.destroy
- # respond_to do |format|
- # format.html { redirect_to course_url }
- # format.js
- # #format.api { render_api_ok }
- # end
- # end
- #
- # #end by xianbo
- # ##引用
- # def new
- # @jour = JournalsForMessage.find(params[:journal_id]) if params[:journal_id]
- # if @jour
- # user = @jour.user
- # text = @jour.notes
- # else
- # user = @bid.author
- # text = @bid.description
- # end
- # # Replaces pre blocks with [...]
- # text = text.to_s.strip.gsub(%r{<pre>((.|\s)*?)</pre>}m, '[...]')
- # @content = "> #{ll(User.current.language, :text_user_wrote, user)}\n> "
- # @content << text.gsub(/(\r?\n|\r\n?)/, "\n> ") + "\n\n"
- # @id = user.id
- # rescue ActiveRecord::RecordNotFound
- # render_404
- # end
- #
- # ##新建需求
- # def new_bid
- # @bid = Bid.new
- # @bid.safe_attributes = params[:bid]
- # end
- #
- # #huang
- # def create_contest
- # @bid = Bid.new
- # @bid.name = params[:bid][:name]
- # @bid.description = params[:bid][:description]
- # @bid.reward_type = 2
- # @bid.budget = params[:bid][:budget]
- # @bid.deadline = params[:bid][:deadline]
- # @bid.password = params[:bid][:password] #added by bai
- # @bid.author_id = User.current.id
- # @bid.commit = 0
- # if @bid.save
- # unless @bid.watched_by?(User.current)
- # if @bid.add_watcher(User.current)
- # flash[:notice] = l(:label_bid_succeed)
- # end
- # end
- # redirect_to respond_url(@bid)
- # else
- # @bid.safe_attributes = params[:bid]
- # render :action => 'new_bid'
- # end
- # end
- #
- # # added by bai
- # def update_contest
- # @bid = Bid.find(params[:id])
- # @bid.name = params[:bid][:name]
- # @bid.description = params[:bid][:description]
- # @bid.reward_type = 2
- # @bid.budget = params[:bid][:budget]
- # @bid.deadline = params[:bid][:deadline]
- # @bid.password = params[:bid][:password]
- # @bid.author_id = User.current.id
- # @bid.commit = 0
- # if @bid.save
- # unless @bid.watched_by?(User.current)
- # if @bid.add_watcher(User.current)
- # flash[:notice] = l(:label_bid_succeed)
- # end
- # end
- # redirect_to respond_url(@bid)
- # else
- # @bid.safe_attributes = params[:bid]
- # render :action => 'new_bid'
- # end
- # end
- # #huang
- # def new_contest
- # @bid = Bid.new
- # @bid.safe_attributes = params[:bid]
- # end
- #
- # def create_bid
- # @bid = Bid.new
- # @bid.name = params[:bid][:name]
- # @bid.description = params[:bid][:description]
- # @bid.reward_type = 1
- # @bid.budget = params[:bid][:budget]
- # @bid.deadline = params[:bid][:deadline]
- # @bid.author_id = User.current.id
- # @bid.commit = 0
- # if @bid.save
- # unless @bid.watched_by?(User.current)
- # if @bid.add_watcher(User.current)
- # flash[:notice] = l(:label_bid_succeed)
- # end
- # end
- # redirect_to respond_url(@bid)
- # else
- # @bid.safe_attributes = params[:bid]
- # render :action => 'new_bid'
- # end
- # end
- #
- # def create_homework
- # @bid = Bid.new
- # @bid.name = params[:bid][:name]
- # @bid.description = params[:bid][:description]
- # @bid.is_evaluation = params[:bid][:is_evaluation]
- # @bid.proportion = params[:bid][:proportion]
- # @bid.evaluation_num = params[:bid][:evaluation_num]
- # params[:bid][:open_anonymous_evaluation] ? @bid.open_anonymous_evaluation = 1 : @bid.open_anonymous_evaluation = 0
- # @bid.reward_type = 3
- # # @bid.budget = params[:bid][:budget]
- # @bid.deadline = params[:bid][:deadline]
- # @bid.budget = 0
- # @bid.author_id = User.current.id
- # @bid.commit = 0
- # @bid.homework_type = 1
- # @bid.save_attachments(params[:attachments] || (params[:bid] && params[:bid][:uploads]))
- # # @bid.
- # if @bid.save
- # HomeworkForCourse.create(:course_id => params[:course_id], :bid_id => @bid.id)
- # unless @bid.watched_by?(User.current)
- # if @bid.add_watcher(User.current)
- # flash[:notice] = l(:label_bid_succeed)
- # end
- # end
- # redirect_to course_homework_url(params[:course_id])
- # else
- # @bid.safe_attributes = params[:bid]
- # @homework = @bid
- # @course = Course.find_by_id(params[:course_id])
- # @course_id = @course.id
- # #respond_to do |format|
- # # format.html { redirect_to new_homework_course_path(params[:course_id]),:layout => 'base_courses'}
- # # format.api { render_validation_errors(@bid) }
- # #end
- # render file: 'courses/new_homework', layout: 'base_courses'
- # end
- # end
- #
- # # modify by nwb\
- # # 编辑作业
- # def edit
- # @bid = Bid.find(params[:bid_id])
- # if (User.current.admin?||User.current.allowed_to?(:as_teacher,@bid.courses.first))
- # @course_id = params[:course_id]
- # respond_to do |format|
- # format.html {
- # @course = Course.find(params[:course_id])
- # @user= User.find(User.current.id)
- # render :layout => 'base_courses'
- # }
- # end
- # else
- # render_403
- # end
- # end
- #
- # def update
- # @bid = Bid.find(params[:id])
- # @course = @bid.courses.first#Project.find(params[:course_id])
- # @bid.name = params[:bid][:name]
- # @bid.description = params[:bid][:description]
- # @bid.is_evaluation = params[:bid][:is_evaluation]
- # @bid.proportion = params[:bid][:proportion]
- # @bid.evaluation_num = params[:bid][:evaluation_num]
- # params[:bid][:open_anonymous_evaluation] ? @bid.open_anonymous_evaluation = 1 : @bid.open_anonymous_evaluation = 0
- # @bid.reward_type = 3
- # @bid.deadline = params[:bid][:deadline]
- # @bid.budget = 0
- # #@bid.author_id = User.current.id
- # @bid.commit = 0
- # @bid.homework_type = 1
- # @bid.save_attachments(params[:attachments] || (params[:bid] && params[:bid][:uploads]))
- # if @bid.save
- # flash[:notice] = l(:label_update_homework_succeed)
- # redirect_to course_homework_url(@course)
- # else
- # @bid.safe_attributes = params[:bid]
- # render :action => 'edit', :layout =>'base_courses'
- # end
- # end
- #
- # def new_submit_homework
- # #render html to prepare create submit homework
- # find_bid
- # find_bid
- # render :layout => 'base_homework'
- # end
- #
- # def add_homework
- # if User.current.logged? && (!Member.where('user_id = ? and project_id = ?', User.current.id, @bid.courses.first.id).first.nil? && (Member.where('user_id = ? and project_id = ?', User.current.id, @bid.courses.first.id).first.roles&Role.where('id = ? or id = ? or id =?',5, 10, 7)).size >0)
- # # homework = HomeworkAttach.create(:bid_id => @bid.id, :user_id => User.current.id)
- # # homework.save_attachments(params[:attachments] || (params[:bid] && params[:bid][:uploads]))
- #
- # if hadcommittedhomework(User.current.id, @bid.id) == true
- # @homework_flag = l(:label_bidding_homework_committed)
- # else
- # @homework = HomeworkAttach.new
- # @homework.safe_attributes = params[:homeworkattach]
- # @homework.bid_id = @bid.id
- # @homework.user_id = User.current.id
- # @homework.save_attachments(params[:attachments])
- #
- # render_attachment_warning_if_needed(@homework)
- #
- # @homework_flag = if @homework.save
- # l(:label_bidding_homework_succeed)
- # else
- # l(:label_bidding_homework_failed)
- # end
- #
- # if @homework.attachments.empty?
- # @homework.delete
- # #flash[:error] = l(:no_attachmens_allowed)
- # @homework_flag = l(:no_attachmens_allowed)
- # # else
- # end
- # end
- # end
- #
- # @homework_list = @bid.homeworks
- # respond_to do |format|
- # format.html{
- # #redirect_to project_for_bid_path, notice: @homework_flag.to_s
- # flash[:notice] = @homework_flag.to_s
- # redirect_back_or_default(project_for_bid_path)
- # }
- # format.js
- # end
- #
- # end
- #
- # # 作业统计
- # def homework_statistics
- # @course = @bid.courses.first
- # @member = []
- # @course.memberships.each do |member|
- # unless (member.roles && Role.where('id = ? ', 3)).empty?
- # @member.push member
- # end
- # end
- # if @bid.homework_type = 1
- # @student = User.where("id in (select DISTINCT user_id from #{HomeworkAttach.table_name} where bid_id = ? )", @bid.id)
- # @homework_type = true
- # else
- #
- # @homework_type = false
- # end
- # @user = @bid.author
- # render :layout => 'base_homework'
- # end
- #
- # def homework_respond
- # @user = @bid.author
- # render :layout => 'base_homework'
- # end
- #
- # def more
- # @jour = @bid.journals_for_messages
- # @jour.each_with_index {|j,i| j.indice = i+1}
- # @state = true
- #
- # respond_to do |format|
- # format.html { redirect_to :back }
- # format.js
- # #format.api { render_api_ok }
- # end
- # end
- #
- # def back
- # @jour = @bid.journals_for_messages
- # @jour.each_with_index {|j,i| j.indice = i+1}
- # @state = false
- #
- # respond_to do |format|
- # format.html { redirect_to :back }
- # format.js
- # #format.api { render_api_ok }
- # end
- # end
- #
- # #added by william
- # #used to set the bidding project reward
- # def set_reward
- # @b_p = nil
- # @biding_project_id = nil
- #
- # if params[:set_reward][:reward]&&((User.current.id==@bid.author_id)||User.current.admin)
- # # @bid_id = params[:id]
- # @biding_project_id = params[:set_reward][:b_id]
- # @b_p = BidingProject.find_by_id(@biding_project_id)
- #
- # # 把字段存进表中
- # @b_p.update_reward(params[:set_reward][:reward].to_s)
- # end
- #
- # respond_to do |format|
- # format.js
- # end
- # end
- #
- # # added by william
- # # used to manage the bid and end the bid
- # def manage
- #
- # end
- #
- # # 启动匿评
- # def start_anonymous_comment
- # @bid = Bid.find(params[:id])
- # @course = @bid.courses.first
- # if(@bid.comment_status == 0)
- # homeworks = @bid.homeworks
- # if(homeworks && homeworks.size >= 2)
- # homeworks.each_with_index do |homework, index|
- # user = homework.user
- # n = @bid.evaluation_num
- # n = n < homeworks.size ? n : homeworks.size - 1
- # assigned_homeworks = get_assigned_homeworks(homeworks, n, index)
- # assigned_homeworks.each do |h|
- # @homework_evaluation = HomeworkEvaluation.new(user_id: user.id, homework_attach_id: h.id)
- # @homework_evaluation.save
- # end
- # end
- # @bid.update_column('comment_status', 1)
- # @statue = 1
- # else
- # @statue = 2
- # end
- # else
- # @statue = 3
- # end
- #
- # respond_to do |format|
- # format.js
- # end
- # end
- #
- # def stop_anonymous_comment
- # @bid = Bid.find(params[:id])
- #
- # @bid.update_column('comment_status', 2)
- #
- # respond_to do |format|
- # format.js
- # end
- # end
- #
- # def alert_anonymous_comment
- # @bid = Bid.find params[:id]
- # @course = @bid.courses.first
- # @cur_size = 0
- # @totle_size = 0
- # if @bid.comment_status == 0
- # @totle_size = searchStudent(@course).size
- # @cur_size = @bid.homeworks.size
- # elsif @bid.comment_status == 1
- # @bid.homeworks.map { |homework| @totle_size += homework.homework_evaluations.count}
- # @cur_size = 0
- # @bid.homeworks.map { |homework| @cur_size += homework.rates(:quality).where("seems_rateable_rates.is_teacher_score = 0").count}
- # end
- # @percent = format("%.2f",(@cur_size.to_f / ( @totle_size == 0 ? 1 : @totle_size)) * 100)
- # respond_to do |format|
- # format.js
- # end
- # end
- #
- # private
- #
- # def get_assigned_homeworks(homeworks, n, index)
- # homeworks += homeworks
- # homeworks[index + 1 .. index + n]
- # end
- #
- # def find_bid
- # if params[:id]
- # @bid = Bid.find(params[:id], :include => [{:homeworks => :user}])
- # @user = @bid.author
- # end
- # rescue
- # render_404
- # end
- #
- # def memberAccess
- # # 是课程,则判断当前用户是否参加了课程
- # return true if current_user.admin?
- # #return 0 if @bid.courses.first.project_type == Project::ProjectType_project
- # currentUser = User.current
- # render_403 unless currentUser.member_of_course?(@bid.courses.first)
- # end
- #
- # #验证是否显示课程
- # def can_show_course
- # @first_page = FirstPage.find_by_page_type('project')
- # if @first_page.show_course == 2
- # render_404
- # end
- # end
- #
- # #验证是否显示竞赛
- # def can_show_contest
- # @first_page = FirstPage.find_by_page_type('project')
- # if @first_page.show_contest == 2
- # render_404
- # end
- # end
- # end
- #
|