class ExerciseController < ApplicationController layout "base_courses" before_filter :find_course, :only => [:index,:new,:create,:student_exercise_list] def index @is_teacher = User.current.allowed_to?(:as_teacher,@course) if @is_teacher exercises = @course.exercises else exercises = @course.exercises.where(:exercise_status => 1) end @exercises = paginateHelper exercises,20 #分页 respond_to do |format| format.html end end def show @exercise = Exercise.find params[:id] if @exercise.exercise_status != 2 && (!User.current.allowed_to?(:as_teacher,@course) || User.current.admin?) render_403 return end # 问卷消息状态更新 # REDO:问卷添加消息 #已提交问卷的用户不能再访问该界面 if has_commit_exercise?(@poll.id,User.current.id) && (!User.current.admin?) redirect_to poll_index_url(:polls_type => "Course", :polls_group_id => @course.id) else @can_edit_poll = (!has_commit_poll?(@poll.id,User.current.id)) || User.current.admin? @percent = get_percent(@poll,User.current) poll_questions = @poll.poll_questions @poll_questions = paginateHelper poll_questions,5 #分页 respond_to do |format| format.html {render :layout => 'base_courses'} end end end end def new option = { :exercise_name => "", :exercise_description => "", :course_id => @course.id, :exercise_status => 1, :user_id => User.current.id, :start_at => "", :end_at => "" } @exercise = Exercise.create option if @exercise redirect_to edit_exercise_url @exercise.id end end def create end def edit end def update @exercise.exercise_name = params[:exercise_name] @exercise.exercise_description = params[:exercise_name] @exercise.start_at = params[:start_at] @exercise.end_at = params[:end_at] if @exercise.save respond_to do |format| format.js end else render_404 end end def destroy if @exercise && @exercise.destroy if @is_teacher polls = Poll.where("polls_type = 'Course' and polls_group_id = #{@course.id}") else polls = Poll.where("polls_type = 'Course' and polls_group_id = #{@course.id} and polls_status = 2") end @polls = paginateHelper polls,20 #分页 respond_to do |format| format.js end end end #统计结果 def statistics_result end def student_exercise_list @is_teacher = User.current.allowed_to?(:as_teacher,@course) || User.current.admin? @exercise = Exercise.find params[:id] @all_exercises = @course.exercises.order("created_at desc") @exercise_count = @exercise.exercise_users.where('score is not NULL').count if @is_teacher || (!@exercise.exercise_users.where(:user_id => User.current.id).empty? && Time.parse(@exercise.end_time.to_s).strftime("%Y-%m-%d-%H-%M-%S") <= Time.now.strftime("%Y-%m-%d-%H-%M-%S")) @exercise_users_list = @exercise.exercise_users.where('score is not NULL') elsif !@exercise.exercise_users.where(:user_id => User.current.id).empty? && Time.parse(@exercise.end_time.to_s).strftime("%Y-%m-%d-%H-%M-%S") > Time.now.strftime("%Y-%m-%d-%H-%M-%S") @exercise_users_list = @exercise.exercise_users.where("user_id = ? and score is not NULL",User.current.id) else @exercise_users_list = [] end respond_to do |format| format.html end end private def find_course @course = Course.find params[:course_id] rescue Exception => e render_404 end end