sis_core 1.0.12 → 1.0.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0a391a271ae5aa358a916776b0e2eedf3fc09cdb49e522627c81a5eefcdf6072
4
- data.tar.gz: 667e0483f0eb8dbac9d6bb81d2e7b98d3f59bb3244e3251f23010a921db5a8c7
3
+ metadata.gz: 48102d4df50313be44276b37c0db422f6805cf05a7f3295e550938853da1c84e
4
+ data.tar.gz: 2a58d518039a44a80f39583fcde21d3b74574bada3b9a531691466279e85cfc7
5
5
  SHA512:
6
- metadata.gz: 8ac73e86b89644a285ddb1b45425daa0e809f80b0023f3dcbf091eec7344819ee51b22a2ff791268dad3ec701bf9307f4256dd6e483700f6f11ec10d1f99df59
7
- data.tar.gz: 4b9073797a0fc8317ba4f190678fba109444d8b1a0148383cbc7d5b694f61a56ffb39ba238bb1494bb5c2d10fc705cd3bb8dfbc0361616d6657a417095e16fde
6
+ metadata.gz: 2e4b8c53defcbdc8fe1705d172269bd7067a2c64b77368f546e5d1ccb44d744bdd59ecb6a6472a7ed0be4799e2338a03f62bffbc04dd8aa76e3a963c8c0fbc57
7
+ data.tar.gz: 8db810b8ecd8e93a2ed5077159fdf44e51a9aa3f0c666d6c9d321e1d911f67c543c98386ef89887bd1dfd740eb2ce0f5ffd5c0cd2bda199b0aed09c6b77246b2
@@ -4,6 +4,10 @@ module Sis
4
4
  belongs_to :programme
5
5
  belongs_to :programme_type
6
6
  belongs_to :programme_level
7
+ has_many :academic_programme_documents
8
+
9
+ validates :programme_id, uniqueness: { scope: [:programme_level_id, :programme_type_id],
10
+ message: 'Program has already been created !' }
7
11
 
8
12
  delegate(:name, to: :programme, prefix: true, allow_nil: false)
9
13
  delegate(:name, to: :programme_type, prefix: true, allow_nil: false)
@@ -0,0 +1,11 @@
1
+ module Sis
2
+ module Core
3
+ class AcademicProgrammeDocument < ApplicationRecord
4
+ belongs_to :academic_programme
5
+ belongs_to :document_type
6
+
7
+ delegate(:name, to: :academic_programme, prefix: true, allow_nil: false)
8
+ delegate(:name, to: :document_type, prefix: true, allow_nil: false)
9
+ end
10
+ end
11
+ end
@@ -49,12 +49,12 @@ module Sis
49
49
  validates :payment_information, presence: true, if: :payment_made
50
50
 
51
51
  belongs_to :applicant
52
- belongs_to :academic_programme
53
52
  belongs_to :application_setup
54
53
  has_many :application_documents
55
54
 
56
- delegate(:name, to: :academic_programme, prefix: true, allow_nil: false)
55
+ delegate(:name, to: :application_setup, prefix: true, allow_nil: false)
57
56
  delegate(:full_name, to: :applicant, prefix: true, allow_nil: false)
57
+ delegate(:academic_programme_id, to: :application_setup, prefix: false, allow_nil: false)
58
58
  end
59
59
  end
60
60
  end
@@ -6,18 +6,37 @@ module Sis
6
6
 
7
7
  belongs_to :academic_programme
8
8
  belongs_to :target_semester, class_name: 'Sis::Core::Semester'
9
+ belongs_to :academic_year
9
10
  has_many :document_requirements
10
11
  has_many :exam_setups
11
12
 
12
13
  validates :start_date, :end_date, :status, presence: true
13
14
  validates :status, inclusion: [OPEN, CLOSED]
