28 lines
652 B
Ruby
28 lines
652 B
Ruby
# frozen_string_literal: true
|
|
|
|
class AttendanceEntryPresenter < BasePresenter
|
|
def self.for_student(student)
|
|
GradeEntry.where(user: student)
|
|
.joins(grade_book: { quarter: { school_year: :year } })
|
|
.includes(grade_book: { quarter: { school_year: :year } })
|
|
.order("years.name ASC, quarters.number ASC")
|
|
.map { |entry| new(entry) }
|
|
end
|
|
|
|
def year_name
|
|
object.grade_book.quarter.school_year.year.name
|
|
end
|
|
|
|
def quarter_name
|
|
"Q#{object.grade_book.quarter.number}"
|
|
end
|
|
|
|
def attendance_days_display
|
|
object.attendance_days || "—"
|
|
end
|
|
|
|
def perfect_attendance?
|
|
object.is_perfect_attendance
|
|
end
|
|
end
|