@ -33,28 +33,6 @@ class CoursesController < ApplicationController
join = cs . join_course params , User . current
join = cs . join_course params , User . current
@state = join [ :state ]
@state = join [ :state ]
course = join [ :course ]
course = join [ :course ]
#course = Course.find_by_id params[:object_id]
#if course
# if course_endTime_timeout? course
# @state = 2
# else
# if User.current.member_of_course?(course)
# @state = 3
# else
# if params[:course_password] == course.password
# members = []
# members << Member.new(:role_ids => [10], :user_id => User.current.id)
# course.members << members
# StudentsForCourse.create(:student_id => User.current.id, :course_id => params[:object_id])
# @state = 0
# else
# @state = 1
# end
# end
# end
#else
# @state = 4
#end
else
else
@state = 5 #未登录
@state = 5 #未登录
end
end
@ -71,25 +49,14 @@ class CoursesController < ApplicationController
def unjoin
def unjoin
if User . current . logged?
if User . current . logged?
#
# @member = Member.where('course_id = ? and user_id = ?', params[:object_id], User.current.id)
# @member.first.destroy
#
# joined = StudentsForCourse.where('student_id = ? and course_id = ?', User.current.id, params[:object_id])
# joined.each do |join|
# join.delete
# end
cs = CoursesService . new
cs = CoursesService . new
cs . exit_course params , User . current
cs . exit_course params , User . current
end
end
respond_to do | format |
respond_to do | format |
# format.html { redirect_to_referer_or {render :text => (watching ? 'Watcher added.' : 'Watcher removed.'), :layout => true}}
format . js { render :partial = > 'set_join' , :locals = > { :user = > User . current , :course = > Course . find ( params [ :object_id ] ) , :object_id = > params [ :object_id ] } }
format . js { render :partial = > 'set_join' , :locals = > { :user = > User . current , :course = > Course . find ( params [ :object_id ] ) , :object_id = > params [ :object_id ] } }
end
end
end
end
def join_private_courses
def join_private_courses
respond_to do | format |
respond_to do | format |
@ -119,36 +86,6 @@ class CoursesController < ApplicationController
format . api { render_validation_errors ( @course ) }
format . api { render_validation_errors ( @course ) }
end
end
end
end
#@course.safe_attributes = params[:course]
#@course.time = params[:time]
#@course.term = params[:term]
#@course.class_period = params[:class_period]
#if @course.save
# if params[:course][:is_public] == '0'
# course_status = CourseStatus.find_by_course_id(@course.id)
# course_status.destroy if course_status
# elsif params[:course][:is_public] == '1'
# course_status = CourseStatus.find_by_course_id(@course.id)
# course_status.destroy if course_status
# course_status = CourseStatus.create(:course_id => @course.id, :grade => 0)
# end
#
# respond_to do |format|
# format.html {
# flash[:notice] = l(:notice_successful_update)
# redirect_to settings_course_url(@course)
# }
# format.api { render_api_ok }
# end
#else
# respond_to do |format|
# format.html {
# settings
# render :action => 'settings'
# }
# format.api { render_validation_errors(@course) }
# end
#end
end
end
def new_join
def new_join
@ -160,7 +97,6 @@ class CoursesController < ApplicationController
def search
def search
courses_all = Course . all_course
courses_all = Course . all_course
name = params [ :name ]
name = params [ :name ]
#(redirect_to courses_url, :notice => l(:label_sumbit_empty);return) if name.blank?
if name . blank?
if name . blank?
@courses = [ ]
@courses = [ ]
@courses_all = [ ]
@courses_all = [ ]
@ -242,22 +178,19 @@ class CoursesController < ApplicationController
def searchmembers
def searchmembers
@subPage_title = l :label_student_list
@subPage_title = l :label_student_list
@render_file = 'member_list'
@canShowCode = User . current . allowed_to? ( :as_teacher , @course ) && params [ :role ] != '1'
@canShowCode = isCourseTeacher ( User . current . id , @course ) && params [ :role ] != '1'
# @is_remote = true
@is_remote = true
@score_sort_by = " desc "
@score_sort_by = " desc "
q = " #{ params [ :name ] . strip } "
q = " #{ params [ :name ] . strip } "
#(redirect_to stores_url, :notice => l(:label_sumbit_empty);return) if params[:name].blank?
if params [ :incourse ]
if params [ :incourse ]
@results = searchmember_by_name ( student_homework_score ( 0 , 0 , 0 , " desc " ) , q )
results = searchmember_by_name ( student_homework_score ( 0 , 0 , 0 , " desc " ) , q )
elsif params [ :ingroup ]
elsif params [ :ingroup ]
@group = CourseGroup . find ( params [ :search_group_id ] )
@group = CourseGroup . find ( params [ :search_group_id ] )
@ results = searchmember_by_name ( student_homework_score ( @group . id , 0 , 0 , " desc " ) , q )
results = searchmember_by_name ( student_homework_score ( @group . id , 0 , 0 , " desc " ) , q )
end
end
@is_remote = true
@is_remote = true
@result_count = @ results. count
@result_count = results. count
@results = paginateHelper @ results, 10
@results = paginateHelper results, 10
@search_name = q
@search_name = q
end
end
@ -269,7 +202,7 @@ class CoursesController < ApplicationController
group . course_id = @course . id
group . course_id = @course . id
group . save
group . save
end
end
@canShowCode = isCourseTeacher ( User . current . id , @course ) && params [ :role ] != '1'
@canShowCode = User . current . allowed_to? ( :as_teacher , @course ) && params [ :role ] != '1'
@is_remote = true
@is_remote = true
@course_groups = @course . course_groups
@course_groups = @course . course_groups
@ -303,17 +236,26 @@ class CoursesController < ApplicationController
valid_attr = params [ :valid ]
valid_attr = params [ :valid ]
valid_value = params [ :value ]
valid_value = params [ :value ]
group_id = params [ :group_id ]
faker = CourseGroup . new
# faker = CourseGroup. new
if valid_attr . eql? ( 'name' )
if valid_attr . eql? ( 'name' )
faker . name = valid_value
course = Course . find params [ :course_id ]
faker . course_id = params [ :course_id ]
group_names = course . course_groups . map { | group | group . name unless group . id . to_s == group_id } . select { | group | ! group . nil? }
faker . valid?
if group_names . include? ( valid_value )
req [ :valid ] = faker . errors [ :name ] . blank?
req [ :valid ] = false
req [ :message ] = faker . errors [ :name ]
req [ :message ] = l ( :modal_valid_unpassing )
else
req [ :valid ] = true
req [ :message ] = l ( :modal_valid_passing )
end
# faker.name = valid_value
# faker.course_id = params[:course_id]
# faker.valid?
# req[:valid] = faker.errors[:name].blank?
# req[:message] = faker.errors[:name]
end
end
req [ :message ] = l ( :modal_valid_passing ) if req [ :message ] . blank?
# req[:message] = l(:modal_valid_passing) if req[:message]. blank?
render :json = > req
render :json = > req
end
end
def join_group
def join_group
@ -341,35 +283,28 @@ class CoursesController < ApplicationController
end
end
def searchgroupmembers
def searchgroupmembers
@subPage_title = l :label_student_list
@subPage_title = l :label_student_list
@render_file = ' member_list'
@render_file = ' new_ member_list'
@canShowCode = isCourseTeacher ( User . current . id , @course ) && params [ :role ] != '1'
@canShowCode = isCourseTeacher ( User . current . id , @course ) && params [ :role ] != '1'
@is_remote = true
@is_remote = true
@score_sort_by = " desc "
@score_sort_by = " desc "
if params [ :group_id ] && params [ :group_id ] != " 0 "
if params [ :group_id ] && params [ :group_id ] != " 0 "
@group = CourseGroup . find ( params [ :group_id ] )
@group = CourseGroup . find ( params [ :group_id ] )
@results = student_homework_score ( @group . id , 0 , 0 , " desc " )
@results = student_homework_score ( @group . id , 0 , 0 , " desc " )
@results = paginateHelper @results , 10
@results = paginateHelper @results , 10
else
else
page_from = params [ :page ] . nil? ? 0 : ( params [ :page ] . to_i - 1 )
page_from = params [ :page ] . nil? ? 0 : ( params [ :page ] . to_i - 1 )
@results = student_homework_score ( 0 , page_from , 10 , " desc " )
@results = student_homework_score ( 0 , page_from , 10 , " desc " )
@results = paginateHelper_for_members @results , 10
@results = paginateHelper_for_members @results , 10
end
end
end
end
def member
def member
## 有角色参数的才是课程,没有的就是项目
## 有角色参数的才是课程,没有的就是项目
if ( User . current . admin? || @course . is_public == 1 || ( @course . is_public == 0 && User . current . member_of_course? ( @course ) ) )
if ( User . current . admin? || @course . is_public == 1 || ( @course . is_public == 0 && User . current . member_of_course? ( @course ) ) )
@render_file = ' member_list'
@render_file = ' new_ member_list'
@score_sort_by = " desc "
@score_sort_by = " desc "
@canShowCode = isCourseTeacher ( User . current . id , @course ) && params [ :role ] != '1'
@canShowCode = User . current . allowed_to? ( :as_teacher , @course ) && params [ :role ] != '1'
@role = params [ :role ] . nil? ? '2' :params [ :role ]
@role = params [ :role ] . nil? ? '2' :params [ :role ]
@is_remote = true
@is_remote = true
@course_groups = @course . course_groups if @course . course_groups
@course_groups = @course . course_groups if @course . course_groups
@ -383,12 +318,9 @@ class CoursesController < ApplicationController
@subPage_title = l :label_student_list
@subPage_title = l :label_student_list
page = params [ :page ] . nil? ? 0 : ( params [ 'page' ] . to_i - 1 )
page = params [ :page ] . nil? ? 0 : ( params [ 'page' ] . to_i - 1 )
@all_members = student_homework_score ( 0 , page , 10 , " desc " )
@all_members = student_homework_score ( 0 , page , 10 , " desc " )
# @all_members = @course.members
@members = paginateHelper_for_members @all_members , 10
@members = paginateHelper_for_members @all_members , 10
end
end
respond_to do | format |
respond_to do | format |
if params [ :page ]
if params [ :page ]
format . js
format . js
@ -396,12 +328,9 @@ class CoursesController < ApplicationController
format . html { render :layout = > 'base_courses' }
format . html { render :layout = > 'base_courses' }
end
end
end
end
# render :layout => 'base_courses'
else
else
render_403
render_403
end
end
end
end
def export_course_member_excel
def export_course_member_excel
@ -415,20 +344,9 @@ class CoursesController < ApplicationController
end
end
def member_score_sort
def member_score_sort
# @teachers= searchTeacherAndAssistant(@course)
@canShowCode = isCourseTeacher ( User . current . id , @course ) && params [ :role ] != '1'
@canShowCode = isCourseTeacher ( User . current . id , @course ) && params [ :role ] != '1'
# @role = params[:role]
# @course_groups = @course.course_groups if @course.course_groups
# @show_serch = params[:role] == '2'
@subPage_title = l :label_student_list
@subPage_title = l :label_student_list
@render_file = 'member_list'
@render_file = 'new_member_list'
# @results = params[:result] if params[:result]
# unless @result.nil?
# @results = @result.reverse
#
# end
# @results = paginateHelper @results@score_sort_by = "desc"
@is_remote = true
@is_remote = true
@score_sort_by = params [ :sort_by ] if params [ :sort_by ]
@score_sort_by = params [ :sort_by ] if params [ :sort_by ]
@search_name = params [ :search_name ] if params [ :search_name ]
@search_name = params [ :search_name ] if params [ :search_name ]
@ -436,7 +354,6 @@ class CoursesController < ApplicationController
if ! @search_name . nil?
if ! @search_name . nil?
if group_id == '0'
if group_id == '0'
page = params [ :page ] . nil? ? 0 : ( params [ 'page' ] . to_i - 1 )
page = params [ :page ] . nil? ? 0 : ( params [ 'page' ] . to_i - 1 )
@results = searchmember_by_name ( student_homework_score ( 0 , 0 , 0 , @score_sort_by ) , @search_name )
@results = searchmember_by_name ( student_homework_score ( 0 , 0 , 0 , @score_sort_by ) , @search_name )
@result_count = @results . count
@result_count = @results . count
@results = paginateHelper @results , 10
@results = paginateHelper @results , 10
@ -450,7 +367,6 @@ class CoursesController < ApplicationController
if group_id == '0'
if group_id == '0'
page = params [ :page ] . nil? ? 0 : ( params [ 'page' ] . to_i - 1 )
page = params [ :page ] . nil? ? 0 : ( params [ 'page' ] . to_i - 1 )
@results = student_homework_score ( 0 , page , 10 , @score_sort_by )
@results = student_homework_score ( 0 , page , 10 , @score_sort_by )
@results = paginateHelper_for_members @results , 10
@results = paginateHelper_for_members @results , 10
else
else
@group = CourseGroup . find ( group_id )
@group = CourseGroup . find ( group_id )
@ -458,32 +374,25 @@ class CoursesController < ApplicationController
@results = paginateHelper @results , 10
@results = paginateHelper @results , 10
end
end
end
end
end
end
# 显示每个学生的作业评分详情
# 显示每个学生的作业评分详情
def show_member_score
def show_member_score
@member_score = Member . find ( params [ :member_id ] ) if params [ :member_id ]
@member_score = Member . find ( params [ :member_id ] ) if params [ :member_id ]
respond_to do | format |
respond_to do | format |
format . html { render :layout = > 'course_base' }
format . html { render :layout = > 'course_base' }
format . js
format . js
end
end
end
end
def handle_course courses , activities
def handle_course courses , activities
course_activity_count_array = activities . values ( )
course_activity_count_array = activities . values ( )
course_array = [ ]
course_array = [ ]
i = 0 ;
i = 0 ;
courses . each do | course |
courses . each do | course |
course_array [ i ] = course
course_array [ i ] = course
i = i + 1
i = i + 1
end
end
courses = desc_sort_course_by_avtivity ( course_activity_count_array , course_array )
courses = desc_sort_course_by_avtivity ( course_activity_count_array , course_array )
return courses
return courses
end
end
@ -522,57 +431,6 @@ class CoursesController < ApplicationController
format . api { render :action = > 'show' , :status = > :created , :location = > url_for ( :controller = > 'courses' , :action = > 'show' , :id = > @course . id ) }
format . api { render :action = > 'show' , :status = > :created , :location = > url_for ( :controller = > 'courses' , :action = > 'show' , :id = > @course . id ) }
end
end
end
end
#if User.current.user_extensions.identity
# @course = Course.new
# @course.extra='course' + DateTime.parse(Time.now.to_s).strftime('%Y-%m-%d_%H-%M-%S').to_s
# @course.safe_attributes = params[:course]
# @course.tea_id = User.current.id
# # added by bai
# @course.term = params[:term]
# @course.time = params[:time]
# #@course.school_id = params[:occupation]
# @course.school_id = User.current.user_extensions.school_id
# @course.setup_time = params[:setup_time]
# @course.endup_time = params[:endup_time]
# @course.class_period = params[:class_period]
#end
#
#@issue_custom_fields = IssueCustomField.sorted.all
#@trackers = Tracker.sorted.all
#
#if @course.save
# #unless User.current.admin?
# r = Role.givable.find_by_id(Setting.new_project_user_role_id.to_i) || Role.givable.first
# m = Member.new(:user => User.current, :roles => [r])
# m.project_id = -1
# course = CourseInfos.new(:user_id => User.current.id, :course_id => @course.id)
# #user_grades = UserGrade.create(:user_id => User.current.id, :course_id => @course.id)
# if params[:course][:is_public] == '1'
# course_status = CourseStatus.create(:course_id => @course.id, :watchers_count => 0, :changesets_count => 0, :grade => 0, :course_type => @course_tag)
# end
# @course.members << m
# @course.course_infos << course
# #end
# respond_to do |format|
# format.html {
# flash[:notice] = l(:notice_successful_create)
# if params[:continue]
# redirect_to new_course_url(attrs, :course => '0')
# elsif params[:course_continue]
# redirect_to new_course_url(:course => '1')
# else
# redirect_to settings_course_url(@course, :course_type => 1)
# end
# }
# format.api { render :action => 'show', :status => :created, :location => url_for(:controller => 'courses', :action => 'show', :id => @course.id) }
# end
# else
# #@course.destroy
# respond_to do |format|
# format.html { render :action => 'new', :layout => 'base' } #Added by young
# format.api { render_validation_errors(@course) }
# end
# end
end
end
def course
def course
@ -590,54 +448,28 @@ class CoursesController < ApplicationController
@course_count = @courses_all . count
@course_count = @courses_all . count
@course_pages = Paginator . new @course_count , per_page_option , params [ 'page' ]
@course_pages = Paginator . new @course_count , per_page_option , params [ 'page' ]
#gcm activity count
@course_activity_count = Hash . new
@course_activity_count = Hash . new
#count initialize
@courses_all . each do | course |
@courses_all . each do | course |
@course_activity_count [ course . id ] = 0
@course_activity_count [ course . id ] = 0
end
end
#@course_activity_count=get_course_activity @courses_all,@course_activity_count
#gcm end
case params [ :course_sort_type ]
case params [ :course_sort_type ]
when '0'
when '0'
@courses = @courses_all . order ( " created_on desc " )
@courses = @courses_all . order ( " created_on desc " )
@s_type = 0
@s_type = 0
@courses = @courses . offset ( @course_pages . offset ) . limit ( @course_pages . per_page )
@courses = @courses . offset ( @course_pages . offset ) . limit ( @course_pages . per_page )
#gcm
@course_activity_count = get_course_activity @courses , @course_activity_count
@course_activity_count = get_course_activity @courses , @course_activity_count
#gcmend
when '1'
when '1'
@courses = @courses_all . order ( " course_ac_para desc " )
@courses = @courses_all . order ( " course_ac_para desc " )
@s_type = 1
@s_type = 1
@courses = @courses . offset ( @course_pages . offset ) . limit ( @course_pages . per_page )
@courses = @courses . offset ( @course_pages . offset ) . limit ( @course_pages . per_page )
#gcm
@course_activity_count = get_course_activity @courses , @course_activity_count
@course_activity_count = get_course_activity @courses , @course_activity_count
#gcmend
when '2'
when '2'
@courses = @courses_all . order ( " watchers_count desc " )
@courses = @courses_all . order ( " watchers_count desc " )
@s_type = 2
@s_type = 2
@courses = @courses . offset ( @course_pages . offset ) . limit ( @course_pages . per_page )
@courses = @courses . offset ( @course_pages . offset ) . limit ( @course_pages . per_page )
#gcm
@course_activity_count = get_course_activity @courses , @course_activity_count
@course_activity_count = get_course_activity @courses , @course_activity_count
#gcmend
#gcm
when '3'
when '3'
#gcm
@course_activity_count = get_course_activity @courses_all , @course_activity_count
@course_activity_count = get_course_activity @courses_all , @course_activity_count
#gcmend
@courses = handle_course @courses_all , @course_activity_count
@courses = handle_course @courses_all , @course_activity_count
@s_type = 3
@s_type = 3
@courses = @courses [ @course_pages . offset , @course_pages . per_page ]
@courses = @courses [ @course_pages . offset , @course_pages . per_page ]
@ -645,11 +477,7 @@ class CoursesController < ApplicationController
@s_type = 0
@s_type = 0
@courses = @courses_all . order ( " created_on desc " )
@courses = @courses_all . order ( " created_on desc " )
@courses = @courses . offset ( @course_pages . offset ) . limit ( @course_pages . per_page )
@courses = @courses . offset ( @course_pages . offset ) . limit ( @course_pages . per_page )
#gcm
@course_activity_count = get_course_activity @courses , @course_activity_count
@course_activity_count = get_course_activity @courses , @course_activity_count
#gcmend
end
end
respond_to do | format |
respond_to do | format |
@ -657,9 +485,6 @@ class CoursesController < ApplicationController
render :layout = > 'base'
render :layout = > 'base'
}
}
format . api {
format . api {
# @offset, @limit = api_offset_and_limit
# @course_count = Course.visible.count
# @courses = Course.visible.offset(@offset).limit(@limit).order('lft').all
}
}
format . atom {
format . atom {
courses = Course . visible . order ( 'created_on DESC' ) . limit ( Setting . feeds_limit . to_i ) . all
courses = Course . visible . order ( 'created_on DESC' ) . limit ( Setting . feeds_limit . to_i ) . all
@ -668,20 +493,16 @@ class CoursesController < ApplicationController
end
end
end
end
def new
def new
@course_type = params [ :course_type ] || = params [ :course ]
@course_type = params [ :course_type ] || = params [ :course ]
@issue_custom_fields = IssueCustomField . sorted . all
@issue_custom_fields = IssueCustomField . sorted . all
@trackers = Tracker . sorted . all
@trackers = Tracker . sorted . all
@course = Course . new
@course = Course . new
@course . safe_attributes = params [ :course ]
@course . safe_attributes = params [ :course ]
month = Time . now . month
month = Time . now . month
render :layout = > 'new_base'
render :layout = > 'base'
end
end
def desc_sort_course_by_avtivity ( activity_count , courses )
def desc_sort_course_by_avtivity ( activity_count , courses )
return courses if activity_count . size < 2
return courses if activity_count . size < 2
( activity_count . size - 2 ) . downto ( 0 ) do | i |
( activity_count . size - 2 ) . downto ( 0 ) do | i |
@ -758,22 +579,11 @@ class CoursesController < ApplicationController
def homework
def homework
if @course . is_public != 0 || User . current . member_of_course? ( @course ) || User . current . admin?
if @course . is_public != 0 || User . current . member_of_course? ( @course ) || User . current . admin?
@offset , @limit = api_offset_and_limit ( { :limit = > 10 } )
bids = @course . homeworks . order ( 'created_on DESC' )
@bids = @course . homeworks . order ( 'deadline ASC' )
bids = bids . like ( params [ :name ] ) if params [ :name ] . present?
@bids = @bids . like ( params [ :name ] ) if params [ :name ] . present?
@bids = paginateHelper bids , 10
@bid_count = @bids . count
@is_teacher = User . current . logged? && ( User . current . admin? || User . current . allowed_to? ( :as_teacher , @course ) )
@bid_pages = Paginator . new @bid_count , @limit , params [ 'page' ]
@is_student = User . current . logged? && ( User . current . admin? || ( User . current . member_of_course? ( @course ) && ! @is_teacher ) )
@offset || = @bid_pages . reverse_offset
unless @offset == 0
@bids = @bids . offset ( @offset ) . limit ( @limit ) . all . reverse
else
limit = @bid_count % @limit
if limit == 0
limit = 10
end
@bids = @bids . offset ( @offset ) . limit ( limit ) . all . reverse
end
render :layout = > 'base_courses'
render :layout = > 'base_courses'
else
else
render_403
render_403
@ -785,6 +595,7 @@ class CoursesController < ApplicationController
@homework = Bid . new
@homework = Bid . new
@homework . safe_attributes = params [ :bid ]
@homework . safe_attributes = params [ :bid ]
@homework . open_anonymous_evaluation = 1
@homework . open_anonymous_evaluation = 1
@homework . deadline = ( Time . now + 3600 * 24 ) . strftime ( '%Y-%m-%d' )
if ( User . current . logged? && User . current . member_of_course? ( Course . find params [ :id ] ) )
if ( User . current . logged? && User . current . member_of_course? ( Course . find params [ :id ] ) )
render :layout = > 'base_courses'
render :layout = > 'base_courses'
else
else
@ -848,26 +659,19 @@ class CoursesController < ApplicationController
end
end
def show
def show
# try to redirect to the requested menu item
if params [ :jump ] && redirect_to_course_menu_item ( @course , params [ :jump ] )
if params [ :jump ] && redirect_to_course_menu_item ( @course , params [ :jump ] )
return
return
end
end
@users_by_role = @course . users_by_role
@users_by_role = @course . users_by_role
if ( User . find_by_id ( CourseInfos . find_by_course_id ( @course . id ) . try ( :user_id ) ) )
if ( User . find_by_id ( CourseInfos . find_by_course_id ( @course . id ) . try ( :user_id ) ) )
@user = User . find_by_id ( CourseInfos . find_by_course_id ( @course . id ) . user_id )
@user = User . find_by_id ( CourseInfos . find_by_course_id ( @course . id ) . user_id )
end
end
@key = User . current . rss_key
@key = User . current . rss_key
#新增内容
#新增内容
@days = Setting . activity_days_default . to_i
@days = Setting . activity_days_default . to_i
if params [ :from ]
if params [ :from ]
begin ; @date_to = params [ :from ] . to_date + 1 ; rescue ; end
begin ; @date_to = params [ :from ] . to_date + 1 ; rescue ; end
end
end
has = {
has = {
" show_course_files " = > true ,
" show_course_files " = > true ,
" show_course_news " = > true ,
" show_course_news " = > true ,
@ -877,9 +681,7 @@ class CoursesController < ApplicationController
" show_homeworks " = > true
" show_homeworks " = > true
}
}
@date_to || = Date . today + 1
@date_to || = Date . today + 1
#
@date_from = ( @date_to - @days ) > @course . created_at . to_date ? ( @date_to - @days ) : @course . created_at . to_date
@date_from = ( @date_to - @days ) > @course . created_at . to_date ? ( @date_to - @days ) : @course . created_at . to_date
#@date_from = @date_to - @days-1.years
@author = ( params [ :user_id ] . blank? ? nil : User . active . find ( params [ :user_id ] ) )
@author = ( params [ :user_id ] . blank? ? nil : User . active . find ( params [ :user_id ] ) )
@author || = @course . teacher
@author || = @course . teacher
# 决定显示所用用户或单个用户活动
# 决定显示所用用户或单个用户活动
@ -889,13 +691,11 @@ class CoursesController < ApplicationController
@activity . scope_select { | t | has [ " show_ #{ t } " ] }
@activity . scope_select { | t | has [ " show_ #{ t } " ] }
# modify by nwb
# modify by nwb
# 添加私密性判断
# 添加私密性判断
if User . current . member_of_course? ( @course ) || User . current . admin?
if User . current . member_of_course? ( @course ) || User . current . admin?
events = @activity . events ( @days , @course . created_at )
events = @activity . events ( @days , @course . created_at )
else
else
events = @activity . events ( @days , @course . created_at , :is_public = > 1 )
events = @activity . events ( @days , @course . created_at , :is_public = > 1 )
end
end
# 无新动态时,显示老动态
# 无新动态时,显示老动态
if events . count == 0
if events . count == 0
if User . current . member_of_course? ( @course ) || User . current . admin?
if User . current . member_of_course? ( @course ) || User . current . admin?
@ -904,20 +704,10 @@ class CoursesController < ApplicationController
events = @activity . events ( :is_public = > 1 )
events = @activity . events ( :is_public = > 1 )
end
end
end
end
events = paginateHelper events , 10
@offset , @limit = api_offset_and_limit ( { :limit = > 10 } )
@events_count = events . count
@events_pages = Paginator . new @events_count , @limit , params [ 'page' ]
@offset || = @events_pages . offset
events = events . slice ( @offset , @limit )
@events_by_day = events . group_by { | event | User . current . time_to_date ( event . event_datetime ) }
@events_by_day = events . group_by { | event | User . current . time_to_date ( event . event_datetime ) }
# documents
# documents
@sort_by = %w( category date title author ) . include? ( params [ :sort_by ] ) ? params [ :sort_by ] : 'category'
@sort_by = %w( category date title author ) . include? ( params [ :sort_by ] ) ? params [ :sort_by ] : 'category'
# 这写变量发现没有用而且拖慢速度
#@teachers= searchTeacherAndAssistant(@course)
#@canShowRealName = isCourseTeacher(User.current.id,@course)
if ( User . find_by_id ( CourseInfos . find_by_course_id ( @course . id ) . try ( :user_id ) ) )
if ( User . find_by_id ( CourseInfos . find_by_course_id ( @course . id ) . try ( :user_id ) ) )
@user = User . find_by_id ( CourseInfos . find_by_course_id ( @course . id ) . user_id )
@user = User . find_by_id ( CourseInfos . find_by_course_id ( @course . id ) . user_id )
end
end
@ -947,10 +737,6 @@ class CoursesController < ApplicationController
offset = @jours . count ( :conditions = > [ " #{ JournalsForMessage . table_name } .id > ? " , params [ :r ] . to_i ] )
offset = @jours . count ( :conditions = > [ " #{ JournalsForMessage . table_name } .id > ? " , params [ :r ] . to_i ] )
page = 1 + offset / @limit
page = 1 + offset / @limit
end
end
#@feedback_count = @jours.count
#@feedback_pages = Paginator.new @feedback_count, @limit, page
#@offset ||= @feedback_pages.offset
@jour = paginateHelper @jours , 10
@jour = paginateHelper @jours , 10
@state = false
@state = false
respond_to do | format |
respond_to do | format |
@ -990,7 +776,6 @@ class CoursesController < ApplicationController
end
end
private
private
def allow_join course
def allow_join course
if course_endTime_timeout? course
if course_endTime_timeout? course
respond_to do | format |
respond_to do | format |
@ -1021,38 +806,38 @@ class CoursesController < ApplicationController
if groupid == 0
if groupid == 0
if nums == 0
if nums == 0
sql_select = " SELECT members.*, SUM(homework_attaches.score) as score FROM members, homework_attaches
sql_select = " SELECT members.*, SUM(homework_attaches.score) as score FROM members, homework_attaches
WHERE members . course_id = #{@course.id} AND members.user_id in (SELECT students_for_courses.student_id FROM students_for_courses WHERE course_id = #{@course.id}) AND members.user_id = homework_attaches.user_id
WHERE members . course_id = #{@course.id} AND members.user_id in (SELECT students_for_courses.student_id FROM students_for_courses WHERE course_id = #{@course.id}) AND members.user_id = homework_attaches.user_id
AND homework_attaches . bid_id in ( SELECT bid_id FROM homework_for_courses WHERE course_id = #{@course.id}) GROUP BY members.user_id
AND homework_attaches . bid_id in ( SELECT bid_id FROM homework_for_courses WHERE course_id = #{@course.id}) GROUP BY members.user_id
UNION all
UNION all
SELECT members . * , 0 as score FROM members , homework_attaches , students_for_courses WHERE members . course_id = #{@course.id} AND
SELECT members . * , 0 as score FROM members , homework_attaches , students_for_courses WHERE members . course_id = #{@course.id} AND
students_for_courses . course_id = #{@course.id} and members.user_id = students_for_courses.student_id AND
students_for_courses . course_id = #{@course.id} and members.user_id = students_for_courses.student_id AND
members . user_id NOT IN ( SELECT homework_attaches . user_id FROM homework_attaches WHERE homework_attaches . bid_id in ( SELECT bid_id FROM homework_for_courses WHERE course_id = #{@course.id} )
members . user_id NOT IN ( SELECT homework_attaches . user_id FROM homework_attaches WHERE homework_attaches . bid_id in ( SELECT bid_id FROM homework_for_courses WHERE course_id = #{@course.id} )
)
)
GROUP BY members . user_id ORDER BY score #{score_sort_by}"
GROUP BY members . user_id ORDER BY score #{score_sort_by}"
else
else
sql_select = " SELECT members.*, SUM(homework_attaches.score) as score FROM members, homework_attaches
sql_select = " SELECT members.*, SUM(homework_attaches.score) as score FROM members, homework_attaches
WHERE members . course_id = #{@course.id} AND members.user_id in (SELECT students_for_courses.student_id FROM students_for_courses WHERE course_id = #{@course.id}) AND members.user_id = homework_attaches.user_id
WHERE members . course_id = #{@course.id} AND members.user_id in (SELECT students_for_courses.student_id FROM students_for_courses WHERE course_id = #{@course.id}) AND members.user_id = homework_attaches.user_id
AND homework_attaches . bid_id in ( SELECT bid_id FROM homework_for_courses WHERE course_id = #{@course.id}) GROUP BY members.user_id
AND homework_attaches . bid_id in ( SELECT bid_id FROM homework_for_courses WHERE course_id = #{@course.id}) GROUP BY members.user_id
UNION all
UNION all
SELECT members . * , 0 as score FROM members , homework_attaches , students_for_courses WHERE members . course_id = #{@course.id} AND
SELECT members . * , 0 as score FROM members , homework_attaches , students_for_courses WHERE members . course_id = #{@course.id} AND
students_for_courses . course_id = #{@course.id} and members.user_id = students_for_courses.student_id AND
students_for_courses . course_id = #{@course.id} and members.user_id = students_for_courses.student_id AND
members . user_id NOT IN ( SELECT homework_attaches . user_id FROM homework_attaches WHERE homework_attaches . bid_id in ( SELECT bid_id FROM homework_for_courses WHERE course_id = #{@course.id} )
members . user_id NOT IN ( SELECT homework_attaches . user_id FROM homework_attaches WHERE homework_attaches . bid_id in ( SELECT bid_id FROM homework_for_courses WHERE course_id = #{@course.id} )
)
)
GROUP BY members . user_id ORDER BY score #{score_sort_by} limit #{start_from}, #{nums}"
GROUP BY members . user_id ORDER BY score #{score_sort_by} limit #{start_from}, #{nums}"
end
end
else
else
sql_select = " SELECT members.*, SUM(homework_attaches.score) as score FROM members, homework_attaches
sql_select = " SELECT members.*, SUM(homework_attaches.score) as score FROM members, homework_attaches
WHERE members . course_id = #{@course.id} AND members.user_id in (SELECT students_for_courses.student_id FROM students_for_courses WHERE course_id = #{@course.id}) AND members.user_id = homework_attaches.user_id
WHERE members . course_id = #{@course.id} AND members.user_id in (SELECT students_for_courses.student_id FROM students_for_courses WHERE course_id = #{@course.id}) AND members.user_id = homework_attaches.user_id
and members . course_group_id = #{groupid} AND homework_attaches.bid_id in (SELECT bid_id FROM homework_for_courses WHERE course_id = #{@course.id})
and members . course_group_id = #{groupid} AND homework_attaches.bid_id in (SELECT bid_id FROM homework_for_courses WHERE course_id = #{@course.id})
GROUP BY members . user_id
GROUP BY members . user_id
UNION all
UNION all
SELECT members . * , 0 as score FROM members , homework_attaches , students_for_courses WHERE members . course_id = #{@course.id}
SELECT members . * , 0 as score FROM members , homework_attaches , students_for_courses WHERE members . course_id = #{@course.id}
and members . course_group_id = #{groupid} AND
and members . course_group_id = #{groupid} AND
students_for_courses . course_id = #{@course.id} and members.user_id = students_for_courses.student_id AND
students_for_courses . course_id = #{@course.id} and members.user_id = students_for_courses.student_id AND
members . user_id NOT IN ( SELECT homework_attaches . user_id FROM homework_attaches WHERE homework_attaches . bid_id in ( SELECT bid_id FROM homework_for_courses WHERE course_id = #{@course.id} )
members . user_id NOT IN ( SELECT homework_attaches . user_id FROM homework_attaches WHERE homework_attaches . bid_id in ( SELECT bid_id FROM homework_for_courses WHERE course_id = #{@course.id} )
)
)
GROUP BY members . user_id ORDER BY score #{score_sort_by}"
GROUP BY members . user_id ORDER BY score #{score_sort_by}"
end
end
sql = ActiveRecord :: Base . connection ( )
sql = ActiveRecord :: Base . connection ( )
homework_scores = Member . find_by_sql ( sql_select )
homework_scores = Member . find_by_sql ( sql_select )
@ -1068,7 +853,7 @@ GROUP BY members.user_id ORDER BY score #{score_sort_by}"
#当加入,退出分班时查询分班的学生
#当加入,退出分班时查询分班的学生
def search_group_members group
def search_group_members group
@subPage_title = l :label_student_list
@subPage_title = l :label_student_list
@render_file = ' member_list'
@render_file = ' new_ member_list'
@canShowCode = isCourseTeacher ( User . current . id , @course ) && params [ :role ] != '1'
@canShowCode = isCourseTeacher ( User . current . id , @course ) && params [ :role ] != '1'
@is_remote = true
@is_remote = true
@score_sort_by = " desc "
@score_sort_by = " desc "