module Mobile module Entities class Exercise < Grape::Entity include Redmine::I18n include ApplicationHelper include ApiHelper def self.exercise_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?(::Exercise) if f.respond_to?(field) f.send(field) else case field when :coursename f.course.nil? ? "" : f.course.name when :syllabus_title f.course.nil? ? "" : f.course.syllabus.nil? ? "" : f.course.syllabus.title end end end end end expose :exercise_name expose :exercise_description exercise_expose :coursename #所属班级名 exercise_expose :syllabus_title expose :current_user_is_teacher, if: lambda { |instance, options| options[:user] } do |instance, options| 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