Skip to content

Commit da514ca

Browse files
committed
Add 'deleted' column to SchoolClasses record and DB
This commit adds the 'deleted' column on the SchoolClass record and DB migration, as well as two scopes called `active` and `deleted` to simplify retrieval of active and deleted classes respectively.
1 parent 4f928b7 commit da514ca

3 files changed

Lines changed: 22 additions & 1 deletion

File tree

app/models/school_class.rb

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ class SchoolClass < ApplicationRecord
88
accepts_nested_attributes_for :teachers
99

1010
scope :with_teachers, ->(user_id) { joins(:teachers).where(teachers: { id: user_id }) }
11+
scope :active, -> { where(deleted: false) }
12+
scope :deleted, -> { where(deleted: true) }
1113

1214
before_validation :assign_class_code, on: %i[create import]
1315

@@ -73,6 +75,17 @@ def submitted_count
7375
.count
7476
end
7577

78+
def deleted?
79+
deleted
80+
end
81+
82+
def mark_as_deleted!
83+
return if deleted?
84+
85+
self.deleted = true
86+
save!(validate: false)
87+
end
88+
7689
private
7790

7891
def school_class_has_at_least_one_teacher
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
class AddDeletedToSchoolClasses < ActiveRecord::Migration[7.2]
2+
def change
3+
add_column :school_classes, :deleted, :boolean, default: false, null: false
4+
add_index :school_classes, :deleted
5+
end
6+
end

db/schema.rb

Lines changed: 3 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)