socialforge/app/api/mobile/entities/homework.rb

77 lines
2.4 KiB
Ruby
Raw Normal View History

2015-06-19 15:05:25 +08:00
# 这个模块由于作业模块的改变,里边的注释以及属性不可信
module Mobile
module Entities
class Homework < Grape::Entity
include Redmine::I18n
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)
2015-01-21 11:28:09 +08:00
if f.respond_to?(field)
f.send(field)
else
2015-06-19 15:05:25 +08:00
case field
when :homework_name
f.send(:name)
when :homework_notsubmit_num
f.course.members.count - f.student_works.count
end
2015-01-21 11:28:09 +08:00
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
2015-03-04 17:04:07 +08:00
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
2015-06-19 15:05:25 +08:00
homework_expose :homework_notsubmit_num
2015-06-26 09:18:12 +08:00
expose :submit_student_list ,using:Mobile::Entities::User do |f,opt|
f[:studentlist]
end
end
end
end