sis_core 1.0.6 → 1.0.11

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7c2e069bab5a79b5ea0e86bc34f9445920cdc3bbf883938f5e2aae454ae38763
4
- data.tar.gz: d27da2f1dab2dbaceb1d08ac11486f325e9793f9dfdadd8a18bb9aaa4199e33f
3
+ metadata.gz: 01b7b4d1444769ba3e2953377e0eb99528221ad26f98cae32e88ef57351940c9
4
+ data.tar.gz: 4424ba65e6077accf44a1a215f87b4594f79a9c04523cb26660999606945f5be
5
5
  SHA512:
6
- metadata.gz: e5d24cf81adef27efce96ad29dc9b1bfe5e71adb557d9a1f30d255e78a0979d1c7039e518b4658b1602be5ccb4da9d3d649c33c5bc9f39c052ed4ed032277ad5
7
- data.tar.gz: 78c398a895cfb1bcb55fddfe7a6bb097d82dd524e9cbeb8ce1e13f1e9ece68f7660c49753ff86c0d5623fa701a51fe157f76d05912aa3eec40cc62a994d0c474
6
+ metadata.gz: 17ac3d072458f6b74b25e4301ed1ceb4ac3d2b31d1fb1343936d3efa03eec1f9fbe60fa95aa4b6823de7f15fd9d1e0a696040179503428d83c27fc8355342bf9
7
+ data.tar.gz: fd114115c828fee511449c65fd6302e91677bd5c4596e9e524413be00bd87bafb9dc2e6929c2592c62acb6141a31cfac28a2baa61004790a86a52e9140079ac4
@@ -11,8 +11,8 @@ module Sis
11
11
  user_menus.each do |user_menu|
12
12
  children = user_menu.children.where(parent_id: user_menu.id, application_module_id: app_module_id)
13
13
  children = children.map { |c| { label: c.text, icon: c.icon_cls, routerLink: [c.location] } }
14
- menus.push({ label: user_menu.text, icon: user_menu.icon_cls, location: user_menu.location,
15
- items: children })
14
+ menus.push({ id: user_menu.id, label: user_menu.text, icon: user_menu.icon_cls,
15
+ location: user_menu.location, items: children, expanded: true })
16
16
  end
17
17
  end
18
18
  render json: { success: true, data: menus }
@@ -27,7 +27,8 @@ module Sis
27
27
  def login
28
28
  user = User.find_by_email(params[:email])
29
29
  if User&.find_by_email(params[:email]) && user.authenticate(params[:password])
30
- token = JsonWebToken.encode({ id: user.id, first_name: user.first_name, last_name: user.last_name })
30
+ token = JsonWebToken.encode({ id: user.id, first_name: user.first_name, last_name: user.last_name,
31
+ roles: user.user_roles.map(&:name) })
31
32
  render json: { success: true, jwt: token }
32
33
  else
33
34
  render json: { success: false, errors: ['Invalid username or password !'] }
@@ -4,6 +4,14 @@ module Sis
4
4
  belongs_to :programme
5
5
  belongs_to :programme_type
6
6
  belongs_to :programme_level
7
+
8
+ delegate(:name, to: :programme, prefix: true, allow_nil: false)
9
+ delegate(:name, to: :programme_type, prefix: true, allow_nil: false)
10
+ delegate(:name, to: :programme_level, prefix: true, allow_nil: false)
11
+
12
+ def name
13
+ programme.name.to_s + ' ' + programme_level.name.to_s + ' ' + programme_type.name.to_s
14
+ end
7
15
  end
8
16
  end
9
17
  end
@@ -5,7 +5,21 @@ module Sis
5
5
  validates :first_name, :middle_name, :last_name, :email, presence: true
6
6
  validates :email, uniqueness: true
7
7
 
8
+ has_many :applications
9
+
8
10
  has_secure_password
11
+
12
+ def full_name
13
+ first_name + ' ' + middle_name + ' ' + last_name
14
+ end
15
+
16
+ scope :by_application_setup, (lambda do |app_setup_id|
17
+ joins(applications: :application_setup).where('sis_core_applications.application_setup_id': app_setup_id)
18
+ end)
19
+
20
+ scope :by_status, (lambda do |status|
21
+ joins(:applications).where('sis_core_applications.status': status)
22
+ end)
9
23
  end
10
24
  end
11
25
  end
@@ -9,18 +9,15 @@ module Sis
9
9
 
10
10
  aasm column: :status do
11
11
  state :draft, initial: true
