|
|
|
@ -8,7 +8,7 @@ class BidsController < ApplicationController
|
|
|
|
|
menu_item :homework_statistics, :only => :homework_statistics
|
|
|
|
|
#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_bid_project, :show_bid_user, :join_in_contest, :unjoin_in_contest, :new_join,:show_participator, :settings]
|
|
|
|
|
: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
|
|
|
|
@ -189,7 +189,7 @@ class BidsController < ApplicationController
|
|
|
|
|
@homework.save_attachments(params[:attachments] || (params[:bid] && params[:bid][:uploads]))
|
|
|
|
|
# @bid.
|
|
|
|
|
if @homework.save
|
|
|
|
|
HomeworkForCourse.create(:project_id => params[:course], :bid_id => @homework.id)
|
|
|
|
|
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)
|
|
|
|
@ -199,11 +199,9 @@ class BidsController < ApplicationController
|
|
|
|
|
else
|
|
|
|
|
@bid.safe_attributes = params[:bid]
|
|
|
|
|
@courses = []
|
|
|
|
|
@membership = User.current.memberships.all(:conditions => Project.visible_condition(User.current))
|
|
|
|
|
@membership = User.current.coursememberships.all#(:conditions => Project.visible_condition(User.current))
|
|
|
|
|
@membership.each do |membership|
|
|
|
|
|
if membership.project.project_type == 1
|
|
|
|
|
@courses << membership.project
|
|
|
|
|
end
|
|
|
|
|
@courses << membership.course
|
|
|
|
|
end
|
|
|
|
|
render :action => 'fork'
|
|
|
|
|
end
|
|
|
|
@ -289,6 +287,7 @@ class BidsController < ApplicationController
|
|
|
|
|
end
|
|
|
|
|
#end
|
|
|
|
|
|
|
|
|
|
# 显示课程
|
|
|
|
|
def show_course
|
|
|
|
|
bids = Bid.where('parent_id = ?', @bid.id)
|
|
|
|
|
@courses = []
|
|
|
|
@ -377,7 +376,7 @@ class BidsController < ApplicationController
|
|
|
|
|
unless(membership.project.project_type==1)
|
|
|
|
|
membership.member_roles.each{|role|
|
|
|
|
|
if(role.role_id == 3)
|
|
|
|
|
@option << membership.project
|
|
|
|
|
@option << membership.project
|
|
|
|
|
end
|
|
|
|
|
}
|
|
|
|
|
end
|
|
|
|
@ -399,18 +398,96 @@ class BidsController < ApplicationController
|
|
|
|
|
end
|
|
|
|
|
@bidding_project = @temp
|
|
|
|
|
else
|
|
|
|
|
#added by nie
|
|
|
|
|
@temp = []
|
|
|
|
|
@bidding_project.each do |pro|
|
|
|
|
|
if pro.project && pro.project.project_status
|
|
|
|
|
@temp << pro
|
|
|
|
|
#added by nie
|
|
|
|
|
@temp = []
|
|
|
|
|
@bidding_project.each do |pro|
|
|
|
|
|
if pro.project && pro.project.project_status
|
|
|
|
|
@temp << pro
|
|
|
|
|
end
|
|
|
|
|
@temp
|
|
|
|
|
end
|
|
|
|
|
@temp
|
|
|
|
|
end
|
|
|
|
|
if @temp.size > 0
|
|
|
|
|
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
|
|
|
|
|
#ended
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
# flash[:notice] = ""
|
|
|
|
|
@membership = User.current.coursememberships.all(:conditions => Course.visible_condition(User.current))
|
|
|
|
|
@option = []
|
|
|
|
|
@membership.each do |membership|
|
|
|
|
|
membership.member_roles.each{|role|
|
|
|
|
|
if(role.role_id == 3)
|
|
|
|
|
@option << membership.course
|
|
|
|
|
end
|
|
|
|
|
}
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
@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
|
|
|
|
@ -421,9 +498,9 @@ class BidsController < ApplicationController
|
|
|
|
|
if params[:student_id].present?
|
|
|
|
|
@temp = []
|
|
|
|
|
@homework_list.each do |pro|
|
|
|
|
|
if /#{params[:student_id]}/ =~ pro.user.user_extensions.student_id
|
|
|
|
|
@temp << pro
|
|
|
|
|
end
|
|
|
|
|
if /#{params[:student_id]}/ =~ pro.user.user_extensions.student_id
|
|
|
|
|
@temp << pro
|
|
|
|
|
end
|
|
|
|
|
@temp
|
|
|
|
|
end
|
|
|
|
|
@homework_list = @temp
|
|
|
|
@ -432,17 +509,17 @@ class BidsController < ApplicationController
|
|
|
|
|
|
|
|
|
|
respond_to do |format|
|
|
|
|
|
if @bid.reward_type == 3
|
|
|
|
|
format.html {
|
|
|
|
|
render :layout => 'base_homework'
|
|
|
|
|
}
|
|
|
|
|
format.html {
|
|
|
|
|
render :layout => 'base_homework'
|
|
|
|
|
}
|
|
|
|
|
elsif @bid.reward_type == 1
|
|
|
|
|
format.html {
|
|
|
|
|
render :layout => 'base_bids'
|
|
|
|
|
}
|
|
|
|
|
render :layout => 'base_bids'
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
format.html {
|
|
|
|
|
render :layout => 'base_contest'
|
|
|
|
|
}
|
|
|
|
|
format.html {
|
|
|
|
|
render :layout => 'base_contest'
|
|
|
|
|
}
|
|
|
|
|
end
|
|
|
|
|
format.api
|
|
|
|
|
end
|
|
|
|
@ -711,7 +788,7 @@ class BidsController < ApplicationController
|
|
|
|
|
@bid.save_attachments(params[:attachments] || (params[:bid] && params[:bid][:uploads]))
|
|
|
|
|
# @bid.
|
|
|
|
|
if @bid.save
|
|
|
|
|
HomeworkForCourse.create(:project_id => params[:course_id], :bid_id => @bid.id)
|
|
|
|
|
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)
|
|
|
|
@ -721,19 +798,21 @@ class BidsController < ApplicationController
|
|
|
|
|
else
|
|
|
|
|
@bid.safe_attributes = params[:bid]
|
|
|
|
|
@homework = @bid
|
|
|
|
|
@project = Project.find_by_id(params[:course_id])
|
|
|
|
|
@project_id = @project.id
|
|
|
|
|
render file: 'projects/new_homework', layout: 'base_courses'
|
|
|
|
|
@course = Course.find_by_id(params[:course_id])
|
|
|
|
|
@course_id = @course.id
|
|
|
|
|
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.id==@bid.author_id)
|
|
|
|
|
@project_id = params[:project_id]
|
|
|
|
|
@course_id = params[:course_id]
|
|
|
|
|
respond_to do |format|
|
|
|
|
|
format.html {
|
|
|
|
|
@project = Project.find(params[:project_id])
|
|
|
|
|
@course = Course.find(params[:course_id])
|
|
|
|
|
@user= User.find(User.current.id)
|
|
|
|
|
render :layout => 'base_courses'
|
|
|
|
|
}
|
|
|
|
@ -745,11 +824,11 @@ class BidsController < ApplicationController
|
|
|
|
|
|
|
|
|
|
def update
|
|
|
|
|
@bid = Bid.find(params[:id])
|
|
|
|
|
@project = @bid.courses.first#Project.find(params[:course_id])
|
|
|
|
|
@course = @bid.courses.first#Project.find(params[:course_id])
|
|
|
|
|
@bid.save_attachments(params[:attachments] || (params[:bid] && params[:bid][:uploads]))
|
|
|
|
|
if @bid.update_attributes(params[:bid]) && @bid.save
|
|
|
|
|
flash[:notice] = l(:label_update_homework_succeed)
|
|
|
|
|
redirect_to project_homework_path(@project)
|
|
|
|
|
redirect_to course_homework_path(@course)
|
|
|
|
|
else
|
|
|
|
|
@bid.safe_attributes = params[:bid]
|
|
|
|
|
render :action => 'edit', :layout =>'base_courses'
|
|
|
|
@ -894,9 +973,9 @@ class BidsController < ApplicationController
|
|
|
|
|
def memberAccess
|
|
|
|
|
# 是课程,则判断当前用户是否参加了课程
|
|
|
|
|
return true if current_user.admin?
|
|
|
|
|
return 0 if @bid.courses.first.project_type == Project::ProjectType_project
|
|
|
|
|
#return 0 if @bid.courses.first.project_type == Project::ProjectType_project
|
|
|
|
|
currentUser = User.current
|
|
|
|
|
render_403 unless currentUser.member_of?(@bid.courses.first)
|
|
|
|
|
render_403 unless currentUser.member_of_cousrse?(@bid.courses.first)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
end
|
|
|
|
|