class SakaiInfo::PublishedQuiz

Public Class Methods

all_serializations() click to toggle source
# File lib/sakai-info/quiz.rb, line 381
def self.all_serializations
  [
   :default,
   :sections,
   :items,
   :attempts,
  ]
end
clear_cache() click to toggle source
# File lib/sakai-info/quiz.rb, line 298
def self.clear_cache
  @@cache = {}
end
count_by_site_id(site_id) click to toggle source
# File lib/sakai-info/quiz.rb, line 331
def self.count_by_site_id(site_id)
  PublishedQuiz.query_by_site_id(site_id).count
end
find(id) click to toggle source
# File lib/sakai-info/quiz.rb, line 303
def self.find(id)
  id = id.to_s
  if @@cache[id].nil?
    row = DB.connect[:sam_publishedassessment_t].filter(:id => id.to_i).first
    if row.nil?
      raise ObjectNotFoundException.new(PublishedQuiz, id)
    end

    @@cache[id] = PublishedQuiz.new(row)
  end
  @@cache[id]
end
find_by_site_id(site_id) click to toggle source
# File lib/sakai-info/quiz.rb, line 325
def self.find_by_site_id(site_id)
  PublishedQuiz.query_by_site_id(site_id).all.collect do |row|
    @@cache[row[:id]] = PublishedQuiz.new(row, site_id)
  end
end
find_ids_by_site_id(site_id) click to toggle source
# File lib/sakai-info/quiz.rb, line 335
def self.find_ids_by_site_id(site_id)
  PublishedQuiz.query_by_site_id(site_id).select(:id).all.collect { |row| row[:id] }
end
query_by_site_id(site_id) click to toggle source
# File lib/sakai-info/quiz.rb, line 316
def self.query_by_site_id(site_id)
  db = DB.connect
  db[:sam_publishedassessment_t].
    where(:id =>
          db[:sam_authzdata_t].select(:qualifierid).
          where(:agentid => site_id,
                :functionid => "OWN_PUBLISHED_ASSESSMENT"))
end

Public Instance Methods

access_control_class() click to toggle source
# File lib/sakai-info/quiz.rb, line 355
def access_control_class
  PublishedQuizAccessControl
end
attempt_count() click to toggle source
# File lib/sakai-info/quiz.rb, line 367
def attempt_count
  @attempt_count ||= QuizAttempt.count_by_quiz_id(self.id)
end
attempts() click to toggle source
# File lib/sakai-info/quiz.rb, line 371
def attempts
  @attempts ||= QuizAttempt.find_by_quiz_id(self.id)
end
attempts_serialization() click to toggle source
# File lib/sakai-info/quiz.rb, line 375
def attempts_serialization
  {
    "attempts" => self.attempts.collect { |a| a.serialize(:quiz_summary) }
  }
end
authorization_class() click to toggle source
# File lib/sakai-info/quiz.rb, line 363
def authorization_class
  PublishedQuizAuthorization
end
item_class() click to toggle source
# File lib/sakai-info/quiz.rb, line 351
def item_class
  PublishedQuizItem
end
metadata_class() click to toggle source
# File lib/sakai-info/quiz.rb, line 359
def metadata_class
  PublishedQuizMetadata
end
quiz_type() click to toggle source
# File lib/sakai-info/quiz.rb, line 343
def quiz_type
  "published"
end
section_class() click to toggle source
# File lib/sakai-info/quiz.rb, line 347
def section_class
  PublishedQuizSection
end
user_attempts(user_id) click to toggle source
# File lib/sakai-info/quiz.rb, line 339
def user_attempts(user_id)
  QuizAttempt.find_by_user_id_and_quiz_id(user_id, self.id)
end