12
- state :submitted, :under_review, :accepted, :rejected, :selected_for_exam, :selected_for_admission
12
+ state :submitted, :under_review, :rejected, :selected_for_exam, :selected_for_admission, :waiting, :accepted,
13
+ :declined
13
14
 
14
15
  event :submit do
15
16
  transitions from: :draft, to: :submitted
16
17
  end
17
18
 
18
19
  event :review do
19
- transitions from: %i[submitted rejected accepted], to: :under_review
20
- end
21
-
22
- event :accept do
23
- transitions from: :under_review, to: :accepted
20
+ transitions from: %i[submitted rejected], to: :under_review
24
21
  end
25
22
 
26
23
  event :reject do
@@ -28,12 +25,24 @@ module Sis
28
25
  end
29
26
 
30
27
  event :select_for_exam do
31
- transitions from: :accepted, to: :selected_for_exam
28
+ transitions from: %i[submitted under_review], to: :selected_for_exam
32
29
  end
33
30
 
34
31
  event :select_for_admission do
35
32
  transitions from: :selected_for_exam, to: :selected_for_admission
36
33
  end
34
+
35
+ event :select_for_waiting do
36
+ transitions from: :selected_for_exam, to: :waiting
37
+ end
38
+
39
+ event :accept do
40
+ transitions from: :selected_for_admission, to: :accepted
41
+ end
42
+
43
+ event :decline do
44
+ transitions from: :selected_for_admission, to: :declined
45
+ end
37
46
  end
38
47
 
39
48
  validates :status, presence: true
@@ -42,6 +51,10 @@ module Sis
42
51
  belongs_to :applicant
43
52
  belongs_to :academic_programme
44
53
  belongs_to :application_setup
54
+ has_many :application_documents
55
+
56
+ delegate(:name, to: :academic_programme, prefix: true, allow_nil: false)
57
+ delegate(:full_name, to: :applicant, prefix: true, allow_nil: false)
45
58
  end
46
59
  end
47
60
  end
@@ -5,6 +5,8 @@ module Sis
5
5
 
6
6
  belongs_to :application
7
7
  belongs_to :document_requirement
8
+
9
+ delegate(:name, to: :document_requirement, prefix: true, allow_nil: false)
8
10
  end
9
11
  end
10
12
  end
@@ -7,9 +7,18 @@ module Sis
7
7
  belongs_to :academic_programme
8
8
  belongs_to :target_semester, class_name: 'Sis::Core::Semester'
9
9
  has_many :document_requirements
10
+ has_many :exam_setups
10
11
 
11
12
  validates :start_date, :end_date, :status, presence: true
12
13
  validates :status, inclusion: [OPEN, CLOSED]
14
+
15
+ delegate(:name, to: :target_semester, prefix: true, allow_nil: false)
16
+ delegate(:name, to: :academic_programme, prefix: true, allow_nil: false)
17
+
18
+ def name
19
+ academic_programme.programme.name.to_s + ' ' + academic_programme.programme_level.name.to_s + ' ' +
20
+ academic_programme.programme_type.name.to_s
21
+ end
13
22
  end
14
23
  end
15
24
  end
@@ -0,0 +1,13 @@
1
+ module Sis
2
+ module Core
3
+ class CreditHourRate < ApplicationRecord
4
+ belongs_to :programme_level
5
+ belongs_to :currency
6
+
7
+ validates :rate, presence: true
8
+
9
+ delegate(:name, to: :programme_level, prefix: true, allow_nil: false)
10
+ delegate(:name, to: :currency, prefix: true, allow_nil: false)
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,7 @@
1
+ module Sis
2
+ module Core
3
+ class Currency < Lookup
4
+ validates :name, presence: true
5
+ end
6
+ end
7
+ end
@@ -5,6 +5,9 @@ module Sis
5
5
  belongs_to :application_setup
6
6
 
7
7
  validates :original, :copy, presence: true
8
+
9
+ delegate(:name, to: :document_type, prefix: true, allow_nil: false)
10
+ delegate(:name, to: :application_setup, prefix: true, allow_nil: false)
8
11
  end
9
12
  end
10
13
  end
@@ -10,6 +10,12 @@ module Sis
10
10
  def set_pass_point
11
11
  self.pass_point = points / 2 unless pass_point || !points
12
12
  end
13
+
14
+ delegate(:name, to: :exam_setup, prefix: true, allow_nil: false)
15
+
16
+ scope :by_application_setup, (lambda do |app_setup_id|
17
+ joins(:exam_setup).where('sis_core_exam_setups.application_setup_id': app_setup_id)
18
+ end)
13
19
  end
14
20
  end
15
21
  end
@@ -2,8 +2,15 @@ module Sis
2
2
  module Core
