Class: SakaiInfo::QuizSection
Instance Attribute Summary collapse
Attributes inherited from SakaiObject
#id
Class Method Summary
collapse
Instance Method Summary
collapse
Methods included from ModProps
included
Methods inherited from SakaiObject
#dbrow_only_serialization, #dbrow_serialization, descendants, #object_type_serialization, #serialize, #shell_serialization, #to_csv, #to_json, #to_yaml
Constructor Details
Returns a new instance of QuizSection.
365
366
367
368
369
370
371
372
373
374
375
|
# File 'lib/sakai-info/quiz.rb', line 365
def initialize(dbrow)
@dbrow = dbrow
@id = dbrow[:sectionid]
@quiz = Quiz.find(dbrow[:assessmentid])
@sequence = dbrow[:sequence]
@title = dbrow[:title]
@description = dbrow[:description]
@typeid = dbrow[:typeid]
@status = dbrow[:status]
end
|
Instance Attribute Details
#dbrow ⇒ Object
Returns the value of attribute dbrow.
352
353
354
|
# File 'lib/sakai-info/quiz.rb', line 352
def dbrow
@dbrow
end
|
#description ⇒ Object
Returns the value of attribute description.
352
353
354
|
# File 'lib/sakai-info/quiz.rb', line 352
def description
@description
end
|
#quiz ⇒ Object
Returns the value of attribute quiz.
352
353
354
|
# File 'lib/sakai-info/quiz.rb', line 352
def quiz
@quiz
end
|
#sequence ⇒ Object
Returns the value of attribute sequence.
352
353
354
|
# File 'lib/sakai-info/quiz.rb', line 352
def sequence
@sequence
end
|
#status ⇒ Object
Returns the value of attribute status.
352
353
354
|
# File 'lib/sakai-info/quiz.rb', line 352
def status
@status
end
|
#title ⇒ Object
Returns the value of attribute title.
352
353
354
|
# File 'lib/sakai-info/quiz.rb', line 352
def title
@title
end
|
#typeid ⇒ Object
Returns the value of attribute typeid.
352
353
354
|
# File 'lib/sakai-info/quiz.rb', line 352
def typeid
@typeid
end
|
Class Method Details
.all_serializations ⇒ Object
460
461
462
|
# File 'lib/sakai-info/quiz.rb', line 460
def self.all_serializations
[:default, :items, :mod]
end
|
.clear_cache ⇒ Object
360
361
362
|
# File 'lib/sakai-info/quiz.rb', line 360
def self.clear_cache
@@cache = {}
end
|
.count_by_quiz_id(quiz_id) ⇒ Object
409
410
411
|
# File 'lib/sakai-info/quiz.rb', line 409
def self.count_by_quiz_id(quiz_id)
QuizSection.query_by_quiz_id(quiz_id).count
end
|
.find(id) ⇒ Object
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
|
# File 'lib/sakai-info/quiz.rb', line 377
def self.find(id)
id = id.to_s
if @@cache[id].nil?
begin
@@cache[id] = PendingQuizSection.find(id)
rescue ObjectNotFoundException
begin
@@cache[id] = PublishedQuizSection.find(id)
rescue ObjectNotFoundException
raise ObjectNotFoundException.new(QuizSection, id)
end
end
end
@@cache[id]
end
|
.find_by_quiz_id(quiz_id) ⇒ Object
402
403
404
405
406
407
|
# File 'lib/sakai-info/quiz.rb', line 402
def self.find_by_quiz_id(quiz_id)
section_class = Quiz.find(quiz_id).section_class
QuizSection.query_by_quiz_id(quiz_id).all.collect do |row|
section_class.new(row)
end
end
|
.query_by_quiz_id(quiz_id) ⇒ Object
393
394
395
396
397
398
399
400
|
# File 'lib/sakai-info/quiz.rb', line 393
def self.query_by_quiz_id(quiz_id)
table = if Quiz.find(quiz_id).quiz_type == "pending"
:sam_section_t
else
:sam_publishedsection_t
end
DB.connect[table].where(:assessmentid => quiz_id).order(:sequence)
end
|
Instance Method Details
#default_serialization ⇒ Object
425
426
427
428
429
430
431
432
433
434
435
436
437
|
# File 'lib/sakai-info/quiz.rb', line 425
def default_serialization
{
"id" => self.id,
"title" => self.title,
"quiz" => self.quiz.serialize(:summary),
"sequence" => self.sequence,
"item_count" => self.item_count,
"description" => self.description,
"type" => self.section_type,
"typeid" => self.typeid,
"status" => self.status
}
end
|
#item_count ⇒ Object
417
418
419
|
# File 'lib/sakai-info/quiz.rb', line 417
def item_count
@item_count ||= QuizItem.count_by_section_id(self.id)
end
|
#items ⇒ Object
421
422
423
|
# File 'lib/sakai-info/quiz.rb', line 421
def items
@items ||= QuizItem.find_by_section_id(self.id)
end
|
#items_serialization ⇒ Object
454
455
456
457
458
|
# File 'lib/sakai-info/quiz.rb', line 454
def items_serialization
{
"items" => self.items.collect{|i|i.serialize(:section_summary)}
}
end
|
#quiz_summary_serialization ⇒ Object
448
449
450
451
452
|
# File 'lib/sakai-info/quiz.rb', line 448
def quiz_summary_serialization
result = summary_serialization
result.delete("quiz_id")
result
end
|
#section_type ⇒ Object
413
414
415
|
# File 'lib/sakai-info/quiz.rb', line 413
def section_type
nil
end
|
#summary_serialization ⇒ Object
439
440
441
442
443
444
445
446
|
# File 'lib/sakai-info/quiz.rb', line 439
def summary_serialization
{
"id" => self.id,
"title" => self.title,
"quiz_id" => self.quiz.id,
"sequence" => self.sequence
}
end
|