class SakaiInfo::QuizAccessControl

Attributes

dbrow[R]
id[R]

Public Class Methods

new(dbrow) click to toggle source
# File lib/sakai-info/quiz.rb, line 1112
def initialize(dbrow)
  @dbrow = dbrow
  @id = dbrow[:assessmentid]
end

Public Instance Methods

authenticated?() click to toggle source
# File lib/sakai-info/quiz.rb, line 1199
def authenticated?
  not (self.username.nil? and self.password.nil?)
end
automatic_submission?() click to toggle source
# File lib/sakai-info/quiz.rb, line 1215
def automatic_submission?
  @dbrow[:autosubmit] == 1
end
default_serialization() click to toggle source
# File lib/sakai-info/quiz.rb, line 1259
def default_serialization
  result = {
    "id" => self.id,
    "quiz" => self.quiz.serialize(:access_control_summary),
    "unlimited_submissions" => self.unlimited_submissions?,
    "submissions_allowed" => self.submissions_allowed,
    "timed" => self.timed?,
    "time_limit" => self.time_limit,
    "question_layout" => self.question_layout,
    "late_handling" => self.late_handling,
    "item_navigation" => self.item_navigation,
    "item_numbering" => self.item_numbering,
    "release_to" => self.release_to,
    "authenticated" => self.authenticated?,
    "automatic_submission" => self.automatic_submission?,
    "mark_for_review_allowed" => self.mark_for_review_allowed?,
  }
  if not self.timed?
    result.delete("time_limit")
  end
  if self.unlimited_submissions?
    result.delete("submissions_allowed")
  end
  %w(username start_date due_date score_date retract_date feedback_date submission_message final_page_url).each do |field_name|
    value = self.method(field_name.to_sym).call
    if not value.nil?
      result[field_name] = value
    end
  end
  result
end
due_date() click to toggle source
# File lib/sakai-info/quiz.rb, line 1227
def due_date
  if @dbrow[:duedate].nil?
    nil
  else
    @dbrow[:duedate].strftime("%Y-%m-%d %H:%M:%S")
  end
end
feedback_date() click to toggle source
# File lib/sakai-info/quiz.rb, line 1243
def feedback_date
  if @dbrow[:feedbackdate].nil?
    nil
  else
    @dbrow[:feedbackdate].strftime("%Y-%m-%d %H:%M:%S")
  end
end
final_page_url() click to toggle source
# File lib/sakai-info/quiz.rb, line 1191
def final_page_url
  @dbrow[:finalpageurl]
end
item_navigation() click to toggle source
# File lib/sakai-info/quiz.rb, line 1153
def item_navigation
  case @dbrow[:itemnavigation]
  when 1
    "Linear"
  when 2
    "Random"
  else
    @dbrow[:itemnavigation]
  end
end
item_numbering() click to toggle source
# File lib/sakai-info/quiz.rb, line 1164
def item_numbering
  case @dbrow[:itemnumbering]
  when 1
    "Continuous through parts"
  when 2
    "Restart numbering at each part"
  else
    @dbrow[:itemnumbering]
  end
end
late_handling() click to toggle source
# File lib/sakai-info/quiz.rb, line 1142
def late_handling
  case @dbrow[:latehandling]
  when 1
    "Late submissions accepted"
  when 2
    "Late submissions NOT accepted"
  else
    @dbrow[:latehandling]
  end
end
mark_for_review_allowed?() click to toggle source
# File lib/sakai-info/quiz.rb, line 1195
def mark_for_review_allowed?
  @dbrow[:markforreview] == 1
end
password() click to toggle source
# File lib/sakai-info/quiz.rb, line 1187
def password
  @dbrow[:password]
end
question_layout() click to toggle source
# File lib/sakai-info/quiz.rb, line 1129
def question_layout
  case @dbrow[:assessmentformat]
  when 1
    "One question per page"
  when 2
    "One part per page"
  when 3
    "Single page quiz"
  else
    @dbrow[:assessmentformat]
  end
end
quiz_summary_serialization() click to toggle source
# File lib/sakai-info/quiz.rb, line 1291
def quiz_summary_serialization
  result = default_serialization
  result.delete("quiz")
  result.delete("id")
  result
end
release_to() click to toggle source
# File lib/sakai-info/quiz.rb, line 1179
def release_to
  @dbrow[:releaseto]
end
retract_date() click to toggle source
# File lib/sakai-info/quiz.rb, line 1235
def retract_date
  if @dbrow[:retractdate].nil?
    nil
  else
    @dbrow[:retractdate].strftime("%Y-%m-%d %H:%M:%S")
  end
end
score_date() click to toggle source
# File lib/sakai-info/quiz.rb, line 1251
def score_date
  if @dbrow[:scoredate].nil?
    nil
  else
    @dbrow[:scoredate].strftime("%Y-%m-%d %H:%M:%S")
  end
end
start_date() click to toggle source
# File lib/sakai-info/quiz.rb, line 1219
def start_date
  if @dbrow[:startdate].nil?
    nil
  else
    @dbrow[:startdate].strftime("%Y-%m-%d %H:%M:%S")
  end
end
submission_message() click to toggle source
# File lib/sakai-info/quiz.rb, line 1175
def submission_message
  @dbrow[:submissionmessage]
end
submissions_allowed() click to toggle source
# File lib/sakai-info/quiz.rb, line 1121
def submissions_allowed
  @dbrow[:submissionsallowed]
end
submissions_saved() click to toggle source
# File lib/sakai-info/quiz.rb, line 1125
def submissions_saved
  @dbrow[:submissionssaved] == 1
end
summary_serialization() click to toggle source
# File lib/sakai-info/quiz.rb, line 1298
def summary_serialization
  {
    "id" => self.id,
  }
end
time_limit() click to toggle source
# File lib/sakai-info/quiz.rb, line 1203
def time_limit
  @dbrow[:timelimit]
end
timed?() click to toggle source
# File lib/sakai-info/quiz.rb, line 1207
def timed?
  if time_limit.nil?
    false
  else
    time_limit > 0
  end
end
unlimited_submissions?() click to toggle source
# File lib/sakai-info/quiz.rb, line 1117
def unlimited_submissions?
  @dbrow[:unlimitedsubmissions] == 1
end
username() click to toggle source
# File lib/sakai-info/quiz.rb, line 1183
def username
  @dbrow[:username]
end