sis_core 1.0.16 → 1.0.20
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/controllers/sis/core/user_roles_controller.rb +11 -0
- data/app/models/sis/core/academic_calendar.rb +9 -0
- data/app/models/sis/core/academic_programme.rb +2 -2
- data/app/models/sis/core/academic_time_line.rb +14 -0
- data/app/models/sis/core/applicant.rb +2 -2
- data/app/models/sis/core/application_document.rb +1 -2
- data/app/models/sis/core/application_setup.rb +2 -2
- data/app/models/sis/core/building.rb +7 -0
- data/app/models/sis/core/class_schedule.rb +18 -0
- data/app/models/sis/core/class_time_table.rb +7 -0
- data/app/models/sis/core/classroom.rb +9 -0
- data/app/models/sis/core/course_assignment.rb +41 -0
- data/app/models/sis/core/course_registration.rb +13 -2
- data/app/models/sis/core/curriculum_course.rb +1 -0
- data/app/models/sis/core/document_type.rb +0 -1
- data/app/models/sis/core/eligibility_criteria.rb +10 -0
- data/app/models/sis/core/entry.rb +7 -0
- data/app/models/sis/core/exam_result.rb +0 -1
- data/app/models/sis/core/identification_pattern.rb +19 -0
- data/app/models/sis/core/instructor.rb +5 -0
- data/app/models/sis/core/section.rb +9 -0
- data/app/models/sis/core/student.rb +17 -1
- data/app/models/sis/core/student_document.rb +12 -0
- data/app/models/sis/core/student_eligibility.rb +16 -0
- data/app/serializers/sis/core/user_serializer.rb +8 -0
- data/db/migrate/20201109064211_create_sis_core_buildings.rb +11 -0
- data/db/migrate/20201109070027_create_sis_core_classrooms.rb +21 -0
- data/db/migrate/20201109074944_create_sis_core_class_time_tables.rb +11 -0
- data/db/migrate/20201110075345_create_sis_core_sections.rb +13 -0
- data/db/migrate/20201110080957_create_sis_core_course_assignments.rb +22 -0
- data/db/migrate/20201110082516_create_sis_core_class_schedules.rb +22 -0
- data/db/migrate/20201130073930_create_sis_core_academic_calendars.rb +19 -0
- data/db/migrate/20201130080122_create_sis_core_academic_time_lines.rb +37 -0
- data/db/migrate/20201130091430_create_sis_core_eligibility_criteria.rb +13 -0
- data/db/migrate/20201130100442_add_fields_to_student.rb +82 -0
- data/db/migrate/20201130103634_create_sis_core_student_eligibilities.rb +29 -0
- data/db/migrate/20201201055256_add_course_offering_to_course_registration.rb +13 -0
- data/db/migrate/20201219073245_remove_full_name_from_instructor.rb +12 -0
- data/db/migrate/20201221100413_add_is_current_field_to_academic_year_and_semester.rb +7 -0
- data/db/migrate/20210113085806_create_sis_core_student_documents.rb +17 -0
- data/db/migrate/20210429112550_create_active_storage_tables.active_storage.rb +37 -0
- data/db/migrate/20210429113938_rename_uploaded_fields.rb +6 -0
- data/db/migrate/20210504115132_create_sis_core_identification_patterns.rb +23 -0
- data/db/migrate/20210513080708_add_unique_index_to_models.rb +8 -0
- data/db/migrate/20211004105938_add_status_to_course_registration.rb +6 -0
- data/lib/sis/core/version.rb +1 -1
- data/lib/sis_core.rb +0 -1
- data/spec/factories/sis/core/academic_calendars.rb +9 -0
- data/spec/factories/sis/core/academic_time_lines.rb +21 -0
- data/spec/factories/sis/core/applicants.rb +1 -1
- data/spec/factories/sis/core/application_documents.rb +1 -1
- data/spec/factories/sis/core/buildings.rb +7 -0
- data/spec/factories/sis/core/class_schedules.rb +8 -0
- data/spec/factories/sis/core/class_time_tables.rb +7 -0
- data/spec/factories/sis/core/classrooms.rb +11 -0
- data/spec/factories/sis/core/course_assignments.rb +9 -0
- data/spec/factories/sis/core/course_registrations.rb +3 -2
- data/spec/factories/sis/core/eligibility_criteria.rb +6 -0
- data/spec/factories/sis/core/entries.rb +5 -0
- data/spec/factories/sis/core/identification_patterns.rb +8 -0
- data/spec/factories/sis/core/instructor_courses.rb +2 -2
- data/spec/factories/sis/core/instructors.rb +3 -2
- data/spec/factories/sis/core/sections.rb +6 -0
- data/spec/factories/sis/core/student_documents.rb +6 -0
- data/spec/factories/sis/core/student_eligibilities.rb +10 -0
- data/spec/factories/sis/core/students.rb +11 -5
- metadata +72 -54
- data/app/uploaders/sis/core/application_document_uploader.rb +0 -51
- data/app/uploaders/sis/core/photo_uploader.rb +0 -51
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 30487df03decbb12c6117cbe7153d4eb25a0f3298525a5e37c0daa742df56a93
|
4
|
+
data.tar.gz: a4a88970815446c4c2271a2bd227cf9b023b91a6939b4d3816e089acc7e8a8d5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 412ff2fbc697fb63de56a0187dc8e7ac872fb81fb1870a6d1d4691bfb8e0dc6f3ea63f672ea873deed587c119e6532daf82295cd6804bd0b967cbb8280143536
|
7
|
+
data.tar.gz: ab14fb246702ab66a527f5930ced5426a5484303602a74e7480d942a01df66935cbd79c3f4bdae4d66658b36f45ac8715293522e852c7650e6840abdf3e5180f
|
@@ -6,7 +6,7 @@ module Sis
|
|
6
6
|
belongs_to :programme_level
|
7
7
|
has_many :academic_programme_documents
|
8
8
|
|
9
|
-
validates :programme_id, uniqueness: { scope: [
|
9
|
+
validates :programme_id, uniqueness: { scope: %i[programme_level_id programme_type_id],
|
10
10
|
message: 'Program has already been created !' }
|
11
11
|
|
12
12
|
delegate(:name, to: :programme, prefix: true, allow_nil: false)
|
@@ -14,7 +14,7 @@ module Sis
|
|
14
14
|
delegate(:name, to: :programme_level, prefix: true, allow_nil: false)
|
15
15
|
|
16
16
|
def name
|
17
|
-
programme.name
|
17
|
+
"#{programme.name} #{programme_level.name} #{programme_type.name}"
|
18
18
|
end
|
19
19
|
end
|
20
20
|
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
module Sis
|
2
|
+
module Core
|
3
|
+
class AcademicTimeLine < ApplicationRecord
|
4
|
+
belongs_to :academic_year
|
5
|
+
belongs_to :semester
|
6
|
+
belongs_to :programme_type
|
7
|
+
belongs_to :programme_level
|
8
|
+
validates :registration_start_date, :registration_end_date, :penalty_registration_start_date,
|
9
|
+
:penalty_registration_end_date, :add_and_drop_start_date, :add_and_drop_end_date,
|
10
|
+
:penalty_add_and_drop_start_date, :penalty_add_and_drop_end_date, :mid_exam_start_date,
|
11
|
+
:mid_exam_end_date, :final_exam_start_date, :final_exam_end_date, :grade_reporting_date, presence: true
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -1,16 +1,16 @@
|
|
1
1
|
module Sis
|
2
2
|
module Core
|
3
3
|
class Applicant < ApplicationRecord
|
4
|
-
mount_base64_uploader :photo, PhotoUploader
|
5
4
|
validates :first_name, :middle_name, :last_name, :email, presence: true
|
6
5
|
validates :email, uniqueness: true
|
7
6
|
|
8
7
|
has_many :applications
|
8
|
+
has_one_attached :photo
|
9
9
|
|
10
10
|
has_secure_password
|
11
11
|
|
12
12
|
def full_name
|
13
|
-
first_name
|
13
|
+
"#{first_name} #{middle_name} #{last_name}"
|
14
14
|
end
|
15
15
|
|
16
16
|
scope :by_application_setup, (lambda do |app_setup_id|
|
@@ -1,10 +1,9 @@
|
|
1
1
|
module Sis
|
2
2
|
module Core
|
3
3
|
class ApplicationDocument < ApplicationRecord
|
4
|
-
mount_base64_uploader :document, ApplicationDocumentUploader
|
5
|
-
|
6
4
|
belongs_to :application
|
7
5
|
belongs_to :document_requirement
|
6
|
+
has_one_attached :document
|
8
7
|
|
9
8
|
delegate(:name, to: :document_requirement, prefix: true, allow_nil: false)
|
10
9
|
end
|
@@ -12,12 +12,12 @@ module Sis
|
|
12
12
|
|
13
13
|
validates :start_date, :end_date, :status, presence: true
|
14
14
|
validates :status, inclusion: [OPEN, CLOSED]
|
15
|
-
validates :academic_programme_id, uniqueness: { scope: [
|
15
|
+
validates :academic_programme_id, uniqueness: { scope: %i[target_semester_id academic_year_id],
|
16
16
|
message: 'Announcement has already been created for this academic
|
17
17
|
program !' }
|
18
18
|
|
19
19
|
delegate(:code, to: :target_semester, prefix: true, allow_nil: false)
|
20
|
-
delegate(:year, to: :academic_year, prefix: false
|
20
|
+
delegate(:year, to: :academic_year, prefix: false, allow_nil: false)
|
21
21
|
delegate(:name, to: :academic_programme, prefix: true, allow_nil: false)
|
22
22
|
delegate(:programme_id, to: :academic_programme, prefix: false, allow_nil: false)
|
23
23
|
delegate(:programme_type_id, to: :academic_programme, prefix: false, allow_nil: false)
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module Sis
|
2
|
+
module Core
|
3
|
+
class ClassSchedule < ApplicationRecord
|
4
|
+
belongs_to :classroom, optional: true
|
5
|
+
belongs_to :class_time_table, optional: true
|
6
|
+
belongs_to :course_assignment
|
7
|
+
|
8
|
+
delegate(:room_number, to: :classroom, prefix: true, allow_nil: true)
|
9
|
+
delegate(:name, to: :class_time_table, prefix: true, allow_nil: true)
|
10
|
+
delegate(:course_code, to: :course_assignment, prefix: false)
|
11
|
+
delegate(:course_title, to: :course_assignment, prefix: false)
|
12
|
+
|
13
|
+
def instructor_full_name
|
14
|
+
course_assignment.instructor.full_name
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
module Sis
|
2
|
+
module Core
|
3
|
+
class CourseAssignment < ApplicationRecord
|
4
|
+
belongs_to :course_offering
|
5
|
+
belongs_to :section
|
6
|
+
belongs_to :instructor
|
7
|
+
belongs_to :lab_instructor, class_name: 'Sis::Core::Instructor', optional: true
|
8
|
+
belongs_to :tutorial_instructor, class_name: 'Sis::Core::Instructor', optional: true
|
9
|
+
|
10
|
+
delegate(:course_code, to: :course_offering, prefix: false)
|
11
|
+
delegate(:course_title, to: :course_offering, prefix: false)
|
12
|
+
delegate(:course_ects, to: :course_offering, prefix: false)
|
13
|
+
delegate(:course_credit_hours, to: :course_offering, prefix: false)
|
14
|
+
delegate(:course_id, to: :course_offering, prefix: false)
|
15
|
+
delegate(:course_lecture_hours, to: :course_offering, prefix: false)
|
16
|
+
delegate(:course_lab_hours, to: :course_offering, prefix: false)
|
17
|
+
delegate(:course_tutorial_hours, to: :course_offering, prefix: false)
|
18
|
+
delegate(:first_name, to: :instructor, prefix: true, allow_nil: true)
|
19
|
+
delegate(:middle_name, to: :instructor, prefix: true, allow_nil: true)
|
20
|
+
delegate(:last_name, to: :instructor, prefix: true, allow_nil: true)
|
21
|
+
delegate(:first_name, to: :lab_instructor, prefix: true, allow_nil: true)
|
22
|
+
delegate(:middle_name, to: :lab_instructor, prefix: true, allow_nil: true)
|
23
|
+
delegate(:last_name, to: :lab_instructor, prefix: true, allow_nil: true)
|
24
|
+
delegate(:first_name, to: :tutorial_instructor, prefix: true, allow_nil: true)
|
25
|
+
delegate(:middle_name, to: :tutorial_instructor, prefix: true, allow_nil: true)
|
26
|
+
delegate(:last_name, to: :tutorial_instructor, prefix: true, allow_nil: true)
|
27
|
+
|
28
|
+
def instructor_full_name
|
29
|
+
"#{instructor_first_name} #{instructor_middle_name} #{instructor_last_name}"
|
30
|
+
end
|
31
|
+
|
32
|
+
def lab_instructor_full_name
|
33
|
+
"#{lab_instructor_first_name} #{lab_instructor_middle_name} #{lab_instructor_last_name}"
|
34
|
+
end
|
35
|
+
|
36
|
+
def tutorial_instructor_full_name
|
37
|
+
"#{tutorial_instructor_first_name} #{tutorial_instructor_middle_name} #{tutorial_instructor_last_name}"
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -1,9 +1,20 @@
|
|
1
1
|
module Sis
|
2
2
|
module Core
|
3
3
|
class CourseRegistration < ApplicationRecord
|
4
|
-
belongs_to :
|
4
|
+
belongs_to :course_offering
|
5
5
|
belongs_to :student
|
6
|
-
belongs_to :
|
6
|
+
belongs_to :section
|
7
|
+
|
8
|
+
delegate(:course_code, to: :course_offering, prefix: false)
|
9
|
+
delegate(:course_title, to: :course_offering, prefix: false)
|
10
|
+
delegate(:course_ects, to: :course_offering, prefix: false)
|
11
|
+
delegate(:course_credit_hours, to: :course_offering, prefix: false)
|
12
|
+
delegate(:first_name, to: :student, prefix: true)
|
13
|
+
delegate(:middle_name, to: :student, prefix: true)
|
14
|
+
delegate(:last_name, to: :student, prefix: true)
|
15
|
+
delegate(:student_id, to: :student, prefix: true)
|
16
|
+
delegate(:name, to: :section, prefix: true)
|
17
|
+
delegate(:programme_level_id, to: :student, prefix: true)
|
7
18
|
end
|
8
19
|
end
|
9
20
|
end
|
@@ -4,6 +4,7 @@ module Sis
|
|
4
4
|
belongs_to :curriculum
|
5
5
|
belongs_to :course
|
6
6
|
validates :course_type, presence: true
|
7
|
+
has_many :course_offering_sequences
|
7
8
|
has_many :predecessor_prerequisites, foreign_key: :successor_id, class_name: 'Prerequisite'
|
8
9
|
has_many :predecessors, through: :predecessor_prerequisites, source: :predecessor
|
9
10
|
has_many :successor_prerequisites, foreign_key: :predecessor_id, class_name: 'Prerequisite'
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module Sis
|
2
|
+
module Core
|
3
|
+
class IdentificationPattern < ApplicationRecord
|
4
|
+
belongs_to :programme_level
|
5
|
+
belongs_to :programme_type
|
6
|
+
belongs_to :programme
|
7
|
+
|
8
|
+
validates :id_pattern, presence: true
|
9
|
+
validates :id_pattern, uniqueness: true
|
10
|
+
|
11
|
+
validates :programme_id, uniqueness: { scope: %i[programme_level_id programme_type_id],
|
12
|
+
message: 'This combination is already taken !' }
|
13
|
+
|
14
|
+
delegate(:name, to: :programme, prefix: true)
|
15
|
+
delegate(:name, to: :programme_level, prefix: true)
|
16
|
+
delegate(:name, to: :programme_type, prefix: true)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -1,7 +1,23 @@
|
|
1
1
|
module Sis
|
2
2
|
module Core
|
3
3
|
class Student < ApplicationRecord
|
4
|
-
|
4
|
+
has_one_attached :picture
|
5
|
+
belongs_to :user
|
6
|
+
belongs_to :level, optional: true
|
7
|
+
belongs_to :semester, optional: true
|
8
|
+
belongs_to :entry, optional: true
|
9
|
+
belongs_to :programme
|
10
|
+
belongs_to :programme_level
|
11
|
+
belongs_to :programme_type
|
12
|
+
belongs_to :advisor, class_name: 'Sis::Core::Instructor', optional: true
|
13
|
+
has_many :course_registrations
|
14
|
+
|
15
|
+
delegate(:first_name, to: :user, prefix: false)
|
16
|
+
delegate(:last_name, to: :user, prefix: false)
|
17
|
+
delegate(:email, to: :user, prefix: false)
|
18
|
+
delegate(:first_name, to: :advisor, prefix: true, allow_nil: true)
|
19
|
+
delegate(:middle_name, to: :advisor, prefix: true, allow_nil: true)
|
20
|
+
delegate(:last_name, to: :advisor, prefix: true, allow_nil: true)
|
5
21
|
end
|
6
22
|
end
|
7
23
|
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
module Sis
|
2
|
+
module Core
|
3
|
+
class StudentDocument < ApplicationRecord
|
4
|
+
has_one_attached :file
|
5
|
+
belongs_to :document_type, optional: true
|
6
|
+
belongs_to :student
|
7
|
+
|
8
|
+
delegate(:code, to: :document_type, prefix: true, allow_nil: true)
|
9
|
+
delegate(:name, to: :document_type, prefix: true)
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module Sis
|
2
|
+
module Core
|
3
|
+
class StudentEligibility < ApplicationRecord
|
4
|
+
belongs_to :student
|
5
|
+
belongs_to :academic_year
|
6
|
+
belongs_to :semester
|
7
|
+
belongs_to :eligibility_criteria
|
8
|
+
belongs_to :cleared_by, class_name: 'Sis::Core::User'
|
9
|
+
|
10
|
+
delegate(:first_name, to: :student, prefix: true)
|
11
|
+
delegate(:middle_name, to: :student, prefix: true)
|
12
|
+
delegate(:last_name, to: :student, prefix: true)
|
13
|
+
delegate(:description, to: :eligibility_criteria, prefix: true)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
class CreateSisCoreClassrooms < ActiveRecord::Migration[6.0]
|
2
|
+
def change
|
3
|
+
create_table :sis_core_classrooms do |t|
|
4
|
+
t.references :building,
|
5
|
+
null: false,
|
6
|
+
index: { name: 'bldg_on_cls_rm' },
|
7
|
+
foreign_key: { to_table: :sis_core_buildings }
|
8
|
+
t.references :programme_level,
|
9
|
+
null: false,
|
10
|
+
index: { name: 'pl_on_cls_rm' },
|
11
|
+
foreign_key: { to_table: :sis_core_lookups }
|
12
|
+
t.float :square_meter
|
13
|
+
t.string :room_number, null: false
|
14
|
+
t.string :floor, null: false
|
15
|
+
t.integer :class_size
|
16
|
+
t.string :class_type, null: false
|
17
|
+
|
18
|
+
t.timestamps
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
class CreateSisCoreSections < ActiveRecord::Migration[6.0]
|
2
|
+
def change
|
3
|
+
create_table :sis_core_sections do |t|
|
4
|
+
t.string :name, null: false
|
5
|
+
t.references :entry,
|
6
|
+
null: false,
|
7
|
+
index: { name: 'entry_on_sec' },
|
8
|
+
foreign_key: { to_table: :sis_core_lookups }
|
9
|
+
|
10
|
+
t.timestamps
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
class CreateSisCoreCourseAssignments < ActiveRecord::Migration[6.0]
|
2
|
+
def change
|
3
|
+
create_table :sis_core_course_assignments do |t|
|
4
|
+
t.references :course_offering,
|
5
|
+
null: false,
|
6
|
+
index: { name: 'crs_off_on_crs_ass' },
|
7
|
+
foreign_key: { to_table: :sis_core_course_offerings }
|
8
|
+
t.references :section,
|
9
|
+
null: false,
|
10
|
+
index: { name: 'sec_on_crs_ass' },
|
11
|
+
foreign_key: { to_table: :sis_core_sections }
|
12
|
+
t.references :instructor,
|
13
|
+
null: false,
|
14
|
+
index: { name: 'ins_on_crs_ass' },
|
15
|
+
foreign_key: { to_table: :sis_core_instructors }
|
16
|
+
t.integer :lab_instructor_id, null: true
|
17
|
+
t.integer :tutorial_instructor_id, null: true
|
18
|
+
|
19
|
+
t.timestamps
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
class CreateSisCoreClassSchedules < ActiveRecord::Migration[6.0]
|
2
|
+
def change
|
3
|
+
create_table :sis_core_class_schedules do |t|
|
4
|
+
t.references :classroom,
|
5
|
+
null: true,
|
6
|
+
index: { name: 'cls_on_cls_sched' },
|
7
|
+
foreign_key: { to_table: :sis_core_classrooms }
|
8
|
+
t.references :class_time_table,
|
9
|
+
null: true,
|
10
|
+
index: { name: 'cls_time_tbl_on_cls_sched' },
|
11
|
+
foreign_key: { to_table: :sis_core_class_time_tables }
|
12
|
+
t.references :course_assignment,
|
13
|
+
null: false,
|
14
|
+
index: { name: 'crs_ass_on_cls_sched' },
|
15
|
+
foreign_key: { to_table: :sis_core_course_assignments }
|
16
|
+
t.string :day
|
17
|
+
t.string :schedule_type
|
18
|
+
|
19
|
+
t.timestamps
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
class CreateSisCoreAcademicCalendars < ActiveRecord::Migration[6.0]
|
2
|
+
def change
|
3
|
+
create_table :sis_core_academic_calendars do |t|
|
4
|
+
t.references :academic_year,
|
5
|
+
null: false,
|
6
|
+
index: { name: 'ay_on_aca_caldr_indx' },
|
7
|
+
foreign_key: { to_table: :sis_core_academic_years }
|
8
|
+
t.references :semester,
|
9
|
+
null: false,
|
10
|
+
index: { name: 'sem_on_aca_caldr_indx' },
|
11
|
+
foreign_key: { to_table: :sis_core_semesters }
|
12
|
+
t.date :start_date, null: false
|
13
|
+
t.date :end_date, null: false
|
14
|
+
t.string :event, null: false
|
15
|
+
|
16
|
+
t.timestamps
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
class CreateSisCoreAcademicTimeLines < ActiveRecord::Migration[6.0]
|
2
|
+
def change
|
3
|
+
create_table :sis_core_academic_time_lines do |t|
|
4
|
+
t.date :registration_start_date, null: false
|
5
|
+
t.date :registration_end_date, null: false
|
6
|
+
t.date :penalty_registration_start_date, null: false
|
7
|
+
t.date :penalty_registration_end_date, null: false
|
8
|
+
t.date :add_and_drop_start_date, null: false
|
9
|
+
t.date :add_and_drop_end_date, null: false
|
10
|
+
t.date :penalty_add_and_drop_start_date, null: false
|
11
|
+
t.date :penalty_add_and_drop_end_date, null: false
|
12
|
+
t.date :mid_exam_start_date, null: false
|
13
|
+
t.date :mid_exam_end_date, null: false
|
14
|
+
t.date :final_exam_start_date, null: false
|
15
|
+
t.date :final_exam_end_date, null: false
|
16
|
+
t.date :grade_reporting_date, null: false
|
17
|
+
t.references :academic_year,
|
18
|
+
null: false,
|
19
|
+
index: { name: 'ay_on_aca_time_line_indx' },
|
20
|
+
foreign_key: { to_table: :sis_core_academic_years }
|
21
|
+
t.references :semester,
|
22
|
+
null: false,
|
23
|
+
index: { name: 'sem_on_aca_time_line_indx' },
|
24
|
+
foreign_key: { to_table: :sis_core_semesters }
|
25
|
+
t.references :programme_type,
|
26
|
+
null: false,
|
27
|
+
index: { name: 'pt_on_aca_time_line_indx' },
|
28
|
+
foreign_key: { to_table: :sis_core_lookups }
|
29
|
+
t.references :programme_level,
|
30
|
+
null: false,
|
31
|
+
index: { name: 'pl_on_aca_time_line_indx' },
|
32
|
+
foreign_key: { to_table: :sis_core_lookups }
|
33
|
+
|
34
|
+
t.timestamps
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
class CreateSisCoreEligibilityCriteria < ActiveRecord::Migration[6.0]
|
2
|
+
def change
|
3
|
+
create_table :sis_core_eligibility_criteria do |t|
|
4
|
+
t.references :clearing_role,
|
5
|
+
null: false,
|
6
|
+
index: { name: 'clr_role_on_eli_criteria' },
|
7
|
+
foreign_key: { to_table: :sis_core_user_roles }
|
8
|
+
t.string :description
|
9
|
+
|
10
|
+
t.timestamps
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|