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
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