class HomeworkCommonController < ApplicationController layout "base_courses" before_filter :find_course, :only => [:index,:new,:create] before_filter :find_homework, :only => [:edit,:update] before_filter :teacher_of_course, :only => [:new, :create, :edit, :update, :destroy, :start_anonymous_comment, :stop_anonymous_comment, :alert_anonymous_comment] def index homeworks = @course.homework_commons @is_teacher = User.current.logged? && (User.current.admin? || User.current.allowed_to?(:as_teacher,@course)) @is_student = User.current.logged? && (User.current.admin? || (User.current.member_of_course?(@course) && !@is_teacher)) @homeworks = paginateHelper homeworks,20 respond_to do |format| format.html end end def new @homework = HomeworkCommon.new @homework.safe_attributes = params[:homework_common] @homework.late_penalty = 2 @homework.end_time = (Time.now + 3600 * 24).strftime('%Y-%m-%d') @homework.publish_time = Time.now.strftime('%Y-%m-%d') #匿评作业相关属性 @homework_detail_manual = HomeworkDetailManual.new @homework_detail_manual.ta_proportion = 0.6 @homework_detail_manual.absence_penalty = 2 @homework_detail_manual.evaluation_num = 3 @homework_detail_manual.evaluation_start = Time.now.strftime('%Y-%m-%d') @homework_detail_manual.evaluation_end = (Time.now + 3600 * 24).strftime('%Y-%m-%d') @homework.homework_detail_manual = @homework_detail_manual respond_to do |format| format.html end end def create 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] homework.publish_time = params[:homework_common][:publish_time] homework.homework_type = params[:homework_common][:homework_type] homework.late_penalty = params[:late_penalty] homework.user_id = User.current.id homework.course_id = @course.id homework.save_attachments(params[:attachments]) render_attachment_warning_if_needed(homework) #匿评作业相关属性 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 = params[:evaluation_start] homework_detail_manual.evaluation_end = params[:evaluation_end] homework_detail_manual.evaluation_num = params[:evaluation_num] homework_detail_manual.absence_penalty = params[:absence_penalty] homework.homework_detail_manual = homework_detail_manual if homework.save respond_to do |format| format.html { flash[:notice] = l(:notice_successful_create) redirect_to homework_common_index_path(:course => @course.id) } end return end end respond_to do |format| format.html { flash[:notice] = l(:notice_failed_create) redirect_to new_homework_common_path(:course => @course.id) } end end def edit respond_to do |format| format.html end end def update @homework.name = params[:homework_common][:name] @homework.description = params[:homework_common][:description] @homework.end_time = params[:homework_common][:end_time] @homework.publish_time = params[:homework_common][:publish_time] @homework.homework_type = params[:homework_common][:homework_type] @homework.late_penalty = params[:late_penalty] @homework.user_id = User.current.id @homework.course_id = @course.id #匿评作业相关属性 @homework_detail_manual.ta_proportion = params[:ta_proportion] || 0.6 @homework_detail_manual.evaluation_start = params[:evaluation_start] @homework_detail_manual.evaluation_end = params[:evaluation_end] @homework_detail_manual.evaluation_num = params[:evaluation_num] @homework_detail_manual.absence_penalty = params[:absence_penalty] if @homework.save && @homework_detail_manual.save respond_to do |format| format.html { flash[:notice] = l(:notice_successful_edit) redirect_to homework_common_index_path(:course => @course.id) } end return else respond_to do |format| format.html { flash[:notice] = l(:notice_failed_edit) redirect_to edit_homework_common_path(@homework) } end end end def destroy end #开启匿评 def start_anonymous_comment end #关闭匿评 def stop_anonymous_comment end #提示 def alert_anonymous_comment respond_to do |format| format.js end end private #获取课程 def find_course @course = Course.find params[:course] rescue render_404 end #获取作业 def find_homework @homework = HomeworkCommon.find params[:id] @homework_detail_manual = @homework.homework_detail_manual @course = @homework.course rescue render_404 end #是不是课程的老师 def teacher_of_course render_403 unless User.current.allowed_to?(:as_teacher,@course) end end