@ -25,6 +25,7 @@ class CoursesController < ApplicationController
before_filter :authorize_course , :only = > [ :show , :settings , :update , :course ]
before_filter :authorize_course_global , :only = > [ :new , :create ]
before_filter :toggleCourse , :only = > [ :finishcourse , :restartcourse ]
before_filter :is_deleted , :only = > [ :show , :settings ]
before_filter :require_login , :only = > [ :join , :unjoin ]
#before_filter :allow_join, :only => [:join]
@ -55,11 +56,11 @@ class CoursesController < ApplicationController
def join
if User . current . logged?
cs = CoursesService . new
@user = User . current
join = cs . join_course params , @user
@state = join [ :state ]
@course = join [ :course ]
cs = CoursesService . new
@user = User . current
join = cs . join_course params , @user
@state = join [ :state ]
@course = join [ :course ]
# else
# @course = Course.find_by_id params[:object_id]
# CourseMessage.create(:user_id => @course.tea_id, :course_id => @course.id, :viewed => false,:content=> params[:role],:course_message_id=>User.current.id,:course_message_type=>'JoinCourseRequest')
@ -70,7 +71,7 @@ class CoursesController < ApplicationController
end
@object_id = params [ :object_id ]
respond_to do | format |
format . js #{ render :partial => 'set_join', :locals => {:user => @user, :course => @course, :object_id => params[:object_id]} }
format . js #{ render :partial => 'set_join', :locals => {:user => @user, :course => @course, :object_id => params[:object_id]} }
end
end
@ -85,7 +86,7 @@ class CoursesController < ApplicationController
end
end
def join_private_courses
respond_to do | format |
format . js
@ -98,14 +99,14 @@ class CoursesController < ApplicationController
c = cs . edit_course params , @course , User . current
@course = c [ :course ]
if @course . errors . full_messages . count < = 0
respond_to do | format |
format . html {
# render :layout => 'base_courses'
flash [ :notice ] = l ( :notice_successful_update )
redirect_to settings_course_url ( @course )
}
format . api { render_api_ok }
end
respond_to do | format |
format . html {
# render :layout => 'base_courses'
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 {
@ -134,8 +135,8 @@ class CoursesController < ApplicationController
courses = Course . visible . where ( " LOWER(name) like '% #{ params [ :name ] . to_s . downcase } %' " ) . order ( " time desc, created_at desc " )
@courses = paginateHelper courses , 10
end
@name = params [ :name ]
@type = 'courses'
@name = params [ :name ]
@type = 'courses'
respond_to do | format |
format . html {
render :layout = > 'course_base'
@ -277,7 +278,7 @@ class CoursesController < ApplicationController
def member
## 有角色参数的才是课程,没有的就是项目
if ( User . current . admin? || @course . is_public == 1 || ( @course . is_public == 0 && User . current . member_of_course? ( @course ) ) )
@render_file = 'new_member_list'
@score_sort_by = " desc "
@canShowCode = User . current . allowed_to? ( :as_teacher , @course ) && params [ :role ] != '1'
@ -312,7 +313,7 @@ class CoursesController < ApplicationController
def export_course_member_excel
@all_members = student_homework_score ( 0 , 0 , 0 , " desc " )
filename = " #{ @course . teacher . lastname . to_s + @course . teacher . firstname . to_s } _ #{ @course . name } _ #{ @course . time . to_s + @course . term } #{ l ( :excel_member_list ) } " ;
respond_to do | format |
format . xls {
send_data ( member_to_xls ( @all_members , @course . course_groups ) , :type = > " text/excel;charset=utf-8; header=present " ,
@ -427,7 +428,7 @@ class CoursesController < ApplicationController
end
def course
@school_id = params [ :school_id ]
@school_id = params [ :school_id ]
per_page_option = 10
if @school_id == " 0 " or @school_id . nil?
@courses_all = Course . active . visible .
@ -515,8 +516,8 @@ class CoursesController < ApplicationController
def index
if ! User . current . admin?
render_404
return
render_404
return
end
@course_type = params [ :course_type ]
@school_id = params [ :school_id ]
@ -565,7 +566,7 @@ class CoursesController < ApplicationController
respond_to do | format |
format . html {
render :layout = > 'base'
render :layout = > 'base'
}
format . atom {
courses = Course . visible . order ( 'created_on DESC' ) . limit ( Setting . feeds_limit . to_i ) . all
@ -581,6 +582,13 @@ class CoursesController < ApplicationController
end
end
def is_deleted
if @course . is_delete == 1 and ! User . current . admin?
render_404
return
end
end
def get_courses
@user = User . current
membership = @user . coursememberships . all
@ -634,6 +642,11 @@ class CoursesController < ApplicationController
end
def show
# 被删除的课程只有超级管理员才能看到, is_delete为1的时候, 标记课程被删除
# if @course.is_delete == 1 && !User.current.admin?
# render_403
# return
# end
#更新创建课程消息状态
create_course_messages = @course . course_messages . where ( " user_id =? and course_message_type =? and course_id =? and viewed =? " , User . current . id , 'Course' , @course . id , 0 )
create_course_messages . update_all ( :viewed = > true )
@ -684,10 +697,10 @@ class CoursesController < ApplicationController
end
def feedback
@course . journals_for_messages . each do | messages |
query = messages . course_messages . where ( " user_id = ? " , User . current . id )
query . update_all ( :viewed = > true ) ;
end
@course . journals_for_messages . each do | messages |
query = messages . course_messages . where ( " user_id = ? " , User . current . id )
query . update_all ( :viewed = > true ) ;
end
if ( User . current . admin? || @course . is_public == 1 || ( @course . is_public == 0 && User . current . member_of_course? ( @course ) ) )
page = params [ :page ]
@ -738,20 +751,20 @@ class CoursesController < ApplicationController
#从课程创建的老师那里选择课程大纲
def course_outline
@teacher = User . find ( @course . tea_id )
@blog_articles = @teacher . blog . articles
@is_in_show_outline_page = params [ :is_in_show_outline_page ]
respond_to do | format |
format . js
end
@teacher = User . find ( @course . tea_id )
@blog_articles = @teacher . blog . articles
@is_in_show_outline_page = params [ :is_in_show_outline_page ]
respond_to do | format |
format . js
end
end
#根据关键字搜索,查找方法一样的,但返回内容不一样
def search_course_outline
@article_title = params [ :title ]
@teacher = User . find ( @course . tea_id )
@blog_articles = @teacher . blog . articles . like ( @article_title )
render :json = > @blog_articles . to_json
@article_title = params [ :title ]
@teacher = User . find ( @course . tea_id )
@blog_articles = @teacher . blog . articles . like ( @article_title )
render :json = > @blog_articles . to_json
end
#设置或者更改课程的大纲
@ -771,10 +784,23 @@ class CoursesController < ApplicationController
format . html { render :layout = > 'base_courses' }
end
end
#删除课程
#删除课程只是将课程的is_delete 状态改为false, is_delete为false状态的课程只有管理员可以看到
#删除课程只是将课程的is_delete d 状态改为false, is_deleted 为false状态的课程只有管理员可以看到
def destroy
@course . update_attributes ( :is_delete = > true )
@course = nil
redirect_to user_url ( User . current )
end
# 恢复已删除的课程
def renew
if User . current . admin?
@course . update_attributes ( :is_delete = > false )
redirect_to course_path ( @course )
else
return 404
end
end
private
@ -797,7 +823,7 @@ class CoursesController < ApplicationController
def can_show_course
@first_page = FirstPage . find_by_page_type ( 'project' )
if @first_page . try ( :show_course ) == 2
render_404
render_404
end
end