Class: SakaiInfo::QuizAttemptItem

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

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

#initialize(dbrow) ⇒ QuizAttemptItem

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

#answerObject (readonly)

Returns the value of attribute answer.



882
883
884
# File 'lib/sakai-info/quiz.rb', line 882

def answer
  @answer
end

#attempt_idObject (readonly)

Returns the value of attribute attempt_id.



882
883
884
# File 'lib/sakai-info/quiz.rb', line 882

def attempt_id
  @attempt_id
end

#dbrowObject (readonly)

Returns the value of attribute dbrow.



882
883
884
# File 'lib/sakai-info/quiz.rb', line 882

def dbrow
  @dbrow
end

#item_idObject (readonly)

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_atObject (readonly)

Returns the value of attribute submitted_at.



882
883
884
# File 'lib/sakai-info/quiz.rb', line 882

def 
  @submitted_at
end

#user_idObject (readonly)

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_serializationsObject



979
980
981
# File 'lib/sakai-info/quiz.rb', line 979

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

.clear_cacheObject



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

#attachmentsObject



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_serializationObject



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

#attemptObject



904
905
906
# File 'lib/sakai-info/quiz.rb', line 904

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

#attempt_summary_serializationObject



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

#default_serializationObject



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

#itemObject



908
909
910
# File 'lib/sakai-info/quiz.rb', line 908

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

#summary_serializationObject



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

#userObject



900
901
902
# File 'lib/sakai-info/quiz.rb', line 900

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