@ -320,7 +320,7 @@ class UsersController < ApplicationController
case params [ :agree ]
when 'Y'
ar . update_column ( 'status' , 2 )
@msg . update_attributes ( :apply_result = > 1 , :viewed = > 1 )
@msg . update_attributes ( :apply_result = > 1 , :viewed = > 1 )
ar . course_messages << CourseMessage . new ( :user_id = > ar . user_id , :course_id = > - 1 , :viewed = > false , :apply_result = > 2 , :status = > 1 )
when 'N'
ar . update_column ( 'status' , 3 )
@ -539,28 +539,28 @@ class UsersController < ApplicationController
end
def student_homeworks
if User . current == @user
@page = params [ :page ] ? params [ :page ] . to_i + 1 : 0
user_course_ids = @user . courses . empty? ? " (-1) " :" ( " + @user . courses . visible . map { | course | course . id } . join ( " , " ) + " ) "
#判断当前用户在当前课程的身份
visibleCourse = @user . courses . empty? ? [ ] : @user . courses . where ( " is_delete = 0 " ) . visible
homework_ids = [ ]
visibleCourse . each do | course |
homeworks = HomeworkCommon . where ( " course_id = #{ course . id } and publish_time <= ' #{ Date . today } ' " )
homework_ids << homeworks . pluck ( :id ) unless homeworks . empty?
end
visible_homework_ids = homework_ids . size == 0 ? " (-1) " :" ( " + homework_ids . join ( " , " ) + " ) "
@homework_commons = HomeworkCommon . where ( " id in #{ visible_homework_ids } " ) . order ( " created_at desc " ) . limit ( 10 ) . offset ( @page * 10 )
@is_teacher = User . current . user_extensions && User . current . user_extensions . identity == 0 && User . current . allowed_to? ( :add_course , nil , :global = > true )
@is_in_course = params [ :is_in_course ] . to_i || 0
respond_to do | format |
format . js
format . html { render :layout = > 'new_base_user' }
end
else
render_403
if User . current == @user
@page = params [ :page ] ? params [ :page ] . to_i + 1 : 0
user_course_ids = @user . courses . empty? ? " (-1) " :" ( " + @user . courses . visible . map { | course | course . id } . join ( " , " ) + " ) "
#判断当前用户在当前课程的身份
visibleCourse = @user . courses . empty? ? [ ] : @user . courses . where ( " is_delete = 0 " ) . visible
homework_ids = [ ]
visibleCourse . each do | course |
homeworks = HomeworkCommon . where ( " course_id = #{ course . id } and publish_time <= ' #{ Date . today } ' " )
homework_ids << homeworks . pluck ( :id ) unless homeworks . empty?
end
visible_homework_ids = homework_ids . size == 0 ? " (-1) " :" ( " + homework_ids . join ( " , " ) + " ) "
@homework_commons = HomeworkCommon . where ( " id in #{ visible_homework_ids } " ) . order ( " created_at desc " ) . limit ( 10 ) . offset ( @page * 10 )
@is_teacher = User . current . user_extensions && User . current . user_extensions . identity == 0 && User . current . allowed_to? ( :add_course , nil , :global = > true )
@is_in_course = params [ :is_in_course ] . to_i || 0
respond_to do | format |
format . js
format . html { render :layout = > 'new_base_user' }
end
else
render_403
end
end
def choose_user_course
@ -727,21 +727,21 @@ class UsersController < ApplicationController
end
def show_homework_detail
homework = HomeworkCommon . find params [ :homework ] . to_i
if homework . course . is_public == 0 && ! User . current . allowed_to? ( :as_teacher , homework . course ) && User . current != homework . user
ah = ApplyHomework . where ( " user_id = ? and homework_common_id = ? " , User . current . id , params [ :homework ] . to_i )
if ah . empty?
@status = 2
@homework = nil
elsif ah . first . status != 2
@status = ah . first . status
@homework = nil
elsif ah . first . status == 2
@homework = homework
end
else
@homework = homework
end
@ homework = HomeworkCommon . find params [ :homework ] . to_i
# if homework.course.is_public == 0 && !User.current.allowed_to?(:as_teacher,homework.course) && User.current != homework. user
# ah = ApplyHomework.where("user_id = ? and homework_common_id = ?", User.current.id, params[:homework].to_i )
# if ah.empty?
# @status = 2
# @homework = nil
# elsif ah.first.status != 2
# @status = ah.first.status
# @homework = nil
# elsif ah.first.status == 2
# @homework = homework
# end
# else
# @homework = homework
# end
@is_import = params [ :is_import ]
respond_to do | format |
format . js
@ -1095,22 +1095,27 @@ class UsersController < ApplicationController
#引入资源列表根据关键词过滤
def user_ref_resource_search
search = params [ :search ] . to_s . strip . downcase
if ( params [ :type ] . blank? || params [ :type ] == " 1 " ) #全部
user_course_ids = User . current . courses . map { | c | c . is_delete == 0 && c . id } #我的资源库的话,那么应该是我上传的所有资源 加上 我加入的课程的所有资源 取交集并查询
@attachments = Attachment . where ( " ((author_id = #{ params [ :id ] } and container_type in('Project','Principal','Course','Issue','Document','Message','News','StudentWorkScore','HomewCommon')) " +
" or (container_type = 'Course' and container_id in ( #{ user_course_ids . empty? ? '0' : user_course_ids . join ( ',' ) } ))) and (filename like '% #{ search } %') " ) . order ( " created_on desc " )
elsif params [ :type ] == " 2 " #课程资源
if User . current . id . to_i != params [ :id ] . to_i
render_403
return
end
@resource_id = params [ :mul_id ]
@resource_type = params [ :mul_type ]
@order , @b_sort = params [ :order ] || " created_on " , params [ :sort ] || " asc "
@score = @b_sort == " desc " ? " asc " : " desc "
@user = User . current
@switch_search = params [ :search ] . nil? ? " " : params [ :search ]
search = " % #{ @switch_search . strip . downcase } % "
# 别人的资源库是没有权限去看的
if ( params [ :type ] == " 1 " ) # 我的资源
# 修正:我的资源库的话,那么应该是我上传的所有资源加上,我加入的课程、项目、组织的所有资源
user_course_ids = User . current . courses . map { | c | c . is_delete == 0 && c . id }
@attachments = Attachment . where ( " (author_id = #{ params [ :id ] } and container_type = 'Course') or (container_type = 'Course' and container_id in ( #{ user_course_ids . empty? ? '0' : user_course_ids . join ( ',' ) } )) and (filename like '% #{ search } %') " ) . order ( " created_on desc " )
elsif params [ :type ] == " 3 " #项目资源
@attachments = Attachment . where ( " author_id = #{ params [ :id ] } and container_type = 'Project' and (filename like '% #{ search } %') " ) . order ( " created_on desc " )
elsif params [ :type ] == " 4 " #附件
@attachments = Attachment . where ( " author_id = #{ params [ :id ] } and container_type in('Project','Issue','Document','Message','News','StudentWorkScore','HomewCommon') and (filename like '% #{ search } %') " ) . order ( " created_on desc " )
elsif params [ :type ] == " 5 " #用户资源
@attachments = Attachment . where ( " author_id = #{ params [ :id ] } and container_type = 'Principal' and (filename like '% #{ search } %') " ) . order ( " created_on desc " )
elsif params [ :type ] == " 6 " #公共资源
@attachments = Attachment . where ( " (is_public =1 and is_publish = 1 and container_id is not null) " + " or (author_id = #{ params [ :id ] } and is_publish = 0) " ) . order ( " created_on desc " )
user_project_ids = User . current . projects . map { | p | p . status != 9 && p . id }
# user_org_ids = User.current.organizations.map {|o| o.id}
@attachments = get_my_resources_search ( params [ :id ] , user_course_ids , user_project_ids , @order , @score , search )
elsif ( params [ :type ] . blank? || params [ :type ] == " 6 " ) # 公共资源
# 公共资源库:所有公开资源或者我上传的私有资源
@attachments = get_public_resources_search ( user_course_ids , user_project_ids , @order , @score , search )
end
@type = params [ :type ]
@limit = 7
@ -1982,7 +1987,7 @@ class UsersController < ApplicationController
end
end
elsif params [ :send_ids ] . present?
send_ids = params [ :send_ids ] . split ( " " )
send_ids = params [ :send_ids ] . split ( " , " )
course_ids = params [ :course_ids ]
if course_ids . nil?
@flag = false
@ -2058,18 +2063,18 @@ class UsersController < ApplicationController
# 公共资源库:所有公开资源或者我上传的私有资源
@attachments = get_public_resources ( user_course_ids , user_project_ids , params [ :order ] , @score )
end
elsif params [ :type ] == " 2 "
apply_ids = ApplyResource . where ( " user_id =? and status =? " , params [ :id ] , 2 ) . map { | ar | ar . attachment_id }
if params [ :status ] == " 2 "
resource_type = " 'Course' "
elsif params [ :status ] == " 3 "
resource_type = " 'Project' "
elsif params [ :status ] == " 5 "
resource_type = " 'Principal' "
else
resource_type = " 'Project','OrgSubfield','Principal','Course' "
end
@attachments = get_my_private_resources ( apply_ids , resource_type , @order , @score )
# elsif params[:type] == "2 "
# apply_ids = ApplyResource.where("user_id =? and status =?", params[:id], 2).map { |ar| ar.attachment_id }
# if params[:status] == "2 "
# resource_type = "'Course' "
# elsif params[:status] == "3 "
# resource_type = "'Project' "
# elsif params[:status] == "5 "
# resource_type = "'Principal' "
# else
# resource_type = " 'Project','OrgSubfield','Principal','Course'"
# end
# @attachments = get_my_private_resources(apply_ids, resource_type, @order, @score )
end
@type = params [ :type ]
@limit = 25
@ -2100,7 +2105,8 @@ class UsersController < ApplicationController
project_ids . each do | project_id |
next if ori . blank?
@exist = false
Project . find ( project_id ) . attachments . each do | att | #如果课程中包含该资源
# 如果对象中包含该资源
Project . find ( project_id ) . attachments . each do | att |
if att . id == ori . id || ( ! att . copy_from . nil? && ! ori . copy_from . nil? && att . copy_from == ori . copy_from ) || att . copy_from == ori . id || att . id == ori . copy_from
att . created_on = Time . now
att . save
@ -2133,7 +2139,7 @@ class UsersController < ApplicationController
@ori = ori
end
elsif params [ :send_ids ] . present?
send_ids = params [ :send_ids ] . split ( " " )
send_ids = params [ :send_ids ] . split ( " , " )
project_ids = params [ :projects_ids ]
if project_ids . nil?
@flag = false
@ -2211,18 +2217,18 @@ class UsersController < ApplicationController
# 公共资源库:所有公开资源或者我上传的私有资源
@attachments = get_public_resources ( user_course_ids , user_project_ids , params [ :order ] , @score )
end
elsif params [ :type ] == " 2 "
apply_ids = ApplyResource . where ( " user_id =? and status =? " , params [ :id ] , 2 ) . map { | ar | ar . attachment_id }
if params [ :status ] == " 2 "
resource_type = " 'Course' "
elsif params [ :status ] == " 3 "
resource_type = " 'Project' "
elsif params [ :status ] == " 5 "
resource_type = " 'Principal' "
else
resource_type = " 'Project','OrgSubfield','Principal','Course' "
end
@attachments = get_my_private_resources ( apply_ids , resource_type , @order , @score )
# elsif params[:type] == "2 "
# apply_ids = ApplyResource.where("user_id =? and status =?", params[:id], 2).map { |ar| ar.attachment_id }
# if params[:status] == "2 "
# resource_type = "'Course' "
# elsif params[:status] == "3 "
# resource_type = "'Project' "
# elsif params[:status] == "5 "
# resource_type = "'Principal' "
# else
# resource_type = " 'Project','OrgSubfield','Principal','Course'"
# end
# @attachments = get_my_private_resources(apply_ids, resource_type, @order, @score )
end
@status = params [ :status ]
@type = params [ :type ]
@ -2280,7 +2286,7 @@ class UsersController < ApplicationController
end
@ori = ori
elsif params [ :send_ids ] . present?
send_ids = params [ :send_ids ] . split ( " " )
send_ids = params [ :send_ids ] . split ( " , " )
subfield_id = params [ :subfield ]
if subfield_id . nil?
@flag = false
@ -2352,18 +2358,18 @@ class UsersController < ApplicationController
# 公共资源库:所有公开资源或者我上传的私有资源
@attachments = get_public_resources ( user_course_ids , user_project_ids , params [ :order ] , @score )
end
elsif params [ :type ] == " 2 "
apply_ids = ApplyResource . where ( " user_id =? and status =? " , params [ :id ] , 2 ) . map { | ar | ar . attachment_id }
if params [ :status ] == " 2 "
resource_type = " 'Course' "
elsif params [ :status ] == " 3 "
resource_type = " 'Project' "
elsif params [ :status ] == " 5 "
resource_type = " 'Principal' "
else
resource_type = " 'Project','OrgSubfield','Principal','Course' "
end
@attachments = get_my_private_resources ( apply_ids , resource_type , @order , @score )
# elsif params[:type] == "2 "
# apply_ids = ApplyResource.where("user_id =? and status =?", params[:id], 2).map { |ar| ar.attachment_id }
# if params[:status] == "2 "
# resource_type = "'Course' "
# elsif params[:status] == "3 "
# resource_type = "'Project' "
# elsif params[:status] == "5 "
# resource_type = "'Principal' "
# else
# resource_type = " 'Project','OrgSubfield','Principal','Course'"
# end
# @attachments = get_my_private_resources(apply_ids, resource_type, @order, @score )
end
@type = params [ :type ]
@limit = 25
@ -2700,7 +2706,7 @@ class UsersController < ApplicationController
# 获取公共资源
def get_public_resources user_course_ids , user_project_ids , order , score
attachments = Attachment . where ( " (is_publish = 1 and container_id is not null and container_type in('Project','OrgSubfield','Principal','Course')) " ) . order ( " #{ order . nil? ? 'created_on' : order } #{ score } " )
attachments = Attachment . where ( " (is_publish = 1 and is_public = 1 and container_id is not null and container_type in('Project','OrgSubfield','Principal','Course')) " ) . order ( " #{ order . nil? ? 'created_on' : order } #{ score } " )
end
# 获取公共资源搜索
@ -2725,19 +2731,19 @@ class UsersController < ApplicationController
# 获取我的课程资源
def get_course_resources author_id , user_course_ids , order , score
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 ( ',' ) } )
" or (container_type = 'Course' and container_id in ( #{ user_course_ids . empty? ? '0' : user_course_ids . join ( ',' ) } )
and is_publish = 1 and container_id is not null ) " ).order( " #{order.nil? ? 'created_on' : order} #{score}")
end
# 获取我的私有资源分享结果
def get_my_private_resources apply_ids , resource_type , order , score
attachments = Attachment . where ( " id in ( #{ apply_ids . empty? ? '0' : apply_ids . join ( ',' ) } ) and container_type in( #{ resource_type } ) " ) . order ( " #{ order . nil? ? 'created_on' : order } #{ score } " )
end
# 获取我的私有资源分享搜索结果
def get_my_private_resources_search apply_ids , resource_type , order , score , search
attachments = Attachment . where ( " id in ( #{ apply_ids . empty? ? '0' : apply_ids . join ( ',' ) } ) and container_type in( #{ resource_type } ) and (filename like :p) " , :p = > search ) . order ( " #{ order . nil? ? 'created_on' : order } #{ score } " )
end
# # 获取我的私有资源分享结果
# def get_my_private_resources apply_ids, resource_type, order, score
# attachments = Attachment.where("id in (#{apply_ids.empty? ? '0': apply_ids.join(',')}) and container_type in(#{resource_type})").order("#{order.nil? ? 'created_on' : order} #{score}" )
# end
#
# # 获取我的私有资源分享搜索结果
# def get_my_private_resources_search apply_ids, resource_type, order, score, search
# attachments = Attachment.where("id in (#{apply_ids.empty? ? '0': apply_ids.join(',')}) and container_type in(#{resource_type}) and (filename like :p)", :p => search).order("#{order.nil? ? 'created_on' : order} #{score}" )
# end
# 获取我的课程资源中搜索结果
def get_course_resources_search author_id , user_course_ids , order , score , search
@ -2748,18 +2754,18 @@ class UsersController < ApplicationController
# 获取公共资源中课程资源
def get_course_resources_public user_course_ids , order , score
attchments = Attachment . where ( " (container_type = 'Course'and container_id is not null and is_publish = 1 )" ) . order ( " #{ order . nil? ? 'created_on' : order } #{ score } " )
attchments = Attachment . where ( " (container_type = 'Course'and container_id is not null and is_publish = 1 and is_public =1 )" ) . order ( " #{ order . nil? ? 'created_on' : order } #{ score } " )
end
# 获取公共资源中课程资源搜索结果
def get_course_resources_public_search user_course_ids , order , score , search
attchments = Attachment . where ( " (container_type = 'Course'and container_id is not null and is_publish = 1 ) and (filename like :p)" , :p = > search ) . order ( " #{ order . nil? ? 'created_on' : order } #{ score } " )
attchments = Attachment . where ( " (container_type = 'Course'and container_id is not null and is_publish = 1 and is_public =1 ) and (filename like :p)" , :p = > search ) . order ( " #{ order . nil? ? 'created_on' : order } #{ score } " )
end
# 获取我的项目资源
def get_project_resources author_id , user_project_ids , order , score
attchments = Attachment . where ( " (author_id = #{ author_id } and is_publish = 1 and container_id is not null and container_type = 'Project') " +
" or (container_type = 'Project' and container_id in ( #{ user_project_ids . empty? ? '0' : user_project_ids . join ( ',' ) } )
" or (container_type = 'Project' and container_id in ( #{ user_project_ids . empty? ? '0' : user_project_ids . join ( ',' ) } )
and is_publish = 1 and container_id is not null ) " ).order( " #{order.nil? ? 'created_on' : order} #{score}")
end
@ -2772,12 +2778,12 @@ class UsersController < ApplicationController
# 获取公共资源的项目资源
def get_project_resources_public user_project_ids , order , score
attchments = Attachment . where ( " container_type = 'Project' and container_id is not null " ) . order ( " #{ order . nil? ? 'created_on' : order } #{ score } " )
attchments = Attachment . where ( " container_type = 'Project' and container_id is not null and is_public =1 " ) . order ( " #{ order . nil? ? 'created_on' : order } #{ score } " )
end
# 获取公共资源的项目资源搜索
def get_project_resources_public_search user_project_ids , order , score , search
attchments = Attachment . where ( " (container_type = 'Project' and container_id is not null ) and (filename like :p)" , :p = > search ) . order ( " #{ order . nil? ? 'created_on' : order } #{ score } " )
attchments = Attachment . where ( " (container_type = 'Project' and container_id is not null and is_public =1 ) and (filename like :p)" , :p = > search ) . order ( " #{ order . nil? ? 'created_on' : order } #{ score } " )
end
# 获取我上传的附件
@ -2795,13 +2801,13 @@ class UsersController < ApplicationController
# 获取公共资源中我上传的附件
def get_attch_resources_public order , score
attchments = Attachment . where ( " container_type in('Issue','Document','Message','News','StudentWorkScore','HomewCommon','OrgSubfield','Principal')
and container_id is not null " ).order( " #{order.nil? ? 'created_on' : order} #{score}")
and container_id is not null and is_public = 1 " ).order( " #{order.nil? ? 'created_on' : order} #{score}")
end
# 获取公共资源中我上传的附件
def get_attch_resources_public_search order , score , search
attchments = Attachment . where ( " (container_type in('Issue','Document','Message','News','StudentWorkScore','HomewCommon','OrgSubfield','Principal')
and container_id is not null ) and ( filename like :p ) " , :p => search).order( " #{order.nil? ? 'created_on' : order} #{score}")
and container_id is not null and is_public = 1 ) and ( filename like :p ) " , :p => search).order( " #{order.nil? ? 'created_on' : order} #{score}")
end
# 获取我的用户类型资源
@ -2816,12 +2822,12 @@ class UsersController < ApplicationController
# 获取我的用户类型资源
def get_principal_resources_public order , score
attchments = Attachment . where ( " container_type = 'Principal' and container_id is not null" ) . order ( " #{ order . nil? ? 'created_on' : order } #{ score } " )
attchments = Attachment . where ( " container_type = 'Principal' and is_public =1 and container_id is not null" ) . order ( " #{ order . nil? ? 'created_on' : order } #{ score } " )
end
# 获取我的用户类型资源
def get_principal_resources_public_search order , score , search
attchments = Attachment . where ( " (container_type = 'Principal'and container_id is not null ) and (filename like :p)" , :p = > search ) . order ( " #{ order . nil? ? 'created_on' : order } #{ score } " )
attchments = Attachment . where ( " (container_type = 'Principal'and container_id is not null and is_public =1 ) and (filename like :p)" , :p = > search ) . order ( " #{ order . nil? ? 'created_on' : order } #{ score } " )
end
# 资源库 分为全部 课程资源 项目资源 附件
@ -2863,18 +2869,18 @@ class UsersController < ApplicationController
# 公共资源库:所有公开资源或者我上传的私有资源
@attachments = get_public_resources ( user_course_ids , user_project_ids , params [ :order ] , @score )
end
elsif params [ :type ] == " 2 " # 私有资源
apply_ids = ApplyResource . where ( " user_id =? and status =? " , params [ :id ] , 2 ) . map { | ar | ar . attachment_id }
if params [ :status ] == " 2 "
resource_type = " 'Course' "
elsif params [ :status ] == " 3 "
resource_type = " 'Project' "
elsif params [ :status ] == " 5 "
resource_type = " 'Principal' "
else
resource_type = " 'Project','OrgSubfield','Principal','Course' "
end
@attachments = get_my_private_resources ( apply_ids , resource_type , @order , @score )
# elsif params[:type] == "2" # 私有资源
# apply_ids = ApplyResource.where("user_id =? and status =?", params[:id], 2).map { |ar| ar.attachment_id }
# if params[:status] == "2 "
# resource_type = "'Course' "
# elsif params[:status] == "3 "
# resource_type = "'Project' "
# elsif params[:status] == "5 "
# resource_type = "'Principal' "
# else
# resource_type = " 'Project','OrgSubfield','Principal','Course'"
# end
# @attachments = get_my_private_resources(apply_ids, resource_type, @order, @score )
end
@status = params [ :status ]
@type = params [ :type ]
@ -3052,21 +3058,21 @@ class UsersController < ApplicationController
@attachments = get_principal_resources_public_search ( @order , @score , search )
else
# 公共资源库:所有公开资源或者我上传的私有资源
@attachments = get_public_resources_search ( user_course_ids , user_project_ids , @order , @score , search )
end
elsif params [ :type ] == " 2 " # 私有资源
apply_ids = ApplyResource . where ( " user_id =? and status =? " , params [ :id ] , 2 ) . map { | ar | ar . attachment_id }
if params [ :status ] == " 2 "
resource_type = " 'Course' "
elsif params [ :status ] == " 3 "
resource_type = " 'Project' "
elsif params [ :status ] == " 5 "
resource_type = " 'Principal' "
else
resource_type = " 'Project','OrgSubfield','Principal','Course' "
end
@attachments = get_my_private_resources_search ( apply_ids , resource_type , @order , @score , search )
@attachments
@attachments = get_public_resources_search ( user_course_ids , user_project_ids , @order , @score , search )
end
# elsif params[:type] == "2" # 私有资源
# apply_ids = ApplyResource.where("user_id =? and status =?", params[:id], 2).map { |ar| ar.attachment_id }
# if params[:status] == "2 "
# resource_type = "'Course' "
# elsif params[:status] == "3 "
# resource_type = "'Project' "
# elsif params[:status] == "5 "
# resource_type = "'Principal' "
# else
# resource_type = " 'Project','OrgSubfield','Principal','Course'"
# end
# @attachments = get_my_private_resources_search(apply_ids, resource_type, @order, @score, search )
# @attachments
end
@status = params [ :status ]
@type = params [ :type ]
@ -3121,6 +3127,7 @@ class UsersController < ApplicationController
@orgs = @user . organizations . select { | org | OrgSubfield . where ( " organization_id = #{ org . id } and field_type='Resource' " ) . count > 0 }
end
end
@type = params [ :type ]
@search = params [ :search ]
#这里仅仅是传递需要发送的资源id
@send_id = params [ :send_id ]