|
|
|
@ -102,22 +102,22 @@ class UsersController < ApplicationController
|
|
|
|
|
# issue:问题;journal:缺陷状态更新; forum:公共贴吧: user_feedback: 用户留言; new_reply:新闻回复(comment)
|
|
|
|
|
def user_messages
|
|
|
|
|
unless User.current.logged?
|
|
|
|
|
render_403
|
|
|
|
|
redirect_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
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
@ -507,6 +519,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
|
|
|
|
@ -540,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|
|
|
|
|
@ -767,7 +784,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','poll')"
|
|
|
|
|
course_types = "('Message','News','HomeworkCommon','Poll')"
|
|
|
|
|
project_types = "('Message','Issue')"
|
|
|
|
|
if params[:type].present?
|
|
|
|
|
case params[:type]
|
|
|
|
|