class SakaiInfo::QuizSection

Attributes

dbrow[R]
description[R]
quiz[R]
sequence[R]
status[R]
title[R]
typeid[R]

Public Class Methods

all_serializations() click to toggle source
# File lib/sakai-info/quiz.rb, line 500
def self.all_serializations
  [:default, :items, :mod]
end
clear_cache() click to toggle source
# File lib/sakai-info/quiz.rb, line 400
def self.clear_cache
  @@cache = {}
end
count_by_quiz_id(quiz_id) click to toggle source
# File lib/sakai-info/quiz.rb, line 449
def self.count_by_quiz_id(quiz_id)
  QuizSection.query_by_quiz_id(quiz_id).count
end
find(id) click to toggle source
# File lib/sakai-info/quiz.rb, line 417
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) click to toggle source
# File lib/sakai-info/quiz.rb, line 442
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
new(dbrow) click to toggle source
# File lib/sakai-info/quiz.rb, line 405
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
query_by_quiz_id(quiz_id) click to toggle source
# File lib/sakai-info/quiz.rb, line 433
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

Public Instance Methods

default_serialization() click to toggle source
# File lib/sakai-info/quiz.rb, line 465
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() click to toggle source
# File lib/sakai-info/quiz.rb, line 457
def item_count
  @item_count ||= QuizItem.count_by_section_id(self.id)
end
items() click to toggle source
# File lib/sakai-info/quiz.rb, line 461
def items
  @items ||= QuizItem.find_by_section_id(self.id)
end
items_serialization() click to toggle source
# File lib/sakai-info/quiz.rb, line 494
def items_serialization
  {
    "items" => self.items.collect{|i|i.serialize(:section_summary)}
  }
end
quiz_summary_serialization() click to toggle source
# File lib/sakai-info/quiz.rb, line 488
def quiz_summary_serialization
  result = summary_serialization
  result.delete("quiz_id")
  result
end
section_type() click to toggle source
# File lib/sakai-info/quiz.rb, line 453
def section_type
  nil
end
summary_serialization() click to toggle source
# File lib/sakai-info/quiz.rb, line 479
def summary_serialization
  {
    "id" => self.id,
    "title" => self.title,
    "quiz_id" => self.quiz.id,
    "sequence" => self.sequence
  }
end