|  |  | # 这个模块由于作业模块的改变,里边的注释以及属性不可信
 | 
						
						
						
							|  |  | module Mobile
 | 
						
						
						
							|  |  |   module Entities
 | 
						
						
						
							|  |  |     class Homework < Grape::Entity
 | 
						
						
						
							|  |  |       include Redmine::I18n
 | 
						
						
						
							|  |  |       include ApplicationHelper
 | 
						
						
						
							|  |  |       include ApiHelper
 | 
						
						
						
							|  |  |       def self.homework_expose(field)
 | 
						
						
						
							|  |  |         expose field do |f,opt|
 | 
						
						
						
							|  |  |           if f.is_a?(Hash) && f.key?(field)
 | 
						
						
						
							|  |  |             if field == :created_on
 | 
						
						
						
							|  |  |               format_time(f[field])
 | 
						
						
						
							|  |  |             else
 | 
						
						
						
							|  |  |               f[field]
 | 
						
						
						
							|  |  |             end
 | 
						
						
						
							|  |  |           elsif f.is_a?(::HomeworkCommon)
 | 
						
						
						
							|  |  |             if f.respond_to?(field)
 | 
						
						
						
							|  |  |               f.send(field)
 | 
						
						
						
							|  |  |             else
 | 
						
						
						
							|  |  |                 case field
 | 
						
						
						
							|  |  |                   when :homework_name
 | 
						
						
						
							|  |  |                     f.send(:name)
 | 
						
						
						
							|  |  |                   when :homework_notsubmit_num
 | 
						
						
						
							|  |  |                     f.course.members.count - f.student_works.count
 | 
						
						
						
							|  |  |                   when :homework_submit_num
 | 
						
						
						
							|  |  |                     f.student_works.count
 | 
						
						
						
							|  |  |                   when :homework_status_student
 | 
						
						
						
							|  |  |                     get_homework_status f
 | 
						
						
						
							|  |  |                   when :homework_times
 | 
						
						
						
							|  |  |                     f.course.homework_commons.index(f) + 1
 | 
						
						
						
							|  |  |                   when :homework_status_teacher
 | 
						
						
						
							|  |  |                     homework_status_desc f
 | 
						
						
						
							|  |  |                   when :student_evaluation_part
 | 
						
						
						
							|  |  |                     get_evaluation_part f ,3
 | 
						
						
						
							|  |  |                   when :ta_evaluation_part
 | 
						
						
						
							|  |  |                     get_evaluation_part f , 2
 | 
						
						
						
							|  |  |                   when :homework_anony_type
 | 
						
						
						
							|  |  |                     val = f.homework_type == 1 && !f.homework_detail_manual.nil?
 | 
						
						
						
							|  |  |                     val
 | 
						
						
						
							|  |  |                   when :coursename
 | 
						
						
						
							|  |  |                     f.course.nil? ? "" : f.course.name
 | 
						
						
						
							|  |  |                 end
 | 
						
						
						
							|  |  |             end
 | 
						
						
						
							|  |  |           end
 | 
						
						
						
							|  |  |         end
 | 
						
						
						
							|  |  |       end
 | 
						
						
						
							|  |  |       #作业id
 | 
						
						
						
							|  |  |       homework_expose :id
 | 
						
						
						
							|  |  |       #课程名称
 | 
						
						
						
							|  |  |       homework_expose :course_name
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |       homework_expose :course_id
 | 
						
						
						
							|  |  |       #作业发布者
 | 
						
						
						
							|  |  |       expose :author,using: Mobile::Entities::User  do |f, opt|
 | 
						
						
						
							|  |  |          f[:author]
 | 
						
						
						
							|  |  |       end
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |       #作业发布者真名
 | 
						
						
						
							|  |  |       homework_expose :author_real_name
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |       #作业次数
 | 
						
						
						
							|  |  |       homework_expose :homework_times
 | 
						
						
						
							|  |  |       #作业名称
 | 
						
						
						
							|  |  |       homework_expose :homework_name
 | 
						
						
						
							|  |  |       #已提交的作业数量
 | 
						
						
						
							|  |  |       homework_expose :homework_count
 | 
						
						
						
							|  |  |       #学生提问数量
 | 
						
						
						
							|  |  |       homework_expose :student_questions_count
 | 
						
						
						
							|  |  |       #作业描述
 | 
						
						
						
							|  |  |       homework_expose :description
 | 
						
						
						
							|  |  |       #作业是否启用匿评功能 0:不启用,1启用
 | 
						
						
						
							|  |  |       homework_expose :open_anonymous_evaluation
 | 
						
						
						
							|  |  |       #作业状态 0:新建,1:已开启匿评,2:已关闭匿评
 | 
						
						
						
							|  |  |       #只有作业启用了匿评功能且当前用户是课程老师且已提交的作品数量大于或等于2才能开启匿评
 | 
						
						
						
							|  |  |       homework_expose :homework_state
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |       homework_expose :created_on
 | 
						
						
						
							|  |  |       homework_expose :deadline
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |       expose :jours,using: Mobile::Entities::Jours  do |f, opt|
 | 
						
						
						
							|  |  |         f[:jours] if f.is_a?(Hash) && f.key?(:jours)
 | 
						
						
						
							|  |  |       end
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |       expose :homework_for_anonymous_comments,using: Mobile::Entities::HomeworkAttach  do |f, opt|
 | 
						
						
						
							|  |  |         f[:homework_for_anonymous_comments] if f.is_a?(Hash) && f.key?(:homework_for_anonymous_comments)
 | 
						
						
						
							|  |  |       end
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |       homework_expose :homework_submit_num
 | 
						
						
						
							|  |  |       homework_expose :homework_notsubmit_num
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |       homework_expose :homework_status_student       #学生看到的作业的状态
 | 
						
						
						
							|  |  |       homework_expose :homework_status_teacher  #老师看到的状态
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |       homework_expose :student_evaluation_part #学生匿评比率
 | 
						
						
						
							|  |  |       homework_expose :ta_evaluation_part #教辅评价比率
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |       homework_expose :homework_anony_type #是否是匿评作业
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |       homework_expose :coursename #所属班级名
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |       expose :current_user_is_teacher, if: lambda { |instance, options| options[:user] } do |instance, options|
 | 
						
						
						
							|  |  |         if instance[:current_user_is_teacher].nil?
 | 
						
						
						
							|  |  |           current_user = options[:user]
 | 
						
						
						
							|  |  |           current_user_is_teacher = false
 | 
						
						
						
							|  |  |           current_user_is_teacher = is_course_teacher(current_user,instance.course)
 | 
						
						
						
							|  |  |           current_user_is_teacher
 | 
						
						
						
							|  |  |         end
 | 
						
						
						
							|  |  |       end
 | 
						
						
						
							|  |  |     end
 | 
						
						
						
							|  |  |   end
 | 
						
						
						
							|  |  | end |