Class: SakaiInfo::PendingQuiz

Inherits:
Quiz show all
Defined in:
lib/sakai-info/quiz.rb

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, all_serializations, #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

all_serializations, #dbrow_only_serialization, #dbrow_serialization, #default_serialization, descendants, #object_type_serialization, #serialize, #shell_serialization, #summary_serialization, #to_csv, #to_json, #to_yaml

Constructor Details

This class inherits a constructor from SakaiInfo::Quiz

Class Method Details

.clear_cacheObject



208
209
210
# File 'lib/sakai-info/quiz.rb', line 208

def self.clear_cache
  @@cache = {}
end

.count_by_site_id(site_id) ⇒ Object



240
241
242
# File 'lib/sakai-info/quiz.rb', line 240

def self.count_by_site_id(site_id)
  PendingQuiz.query_by_site_id(site_id).count
end

.find(id) ⇒ Object



213
214
215
216
217
218
219
220
221
222
223
# File 'lib/sakai-info/quiz.rb', line 213

def self.find(id)
  id = id.to_s
  if @@cache[id].nil?
    row = DB.connect[:sam_assessmentbase_t].filter(:id => id.to_i).first
    if row.nil?
      raise ObjectNotFoundException.new(PendingQuiz, id)
    end
    @@cache[id] = PendingQuiz.new(row)
  end
  @@cache[id]
end

.find_by_site_id(site_id) ⇒ Object



234
235
236
237
238
# File 'lib/sakai-info/quiz.rb', line 234

def self.find_by_site_id(site_id)
  PendingQuiz.query_by_site_id(site_id).all.collect do |row|
    @@cache[row[:id]] = PendingQuiz.new(row, site_id)
  end
end

.find_ids_by_site_id(site_id) ⇒ Object



244
245
246
# File 'lib/sakai-info/quiz.rb', line 244

def self.find_ids_by_site_id(site_id)
  PendingQuiz.query_by_site_id(site_id).select(:id).all.collect { |row| row[:id] }
end

.query_by_site_id(site_id) ⇒ Object



225
226
227
228
229
230
231
232
# File 'lib/sakai-info/quiz.rb', line 225

def self.query_by_site_id(site_id)
  db = DB.connect
  db[:sam_assessmentbase_t].
    where(:id =>
          db[:sam_authzdata_t].select(:qualifierid).
          where(:agentid => site_id,
                :functionid => "EDIT_ASSESSMENT"))
end

Instance Method Details

#access_control_classObject



260
261
262
# File 'lib/sakai-info/quiz.rb', line 260

def access_control_class
  PendingQuizAccessControl
end

#item_classObject



256
257
258
# File 'lib/sakai-info/quiz.rb', line 256

def item_class
  PendingQuizItem
end

#quiz_typeObject



248
249
250
# File 'lib/sakai-info/quiz.rb', line 248

def quiz_type
  "pending"
end

#section_classObject



252
253
254
# File 'lib/sakai-info/quiz.rb', line 252

def section_class
  PendingQuizSection
end