beautyjoy / BJC-Teacher-Tracker

Access Portal and Dashboards for BJC Teachers
https://teachers.bjc.berkeley.edu
1 stars 8 forks source link

Teacher Model Refactoring #148

Closed cycomachead closed 2 weeks ago

cycomachead commented 2 years ago
cycomachead commented 1 year ago

Data migration script

irb(main):057:1* School.where(grade_level: nil, teachers_count: 1...).each do |s|
irb(main):058:1*   t = s.teachers.validated
irb(main):059:1*   edu = t.pluck(:education_level).compact.uniq
irb(main):060:1*   next unless edu.length == 1
irb(main):061:1*   s.grade_level = School.grade_levels[edu[0]]
irb(main):062:1*   puts "School: #{s.name} -- #{edu} -- #{School.grade_levels[edu[0]]}"
irb(main):063:1*   puts s.save!
irb(main):064:0> end
cycomachead commented 4 months ago
  enum application_status: {
    validated: "Validated",
    denied: "Denied",
    info_needed: "Info Needed",
    not_reviewed: "Not Reviewed",
  }
  validates_inclusion_of :application_status, in: application_statuses.keys

  # Non-admin teachers whose application has neither been accepted nor denied
  # It might or might not have been reviewed.
  scope :unvalidated, -> { where("(application_status=? OR application_status=?) AND admin=?", application_statuses[:info_needed], application_statuses[:not_reviewed], "false") }
  scope :unreviewed, -> { where("application_status=? AND admin=?", application_statuses[:not_reviewed], "false") }
  # Non-admin teachers who have been accepted/validated
  scope :validated, -> { where("application_status=? AND admin=?", application_statuses[:validated], "false") }