class SakaiInfo::QuizAttemptItem

Attributes

answer[R]
attempt_id[R]
dbrow[R]
item_id[R]
submitted_at[R]
user_id[R]

Public Class Methods

all_serializations() click to toggle source
# File lib/sakai-info/quiz.rb, line 1027
def self.all_serializations
  [:default, :attachments]
end
clear_cache() click to toggle source
# File lib/sakai-info/quiz.rb, line 932
def self.clear_cache
  @@cache = {}
end
count_by_attempt_id(attempt_id) click to toggle source
# File lib/sakai-info/quiz.rb, line 977
def self.count_by_attempt_id(attempt_id)
  QuizAttemptItem.query_by_attempt_id(attempt_id).count
end
find(id) click to toggle source
# File lib/sakai-info/quiz.rb, line 960
def self.find(id)
  id = id.to_s
  if @@cache[id].nil?
    row = DB.connect[:sam_itemgrading_t].where(:itemgradingid => id).first
    if row.nil?
      raise ObjectNotFoundException.new(QuizAttemptItem, id)
    end

    @@cache[id] = QuizAttemptItem.new(row)
  end
  @@cache[id]
end
find_by_attempt_id(attempt_id) click to toggle source
# File lib/sakai-info/quiz.rb, line 981
def self.find_by_attempt_id(attempt_id)
  QuizAttemptItem.query_by_attempt_id(attempt_id).
    all.collect { |row| QuizAttemptItem.new(row) }
end
new(dbrow) click to toggle source
# File lib/sakai-info/quiz.rb, line 937
def initialize(dbrow)
  @dbrow = dbrow

  @id = dbrow[:itemgradingid]
  @submitted_at = dbrow[:submitteddate]
  @user_id = dbrow[:agentid]
  @attempt_id = dbrow[:assessmentgradingid]
  @item_id = dbrow[:publisheditemid]
  @answer = dbrow[:answertext]
end
query_by_attempt_id(attempt_id) click to toggle source
# File lib/sakai-info/quiz.rb, line 973
def self.query_by_attempt_id(attempt_id)
  DB.connect[:sam_itemgrading_t].where(:assessmentgradingid => attempt_id)
end

Public Instance Methods

attachments() click to toggle source
# File lib/sakai-info/quiz.rb, line 986
def attachments
  @attachments ||=
    QuizAttemptItemAttachment.find_by_quiz_attempt_item_id(self.id)
end
attachments_serialization() click to toggle source
# File lib/sakai-info/quiz.rb, line 1021
def attachments_serialization
  {
    "attachments" => self.attachments.collect{|a|a.serialize(:attempt_item_summary)}
  }
end
attempt() click to toggle source
# File lib/sakai-info/quiz.rb, line 952
def attempt
  @attempt ||= QuizAttempt.find(@attempt_id)
end
attempt_summary_serialization() click to toggle source
# File lib/sakai-info/quiz.rb, line 1013
def attempt_summary_serialization
  {
    "id" => self.id,
    "item_id" => self.item_id,
    "submitted_at" => self.submitted_at,
  }
end
default_serialization() click to toggle source
# File lib/sakai-info/quiz.rb, line 991
def default_serialization
  {
    "id" => self.id,
    "user" => self.user.serialize(:summary),
    "attempt" => self.attempt.serialize(:summary),
    "item" => self.item.serialize(:summary),
    "answer" => self.answer,
    "attachment_count" => self.attachments.length,
    "submitted_at" => self.submitted_at,
  }
end
item() click to toggle source
# File lib/sakai-info/quiz.rb, line 956
def item
  @item ||= PublishedQuizItem.find(@item_id)
end
summary_serialization() click to toggle source
# File lib/sakai-info/quiz.rb, line 1003
def summary_serialization
  {
    "id" => self.id,
    "eid" => User.get_eid(self.user_id),
    "attempt_id" => self.attempt_id,
    "item_id" => self.item_id,
    "submitted_at" => self.submitted_at,
  }
end
user() click to toggle source
# File lib/sakai-info/quiz.rb, line 948
def user
  @user ||= User.find(@user_id)
end