mirror of
https://github.com/edcommonwealth/Dashboard.git
synced 2026-03-17 09:46:25 -07:00
dirty commit: can't get references to work correctly between any tables
This commit is contained in:
parent
e1f0b78236
commit
a4fddbeced
183 changed files with 5461 additions and 5 deletions
40
app/models/dashboard/academic_year.rb
Normal file
40
app/models/dashboard/academic_year.rb
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
module Dashboard
|
||||
class AcademicYear < ApplicationRecord
|
||||
def self.find_by_date(date)
|
||||
year = parse_year_range(date:)
|
||||
range = "#{year.start}-#{year.end.to_s[2, 3]}"
|
||||
academic_years[range]
|
||||
end
|
||||
|
||||
def formatted_range
|
||||
years = range.split("-")
|
||||
"#{years.first} – 20#{years.second}"
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def self.parse_year_range(date:)
|
||||
year = date.year
|
||||
if date.month > 6
|
||||
AcademicYearRange.new(year, year + 1)
|
||||
else
|
||||
AcademicYearRange.new(year - 1, year)
|
||||
end
|
||||
end
|
||||
|
||||
# This may cause problems if academic years get loaded from csv instead of the current method that requires a code change to the seeder script. This is because a change in code will trigger a complete reload of the application whereas loading from csv does not. This means if we change academic year to load from csv, the set of academic years will be stale when new years are added.
|
||||
def self.academic_years
|
||||
@@academic_years ||= AcademicYear.all.map { |academic_year| [academic_year.range, academic_year] }.to_h
|
||||
end
|
||||
|
||||
# Needed to reset the academic years when testing with specs that create the same academic year in a before :each block
|
||||
def self.reset_academic_years
|
||||
@@academic_years = nil
|
||||
end
|
||||
|
||||
private_class_method :academic_years
|
||||
private_class_method :parse_year_range
|
||||
end
|
||||
end
|
||||
|
||||
AcademicYearRange = Struct.new(:start, :end)
|
||||
Loading…
Add table
Add a link
Reference in a new issue