class Grades
Public Class Methods
create(data)
click to toggle source
Calls superclass method
# File Entities/Grade.rb, line 91 def self.create(data) grade = super(data) data._means and grade.means = data._means grade end
grade_to_mean(g)
click to toggle source
# File Entities/Grade.rb, line 58 def self.grade_to_mean(g) case g when /P/ then 10 when /AB/ then 13 when /B/ then 15 when /TB/ then 17 when /E/ then 19 else 9 end end
Public Instance Methods
match_by_course_person(course, student)
click to toggle source
# File Entities/Grade.rb, line 14 def match_by_course_person(course, student) # dputs_func if course.class != Course course = Courses.match_by_course_id(course) end if student.class != Person student = Persons.match_by_login_name(student) end if course && student dputs(4) { "Found #{course.name} - #{student.login_name}" } grades = Grades.matches_by_course(course.course_id) grades.each { |g| dputs(4) { "Checking grade #{g.student}-#{g}-#{student}" } if g.student == student dputs(4) { "Found grade #{g} for #{student.login_name} in #{course.name}" } return g end } end return nil end
migration_1_raw(g)
click to toggle source
# File Entities/Grade.rb, line 75 def migration_1_raw(g) course = Courses.match_by_course_id(g._course_id) if course and course.ctype g._means = [g._mean || 0] * course.ctype.tests_nbr.to_i dputs(4) { "means is #{g._means.inspect} - tests are #{course.ctype.tests_nbr.inspect}" } else dputs(0) { "Error: Migrating without ctype for #{g.inspect}..." } exit end end
migration_2_raw(g)
click to toggle source
# File Entities/Grade.rb, line 86 def migration_2_raw(g) g._course = g._course_id g._student = g._person_id end
save_data(d)
click to toggle source
Calls superclass method
# File Entities/Grade.rb, line 36 def save_data(d) #dputs_func if not d.has_key? :grade_id id = matches_by_course(d[:course].course_id).select { |g| g.student == d[:student] } if id.length > 0 dputs(2) { "Saving grade with existing id of #{id}" } d[:grade_id] = id[0].grade_id end end dputs(4) { "data is #{d.inspect}" } if d._means.count > 0 d[:mean] = d[:means].reduce(:+) / d[:means].count dputs(4) { "data is #{d.inspect}" } else d._mean = 0 end dputs(4) { "data before storing is #{d.inspect}" } super(d) end
setup_data()
click to toggle source
# File Entities/Grade.rb, line 3 def setup_data value_entity_course :course value_entity_person :student value_int :random value_block :info value_list_int :means value_int :mean value_str :remark end