class SakaiInfo::QuizAttempt
Constants
- ATTEMPT_STATUS
status definitions from samigo-api/src/java/org/sakaiproject/tool/assessment/data/ifc/grading/AssessmentGradingIfc.java
Attributes
comments[R]
dbrow[R]
quiz_id[R]
status[R]
time_elapsed[R]
total_auto_score[R]
user_id[R]
Public Class Methods
all_serializations()
click to toggle source
# File lib/sakai-info/quiz.rb, line 924 def self.all_serializations [:default, :items] end
clear_cache()
click to toggle source
# File lib/sakai-info/quiz.rb, line 774 def self.clear_cache @@cache = {} end
count_by_quiz_id(quiz_id)
click to toggle source
# File lib/sakai-info/quiz.rb, line 812 def self.count_by_quiz_id(quiz_id) QuizAttempt.query_by_quiz_id(quiz_id).count end
find(id)
click to toggle source
# File lib/sakai-info/quiz.rb, line 795 def self.find(id) id = id.to_s if @@cache[id].nil? row = DB.connect[:sam_assessmentgrading_t].where(:assessmentgradingid => id).first if row.nil? raise ObjectNotFoundException.new(QuizAttempt, id) end @@cache[id] = QuizAttempt.new(row) end @@cache[id] end
find_by_quiz_id(quiz_id)
click to toggle source
# File lib/sakai-info/quiz.rb, line 816 def self.find_by_quiz_id(quiz_id) QuizAttempt.query_by_quiz_id(quiz_id). all.collect { |row| QuizAttempt.new(row) } end
find_by_user_id_and_quiz_id(user_id, quiz_id)
click to toggle source
# File lib/sakai-info/quiz.rb, line 825 def self.find_by_user_id_and_quiz_id(user_id, quiz_id) QuizAttempt.query_by_user_id_and_quiz_id(user_id, quiz_id). all.collect { |row| QuizAttempt.new(row) } end
new(dbrow)
click to toggle source
# File lib/sakai-info/quiz.rb, line 779 def initialize(dbrow) @dbrow = dbrow @id = dbrow[:assessmentgradingid] @submitted_at = dbrow[:submitteddate] @user_id = dbrow[:agentid] @quiz_id = dbrow[:publishedassessmentid] @total_auto_score = dbrow[:totalautoscore] @status = dbrow[:status] @attempted_at = dbrow[:attemptdate] @time_elapsed = dbrow[:timeelapsed] @is_auto_submitted = dbrow[:isautosubmitted] @is_late = dbrow[:islate] @comments = dbrow[:comments] end
query_by_quiz_id(quiz_id)
click to toggle source
# File lib/sakai-info/quiz.rb, line 808 def self.query_by_quiz_id(quiz_id) DB.connect[:sam_assessmentgrading_t].where(:publishedassessmentid => quiz_id) end
query_by_user_id_and_quiz_id(user_id, quiz_id)
click to toggle source
# File lib/sakai-info/quiz.rb, line 821 def self.query_by_user_id_and_quiz_id(user_id, quiz_id) DB.connect[:sam_assessmentgrading_t].where(:publishedassessmentid => quiz_id, :agentid => user_id) end
Public Instance Methods
attempted_at()
click to toggle source
# File lib/sakai-info/quiz.rb, line 854 def attempted_at if @attempted_at.nil? nil else @attempted_at.strftime("%Y-%m-%d %H:%M:%S") end end
auto_submitted?()
click to toggle source
# File lib/sakai-info/quiz.rb, line 846 def auto_submitted? @is_auto_submitted == 1 end
default_serialization()
click to toggle source
# File lib/sakai-info/quiz.rb, line 885 def default_serialization { "id" => self.id, "user" => self.user.serialize(:summary), "quiz" => self.quiz.serialize(:summary), "item_count" => self.item_count, "attempted_at" => self.attempted_at, "submitted_at" => self.submitted_at, "time_elapsed" => self.time_elapsed, "is_auto_submitted" => self.auto_submitted?, "is_late" => self.late?, "status" => self.status, "total_auto_score" => self.total_auto_score } end
item_count()
click to toggle source
# File lib/sakai-info/quiz.rb, line 834 def item_count @item_count ||= QuizAttemptItem.count_by_attempt_id(self.id) end
items()
click to toggle source
# File lib/sakai-info/quiz.rb, line 830 def items @items ||= QuizAttemptItem.find_by_attempt_id(self.id) end
items_serialization()
click to toggle source
# File lib/sakai-info/quiz.rb, line 918 def items_serialization { "items" => self.items.collect { |i| i.serialize(:attempt_summary) } } end
late?()
click to toggle source
# File lib/sakai-info/quiz.rb, line 850 def late? @is_late == 1 end
quiz()
click to toggle source
# File lib/sakai-info/quiz.rb, line 842 def quiz @quiz ||= PublishedQuiz.find(@quiz_id) end
quiz_summary_serialization()
click to toggle source
# File lib/sakai-info/quiz.rb, line 910 def quiz_summary_serialization { "id" => self.id, "eid" => User.get_eid(self.user_id), "status" => self.status } end
submitted_at()
click to toggle source
# File lib/sakai-info/quiz.rb, line 862 def submitted_at if @submitted_at.nil? nil else @submitted_at.strftime("%Y-%m-%d %H:%M:%S") end end
summary_serialization()
click to toggle source
# File lib/sakai-info/quiz.rb, line 901 def summary_serialization { "id" => self.id, "eid" => User.get_eid(self.user_id), "quiz_id" => self.quiz_id, "status" => self.status } end
user()
click to toggle source
# File lib/sakai-info/quiz.rb, line 838 def user @user ||= User.find(@user_id) end