diff --git a/app/controllers/courses_controller.rb b/app/controllers/courses_controller.rb index a14ade71a..bf964fbaf 100644 --- a/app/controllers/courses_controller.rb +++ b/app/controllers/courses_controller.rb @@ -130,57 +130,64 @@ class CoursesController < ApplicationController def search courses_all = Course.all_course name = params[:name] - (redirect_to courses_url, :notice => l(:label_sumbit_empty);return) if name.blank? - @courses = courses_all.visible - if params[:name].present? - @courses_all = @courses.like(params[:name]) + #(redirect_to courses_url, :notice => l(:label_sumbit_empty);return) if name.blank? + if name.blank? + @courses = [] + @courses_all = [] + @course_count = 0 + @course_pages = Paginator.new @course_count, per_page_option, params['page'] else - @courses_all = @courses; - end - @course_count = @courses_all.count - @course_pages = Paginator.new @course_count, per_page_option, params['page'] + @courses = courses_all.visible + if params[:name].present? + @courses_all = @courses.like(params[:name]) + else + @courses_all = @courses; + end + @course_count = @courses_all.count + @course_pages = Paginator.new @course_count, per_page_option, params['page'] - # 课程的动态数 - @course_activity_count=Hash.new - @courses_all.each do |course| - @course_activity_count[course.id]=0 - end + # 课程的动态数 + @course_activity_count=Hash.new + @courses_all.each do |course| + @course_activity_count[course.id]=0 + end - case params[:course_sort_type] - when '0' - @courses = @courses_all.order("created_at desc") - @s_type = 0 - @courses = @courses.offset(@course_pages.offset).limit(@course_pages.per_page) + case params[:course_sort_type] + when '0' + @courses = @courses_all.order("created_at desc") + @s_type = 0 + @courses = @courses.offset(@course_pages.offset).limit(@course_pages.per_page) - @course_activity_count=get_course_activity @courses,@course_activity_count + @course_activity_count=get_course_activity @courses,@course_activity_count - when '1' - @courses = @courses_all.order("course_ac_para desc") - @s_type = 1 - @courses = @courses.offset(@course_pages.offset).limit(@course_pages.per_page) + when '1' + @courses = @courses_all.order("course_ac_para desc") + @s_type = 1 + @courses = @courses.offset(@course_pages.offset).limit(@course_pages.per_page) - @course_activity_count=get_course_activity @courses,@course_activity_count + @course_activity_count=get_course_activity @courses,@course_activity_count - when '2' - @courses = @courses_all.order("watchers_count desc") - @s_type = 2 - @courses = @courses.offset(@course_pages.offset).limit(@course_pages.per_page) + when '2' + @courses = @courses_all.order("watchers_count desc") + @s_type = 2 + @courses = @courses.offset(@course_pages.offset).limit(@course_pages.per_page) - @course_activity_count=get_course_activity @courses,@course_activity_count + @course_activity_count=get_course_activity @courses,@course_activity_count - when '3' - @course_activity_count=get_course_activity @courses_all,@course_activity_count_array - @courses=handle_course @courses_all,@course_activity_count - @s_type = 3 - @courses = @courses[@course_pages.offset, @course_pages.per_page] + when '3' + @course_activity_count=get_course_activity @courses_all,@course_activity_count_array + @courses=handle_course @courses_all,@course_activity_count + @s_type = 3 + @courses = @courses[@course_pages.offset, @course_pages.per_page] - else - @s_type = 0 - @courses = @courses_all.order("created_at desc") - @courses = @courses.offset(@course_pages.offset).limit(@course_pages.per_page) + else + @s_type = 0 + @courses = @courses_all.order("created_at desc") + @courses = @courses.offset(@course_pages.offset).limit(@course_pages.per_page) - @course_activity_count=get_course_activity @courses,@course_activity_count + @course_activity_count=get_course_activity @courses,@course_activity_count + end end respond_to do |format| @@ -205,7 +212,12 @@ class CoursesController < ApplicationController @is_remote = true q = "#{params[:name].strip}" #(redirect_to stores_url, :notice => l(:label_sumbit_empty);return) if params[:name].blank? - @results = searchStudent_by_name(@course, q) + if params[:incourse] + @results = searchStudent_by_name(@course, q) + elsif params[:ingroup] + @group = CourseGroup.find(params[:search_group_id]) + @results = searchgroupstudent_by_name(@group, @course, q) + end @result_count = @results.count @results = paginateHelper @results @@ -226,6 +238,16 @@ class CoursesController < ApplicationController @course_groups = @course.course_groups end + def deletegroup + CourseGroup.delete(params[:group_id]) + @subPage_title = l :label_student_list + @canShowCode = isCourseTeacher(User.current.id,@course) && params[:role] != '1' + @is_remote = true + @members = searchStudent(@course) + @membercount = @members.count + @course_groups = @course.course_groups + end + def updategroupname @subPage_title = l :label_student_list if params[:group_name] diff --git a/app/controllers/homework_attach_controller.rb b/app/controllers/homework_attach_controller.rb index 4a070cb39..564f60ac3 100644 --- a/app/controllers/homework_attach_controller.rb +++ b/app/controllers/homework_attach_controller.rb @@ -427,7 +427,7 @@ class HomeworkAttachController < ApplicationController @homework = HomeworkAttach.find(params[:homework_id]) #保存评分 - @homework.rate(@m_score,User.current.id,:quality) if @m_score && @m_score != "0" + @homework.rate(@m_score.to_i,User.current.id,:quality) if @m_score && @m_score != "0" #保存评论 @is_comprehensive_evaluation = @is_teacher ? 1 : (@is_anonymous_comments ? 2 : 3) #判断当前评论是老师评论?匿评?留言 if params[:new_form] && params[:new_form][:user_message] && params[:new_form][:user_message] != "" #有没有留言 diff --git a/app/controllers/words_controller.rb b/app/controllers/words_controller.rb index 89fa0e1dc..2fc4fef9a 100644 --- a/app/controllers/words_controller.rb +++ b/app/controllers/words_controller.rb @@ -255,7 +255,7 @@ class WordsController < ApplicationController elsif referer.match(/course/) obj = Course.find_by_id(obj_id) else - raise "create reply obj unknow type.#{referer}" + #raise "create reply obj unknow type.#{referer}" end obj end @@ -263,7 +263,8 @@ class WordsController < ApplicationController def add_reply_adapter options #modify by nwb #添加对课程留言的支持 - obj = obj_distinguish_url_origin + #留言回复应该不关系其所属的Class,而关心的是其所属的父留言 + obj = obj_distinguish_url_origin || User.find_by_id(2) if obj.kind_of? User obj.add_jour(nil, nil, nil, options) elsif obj.kind_of? Project diff --git a/app/helpers/courses_helper.rb b/app/helpers/courses_helper.rb index 3b7e811f6..a1199a55a 100644 --- a/app/helpers/courses_helper.rb +++ b/app/helpers/courses_helper.rb @@ -184,6 +184,18 @@ module CoursesHelper end members end + def searchgroupstudent_by_name(group, project, name) + members = [] + group.members.each do |m| + if m && m.user && m.user.allowed_to?(:as_student,project) + username = m.user[:lastname].to_s + m.user[:firstname].to_s + if(m.user[:login].to_s.include?(name) || m.user.user_extensions[:student_id].to_s.include?(name) || username.include?(name)) + members << m + end + end + end + members + end def searchStudent_by_group group, project #searchPeopleByRoles(project, StudentRoles) members = [] diff --git a/app/models/course_group.rb b/app/models/course_group.rb index c5c2f5c85..144c43c6e 100644 --- a/app/models/course_group.rb +++ b/app/models/course_group.rb @@ -12,7 +12,8 @@ class CourseGroup < ActiveRecord::Base before_destroy :set_member_nil attr_accessible :name - validates :name, :presence => true, :length => {:maximum => 20}, :uniqueness => true + validates :name, :presence => true, :length => {:maximum => 20}, + :uniqueness => {case_sensitive: false} def set_member_nil if self.members && self.members.count > 0 self.members.update_all("course_group_id = 0") diff --git a/app/views/courses/_groups_name.html.erb b/app/views/courses/_groups_name.html.erb index 096e84372..ca0fed9c2 100644 --- a/app/views/courses/_groups_name.html.erb +++ b/app/views/courses/_groups_name.html.erb @@ -1,40 +1,4 @@ -