Merge branch 'szzh' of http://repository.trustie.net/xianbo/trustie2 into szzh
This commit is contained in:
commit
e344f16f5c
|
@ -26,6 +26,7 @@ class AttachmentsController < ApplicationController
|
||||||
accept_api_auth :show, :download, :upload
|
accept_api_auth :show, :download, :upload
|
||||||
require 'iconv'
|
require 'iconv'
|
||||||
|
|
||||||
|
|
||||||
def show
|
def show
|
||||||
respond_to do |format|
|
respond_to do |format|
|
||||||
format.html {
|
format.html {
|
||||||
|
@ -41,6 +42,13 @@ class AttachmentsController < ApplicationController
|
||||||
render :action => 'diff'
|
render :action => 'diff'
|
||||||
elsif @attachment.is_text? && @attachment.filesize <= Setting.file_max_size_displayed.to_i.kilobyte
|
elsif @attachment.is_text? && @attachment.filesize <= Setting.file_max_size_displayed.to_i.kilobyte
|
||||||
@content = File.new(@attachment.diskfile, "rb").read
|
@content = File.new(@attachment.diskfile, "rb").read
|
||||||
|
# 编码为非 UTF-8先进行间接转码
|
||||||
|
# 部分unicode编码不直接支持转为 UTF-8
|
||||||
|
# modify by nwb
|
||||||
|
if @content.encoding.name != 'UTF-8'
|
||||||
|
@content = @content.force_encoding('GBK')
|
||||||
|
@content = @content.encode('UTF-8')
|
||||||
|
end
|
||||||
render :action => 'file'
|
render :action => 'file'
|
||||||
else
|
else
|
||||||
download
|
download
|
||||||
|
@ -173,7 +181,7 @@ class AttachmentsController < ApplicationController
|
||||||
|
|
||||||
respond_to do |format|
|
respond_to do |format|
|
||||||
# modify by nwb
|
# modify by nwb
|
||||||
if !@attachment.container.nil? && (@attachment.container.is_a?(Course) || @attachment.container.course)
|
if !@attachment.container.nil? && (@attachment.container.has_attribute?(:course) ||@attachment.container.has_attribute?(:course_id) ) &&(@attachment.container.is_a?(Course) || @attachment.container.course)
|
||||||
if @attachment.container.is_a?(News)
|
if @attachment.container.is_a?(News)
|
||||||
format.html { redirect_to_referer_or news_path(@attachment.container) }
|
format.html { redirect_to_referer_or news_path(@attachment.container) }
|
||||||
elsif @course.nil?
|
elsif @course.nil?
|
||||||
|
@ -235,6 +243,9 @@ class AttachmentsController < ApplicationController
|
||||||
attach_copied_obj.container = obj
|
attach_copied_obj.container = obj
|
||||||
attach_copied_obj.created_on = Time.now
|
attach_copied_obj.created_on = Time.now
|
||||||
attach_copied_obj.author_id = User.current.id
|
attach_copied_obj.author_id = User.current.id
|
||||||
|
if attach_copied_obj.attachtype == nil
|
||||||
|
attach_copied_obj.attachtype = 1
|
||||||
|
end
|
||||||
@obj = obj
|
@obj = obj
|
||||||
@save_flag = attach_copied_obj.save
|
@save_flag = attach_copied_obj.save
|
||||||
@save_message = attach_copied_obj.errors.full_messages
|
@save_message = attach_copied_obj.errors.full_messages
|
||||||
|
@ -264,6 +275,9 @@ class AttachmentsController < ApplicationController
|
||||||
attach_copied_obj.container = obj
|
attach_copied_obj.container = obj
|
||||||
attach_copied_obj.created_on = Time.now
|
attach_copied_obj.created_on = Time.now
|
||||||
attach_copied_obj.author_id = User.current.id
|
attach_copied_obj.author_id = User.current.id
|
||||||
|
if attach_copied_obj.attachtype == nil
|
||||||
|
attach_copied_obj.attachtype = 4
|
||||||
|
end
|
||||||
@obj = obj
|
@obj = obj
|
||||||
@save_flag = attach_copied_obj.save
|
@save_flag = attach_copied_obj.save
|
||||||
@save_message = attach_copied_obj.errors.full_messages
|
@save_message = attach_copied_obj.errors.full_messages
|
||||||
|
|
|
@ -263,9 +263,6 @@ class UsersController < ApplicationController
|
||||||
sort_init 'login', 'asc'
|
sort_init 'login', 'asc'
|
||||||
sort_update %w(login firstname lastname mail admin created_on last_login_on)
|
sort_update %w(login firstname lastname mail admin created_on last_login_on)
|
||||||
|
|
||||||
# Deprecation
|
|
||||||
@project_type = params[:project_type]
|
|
||||||
|
|
||||||
case params[:format]
|
case params[:format]
|
||||||
when 'xml', 'json'
|
when 'xml', 'json'
|
||||||
@offset, @limit = api_offset_and_limit({:limit => 15})
|
@offset, @limit = api_offset_and_limit({:limit => 15})
|
||||||
|
@ -274,16 +271,9 @@ class UsersController < ApplicationController
|
||||||
end
|
end
|
||||||
|
|
||||||
# retrieve all users
|
# retrieve all users
|
||||||
scope = UserStatus.visible
|
# 先内连一下statuses 保证排序之后数量一致
|
||||||
|
scope = User.visible.
|
||||||
# if role has something, change scope.
|
joins("INNER JOIN user_statuses ON users.id = user_statuses.user_id")
|
||||||
case params[:role]
|
|
||||||
when 'teacher'
|
|
||||||
scope = UserStatus.teacher
|
|
||||||
when 'student'
|
|
||||||
scope = UserStatus.student
|
|
||||||
else
|
|
||||||
end
|
|
||||||
|
|
||||||
# unknow
|
# unknow
|
||||||
scope = scope.in_group(params[:group_id]) if params[:group_id].present?
|
scope = scope.in_group(params[:group_id]) if params[:group_id].present?
|
||||||
|
@ -295,25 +285,32 @@ class UsersController < ApplicationController
|
||||||
# users classify
|
# users classify
|
||||||
case params[:user_sort_type]
|
case params[:user_sort_type]
|
||||||
when '0'
|
when '0'
|
||||||
|
# 创建时间排序
|
||||||
@s_type = 0
|
@s_type = 0
|
||||||
@us_ordered = scope.
|
@users = scope.reorder('users.created_on DESC')
|
||||||
joins("LEFT JOIN users ON user_statuses.user_id = users.id").
|
|
||||||
reorder('users.created_on DESC')
|
|
||||||
when '1'
|
when '1'
|
||||||
|
# 活跃度排序, 就是所谓的得分情况
|
||||||
@s_type = 1
|
@s_type = 1
|
||||||
@us_ordered = scope.reorder('user_statuses.grade DESC')
|
@users = scope.
|
||||||
|
joins("LEFT JOIN user_scores ON users.id = user_scores.user_id").
|
||||||
|
reorder('user_scores.active DESC')
|
||||||
when '2'
|
when '2'
|
||||||
|
# 粉丝数排序
|
||||||
@s_type = 2
|
@s_type = 2
|
||||||
@us_ordered = scope.reorder('user_statuses.watchers_count DESC')
|
@users = scope.
|
||||||
|
#joins("INNER JOIN user_statuses ON users.id = user_statuses.user_id").
|
||||||
|
reorder('user_statuses.watchers_count DESC')
|
||||||
|
|
||||||
else
|
else
|
||||||
|
# 默认活跃度排序
|
||||||
@s_type = 1
|
@s_type = 1
|
||||||
@us_ordered = scope.reorder('user_statuses.grade DESC')
|
@users = scope.
|
||||||
|
joins("LEFT JOIN user_scores ON users.id = user_scores.user_id").
|
||||||
|
reorder('user_scores.active DESC')
|
||||||
end
|
end
|
||||||
|
|
||||||
# limit and offset
|
# limit and offset
|
||||||
@users_statuses = @us_ordered.offset(@user_pages.offset).limit(@user_pages.per_page)
|
@users = @users.limit(@user_pages.per_page).offset(@user_pages.offset)
|
||||||
# get users ActiveRecord
|
|
||||||
@users = @users_statuses.includes(:user).map(&:user)
|
|
||||||
|
|
||||||
@user_base_tag = params[:id] ? 'base_users':'users_base'
|
@user_base_tag = params[:id] ? 'base_users':'users_base'
|
||||||
respond_to do |format|
|
respond_to do |format|
|
||||||
|
|
|
@ -186,6 +186,7 @@ en:
|
||||||
notice_account_deleted: "Your account has been permanently deleted."
|
notice_account_deleted: "Your account has been permanently deleted."
|
||||||
notice_user_successful_create: "User %{id} created."
|
notice_user_successful_create: "User %{id} created."
|
||||||
|
|
||||||
|
error_attachment_empty: "error in add file"
|
||||||
error_class_period_only_num: "class period can only digital"
|
error_class_period_only_num: "class period can only digital"
|
||||||
error_can_t_load_default_data: "Default configuration could not be loaded: %{value}"
|
error_can_t_load_default_data: "Default configuration could not be loaded: %{value}"
|
||||||
error_scm_not_found: "The entry or revision was not found in the repository."
|
error_scm_not_found: "The entry or revision was not found in the repository."
|
||||||
|
|
|
@ -195,6 +195,7 @@ zh:
|
||||||
notice_gantt_chart_truncated: "这个表是截断的因为它超过了可以显示的最大数量(%{max})"
|
notice_gantt_chart_truncated: "这个表是截断的因为它超过了可以显示的最大数量(%{max})"
|
||||||
|
|
||||||
error_complete_occupation: "请您填写工作单位,否则本系统的部分功能将无法正常使用。"
|
error_complete_occupation: "请您填写工作单位,否则本系统的部分功能将无法正常使用。"
|
||||||
|
error_attachment_empty: "添加文件出错!"
|
||||||
|
|
||||||
error_class_period_only_num: "课程学时只能为数字"
|
error_class_period_only_num: "课程学时只能为数字"
|
||||||
error_can_t_load_default_data: "无法载入默认设置:%{value}"
|
error_can_t_load_default_data: "无法载入默认设置:%{value}"
|
||||||
|
|
33
db/schema.rb
33
db/schema.rb
|
@ -439,6 +439,26 @@ ActiveRecord::Schema.define(:version => 20140728014933) do
|
||||||
t.datetime "updated_at", :null => false
|
t.datetime "updated_at", :null => false
|
||||||
end
|
end
|
||||||
|
|
||||||
|
create_table "gitlab_projects", :force => true do |t|
|
||||||
|
t.integer "gitlab_project_id"
|
||||||
|
t.integer "project_id"
|
||||||
|
t.string "repository_url"
|
||||||
|
t.string "web_url"
|
||||||
|
t.string "localfile_url"
|
||||||
|
t.datetime "created_at", :null => false
|
||||||
|
t.datetime "updated_at", :null => false
|
||||||
|
end
|
||||||
|
|
||||||
|
create_table "gitlab_users", :force => true do |t|
|
||||||
|
t.integer "gitlab_user_id"
|
||||||
|
t.integer "user_id"
|
||||||
|
t.string "email"
|
||||||
|
t.string "password"
|
||||||
|
t.string "login", :null => false
|
||||||
|
t.datetime "created_at", :null => false
|
||||||
|
t.datetime "updated_at", :null => false
|
||||||
|
end
|
||||||
|
|
||||||
create_table "groups_users", :id => false, :force => true do |t|
|
create_table "groups_users", :id => false, :force => true do |t|
|
||||||
t.integer "group_id", :null => false
|
t.integer "group_id", :null => false
|
||||||
t.integer "user_id", :null => false
|
t.integer "user_id", :null => false
|
||||||
|
@ -881,19 +901,6 @@ ActiveRecord::Schema.define(:version => 20140728014933) do
|
||||||
|
|
||||||
add_index "repositories", ["project_id"], :name => "index_repositories_on_project_id"
|
add_index "repositories", ["project_id"], :name => "index_repositories_on_project_id"
|
||||||
|
|
||||||
create_table "rich_rich_files", :force => true do |t|
|
|
||||||
t.datetime "created_at", :null => false
|
|
||||||
t.datetime "updated_at", :null => false
|
|
||||||
t.string "rich_file_file_name"
|
|
||||||
t.string "rich_file_content_type"
|
|
||||||
t.integer "rich_file_file_size"
|
|
||||||
t.datetime "rich_file_updated_at"
|
|
||||||
t.string "owner_type"
|
|
||||||
t.integer "owner_id"
|
|
||||||
t.text "uri_cache"
|
|
||||||
t.string "simplified_type", :default => "file"
|
|
||||||
end
|
|
||||||
|
|
||||||
create_table "roles", :force => true do |t|
|
create_table "roles", :force => true do |t|
|
||||||
t.string "name", :limit => 30, :default => "", :null => false
|
t.string "name", :limit => 30, :default => "", :null => false
|
||||||
t.integer "position", :default => 1
|
t.integer "position", :default => 1
|
||||||
|
|
|
@ -1,11 +1,12 @@
|
||||||
# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
|
# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
|
||||||
|
|
||||||
one:
|
one:
|
||||||
act_id:
|
id: 1
|
||||||
act_type: MyString
|
act_id: 1
|
||||||
user_id:
|
act_type: JournalsForMessage
|
||||||
|
user_id: 5
|
||||||
|
|
||||||
two:
|
two:
|
||||||
act_id:
|
act_id: 2
|
||||||
act_type: MyString
|
act_type: JournalsForMessage
|
||||||
user_id:
|
user_id: 5
|
||||||
|
|
|
@ -1,4 +1,34 @@
|
||||||
jfm_001:
|
jfm_001:
|
||||||
|
id: 1
|
||||||
|
jour_id: 5
|
||||||
|
jour_type: Principal
|
||||||
|
user_id: 2
|
||||||
|
notes:
|
||||||
|
status: 0
|
||||||
|
reply_id: 0
|
||||||
|
created_on: 2014-07-16 15:27:2
|
||||||
|
updated_on: 2014-07-16 15:27:2
|
||||||
|
m_parent_id:
|
||||||
|
is_readed:
|
||||||
|
m_reply_count:
|
||||||
|
m_reply_id:
|
||||||
|
is_comprehensive_evaluation:
|
||||||
|
jfm_002:
|
||||||
|
id: 2
|
||||||
|
jour_id: 5
|
||||||
|
jour_type: Principal
|
||||||
|
user_id: 2
|
||||||
|
notes: 我觉得这个系统挺实用,界面挺简洁美观1!
|
||||||
|
status:
|
||||||
|
reply_id: 0
|
||||||
|
created_on: 2014-07-16 15:27:2
|
||||||
|
updated_on: 2014-07-16 15:27:2
|
||||||
|
m_parent_id:
|
||||||
|
is_readed:
|
||||||
|
m_reply_count:
|
||||||
|
m_reply_id:
|
||||||
|
is_comprehensive_evaluation:
|
||||||
|
jfm_045:
|
||||||
id: 45
|
id: 45
|
||||||
jour_id: 2
|
jour_id: 2
|
||||||
jour_type: Project
|
jour_type: Project
|
||||||
|
@ -64,7 +94,7 @@ jfm_060:
|
||||||
jour_id: 2
|
jour_id: 2
|
||||||
jour_type: Project
|
jour_type: Project
|
||||||
user_id: 2
|
user_id: 2
|
||||||
notes: something very nice
|
notes:
|
||||||
status:
|
status:
|
||||||
reply_id: 0
|
reply_id: 0
|
||||||
created_on: 2013-08-21 07:04:43
|
created_on: 2013-08-21 07:04:43
|
||||||
|
@ -119,4 +149,3 @@ jfm_088:
|
||||||
m_reply_count:
|
m_reply_count:
|
||||||
m_reply_id:
|
m_reply_id:
|
||||||
is_comprehensive_evaluation:
|
is_comprehensive_evaluation:
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,37 @@
|
||||||
|
require File.expand_path('../../test_helper', __FILE__)
|
||||||
|
|
||||||
|
class UsersControllerTest < ActionController::TestCase
|
||||||
|
fixtures :users, :projects, :members, :member_roles, :roles,
|
||||||
|
:custom_fields, :custom_values, :groups_users,
|
||||||
|
:auth_sources,
|
||||||
|
:activities,
|
||||||
|
:journals_for_messages
|
||||||
|
def setup
|
||||||
|
User.current = nil
|
||||||
|
@request.session[:user_id] = 1
|
||||||
|
@request.session[:ctime] = Time.now
|
||||||
|
@request.session[:atime] = Time.now
|
||||||
|
end
|
||||||
|
|
||||||
|
test '#index by non-member' do
|
||||||
|
@request.session[:user_id] = nil
|
||||||
|
get :index
|
||||||
|
assert_response :success
|
||||||
|
assert_template 'index'
|
||||||
|
end
|
||||||
|
|
||||||
|
test '#show by non-member' do
|
||||||
|
@request.session[:user_id] = 8
|
||||||
|
get :show, {id: 5}
|
||||||
|
assert_response :success
|
||||||
|
assert_template 'show'
|
||||||
|
end
|
||||||
|
|
||||||
|
test '#user_newfeedback by non-member' do
|
||||||
|
@request.session[:user_id] = nil
|
||||||
|
get :user_newfeedback, {id: 5}
|
||||||
|
assert_response :success
|
||||||
|
assert_template 'user_newfeedback'
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
Loading…
Reference in New Issue