@ -102,22 +102,22 @@ class UsersController < ApplicationController
# issue: 问题; journal: 缺陷状态更新; forum: 公共贴吧: user_feedback: 用户留言; new_reply:新闻回复( comment)
def user_messages
unless User . current . logged?
re nder_403
re direct_to signin_url
return
end
# 当前用户查看消息,则设置消息为已读
#if params[:viewed] == "all "
# course_querys = @user.course_messages
# forge_querys = @user.forge_messages
# user_querys = @user.user_feedback_messages
# forum_querys = @user.memo_messages
# if User.current.id == @user.id
# course_querys.update_all(:viewed => true)
# forge_querys.update_all(:viewed => true)
# user_querys.update_all(:viewed => true)
# forum_querys.update_all(:viewed => true)
# end
# end
if params [ :viewed ] == " all "
course_querys = @user . course_messages
forge_querys = @user . forge_messages
user_querys = @user . user_feedback_messages
forum_querys = @user . memo_messages
if User . current . id == @user . id
course_querys . update_all ( :viewed = > true )
forge_querys . update_all ( :viewed = > true )
user_querys . update_all ( :viewed = > true )
forum_querys . update_all ( :viewed = > true )
end
end
# @new_message_count = forge_querys.count + forum_querys.count + course_querys.count + user_querys.count
case params [ :type ]
when nil
@ -296,12 +296,16 @@ class UsersController < ApplicationController
#用户作业列表
def user_homeworks
@page = params [ :page ] ? params [ :page ] . to_i + 1 : 0
user_course_ids = " ( " + @user . courses . visible . map { | course | course . id } . join ( " , " ) + " ) "
@homework_commons = HomeworkCommon . where ( " course_id in #{ user_course_ids } " ) . order ( " created_at desc " ) . limit ( 10 ) . offset ( @page * 10 )
respond_to do | format |
format . js
format . html { render :layout = > 'new_base_user' }
if User . current == @user
@page = params [ :page ] ? params [ :page ] . to_i + 1 : 0
user_course_ids = " ( " + @user . courses . visible . map { | course | course . id } . join ( " , " ) + " ) "
@homework_commons = HomeworkCommon . where ( " course_id in #{ user_course_ids } " ) . order ( " created_at desc " ) . limit ( 10 ) . offset ( @page * 10 )
respond_to do | format |
format . js
format . html { render :layout = > 'new_base_user' }
end
else
render_403
end
end
@ -345,16 +349,20 @@ class UsersController < ApplicationController
end
def new_user_commit_homework
@user = User . current
@homework = HomeworkCommon . find ( params [ :homework_id ] )
@is_test = params [ :is_test ] == 'true'
@student_work = @homework . student_works . where ( user_id : User . current . id ) . first
if @student_work . nil?
@student_work = StudentWork . new
end
respond_to do | format |
format . js
format . html { render :layout = > 'new_base_user' }
if User . current . logged?
@user = User . current
@homework = HomeworkCommon . find ( params [ :homework_id ] )
@is_test = params [ :is_test ] == 'true'
@student_work = @homework . student_works . where ( user_id : User . current . id ) . first
if @student_work . nil?
@student_work = StudentWork . new
end
respond_to do | format |
format . js
format . html { render :layout = > 'new_base_user' }
end
else
render_403
end
end
@ -364,53 +372,57 @@ class UsersController < ApplicationController
end
def user_new_homework
if params [ :homework_common ]
homework = HomeworkCommon . new
homework . name = params [ :homework_common ] [ :name ]
homework . description = params [ :homework_common ] [ :description ]
homework . end_time = params [ :homework_common ] [ :end_time ] || Time . now
homework . publish_time = Time . now
homework . homework_type = params [ :homework_type ] . to_i || 1
homework . late_penalty = 2
homework . user_id = User . current . id
homework . course_id = params [ :course_id ]
homework . save_attachments ( params [ :attachments ] )
render_attachment_warning_if_needed ( homework )
#匿评作业相关属性
if homework . homework_type == 1
homework_detail_manual = HomeworkDetailManual . new
homework_detail_manual . ta_proportion = params [ :ta_proportion ] || 0 . 6
homework_detail_manual . comment_status = 1
homework_detail_manual . evaluation_start = Time . now
homework_detail_manual . evaluation_end = Time . now
homework_detail_manual . evaluation_num = params [ :evaluation_num ] || 3
homework_detail_manual . absence_penalty = 2
homework . homework_detail_manual = homework_detail_manual
else
homework_detail_programing = HomeworkDetailPrograming . new
homework . homework_detail_programing = homework_detail_programing
homework_detail_programing . ta_proportion = params [ :ta_proportion ] || 0 . 6
homework_detail_programing . language = params [ :program ] [ :language ] . to_i
inputs = params [ :program ] [ :input ]
if Array === inputs
inputs . each_with_index do | val , i |
homework . homework_tests << HomeworkTest . new (
input : val ,
output : params [ :program ] [ :output ] [ i ]
)
if User . current . logged?
if params [ :homework_common ]
homework = HomeworkCommon . new
homework . name = params [ :homework_common ] [ :name ]
homework . description = params [ :homework_common ] [ :description ]
homework . end_time = params [ :homework_common ] [ :end_time ] || Time . now
homework . publish_time = Time . now
homework . homework_type = params [ :homework_type ] . to_i || 1
homework . late_penalty = 2
homework . user_id = User . current . id
homework . course_id = params [ :course_id ]
homework . save_attachments ( params [ :attachments ] )
render_attachment_warning_if_needed ( homework )
#匿评作业相关属性
if homework . homework_type == 1
homework_detail_manual = HomeworkDetailManual . new
homework_detail_manual . ta_proportion = params [ :ta_proportion ] || 0 . 6
homework_detail_manual . comment_status = 1
homework_detail_manual . evaluation_start = Time . now
homework_detail_manual . evaluation_end = Time . now
homework_detail_manual . evaluation_num = params [ :evaluation_num ] || 3
homework_detail_manual . absence_penalty = 2
homework . homework_detail_manual = homework_detail_manual
else
homework_detail_programing = HomeworkDetailPrograming . new
homework . homework_detail_programing = homework_detail_programing
homework_detail_programing . ta_proportion = params [ :ta_proportion ] || 0 . 6
homework_detail_programing . language = params [ :program ] [ :language ] . to_i
inputs = params [ :program ] [ :input ]
if Array === inputs
inputs . each_with_index do | val , i |
homework . homework_tests << HomeworkTest . new (
input : val ,
output : params [ :program ] [ :output ] [ i ]
)
end
end
end
end
end
if homework . save
homework_detail_manual . save if homework_detail_manual
homework_detail_programing . save if homework_detail_programing
redirect_to user_homeworks_user_path ( User . current . id )
if homework . save
homework_detail_manual . save if homework_detail_manual
homework_detail_programing . save if homework_detail_programing
redirect_to user_homeworks_user_path ( User . current . id )
end
end
else
render_403
end
end
@ -541,6 +553,10 @@ class UsersController < ApplicationController
# modified by fq
def user_newfeedback
unless User . current . logged?
redirect_to signin_url
return
end
# 更新用户留言消息状态
@user . journals_for_messages . each do | jour_message |
jour_message . user_feedback_messages . each do | userfeedback_message |
@ -784,11 +800,13 @@ class UsersController < ApplicationController
@user_activities = UserActivity . where ( " container_type = 'Project' and container_id in #{ user_project_ids } and act_type = 'Issue' " ) . order ( 'created_at desc' ) . limit ( 10 ) . offset ( @page * 10 )
when " project_message "
@user_activities = UserActivity . where ( " container_type = 'Project' and container_id in #{ user_project_ids } and act_type = 'Message' " ) . order ( 'created_at desc' ) . limit ( 10 ) . offset ( @page * 10 )
when " current_user "
@user_activities = UserActivity . where ( " user_id = #{ User . current . id } and ((container_type = 'Project' and container_id in #{ user_project_ids } and act_type in #{ project_types } ) or (container_type = 'Course' and container_id in #{ user_course_ids } and act_type in #{ course_types } )) " ) . order ( 'created_at desc' ) . limit ( 10 ) . offset ( @page * 10 )
else
@user_activities = UserActivity . where ( " (container_type = 'Project' and container_id in #{ user_project_ids } and act_type in #{ project_types } ) or (container_type = 'Course' and container_id in #{ user_course_ids } ) and act_type in #{ course_types } " ) . order ( 'created_at desc' ) . limit ( 10 ) . offset ( @page * 10 )
@user_activities = UserActivity . where ( " (container_type = 'Project' and container_id in #{ user_project_ids } and act_type in #{ project_types } ) or (container_type = 'Course' and container_id in #{ user_course_ids } and act_type in #{ course_types } ) " ) . order ( 'created_at desc' ) . limit ( 10 ) . offset ( @page * 10 )
end
else
@user_activities = UserActivity . where ( " (container_type = 'Project' and container_id in #{ user_project_ids } and act_type in #{ project_types } ) or (container_type = 'Course' and container_id in #{ user_course_ids } ) and act_type in #{ course_types } " ) . order ( 'created_at desc' ) . limit ( 10 ) . offset ( @page * 10 )
@user_activities = UserActivity . where ( " (container_type = 'Project' and container_id in #{ user_project_ids } and act_type in #{ project_types } ) or (container_type = 'Course' and container_id in #{ user_course_ids } and act_type in #{ course_types } ) " ) . order ( 'created_at desc' ) . limit ( 10 ) . offset ( @page * 10 )
end
# @user_activities = paginateHelper @user_activities,500
@type = params [ :type ]