15
+ validates :academic_programme_id, uniqueness: { scope: [:target_semester_id, :academic_year_id],
16
+ message: 'Announcement has already been created for this academic
17
+ program !' }
14
18
 
15
- delegate(:name, to: :target_semester, prefix: true, allow_nil: false)
19
+ delegate(:code, to: :target_semester, prefix: true, allow_nil: false)
20
+ delegate(:year, to: :academic_year, prefix: false , allow_nil: false)
16
21
  delegate(:name, to: :academic_programme, prefix: true, allow_nil: false)
22
+ delegate(:programme_id, to: :academic_programme, prefix: false, allow_nil: false)
23
+ delegate(:programme_type_id, to: :academic_programme, prefix: false, allow_nil: false)
24
+ delegate(:programme_level_id, to: :academic_programme, prefix: false, allow_nil: false)
25
+ def programme_name
26
+ academic_programme.programme.name
27
+ end
28
+
29
+ def programme_type_name
30
+ academic_programme.programme_type.name
31
+ end
32
+
33
+ def programme_level_name
34
+ academic_programme.programme_level.name
35
+ end
17
36
 
18
37
  def name
19
- academic_programme.programme.name.to_s + ' ' + academic_programme.programme_level.name.to_s + ' ' +
20
- academic_programme.programme_type.name.to_s
38
+ "#{academic_programme.programme.name} #{academic_programme.programme_level.name}
39
+ #{academic_programme.programme_type.name}"
21
40
  end
22
41
  end
23
42
  end
@@ -4,10 +4,17 @@ module Sis
4
4
  belongs_to :document_type
5
5
  belongs_to :application_setup
6
6
 
7
- validates :original, :copy, presence: true
7
+ validates :application_setup_id, uniqueness: { scope: :document_type_id,
8
+ message: 'Document has been already captured !' }
8
9
 
9
10
  delegate(:name, to: :document_type, prefix: true, allow_nil: false)
10
11
  delegate(:name, to: :application_setup, prefix: true, allow_nil: false)
12
+ delegate(:programme_id, to: :application_setup, prefix: false, allow_nil: false)
13
+ delegate(:programme_name, to: :application_setup, prefix: false, allow_nil: false)
14
+ delegate(:programme_level_id, to: :application_setup, prefix: false, allow_nil: false)
15
+ delegate(:programme_level_name, to: :application_setup, prefix: false, allow_nil: false)
16
+ delegate(:programme_type_id, to: :application_setup, prefix: false, allow_nil: false)
17
+ delegate(:programme_type_name, to: :application_setup, prefix: false, allow_nil: false)
11
18
  end
12
19
  end
13
20
  end
@@ -1,6 +1,8 @@
1
1
  module Sis
2
2
  module Core
3
3
  class DocumentType < Lookup
4
+ has_many :academic_programme_documents
5
+ validates :code, :name, uniqueness: { case_sensitive: false }
4
6
  end
5
7
  end
6
8
  end
@@ -11,6 +11,9 @@ module Sis
11
11
  end
12
12
 
13
13
  delegate(:name, to: :application_setup, prefix: true, allow_nil: false)
14
+ delegate(:programme_id, to: :application_setup, prefix: false, allow_nil: false)
15
+ delegate(:programme_type_id, to: :application_setup, prefix: false, allow_nil: false)
16
+ delegate(:programme_level_id, to: :application_setup, prefix: false, allow_nil: false)
14
17
  end
15
18
  end
16
19
  end
@@ -1,7 +1,7 @@
1
1
  module Sis
2
2
  module Core
3
3
  class Programme < ApplicationRecord
4
- validates :code, :name, presence: true, uniqueness: true
4
+ validates :code, :name, presence: true, uniqueness: { case_sensitive: false }
5
5
  end
6
6
  end
7
7
  end
@@ -1,11 +1,7 @@
1
1
  module Sis
2
2
  module Core
3
3
  class Semester < ApplicationRecord
4
- belongs_to :academic_year
5
-
6
- validates :name, presence: true
7
-
8
- delegate(:label, to: :academic_year, prefix: true, allow_nil: false)
4
+ validates :code, presence: true, uniqueness: { case_sensitive: false }
9
5
  end
10
6
  end
11
7
  end
@@ -1,7 +1,9 @@
1
1
  class CreateSisCoreLookups < ActiveRecord::Migration[6.0]
2
2
  def change
3
3
  create_table :sis_core_lookups do |t|
4
- t.string :name, null: false
4
+ t.string :code, null: false
5
+ t.string :name
6
+ t.string :description
5
7
  t.string :type, null: false
6
8
 
7
9
  t.timestamps
@@ -2,7 +2,7 @@ class CreateSisCoreAcademicYears < ActiveRecord::Migration[6.0]
2
2
  def change
3
3
  create_table :sis_core_academic_years do |t|
4
4
  t.string :year, null: false, unique: true
5
- t.string :label
5
+ t.string :description
6
6
 
7
7
  t.timestamps
8
8
  end
@@ -1,12 +1,8 @@
1
1
  class CreateSisCoreSemesters < ActiveRecord::Migration[6.0]
2
2
  def change
3
3
  create_table :sis_core_semesters do |t|
4
- t.string :name, null: false
4
+ t.string :code, null: false
5
5
  t.string :description
6
- t.references :academic_year,
7
- index: { name: 'ay_on_semester_indx' },
8
- null: false,
9
- foreign_key: { to_table: :sis_core_academic_years }
10
6
 
11
7
  t.timestamps
12
8
  end
@@ -12,6 +12,10 @@ class CreateSisCoreApplicationSetups < ActiveRecord::Migration[6.0]
12
12
  null: false,
13
13
  index: { name: 'as_on_ts_indx' },
14
14
  foreign_key: { to_table: :sis_core_semesters }
15
+ t.references :academic_year,
16
+ null: false,
17
+ index: { name: 'ay_on_ts_indx' },
18
+ foreign_key: { to_table: :sis_core_academic_years }
15
19
 
16
20
  t.timestamps
17
21
  end
@@ -1,8 +1,8 @@
1
1
  class CreateSisCoreDocumentRequirements < ActiveRecord::Migration[6.0]
2
2
  def change
3
3
  create_table :sis_core_document_requirements do |t|
4
- t.integer :original, null: false, default: 0
5
- t.integer :copy, null: false, default: 0
4
+ t.integer :original, null: false, default: 1
5
+ t.integer :copy, null: false, default: 1
6
6
  t.string :remark
7
7
  t.references :document_type,
8
8
  null: false,
@@ -9,10 +9,6 @@ class CreateSisCoreApplications < ActiveRecord::Migration[6.0]
9
9
  null: false,
10
10
  index: { name: 'applications_on_applicant_indx' },
11
11
  foreign_key: { to_table: :sis_core_applicants }
12
- t.references :academic_programme,
13
- null: false,
14
- index: { name: 'applications_on_ap_indx' },
15
- foreign_key: { to_table: :sis_core_academic_programmes }
16
12
  t.references :application_setup,
17
13
  null: false,
18
14
  index: { name: 'application_setup_on_ap_indx' },
@@ -0,0 +1,19 @@
1
+ class CreateSisCoreAcademicProgrammeDocuments < ActiveRecord::Migration[6.0]
2
+ def change
3
+ create_table :sis_core_academic_programme_documents do |t|
4
+ t.references :academic_programme,
5
+ null: false,
6
+ index: { name: 'ap_on_ap_doc' },
7
+ foreign_key: { to_table: :sis_core_academic_programmes }
8
+ t.references :document_type,
9
+ null: false,
10
+ index: { name: 'dt_on_ap_doc' },
11
+ foreign_key: { to_table: :sis_core_lookups }
12
+ t.string :remark
13
+ t.integer :original, default: 1
14
+ t.integer :copy, default: 1
15
+
16
+ t.timestamps
17
+ end
18
+ end
19
+ end
@@ -1,5 +1,5 @@
1
1
  module Sis
2
2
  module Core
3
- VERSION = '1.0.12'.freeze
3
+ VERSION = '1.0.13'.freeze
4
4
  end
5
5
  end
@@ -0,0 +1,9 @@
1
+ FactoryBot.define do
2
+ factory :academic_programme_document, class: Sis::Core::AcademicProgrammeDocument do
3
+ association :academic_programme
4
+ association :document_type
5
+ remark { FFaker::Name.name }
6
+ original { 1 }
7
+ copy { 1 }
8
+ end
9
+ end
@@ -1,6 +1,6 @@
1
1
  FactoryBot.define do
2
2
  factory :academic_year, class: Sis::Core::AcademicYear do
3
3
  year { FFaker::Name.name }
4
- label { 'Academic year of 2000/01' }
4
+ description { 'Academic year of 2000/01' }
5
5
  end
6
6
  end
@@ -2,6 +2,7 @@ FactoryBot.define do
2
2
  factory :application_setup, class: Sis::Core::ApplicationSetup do
3
3
  association :academic_programme
4
4
  association :target_semester, factory: :semester
5
+ association :academic_year
5
6
  start_date { Date.today - 15.days }
6
7
  end_date { Date.today + 15.days }
7
8
  status { 'Open' }
@@ -5,7 +5,6 @@ FactoryBot.define do
5
5
  payment_information { nil }
6
6
  application_date { Date.today }
7
7
  association :applicant
8
- association :academic_programme
9
8
  association :application_setup
10
9
  end
11
10
  end
@@ -1,6 +1,8 @@
1
1
  FactoryBot.define do
2
2
  factory :lookup, class: 'Sis::Core::Lookup' do
3
+ code { FFaker::Identification.ssn }
3
4
  name { FFaker::Name.name }
5
+ description { FFaker::Lorem.paragraph }
4
6
  type { 'Sis::Core::Lookup' }
5
7
  end
6
8
  end
@@ -1,7 +1,6 @@
1
1
  FactoryBot.define do
2
2
  factory :semester, class: Sis::Core::Semester do
3
- association :academic_year
4
- name { FFaker::Name.name }
3
+ code { FFaker::Name.name }
5
4
  description { FFaker::Name.name }
6
5
  end
7
6
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sis_core
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.12
4
+ version: 1.0.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - Henock L.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-09-29 00:00:00.000000000 Z
11
+ date: 2020-11-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aasm
@@ -227,6 +227,7 @@ files:
227
227
  - app/controllers/sis/core/menus_controller.rb
228
228
  - app/controllers/sis/core/users_controller.rb
229
229
  - app/models/sis/core/academic_programme.rb
230
+ - app/models/sis/core/academic_programme_document.rb
230
231
  - app/models/sis/core/academic_year.rb
231
232
  - app/models/sis/core/applicant.rb
232
233
  - app/models/sis/core/application.rb
@@ -283,6 +284,7 @@ files:
283
284
  - db/migrate/20200511165241_create_sis_core_user_roles.rb
284
285
  - db/migrate/20200511165450_create_sis_core_menus.rb
285
286
  - db/migrate/20200919235516_create_sis_core_credit_hour_rates.rb
287
+ - db/migrate/20201019055620_create_sis_core_academic_programme_documents.rb
286
288
  - lib/authorize_request.rb
287
289
  - lib/json_web_token.rb
288
290
  - lib/sis/core.rb
@@ -290,6 +292,7 @@ files:
290
292
  - lib/sis/core/version.rb
291
293
  - lib/sis_core.rb
292
294
  - lib/tasks/sis_core_tasks.rake
295
+ - spec/factories/sis/core/academic_programme_documents.rb
293
296
  - spec/factories/sis/core/academic_programmes.rb
294
297
  - spec/factories/sis/core/academic_years.rb
295
298
  - spec/factories/sis/core/applicants.rb