3
3
  class ExamSetup < ApplicationRecord
4
4
  belongs_to :application_setup
5
+ has_many :exams
5
6
 
6
7
  validates :date, :hours, :venue, presence: true
8
+
9
+ def name
10
+ application_setup.academic_programme.name
11
+ end
12
+
13
+ delegate(:name, to: :application_setup, prefix: true, allow_nil: false)
7
14
  end
8
15
  end
9
16
  end
@@ -4,6 +4,8 @@ module Sis
4
4
  belongs_to :academic_year
5
5
 
6
6
  validates :name, presence: true
7
+
8
+ delegate(:label, to: :academic_year, prefix: true, allow_nil: false)
7
9
  end
8
10
  end
9
11
  end
@@ -0,0 +1,17 @@
1
+ class CreateSisCoreCreditHourRates < ActiveRecord::Migration[6.0]
2
+ def change
3
+ create_table :sis_core_credit_hour_rates do |t|
4
+ t.references :programme_level,
5
+ null: false,
6
+ index: { name: 'pr_level_on_chr_hr_rate_indx' },
7
+ foreign_key: { to_table: :sis_core_lookups }
8
+ t.references :currency,
9
+ null: false,
10
+ index: { name: 'currency_on_chr_hr_rate_indx' },
11
+ foreign_key: { to_table: :sis_core_lookups }
12
+ t.float :rate, null: false
13
+
14
+ t.timestamps
15
+ end
16
+ end
17
+ end
@@ -1,5 +1,5 @@
1
1
  module Sis
2
2
  module Core
3
- VERSION = '1.0.6'.freeze
3
+ VERSION = '1.0.11'.freeze
4
4
  end
5
5
  end
@@ -0,0 +1,7 @@
1
+ FactoryBot.define do
2
+ factory :credit_hour_rate, class: Sis::Core::CreditHourRate do
3
+ association :programme_level
4
+ association :currency
5
+ rate { 1.5 }
6
+ end
7
+ end
@@ -0,0 +1,5 @@
1
+ FactoryBot.define do
2
+ factory :currency, class: Sis::Core::Currency, parent: :lookup do
3
+ type { 'Sis::Core::Currency' }
4
+ end
5
+ end
@@ -1,5 +1,5 @@
1
1
  FactoryBot.define do
2
2
  factory :programme_level, class: Sis::Core::ProgrammeLevel, parent: :lookup do
3
- type { 'Ecom::Core::ProgrammeLevel' }
3
+ type { 'Sis::Core::ProgrammeLevel' }
4
4
  end
5
5
  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.6
4
+ version: 1.0.11
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-06-23 00:00:00.000000000 Z
11
+ date: 2020-09-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aasm
@@ -242,6 +242,8 @@ files:
242
242
  - app/models/sis/core/application_setup.rb
243
243
  - app/models/sis/core/course.rb
244
244
  - app/models/sis/core/course_registration.rb
245
+ - app/models/sis/core/credit_hour_rate.rb
246
+ - app/models/sis/core/currency.rb
245
247
  - app/models/sis/core/document_requirement.rb
246
248
  - app/models/sis/core/document_type.rb
247
249
  - app/models/sis/core/exam.rb
@@ -286,6 +288,7 @@ files:
286
288
  - db/migrate/20200511165121_create_sis_core_application_modules.rb
287
289
  - db/migrate/20200511165241_create_sis_core_user_roles.rb
288
290
  - db/migrate/20200511165450_create_sis_core_menus.rb
291
+ - db/migrate/20200919235516_create_sis_core_credit_hour_rates.rb
289
292
  - lib/authorize_request.rb
290
293
  - lib/json_web_token.rb
291
294
  - lib/sis/core.rb
@@ -302,6 +305,8 @@ files:
302
305
  - spec/factories/sis/core/applications.rb
303
306
  - spec/factories/sis/core/course_registrations.rb
304
307
  - spec/factories/sis/core/courses.rb
308
+ - spec/factories/sis/core/credit_hour_rates.rb
309
+ - spec/factories/sis/core/currencies.rb
305
310
  - spec/factories/sis/core/document_requirements.rb
306
311
  - spec/factories/sis/core/document_types.rb
307
312
  - spec/factories/sis/core/exam_results.rb
@@ -337,7 +342,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
337
342
  - !ruby/object:Gem::Version
338
343
  version: '0'
339
344
  requirements: []
340
- rubygems_version: 3.1.2
345
+ rubygems_version: 3.1.4
341
346
  signing_key:
342
347
  specification_version: 4
343
348
  summary: Core engine for student information system application.