1、用户只可查看自己的作业界面

2、发布作业增加权限判断和登录判断
tmp
sw 10 years ago
parent e0376b5176
commit 089c4ab490

@ -296,12 +296,16 @@ class UsersController < ApplicationController
#用户作业列表 #用户作业列表
def user_homeworks def user_homeworks
@page = params[:page] ? params[:page].to_i + 1 : 0 if User.current == @user
user_course_ids = "(" + @user.courses.visible.map{|course| course.id}.join(",") + ")" @page = params[:page] ? params[:page].to_i + 1 : 0
@homework_commons = HomeworkCommon.where("course_id in #{user_course_ids}").order("created_at desc").limit(10).offset(@page * 10) user_course_ids = "(" + @user.courses.visible.map{|course| course.id}.join(",") + ")"
respond_to do |format| @homework_commons = HomeworkCommon.where("course_id in #{user_course_ids}").order("created_at desc").limit(10).offset(@page * 10)
format.js respond_to do |format|
format.html {render :layout => 'new_base_user'} format.js
format.html {render :layout => 'new_base_user'}
end
else
render_403
end end
end end
@ -345,16 +349,20 @@ class UsersController < ApplicationController
end end
def new_user_commit_homework def new_user_commit_homework
@user = User.current if User.current.logged?
@homework = HomeworkCommon.find(params[:homework_id]) @user = User.current
@is_test = params[:is_test] == 'true' @homework = HomeworkCommon.find(params[:homework_id])
@student_work = @homework.student_works.where(user_id: User.current.id).first @is_test = params[:is_test] == 'true'
if @student_work.nil? @student_work = @homework.student_works.where(user_id: User.current.id).first
@student_work = StudentWork.new if @student_work.nil?
end @student_work = StudentWork.new
respond_to do |format| end
format.js respond_to do |format|
format.html {render :layout => 'new_base_user'} format.js
format.html {render :layout => 'new_base_user'}
end
else
render_403
end end
end end
@ -364,53 +372,57 @@ class UsersController < ApplicationController
end end
def user_new_homework def user_new_homework
if params[:homework_common] if User.current.logged?
homework = HomeworkCommon.new if params[:homework_common]
homework.name = params[:homework_common][:name] homework = HomeworkCommon.new
homework.description = params[:homework_common][:description] homework.name = params[:homework_common][:name]
homework.end_time = params[:homework_common][:end_time] || Time.now homework.description = params[:homework_common][:description]
homework.publish_time = Time.now homework.end_time = params[:homework_common][:end_time] || Time.now
homework.homework_type = params[:homework_type].to_i || 1 homework.publish_time = Time.now
homework.late_penalty = 2 homework.homework_type = params[:homework_type].to_i || 1
homework.user_id = User.current.id homework.late_penalty = 2
homework.course_id = params[:course_id] homework.user_id = User.current.id
homework.course_id = params[:course_id]
homework.save_attachments(params[:attachments])
render_attachment_warning_if_needed(homework) homework.save_attachments(params[:attachments])
render_attachment_warning_if_needed(homework)
#匿评作业相关属性
if homework.homework_type == 1 #匿评作业相关属性
homework_detail_manual = HomeworkDetailManual.new if homework.homework_type == 1
homework_detail_manual.ta_proportion = params[:ta_proportion] || 0.6 homework_detail_manual = HomeworkDetailManual.new
homework_detail_manual.comment_status = 1 homework_detail_manual.ta_proportion = params[:ta_proportion] || 0.6
homework_detail_manual.evaluation_start = Time.now homework_detail_manual.comment_status = 1
homework_detail_manual.evaluation_end = Time.now homework_detail_manual.evaluation_start = Time.now
homework_detail_manual.evaluation_num = params[:evaluation_num] || 3 homework_detail_manual.evaluation_end = Time.now
homework_detail_manual.absence_penalty = 2 homework_detail_manual.evaluation_num = params[:evaluation_num] || 3
homework.homework_detail_manual = homework_detail_manual homework_detail_manual.absence_penalty = 2
else homework.homework_detail_manual = homework_detail_manual
homework_detail_programing = HomeworkDetailPrograming.new else
homework.homework_detail_programing = homework_detail_programing homework_detail_programing = HomeworkDetailPrograming.new
homework_detail_programing.ta_proportion = params[:ta_proportion] || 0.6 homework.homework_detail_programing = homework_detail_programing
homework_detail_programing.language = params[:program][:language].to_i 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 = params[:program][:input]
inputs.each_with_index do |val, i| if Array === inputs
homework.homework_tests << HomeworkTest.new( inputs.each_with_index do |val, i|
input: val, homework.homework_tests << HomeworkTest.new(
output: params[:program][:output][i] input: val,
) output: params[:program][:output][i]
)
end
end end
end
end end
if homework.save if homework.save
homework_detail_manual.save if homework_detail_manual homework_detail_manual.save if homework_detail_manual
homework_detail_programing.save if homework_detail_programing homework_detail_programing.save if homework_detail_programing
redirect_to user_homeworks_user_path(User.current.id) redirect_to user_homeworks_user_path(User.current.id)
end
end end
else
render_403
end end
end end

Loading…
Cancel
Save