Autolab icon indicating copy to clipboard operation
Autolab copied to clipboard

Update documentation for hooks

Open damianhxy opened this issue 1 year ago • 1 comments

Course Hooks

  • <lab>Average (documented)
  • courseAverage (documented)
  • gradebookMessage -- unused, currently configured via gb_message (course settings)

Assessment Hooks

  • handout
  • autogradeDone
  • raw_score (documented)
  • listOptions
  • scoreboardHeader
  • createScoreboardEntry
  • scoreboardOrderSubmissions
  • autogradeInputFiles
  • parseAutoresult
  • modifySubmissionScores (documented)
  • checkMimeType (documented)

Other undocumented features

  • local_submit
  • log_submit

damianhxy avatar Jun 15 '23 19:06 damianhxy

createScoreboardEntry and scoreboardOrderSubmissions as used by 15213

 # createScoreboardEntry - Return the entries for a scoreboard row
 def createScoreboardEntry(scores, autoresult)
     defused = 0
     explosions = 0
     scores.each_pair do |name, value|
         if name == "explosion"
             explosions = value.to_i()
         else
             defused += value.to_i()
         end
     end
     totalscore = raw_score(scores)
     [defused, explosions, totalscore]
 end

 # scoreboardOrderSubmissions - Give sorting rules for scoreboard entries.
 def scoreboardOrderSubmissions(a, b)
     # Entry A ranks higher than entry B if it has more defused phases.
     rank = a[:entry][0] <=> b[:entry][0]
     if rank != 0
         return rank
     end

     # If defused phases are equal, entry A ranks higher than entry
     # B if it has _fewer_ explosions.
     rank = a[:entry][1] <=> b[:entry][1]
     if rank != 0
         return -rank
     end

     # As a final tiebreaker, earlier submissions rank higher.
     -(a[:time] <=> b[:time])
 end

damianhxy avatar Jun 15 '23 19:06 damianhxy