Class: SakaiInfo::PublishedQuiz
Constant Summary
Constants inherited
from Quiz
Quiz::ACTIVE, Quiz::DELETED, Quiz::INACTIVE, Quiz::RETRACTED_FOR_EDITING
Instance Attribute Summary
Attributes inherited from Quiz
#dbrow, #site, #title
Attributes inherited from SakaiObject
#id
Class Method Summary
collapse
Instance Method Summary
collapse
Methods inherited from Quiz
#access_control, #access_control_summary_serialization, #default_serialization, #initialize, #item_count, #items, #items_serialization, #section_count, #sections, #sections_serialization, #site_summary_serialization, #status, #summary_serialization
Methods included from ModProps
included
Methods inherited from SakaiObject
#dbrow_only_serialization, #dbrow_serialization, #default_serialization, descendants, #object_type_serialization, #serialize, #shell_serialization, #summary_serialization, #to_csv, #to_json, #to_yaml
Class Method Details
.all_serializations ⇒ Object
341
342
343
344
345
346
347
348
|
# File 'lib/sakai-info/quiz.rb', line 341
def self.all_serializations
[
:default,
:sections,
:items,
:attempts,
]
end
|
.clear_cache ⇒ Object
266
267
268
|
# File 'lib/sakai-info/quiz.rb', line 266
def self.clear_cache
@@cache = {}
end
|
.count_by_site_id(site_id) ⇒ Object
299
300
301
|
# File 'lib/sakai-info/quiz.rb', line 299
def self.count_by_site_id(site_id)
PublishedQuiz.query_by_site_id(site_id).count
end
|
.find(id) ⇒ Object
271
272
273
274
275
276
277
278
279
280
281
282
|
# File 'lib/sakai-info/quiz.rb', line 271
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) ⇒ Object
293
294
295
296
297
|
# File 'lib/sakai-info/quiz.rb', line 293
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) ⇒ Object
303
304
305
|
# File 'lib/sakai-info/quiz.rb', line 303
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) ⇒ Object
284
285
286
287
288
289
290
291
|
# File 'lib/sakai-info/quiz.rb', line 284
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
|
Instance Method Details
#access_control_class ⇒ Object
323
324
325
|
# File 'lib/sakai-info/quiz.rb', line 323
def access_control_class
PublishedQuizAccessControl
end
|
#attempt_count ⇒ Object
327
328
329
|
# File 'lib/sakai-info/quiz.rb', line 327
def attempt_count
@attempt_count ||= QuizAttempt.count_by_quiz_id(self.id)
end
|
#attempts ⇒ Object
331
332
333
|
# File 'lib/sakai-info/quiz.rb', line 331
def attempts
@attempts ||= QuizAttempt.find_by_quiz_id(self.id)
end
|
#attempts_serialization ⇒ Object
335
336
337
338
339
|
# File 'lib/sakai-info/quiz.rb', line 335
def attempts_serialization
{
"attempts" => self.attempts.collect { |a| a.serialize(:quiz_summary) }
}
end
|
#item_class ⇒ Object
319
320
321
|
# File 'lib/sakai-info/quiz.rb', line 319
def item_class
PublishedQuizItem
end
|
#quiz_type ⇒ Object
311
312
313
|
# File 'lib/sakai-info/quiz.rb', line 311
def quiz_type
"published"
end
|
#section_class ⇒ Object
315
316
317
|
# File 'lib/sakai-info/quiz.rb', line 315
def section_class
PublishedQuizSection
end
|
#user_attempts(user_id) ⇒ Object
307
308
309
|
# File 'lib/sakai-info/quiz.rb', line 307
def user_attempts(user_id)
QuizAttempt.find_by_user_id_and_quiz_id(user_id, self.id)
end
|