Class: SakaiInfo::QuizAttempt
Overview
class PublishedQuizItemAttachment < QuizItemAttachment end
Constant Summary
collapse
- ATTEMPT_STATUS =
status definitions from samigo-api/src/java/org/sakaiproject/tool/assessment/data/ifc/grading/AssessmentGradingIfc.java
{
"0" => "unsubmitted",
"1" => "submitted-ungraded",
"2" => "submitted-auto-graded",
"3" => "submitted-needs-human-attention",
"4" => "needs-resubmit",
"5" => "unsubmitted-but-graded",
"6" => "updated-in-progress",
}
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 QuizAttempt.
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
|
# File 'lib/sakai-info/quiz.rb', line 749
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[:attempted_at]
@time_elapsed = dbrow[:timeelapsed]
@is_auto_submitted = dbrow[:is_auto_submitted]
@is_late = dbrow[:islate]
@comments = dbrow[:comments]
end
|
Instance Attribute Details
#attempted_at ⇒ Object
Returns the value of attribute attempted_at.
741
742
743
|
# File 'lib/sakai-info/quiz.rb', line 741
def attempted_at
@attempted_at
end
|
Returns the value of attribute comments.
742
743
744
|
# File 'lib/sakai-info/quiz.rb', line 742
def
@comments
end
|
#dbrow ⇒ Object
Returns the value of attribute dbrow.
741
742
743
|
# File 'lib/sakai-info/quiz.rb', line 741
def dbrow
@dbrow
end
|
#quiz_id ⇒ Object
Returns the value of attribute quiz_id.
742
743
744
|
# File 'lib/sakai-info/quiz.rb', line 742
def quiz_id
@quiz_id
end
|
#status ⇒ Object
Returns the value of attribute status.
741
742
743
|
# File 'lib/sakai-info/quiz.rb', line 741
def status
@status
end
|
#submitted_at ⇒ Object
Returns the value of attribute submitted_at.
741
742
743
|
# File 'lib/sakai-info/quiz.rb', line 741
def submitted_at
@submitted_at
end
|
#time_elapsed ⇒ Object
Returns the value of attribute time_elapsed.
742
743
744
|
# File 'lib/sakai-info/quiz.rb', line 742
def time_elapsed
@time_elapsed
end
|
#total_auto_score ⇒ Object
Returns the value of attribute total_auto_score.
741
742
743
|
# File 'lib/sakai-info/quiz.rb', line 741
def total_auto_score
@total_auto_score
end
|
#user_id ⇒ Object
Returns the value of attribute user_id.
742
743
744
|
# File 'lib/sakai-info/quiz.rb', line 742
def user_id
@user_id
end
|
Class Method Details
.all_serializations ⇒ Object
876
877
878
|
# File 'lib/sakai-info/quiz.rb', line 876
def self.all_serializations
[:default, :items]
end
|
.clear_cache ⇒ Object
744
745
746
|
# File 'lib/sakai-info/quiz.rb', line 744
def self.clear_cache
@@cache = {}
end
|
.count_by_quiz_id(quiz_id) ⇒ Object
782
783
784
|
# File 'lib/sakai-info/quiz.rb', line 782
def self.count_by_quiz_id(quiz_id)
QuizAttempt.query_by_quiz_id(quiz_id).count
end
|
.find(id) ⇒ Object
765
766
767
768
769
770
771
772
773
774
775
776
|
# File 'lib/sakai-info/quiz.rb', line 765
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) ⇒ Object
.find_by_user_id_and_quiz_id(user_id, quiz_id) ⇒ Object
.query_by_quiz_id(quiz_id) ⇒ Object
778
779
780
|
# File 'lib/sakai-info/quiz.rb', line 778
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) ⇒ Object
791
792
793
|
# File 'lib/sakai-info/quiz.rb', line 791
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
|
Instance Method Details
#auto_submitted? ⇒ Boolean
816
817
818
|
# File 'lib/sakai-info/quiz.rb', line 816
def auto_submitted?
@is_auto_submitted == 1
end
|
#default_serialization ⇒ Object
839
840
841
842
843
844
845
846
847
848
849
850
851
|
# File 'lib/sakai-info/quiz.rb', line 839
def default_serialization
{
"id" => self.id,
"user" => self.user.serialize(:summary),
"quiz" => self.quiz.serialize(:summary),
"item_count" => self.item_count,
"submitted_at" => self.submitted_at,
"is_auto_submitted" => self.auto_submitted?,
"is_late" => self.late?,
"status" => self.status,
"total_auto_score" => self.total_auto_score
}
end
|
#items_serialization ⇒ Object
870
871
872
873
874
|
# File 'lib/sakai-info/quiz.rb', line 870
def items_serialization
{
"items" => self.items.collect { |i| i.serialize(:attempt_summary) }
}
end
|
#late? ⇒ Boolean
820
821
822
|
# File 'lib/sakai-info/quiz.rb', line 820
def late?
@is_late == 1
end
|
#quiz ⇒ Object
812
813
814
|
# File 'lib/sakai-info/quiz.rb', line 812
def quiz
@quiz ||= PublishedQuiz.find(@quiz_id)
end
|
#quiz_summary_serialization ⇒ Object
862
863
864
865
866
867
868
|
# File 'lib/sakai-info/quiz.rb', line 862
def quiz_summary_serialization
{
"id" => self.id,
"eid" => User.get_eid(self.user_id),
"status" => self.status
}
end
|
#summary_serialization ⇒ Object
853
854
855
856
857
858
859
860
|
# File 'lib/sakai-info/quiz.rb', line 853
def summary_serialization
{
"id" => self.id,
"eid" => User.get_eid(self.user_id),
"quiz_id" => self.quiz_id,
"status" => self.status
}
end
|
#user ⇒ Object
808
809
810
|
# File 'lib/sakai-info/quiz.rb', line 808
def user
@user ||= User.find(@user_id)
end
|