shield_project_ids=ShieldActivity.select("shield_id").where("container_type='User' and container_id=#{user.id} and shield_type='Project'").map(&:shield_id)
shield_course_ids=ShieldActivity.select("shield_id").where("container_type='User' and container_id=#{user.id} and shield_type='Course'").map(&:shield_id)
shield_project_ids=ShieldActivity.select("shield_id").where("container_type='User' and container_id=#{user.id} and shield_type='Project'").map(&:shield_id)
shield_course_ids=ShieldActivity.select("shield_id").where("container_type='User' and container_id=#{user.id} and shield_type='Course'").map(&:shield_id)
watched_user_blog_ids=Blog.select("id").where("author_id in #{user_ids}").count==0?"":Blog.select("id").where("author_id in #{user_ids}").map{|blog|blog.id}.join(",")
blog_ids="("+watched_user_blog_ids+")"
activities=UserActivity.where("(container_type = 'Project' and container_id in #{user_project_ids} and act_type in #{project_types})"+
"or (container_type = 'Course' and container_id in #{user_course_ids} and act_type in #{course_types}) "+
"or (container_type = 'Principal' and act_type= '#{principal_types}' and container_id = #{user.id}) "+
"or (container_type = 'Blog' and act_type= 'BlogComment' and container_id in #{blog_ids})").order('updated_at desc')
ifcontainer_type=="Course"
activities=UserActivity.where("(container_type = 'Course' and container_id in #{user_course_ids} and act_type in #{course_types})").order('updated_at desc')
elsifcontainer_type=="Project"
activities=UserActivity.where("(container_type = 'Project' and container_id in #{user_project_ids} and act_type in #{project_types})").order('updated_at desc')
else
activities=UserActivity.where("(container_type = 'Project' and container_id in #{user_project_ids} and act_type in #{project_types})"+
"or (container_type = 'Course' and container_id in #{user_course_ids} and act_type in #{course_types}) "+
"or (container_type = 'Principal' and act_type= '#{principal_types}' and container_id = #{user.id}) "+
"or (container_type = 'Blog' and act_type= 'BlogComment' and container_id in #{blog_ids})").order('updated_at desc')
@courses=Course.where("syllabus_id is null and is_delete = 0").select{|course|(course.teacher[:lastname].to_s.downcase+course.teacher[:firstname].to_s.downcase).include?(@name)||course.name.include?(@name)}
@courses=Course.where("is_excellent =? or excellent_option =?",1,1)
@ -72,10 +152,42 @@ class AdminController < ApplicationController
courses=Course.find_by_sql("SELECT c.*,count(c.id) FROM courses c,course_activities ca WHERE c.id = ca.course_id AND c.name like '%#{name}%' GROUP BY c.id ORDER BY count(c.id) #{params[:sort]}, c.id desc")
@order=params[:order]
@sort=params[:sort]
elsifparams[:sort]&&(params[:order]=='time')
courses=Course.find_by_sql("SELECT * FROM courses WHERE name like '%#{name}%' ORDER BY time #{params[:sort]},id desc")
courses=Course.find_by_sql("SELECT * FROM courses WHERE name like '%#{name}%' ORDER BY time #{params[:sort]}, id desc")
@order=params[:order]
@sort=params[:sort]
elsifparams[:sort]&&(params[:order]=='post')
courses=Course.find_by_sql("SELECT c.*, count(m.id) count FROM boards b, courses c, messages m WHERE m.board_id = b.id AND b.course_id = c.id AND c.name like '%#{name}%' GROUP BY c.id ORDER BY count #{params[:sort]}, c.id desc")
@order=params[:order]
@sort=params[:sort]
elsifparams[:sort]&&(params[:order]=='res')
courses=Course.find_by_sql("SELECT c.*, count(at.container_id) cat FROM attachments at, courses c WHERE at.container_type = 'Course' AND at.container_id = c.id AND c.name like '%#{name}%' GROUP BY c.id ORDER BY cat #{params[:sort]}, id desc")
@order=params[:order]
@sort=params[:sort]
elsifparams[:sort]&&(params[:order]=='works')
courses=Course.find_by_sql("SELECT c.*, count(hc.id) chc FROM courses c, homework_commons hc,student_works sw WHERE c.id = hc.course_id AND sw.homework_common_id = hc.id AND c.name like '%#{name}%' GROUP BY c.id ORDER BY chc #{params[:sort]}, id desc")
@order=params[:order]
@sort=params[:sort]
elsifparams[:sort]&&(params[:order]=='homework')
courses=Course.find_by_sql("SELECT c.*, count(sw.id) csw FROM student_works sw, courses c, homework_commons hc WHERE c.id = hc.course_id AND sw.id = c.id AND c.name like '%#{name}%' GROUP BY c.id ORDER BY csw #{params[:sort]}, id desc")
@order=params[:order]
@sort=params[:sort]
elsifparams[:sort]&&(params[:order]=='std')
courses=Course.find_by_sql("SELECT c.*, count(sfc.id) sfc FROM courses c, students_for_courses sfc WHERE sfc.course_id = c.id AND c.name like '%#{name}%' GROUP BY c.id ORDER BY sfc #{params[:sort]}, id desc")
@order=params[:order]
@sort=params[:sort]
elsifparams[:sort]&&(params[:order]=='open')
courses=Course.find_by_sql("SELECT * FROM courses WHERE name like '%#{name}%' ORDER BY is_public #{params[:sort]},id desc")
absence_penalty_count=student_work.user.student_works_evaluation_distributions.where("student_work_id IN #{work_ids}").count-student_work.user.student_works_scores.where("student_work_id IN #{work_ids}").count
@stundet_works=search_homework_member@homework.student_works.select("student_works.*,student_works.work_score as score").joins(:user).where("users.id in #{student_in_group}").order("CONVERT(lastname USING gbk) COLLATE gbk_chinese_ci #{@b_sort}, login #{@b_sort}"),@name
elsif@order=='student_id'
@ -409,7 +409,7 @@ class StudentWorkController < ApplicationController
@stundet_works=@homework.student_works.select("student_works.*,student_works.work_score as score").where(:id=>pro.student_work_id)
end
else
@stundet_works=@homework.student_works.select("student_works.*,student_works.work_score as score").where(:user_id=>User.current.id)
@stundet_works=@homework.student_works.has_committed.select("student_works.*,student_works.work_score as score").where(:user_id=>User.current.id)
@ -432,17 +432,17 @@ class StudentWorkController < ApplicationController
my_work=@homework.student_works.select("student_works.*,student_works.work_score as score").where(:id=>pro.student_work_id)
end
else
my_work=@homework.student_works.select("student_works.*,student_works.work_score as score").where(:user_id=>User.current.id)
my_work=@homework.student_works.has_committed.select("student_works.*,student_works.work_score as score").where(:user_id=>User.current.id)
end
ifmy_work.empty?
@stundet_works=[]
else
if@order=='lastname'
@stundet_works=search_homework_member@homework.student_works.select("student_works.*,student_works.work_score as score").joins(:user).where("users.id in #{student_in_group}").order("CONVERT(lastname USING gbk) COLLATE gbk_chinese_ci #{@b_sort}, login #{@b_sort}"),@name
@stundet_works=search_homework_member@homework.student_works.has_committed.select("student_works.*,student_works.work_score as score").joins(:user).where("users.id in #{student_in_group}").order("CONVERT(lastname USING gbk) COLLATE gbk_chinese_ci #{@b_sort}, login #{@b_sort}"),@name
elsif@order=='student_id'
@stundet_works=search_homework_member@homework.student_works.select("student_works.*,student_works.work_score as score").joins(:user).where("users.id in #{student_in_group}").joins("join user_extensions on student_works.user_id = user_extensions.user_id").order("#{@order}#{@b_sort}"),@name
@stundet_works=search_homework_member@homework.student_works.has_committed.select("student_works.*,student_works.work_score as score").joins(:user).where("users.id in #{student_in_group}").joins("join user_extensions on student_works.user_id = user_extensions.user_id").order("#{@order}#{@b_sort}"),@name
else
@stundet_works=search_homework_member@homework.student_works.select("student_works.*,student_works.work_score as score").joins(:user).where("users.id in #{student_in_group}").order("#{@order}#{@b_sort}"),@name
@stundet_works=search_homework_member@homework.student_works.has_committed.select("student_works.*,student_works.work_score as score").joins(:user).where("users.id in #{student_in_group}").order("#{@order}#{@b_sort}"),@name
end
@show_all=true
end
@ -454,9 +454,9 @@ class StudentWorkController < ApplicationController
return
end
@student_work_count=(search_homework_member@homework.student_works.select("student_works.*,student_works.work_score as score").joins(:user).where("users.id in #{student_in_group}").order("#{@order}#{@b_sort}"),@name).count
@student_work_count=(search_homework_member@homework.student_works.has_committed.select("student_works.*,student_works.work_score as score").joins(:user).where("users.id in #{student_in_group}").order("#{@order}#{@b_sort}"),@name).count
@stundet_works=search_homework_member@homework.student_works.select("student_works.*,student_works.work_score as score").joins(:user).order("CONVERT(lastname USING gbk) COLLATE gbk_chinese_ci #{@b_sort}, login #{@b_sort}"),@name
elsif@order=='student_id'
@ -475,7 +475,7 @@ class StudentWorkController < ApplicationController
@stundet_works=@homework.student_works.select("student_works.*,student_works.work_score as score").where(:id=>pro.student_work_id)
end
else
@stundet_works=@homework.student_works.select("student_works.*,student_works.work_score as score").where(:user_id=>User.current.id)
@stundet_works=@homework.student_works.has_committed.select("student_works.*,student_works.work_score as score").where(:user_id=>User.current.id)
@ -498,17 +498,17 @@ class StudentWorkController < ApplicationController
my_work=@homework.student_works.select("student_works.*,student_works.work_score as score").where(:id=>pro.student_work_id)
end
else
my_work=@homework.student_works.select("student_works.*,student_works.work_score as score").where(:user_id=>User.current.id)
my_work=@homework.student_works.has_committed.select("student_works.*,student_works.work_score as score").where(:user_id=>User.current.id)
end
ifmy_work.empty?
@stundet_works=[]
else
if@order=='lastname'
@stundet_works=search_homework_member@homework.student_works.select("student_works.*,student_works.work_score as score").joins(:user).order("CONVERT(lastname USING gbk) COLLATE gbk_chinese_ci #{@b_sort}, login #{@b_sort}"),@name
@stundet_works=search_homework_member@homework.student_works.has_committed.select("student_works.*,student_works.work_score as score").joins(:user).order("CONVERT(lastname USING gbk) COLLATE gbk_chinese_ci #{@b_sort}, login #{@b_sort}"),@name
elsif@order=='student_id'
@stundet_works=search_homework_member@homework.student_works.select("student_works.*,student_works.work_score as score").joins("join user_extensions on student_works.user_id = user_extensions.user_id").order("#{@order}#{@b_sort}"),@name
@stundet_works=search_homework_member@homework.student_works.has_committed.select("student_works.*,student_works.work_score as score").joins("join user_extensions on student_works.user_id = user_extensions.user_id").order("#{@order}#{@b_sort}"),@name
else
@stundet_works=search_homework_member@homework.student_works.select("student_works.*,student_works.work_score as score").order("#{@order}#{@b_sort}"),@name
@stundet_works=search_homework_member@homework.student_works.has_committed.select("student_works.*,student_works.work_score as score").order("#{@order}#{@b_sort}"),@name
end
@show_all=true
end
@ -519,7 +519,7 @@ class StudentWorkController < ApplicationController
render_403
return
end
@student_work_count=(search_homework_member@homework.student_works.select("student_works.*,student_works.work_score as score").order("#{@order}#{@b_sort}"),@name).count
@student_work_count=(search_homework_member@homework.student_works.has_committed.select("student_works.*,student_works.work_score as score").order("#{@order}#{@b_sort}"),@name).count
end
@score=@b_sort=="desc"?"asc":"desc"
@ -547,10 +547,10 @@ class StudentWorkController < ApplicationController
attchments=Attachment.where("(author_id = #{author_id} and is_publish = 1 and container_id is not null and container_type = 'Course')"+
"or (container_type = 'Course' and container_id in (#{user_course_ids.empty??'0':user_course_ids.join(',')})
attchments=Attachment.where("(author_id = #{author_id} and is_publish = 1 and container_id is not null and container_id in (#{user_course_ids.empty??'0':user_course_ids.join(',')}) and container_type = 'Course')"+
"or (container_type = 'Course' and container_id in (#{user_course_ids.empty??'0':user_course_ids.join(',')})