diff --git a/app/controllers/attachments_controller.rb b/app/controllers/attachments_controller.rb
index 0b2ae02b3..330e1cde6 100644
--- a/app/controllers/attachments_controller.rb
+++ b/app/controllers/attachments_controller.rb
@@ -61,6 +61,7 @@ class AttachmentsController < ApplicationController
end
rescue => e
redirect_to "http://" + (Setting.host_name.to_s) +"/file_not_found.html"
+ return
end
#更新资源文件类型
diff --git a/app/controllers/school_controller.rb b/app/controllers/school_controller.rb
index 3fb42b64d..8b3692449 100644
--- a/app/controllers/school_controller.rb
+++ b/app/controllers/school_controller.rb
@@ -99,16 +99,17 @@ class SchoolController < ApplicationController
def search_school
q = "%#{params[:key_word].strip}%"
- if params[:province].nil? or params[:province] == "0"
- @school = School.where("name LIKE ?", q);
- else
- @school = School.where("province = ? AND name LIKE ?", params[:province], q);
- end
+
+ @school = School.where("name LIKE ?", q)
+ @school = @school.where("province = ?", params[:province]) if (params[:province] != '0' )
+
options = ""
@school.each do |s|
options << "
#{s.name}"
end
-
- render :text => options
+
+ options = "#{l(:label_school_not_fount)}
" if options.blank?
+
+ render :text => options
end
end
diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb
index 1c2db7f79..a3d512b5d 100644
--- a/app/controllers/users_controller.rb
+++ b/app/controllers/users_controller.rb
@@ -255,112 +255,63 @@ class UsersController < ApplicationController
#end
def index
-
- @project_type = params[:project_type]
- role = params[:role]
-
+ @status = params[:status] || 1
sort_init 'login', 'asc'
sort_update %w(login firstname lastname mail admin created_on last_login_on)
+ # Deprecation
+ @project_type = params[:project_type]
+
case params[:format]
when 'xml', 'json'
@offset, @limit = api_offset_and_limit({:limit => 15})
else
- @limit = 15#per_page_option
+ @limit = 15
end
- @status = params[:status] || 1
- has = {
- "show_changesets" => true
- }
- # @count = Redmine::Activity::Fetcher.new(User.current, :author => @user).scope_select {|t| !has["show_#{t}"].nil?}.events(nil, nil).count
-
+ # retrieve all users
scope = UserStatus.visible
- case role
+
+ # if role has something, change scope.
+ case params[:role]
when 'teacher'
scope = UserStatus.teacher
when 'student'
scope = UserStatus.student
else
-
end
+ # unknow
scope = scope.in_group(params[:group_id]) if params[:group_id].present?
- # scope.each do |user|
- # UserStatus.create(:changesets_count => user.changesets.count, :watchers_count => user.watcher_users.count, :user_id => user.id)
- # end
+
+ # pagination
@user_count = scope.count
@user_pages = Paginator.new @user_count, @limit, params['page']
- #@offset ||= @user_pages.offset
- #@users = scope.order(sort_clause).limit(@limit).offset(@offset).all
- @user_base_tag = params[:id] ? 'base_users':'base'
- if params[:user_sort_type].present?
- case params[:user_sort_type]
- when '0'
- @offset ||= @user_pages.reverse_offset
- unless @offset == 0
- @users_statuses = scope.offset(@offset).limit(@limit).all.reverse
- else
- limit = @user_count % @limit
- if limit == 0
- limit = @limit
- end
- @users_statuses = scope.offset(@offset).limit(limit).all.reverse
- end
- @s_type = 0
- # @projects = @projects.sort {|x,y| y.created_on <=> x.created_on }
- # @projects = @projects[@offset, @limit]
- when '1'
- @offset ||= @user_pages.reverse_offset
- unless @offset == 0
- @users_statuses = scope.reorder('grade').offset(@offset).limit(@limit).all.reverse
- else
- limit = @user_count % @limit
- if limit == 0
- limit = @limit
- end
- @users_statuses = scope.reorder('grade').offset(@offset).limit(limit).all.reverse
- end
- @s_type = 1
- #sort {|x,y| y.user_status.changesets_count <=> x.user_status.changesets_count}
- #@users = @users[@offset, @limit]
- when '2'
- @offset ||= @user_pages.reverse_offset
- unless @offset == 0
- @users_statuses = scope.reorder('watchers_count').offset(@offset).limit(@limit).all.reverse
- else
- limit = @user_count % @limit
- if limit == 0
- limit = @limit
- end
- @users_statuses = scope.reorder('watchers_count').offset(@offset).limit(limit).all.reverse
- end
- @s_type = 2
- #@users = @users[@offset, @limit]
- end
+ # users classify
+ case params[:user_sort_type]
+ when '0'
+ @s_type = 0
+ @us_ordered = scope.
+ joins("LEFT JOIN users ON user_statuses.user_id = users.id").
+ reorder('users.created_on DESC')
+ when '1'
+ @s_type = 1
+ @us_ordered = scope.reorder('user_statuses.grade DESC')
+ when '2'
+ @s_type = 2
+ @us_ordered = scope.reorder('user_statuses.watchers_count DESC')
else
- @offset ||= @user_pages.reverse_offset
- unless @offset == 0
- @users_statuses = scope.reorder('grade').offset(@offset).limit(@limit).all.reverse
- else
- limit = @user_count % @limit
- if limit == 0
- limit = @limit
- end
- @users_statuses = scope.reorder('grade').offset(@offset).limit(limit).all.reverse
- end
- @s_type = 1
- # @projects = @projects.sort {|x,y| y.created_on <=> x.created_on }
- # @projects = @projects[@offset, @limit]
- end
-
- @users = []
- @users_statuses.each do |obj|
- @users << User.find_by_id("#{obj.user_id}")
+ @s_type = 1
+ @us_ordered = scope.reorder('user_statuses.grade DESC')
end
-
+
+ # limit and offset
+ @users_statuses = @us_ordered.offset(@user_pages.offset).limit(@user_pages.per_page)
+ # get users ActiveRecord
+ @users = @users_statuses.includes(:user).map(&:user)
+ @user_base_tag = params[:id] ? 'base_users':'base'
respond_to do |format|
format.html {
@groups = Group.all.sort
diff --git a/app/models/user_status.rb b/app/models/user_status.rb
index f6dd0c8b6..3b4d38373 100644
--- a/app/models/user_status.rb
+++ b/app/models/user_status.rb
@@ -1,6 +1,6 @@
class UserStatus < ActiveRecord::Base
attr_accessible :changesets_count, :user_id, :watchers_count
- belongs_to :users
+ belongs_to :user
belongs_to :watchers
belongs_to :changesets
validates_presence_of :user_id
diff --git a/config/locales/en.yml b/config/locales/en.yml
index 4c177b58e..a23bbfadb 100644
--- a/config/locales/en.yml
+++ b/config/locales/en.yml
@@ -1469,6 +1469,7 @@ en:
label_teacher: Teacher
label_student: Student
label_school_all: Schools
+ label_school_not_fount: Not found by your input query condition.
label_other: Other
label_gender: Gender
label_gender_male: male
diff --git a/config/locales/zh.yml b/config/locales/zh.yml
index 1b3774d65..2fe9f754e 100644
--- a/config/locales/zh.yml
+++ b/config/locales/zh.yml
@@ -1857,6 +1857,7 @@ zh:
#added by Wen
label_school_all: 中国高校
+ label_school_not_fount: 没有符合的高校信息
label_project_grade: 项目得分
diff --git a/public/file_not_found.html b/public/file_not_found.html
index 5b9b8bc1d..c927e13c0 100644
--- a/public/file_not_found.html
+++ b/public/file_not_found.html
@@ -1,23 +1,40 @@
-
+
-File not found
-
+
+ File not found
+
+
- Sorry, this file can not be downloaded now.
- Trustie Team.
- Back
+
+
Sorry, this file can not be downloaded now.
+
+
+
+
+ Back
+
+