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 @@ -
<%= l(:label_course_all) %> | -<%= l(:label_user_location) %> : | ++ + 高校课程实践社区 + + | ++ <%= l(:label_user_location) %> : + | <% if User.current.logged?%> <% if User.current.user_extensions.identity == 0 %> @@ -28,8 +34,12 @@ |
<%= link_to request.host()+"/courses", :controller => 'courses', :action => 'index' %> | -<%=link_to l(:field_homepage), home_path %> > <%=link_to l(:label_course_all), :controller => 'courses', :action => 'index' %> | ++ <%=link_to l(:field_homepage), home_path %> > + + <%=l(:label_courses_management_platform)%> + + |
<%= l(:label_course_practice) %> | -<%= l(:label_user_location) %> : | ++ + 高校课程实践社区 + + | ++ <%= l(:label_user_location) %> : + | <% if User.current.logged?%> <% if User.current.user_extensions.identity == 0 %> @@ -22,8 +28,12 @@ |
<%= link_to request.host() + "/courses", :controller => 'courses', :action => 'index'%> | -<%=link_to l(:field_homepage), home_path %> > <%=link_to l(:label_course_practice), :controller => 'courses', :action => 'index' %> | ++ <%=link_to l(:field_homepage), home_path %> > + + <%=l(:label_courses_management_platform)%> + + |
高校课程实践社区 | -<%= l(:label_user_location) %> : | ++ + 高校课程实践社区 + + | ++ <%= l(:label_user_location) %> : + |
<%= link_to request.host()+"/courses", :controller => 'courses', :action => 'index'%> | -<%=link_to "主页", home_path %> > <%=link_to l(:label_course_practice), :controller => 'courses', :action => 'index' %> > - <%= link_to(homework_attach.bid.courses.first.name.to_s, homework_course_path(homework_attach.bid.courses.first)) if homework_attach.bid.courses.first%> > - <%=link_to(homework_attach.bid.name, course_for_bid_path(homework_attach.bid)) %> > <%= link_to homework_attach.name.nil? ? homework_attach.user.name + "提交的作业" : homework_attach.name,homework_attach_path(homework_attach)%> |
+
+ + <%=link_to "主页", home_path %> > + + <%=l(:label_courses_management_platform)%> + > + + <%= link_to(homework_attach.bid.courses.first.name.to_s, homework_course_path(homework_attach.bid.courses.first)) if homework_attach.bid.courses.first%> + > + <%=link_to(homework_attach.bid.name, course_for_bid_path(homework_attach.bid)) %> > + + <%= link_to homework_attach.name.nil? ? homework_attach.user.name + "提交的作业" : homework_attach.name,homework_attach_path(homework_attach)%> + + + |
<%= link_to "主页", home_path %> > - <%= link_to l(:label_course_practice), :controller => 'courses', :action => 'index' %> + + <%=l(:label_course_practice) %> + > <%= link_to(course.name.to_s, homework_course_path(course)) if course %> diff --git a/config/locales/zh.yml b/config/locales/zh.yml index 156880f13..236af39c1 100644 --- a/config/locales/zh.yml +++ b/config/locales/zh.yml @@ -570,8 +570,11 @@ zh: label_role_new: 新建角色 label_role_and_permissions: 角色和权限 label_member: 成员 + label_search_member_in_group: 班内搜索 + label_search_member_in_course: 课内搜索 label_search_member_count: 共搜索到 label_member_people: 人 + label_delete_group: 确定删除分班? label_current_group: 当前分班 label_limit_groupname: 组别名不能超出20字符 label_limit_groupname_null: 组别名不能为空 diff --git a/config/routes.rb b/config/routes.rb index 835e6be6e..45f3071b3 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -646,7 +646,8 @@ RedmineApp::Application.routes.draw do match "searchmembers", :controller => 'courses', :action => 'searchmembers', :via => [:post,:get] match "searchgroupmembers", :via => [:post, :get] match "updategroupname", :via => [:post, :get] - match "addgroups", :via => [:post, :get] + match "addgroups", :via => [:post, :get] + match 'deletegroup', :via => [:delete] post 'join_in/join_group', :to => 'courses#join_group', :as => 'join_group' delete 'join_in/join_group', :to => 'courses#unjoin_group' end diff --git a/public/images/pic_del.gif b/public/images/pic_del.gif new file mode 100644 index 000000000..436fd1f92 Binary files /dev/null and b/public/images/pic_del.gif differ