@ -102,9 +102,19 @@ 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 OnclickTime . where ( " user_id =? " , User . current ) . first . nil?
message_new_time = OnclickTime . new
message_new_time . user_id = User . current . id
message_new_time . onclick_time = Time . now
message_new_time . save
else
message_new_time = OnclickTime . where ( " user_id =? " , User . current ) . first
message_new_time . update_attributes ( :onclick_time = > Time . now )
end
# 当前用户查看消息,则设置消息为已读
if params [ :viewed ] == " all "
course_querys = @user . course_messages
@ -296,12 +306,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,71 +359,80 @@ class UsersController < ApplicationController
end
def new_user_commit_homework
@user = User . current
@homework = HomeworkCommon . find ( params [ :homework_id ] )
@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
def user_commit_homework
flash [ :notice ] = l ( :notice_successful_create )
redirect_to user_homeworks_user_path( User . current )
redirect_to student_work_index_url( :homework = > params [ :homework ] )
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
@ -506,6 +529,7 @@ class UsersController < ApplicationController
att_copy = atta . copy
att_copy . container_id = nil
att_copy . container_type = nil
att_copy . author_id = User . current . id
att_copy . copy_from = atta . id
att_copy . save
@attachments << att_copy
@ -539,6 +563,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 |
@ -766,7 +794,7 @@ class UsersController < ApplicationController
@page = params [ :page ] ? params [ :page ] . to_i + 1 : 0
user_project_ids = @user . projects . visible . empty? ? " (-1) " : " ( " + @user . projects . visible . map { | project | project . id } . join ( " , " ) + " ) "
user_course_ids = @user . courses . visible . empty? ? " (-1) " : " ( " + @user . courses . visible . map { | course | course . id } . join ( " , " ) + " ) "
course_types = " ('Message','News','HomeworkCommon',' p oll')"
course_types = " ('Message','News','HomeworkCommon',' P oll')"
project_types = " ('Message','Issue') "
if params [ :type ] . present?
case params [ :type ]