Class: SakaiInfo::QuizAttemptItem

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

Constant Summary collapse

@@cache =
{}

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, #object_type_serialization, #serialize, #to_json, #to_yaml

Constructor Details

#initialize(dbrow) ⇒ QuizAttemptItem

Returns a new instance of QuizAttemptItem.



689
690
691
692
693
694
695
696
697
698
# File 'lib/sakai-info/quiz.rb', line 689

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

#answerObject (readonly)

Returns the value of attribute answer.



687
688
689
# File 'lib/sakai-info/quiz.rb', line 687

def answer
  @answer
end

#attempt_idObject (readonly)

Returns the value of attribute attempt_id.



687
688
689
# File 'lib/sakai-info/quiz.rb', line 687

def attempt_id
  @attempt_id
end

#dbrowObject (readonly)

Returns the value of attribute dbrow.



687
688
689
# File 'lib/sakai-info/quiz.rb', line 687

def dbrow
  @dbrow
end

#item_idObject (readonly)

Returns the value of attribute item_id.



687
688
689
# File 'lib/sakai-info/quiz.rb', line 687

def item_id
  @item_id
end

#submitted_atObject (readonly)

Returns the value of attribute submitted_at.



687
688
689
# File 'lib/sakai-info/quiz.rb', line 687

def 
  @submitted_at
end

#user_idObject (readonly)

Returns the value of attribute user_id.



687
688
689
# File 'lib/sakai-info/quiz.rb', line 687

def user_id
  @user_id
end

Class Method Details

.all_serializationsObject



777
778
779
# File 'lib/sakai-info/quiz.rb', line 777

def self.all_serializations
  [:default, :attachments]
end

.count_by_attempt_id(attempt_id) ⇒ Object



730
731
732
# File 'lib/sakai-info/quiz.rb', line 730

def self.count_by_attempt_id(attempt_id)
  QuizAttemptItem.query_by_attempt_id(attempt_id).count
end

.find(id) ⇒ Object



713
714
715
716
717
718
719
720
721
722
723
724
# File 'lib/sakai-info/quiz.rb', line 713

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



734
735
736
737
# File 'lib/sakai-info/quiz.rb', line 734

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



726
727
728
# File 'lib/sakai-info/quiz.rb', line 726

def self.query_by_attempt_id(attempt_id)
  DB.connect[:sam_itemgrading_t].where(:assessmentgradingid => attempt_id)
end

Instance Method Details

#attachmentsObject



739
740
741
742
# File 'lib/sakai-info/quiz.rb', line 739

def attachments
  @attachments ||=
    QuizAttemptItemAttachment.find_by_quiz_attempt_item_id(self.id)
end

#attachments_serializationObject



771
772
773
774
775
# File 'lib/sakai-info/quiz.rb', line 771

def attachments_serialization
  {
    "attachments" => self.attachments.collect{|a|a.serialize(:attempt_item_summary)}
  }
end

#attemptObject



704
705
706
# File 'lib/sakai-info/quiz.rb', line 704

def attempt
  @attempt ||= QuizAttempt.find(@attempt_id)
end

#attempt_summary_serializationObject



764
765
766
767
768
769
# File 'lib/sakai-info/quiz.rb', line 764

def attempt_summary_serialization
  {
    "id" => self.id,
    "item_id" => self.item_id
  }
end

#default_serializationObject



744
745
746
747
748
749
750
751
752
753
# File 'lib/sakai-info/quiz.rb', line 744

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
  }
end

#itemObject



708
709
710
# File 'lib/sakai-info/quiz.rb', line 708

def item
  @item ||= PublishedQuizItem.find(@item_id)
end

#summary_serializationObject



755
756
757
758
759
760
761
762
# File 'lib/sakai-info/quiz.rb', line 755

def summary_serialization
  {
    "id" => self.id,
    "eid" => User.get_eid(self.user_id),
    "attempt_id" => self.attempt_id,
    "item_id" => self.item_id
  }
end

#userObject



700
701
702
# File 'lib/sakai-info/quiz.rb', line 700

def user
  @user ||= User.find(@user_id)
end