Class: SakaiInfo::QuizAttemptItem
Instance Attribute Summary collapse
Attributes inherited from SakaiObject
#id
Class Method Summary
collapse
Instance Method Summary
collapse
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 QuizAttemptItem.
889
890
891
892
893
894
895
896
897
898
|
# File 'lib/sakai-info/quiz.rb', line 889
def initialize(dbrow)
@dbrow = dbrow
@id = dbrow[:itemgradingid]
@submitted_at = dbrow[:submitteddate]
@user_id = dbrow[:agentid]
@attempt_id = dbrow[:assessmentgradingid]
@item_id = dbrow[:publisheditemid]
@answer = dbrow[:answertext]
end
|
Instance Attribute Details
#answer ⇒ Object
Returns the value of attribute answer.
882
883
884
|
# File 'lib/sakai-info/quiz.rb', line 882
def answer
@answer
end
|
#attempt_id ⇒ Object
Returns the value of attribute attempt_id.
882
883
884
|
# File 'lib/sakai-info/quiz.rb', line 882
def attempt_id
@attempt_id
end
|
#dbrow ⇒ Object
Returns the value of attribute dbrow.
882
883
884
|
# File 'lib/sakai-info/quiz.rb', line 882
def dbrow
@dbrow
end
|
#item_id ⇒ Object
Returns the value of attribute item_id.
882
883
884
|
# File 'lib/sakai-info/quiz.rb', line 882
def item_id
@item_id
end
|
#submitted_at ⇒ Object
Returns the value of attribute submitted_at.
882
883
884
|
# File 'lib/sakai-info/quiz.rb', line 882
def submitted_at
@submitted_at
end
|
#user_id ⇒ Object
Returns the value of attribute user_id.
882
883
884
|
# File 'lib/sakai-info/quiz.rb', line 882
def user_id
@user_id
end
|
Class Method Details
.all_serializations ⇒ Object
979
980
981
|
# File 'lib/sakai-info/quiz.rb', line 979
def self.all_serializations
[:default, :attachments]
end
|
.clear_cache ⇒ Object
884
885
886
|
# File 'lib/sakai-info/quiz.rb', line 884
def self.clear_cache
@@cache = {}
end
|
.count_by_attempt_id(attempt_id) ⇒ Object
929
930
931
|
# File 'lib/sakai-info/quiz.rb', line 929
def self.count_by_attempt_id(attempt_id)
QuizAttemptItem.query_by_attempt_id(attempt_id).count
end
|
.find(id) ⇒ Object
912
913
914
915
916
917
918
919
920
921
922
923
|
# File 'lib/sakai-info/quiz.rb', line 912
def self.find(id)
id = id.to_s
if @@cache[id].nil?
row = DB.connect[:sam_itemgrading_t].where(:itemgradingid => id).first
if row.nil?
raise ObjectNotFoundException.new(QuizAttemptItem, id)
end
@@cache[id] = QuizAttemptItem.new(row)
end
@@cache[id]
end
|
.find_by_attempt_id(attempt_id) ⇒ Object
933
934
935
936
|
# File 'lib/sakai-info/quiz.rb', line 933
def self.find_by_attempt_id(attempt_id)
QuizAttemptItem.query_by_attempt_id(attempt_id).
all.collect { |row| QuizAttemptItem.new(row) }
end
|
.query_by_attempt_id(attempt_id) ⇒ Object
925
926
927
|
# File 'lib/sakai-info/quiz.rb', line 925
def self.query_by_attempt_id(attempt_id)
DB.connect[:sam_itemgrading_t].where(:assessmentgradingid => attempt_id)
end
|
Instance Method Details
#attachments ⇒ Object
938
939
940
941
|
# File 'lib/sakai-info/quiz.rb', line 938
def attachments
@attachments ||=
QuizAttemptItemAttachment.find_by_quiz_attempt_item_id(self.id)
end
|
#attachments_serialization ⇒ Object
973
974
975
976
977
|
# File 'lib/sakai-info/quiz.rb', line 973
def attachments_serialization
{
"attachments" => self.attachments.collect{|a|a.serialize(:attempt_item_summary)}
}
end
|
#attempt ⇒ Object
904
905
906
|
# File 'lib/sakai-info/quiz.rb', line 904
def attempt
@attempt ||= QuizAttempt.find(@attempt_id)
end
|
#attempt_summary_serialization ⇒ Object
965
966
967
968
969
970
971
|
# File 'lib/sakai-info/quiz.rb', line 965
def attempt_summary_serialization
{
"id" => self.id,
"item_id" => self.item_id,
"submitted_at" => self.submitted_at,
}
end
|
#default_serialization ⇒ Object
943
944
945
946
947
948
949
950
951
952
953
|
# File 'lib/sakai-info/quiz.rb', line 943
def default_serialization
{
"id" => self.id,
"user" => self.user.serialize(:summary),
"attempt" => self.attempt.serialize(:summary),
"item" => self.item.serialize(:summary),
"answer" => self.answer,
"attachment_count" => self.attachments.length,
"submitted_at" => self.submitted_at,
}
end
|
#item ⇒ Object
908
909
910
|
# File 'lib/sakai-info/quiz.rb', line 908
def item
@item ||= PublishedQuizItem.find(@item_id)
end
|
#summary_serialization ⇒ Object
955
956
957
958
959
960
961
962
963
|
# File 'lib/sakai-info/quiz.rb', line 955
def summary_serialization
{
"id" => self.id,
"eid" => User.get_eid(self.user_id),
"attempt_id" => self.attempt_id,
"item_id" => self.item_id,
"submitted_at" => self.submitted_at,
}
end
|
#user ⇒ Object
900
901
902
|
# File 'lib/sakai-info/quiz.rb', line 900
def user
@user ||= User.find(@user_id)
end
|