class SakaiInfo::AssignmentSubmission
Attributes
assignment_id[R]
dbrow[R]
submitter_id[R]
Public Class Methods
clear_cache()
click to toggle source
# File lib/sakai-info/assignment.rb, line 102 def self.clear_cache @@cache = {} end
count_by_assignment_id(assignment_id)
click to toggle source
# File lib/sakai-info/assignment.rb, line 160 def self.count_by_assignment_id(assignment_id) AssignmentSubmission.query_by_assignment_id(assignment_id).count end
count_by_user_id(user_id)
click to toggle source
# File lib/sakai-info/assignment.rb, line 173 def self.count_by_user_id(user_id) AssignmentSubmission.query_by_user_id(user_id).count end
find(id)
click to toggle source
# File lib/sakai-info/assignment.rb, line 119 def self.find(id) if @@cache[id].nil? row = DB.connect[:assignment_submission].where(:submission_id => id).first if row.nil? raise ObjectNotFoundException.new(AssignmentSubmission, id) end @@cache[id] = AssignmentSubmission.new(row) end @@cache[id] end
find_by_assignment_id(assignment_id)
click to toggle source
# File lib/sakai-info/assignment.rb, line 155 def self.find_by_assignment_id(assignment_id) AssignmentSubmission.query_by_assignment_id(assignment_id). all.collect { |row| AssignmentSubmission.new(row) } end
find_by_user_id(user_id)
click to toggle source
# File lib/sakai-info/assignment.rb, line 168 def self.find_by_user_id(user_id) AssignmentSubmission.query_by_user_id(user_id). all.collect { |row| AssignmentSubmission.new(row) } end
new(dbrow)
click to toggle source
# File lib/sakai-info/assignment.rb, line 107 def initialize(dbrow) @dbrow = dbrow @id = dbrow[:submission_id] @assignment_id = dbrow[:context] @submitter_id = dbrow[:submitter_id] @is_submitted = (dbrow[:submitted] == "true") @is_graded = (dbrow[:graded] == "true") parse_xml end
query_by_assignment_id(assignment_id)
click to toggle source
# File lib/sakai-info/assignment.rb, line 151 def self.query_by_assignment_id(assignment_id) DB.connect[:assignment_submission].where(:context => assignment_id) end
query_by_user_id(user_id)
click to toggle source
# File lib/sakai-info/assignment.rb, line 164 def self.query_by_user_id(user_id) DB.connect[:assignment_submission].where(:submitter_id => user_id) end
Public Instance Methods
assignment()
click to toggle source
# File lib/sakai-info/assignment.rb, line 135 def assignment @assignment ||= Assignment.find(self.assignment_id) end
assignment_summary_serialization()
click to toggle source
# File lib/sakai-info/assignment.rb, line 203 def assignment_summary_serialization { "id" => self.id, "submitter" => User.get_eid(self.submitter_id), "is_submitted" => self.submitted? } end
default_serialization()
click to toggle source
yaml/json serialization
# File lib/sakai-info/assignment.rb, line 178 def default_serialization result = { "id" => self.id, "assignment" => self.assignment.serialize(:summary), "submitter" => self.submitter.serialize(:summary), "is_submitted" => self.submitted?, "submitted_at" => self.submitted_at, "is_graded" => self.graded?, } if not self.submitted? result.delete("submitted_at") result.delete("is_graded") end result end
graded?()
click to toggle source
# File lib/sakai-info/assignment.rb, line 143 def graded? @is_graded || false end
submitted?()
click to toggle source
# File lib/sakai-info/assignment.rb, line 139 def submitted? ( self.created_by_id == self.submitter_id && @is_submitted ) || false end
submitted_at()
click to toggle source
# File lib/sakai-info/assignment.rb, line 147 def submitted_at @submitted_at ||= Util.format_entity_date(@attributes["datesubmitted"]) end
submitter()
click to toggle source
# File lib/sakai-info/assignment.rb, line 131 def submitter @submitter ||= User.find(self.submitter_id) end
summary_serialization()
click to toggle source
# File lib/sakai-info/assignment.rb, line 194 def summary_serialization { "id" => self.id, "assignment_id" => self.assignment_id, "submitter" => User.get_eid(self.submitter_id), "is_submitted" => self.submitted? } end