qalam_merit 4.5.02 → 4.5.07

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: 21d74a55846470b62cdd1e64d58c11c047e9b56482c6a9c1eacf9db5ea636fcd
4
- data.tar.gz: 4946a1d94267fb8f4f6150db6e38150d9bd1ca2f0a4e55978ac535fdc05bae40
3
+ metadata.gz: 18ab3c2aa42a726a285563b7bb673735df7b5a6b1018b797e8f0a17278c038fd
4
+ data.tar.gz: c188b2ceb645906ab83c32aaef4722e0c3d73ac5e4771a7a0561b412acaff8e1
5
5
  SHA512:
6
- metadata.gz: f4ce2b946fd4d7774b5bfd6af4abe87633e2ef76d6d2f04a83432d7a5d4a5950a08b78c2015af76e6f7c378a43373b99b75e78b304164289e2de58eafcc92bf5
7
- data.tar.gz: 3297fdeaef38f6c391fd26f931e059a478772715a6ab0aa2e131bd078c65a62e33e985477487f9f542f8aa67381a1fb9493ab09d9c845e8756b80f7048c2a387
6
+ metadata.gz: 75dae6966612454a115ff99146709ff7aab85f7b10467ea5e8a259e2a54426f78b12a1ebc034a28e6d7c9396894d54479c785a61bfd5f7ca111d51f22ec4c556
7
+ data.tar.gz: 5460dcaf5db6bf795547af04f8eb8fea07c51a4a05fcaea8141f2d41178c873d4999f993530d890116d15c96f81bdc5ca328b33698f03ece4a2504dec2a754a5
@@ -16,7 +16,7 @@ module Merit
16
16
 
17
17
  # Delegate methods from meritable models to their sash
18
18
  def _merit_delegate_methods_to_sash
19
- methods = %w(badge_ids badges points add_badge rm_badge
19
+ methods = %w(badge_ids badges points add_badge add_qalam_badge rm_badge
20
20
  add_points subtract_points score_points)
21
21
  methods.each { |method| delegate method, to: :_sash }
22
22
  end
@@ -8,8 +8,10 @@ module Merit
8
8
  def inject_merit_content
9
9
  if model_exists?
10
10
  inject_into_class(model_path, class_name, " ### END ###\n\n")
11
- inject_into_class(model_path, class_name, " has_many :created_badges, class_name: 'Merit::Badge'\n")
12
- inject_into_class(model_path, class_name, " belongs_to :sash, foreign_key: 'sash_id', class_name: 'Merit::Sash'\n")
11
+ inject_into_class(model_path, class_name, " has_many :created_badges, class_name: 'Merit::Badge', :dependent => :destroy\n")
12
+ inject_into_class(model_path, class_name, " has_many :assigned_badges, through: :sash, source: :badges, :dependent => :destroy\n")
13
+ inject_into_class(model_path, class_name, " has_many :badges_sashes, through: :sash, source: :badges_sashes, :dependent => :destroy\n")
14
+ inject_into_class(model_path, class_name, " belongs_to :sash, foreign_key: 'sash_id', class_name: 'Merit::Sash', :dependent => :destroy\n")
13
15
  inject_into_class(model_path, class_name, " has_merit\n")
14
16
  inject_into_class(model_path, class_name, " ### QALAM_MERIT ###\n")
15
17
  end
@@ -6,6 +6,7 @@ module Merit::Models::ActiveRecord
6
6
  has_many :activity_logs,
7
7
  class_name: 'Merit::ActivityLog',
8
8
  as: :related_change
9
+ belongs_to :course, foreign_key: "course_id", class_name: 'Course'
9
10
 
10
11
  validates_presence_of :badge_id, :sash
11
12
  end
@@ -1,18 +1,24 @@
1
1
  module Merit::Models::ActiveRecord
2
2
  class QalamScore < ActiveRecord::Base
3
3
  self.table_name = :merit_scores
4
- belongs_to :sash
4
+ belongs_to :sash,
5
+ foreign_key: "sash_id",
6
+ class_name: 'Merit::Sash'
5
7
  has_many :score_points,
6
- dependent: :destroy,
7
- class_name: 'Merit::QalamScore::Point'
8
+ dependent: :destroy,
9
+ foreign_key: "score_id",
10
+ class_name: 'Merit::QalamScore::Point'
8
11
 
9
12
  def points
10
13
  score_points.group(:score_id).sum(:num_points).values.first || 0
11
14
  end
12
15
 
13
16
  class Point < ActiveRecord::Base
14
- belongs_to :score, class_name: 'Merit::Score'
15
- has_one :sash, through: :score
17
+ self.table_name = :merit_score_points
18
+ belongs_to :score,
19
+ foreign_key: "score_id",
20
+ class_name: 'Merit::QalamScore'
21
+ has_one :sash, through: :score, source: :sash
16
22
  has_many :activity_logs,
17
23
  class_name: 'Merit::ActivityLog',
18
24
  as: :related_change
@@ -8,16 +8,31 @@ module Merit::Models
8
8
  badges_sashes.map(&:badge_id)
9
9
  end
10
10
 
11
- def add_badge(badge_id)
12
- bs = Merit::BadgesSash.new(badge_id: badge_id.to_i)
13
- badges_sashes << bs
14
- bs
11
+ def add_badge(badge_id, options = {})
12
+ if (course_id = options[:course_id])
13
+ bs = Merit::BadgesSash.new(badge_id: badge_id.to_i, course_id: course_id.to_i)
14
+ else
15
+ bs = Merit::BadgesSash.new(badge_id: badge_id.to_i)
16
+ end
17
+ badges_sashes << bs
18
+ bs
15
19
  end
16
20
 
17
- def rm_badge(badge_id)
18
- badges_sashes.where(badge_id: badge_id.to_i).first.try(:destroy)
21
+ def rm_badge(badge_id, options = {})
22
+ if (course_id = options[:course_id])
23
+ badges_sashes.where(badge_id: badge_id.to_i, course_id: course_id.to_i).first.try(:destroy)
24
+ else
25
+ badges_sashes.where(badge_id: badge_id.to_i).first.try(:destroy)
26
+ end
19
27
  end
20
28
 
29
+ ########################QALAM_DEV#########################
30
+ def add_qalam_badge(badge_id, course_id)
31
+ bs = Merit::BadgesSash.new(badge_id: badge_id.to_i, course_id: course_id.to_i)
32
+ badges_sashes << bs
33
+ bs
34
+ end
35
+ ########################END###################################
21
36
  # Retrieve the number of points from a category
22
37
  # By default all points are summed up
23
38
  # @param category [String] The category
data/qalam_merit.gemspec CHANGED
@@ -6,7 +6,7 @@ Gem::Specification.new do |s|
6
6
  s.files = `git ls-files`.split("\n").reject{|f| f =~ /^\./ }
7
7
  s.test_files = `git ls-files -- test/*`.split("\n")
8
8
  s.license = 'MIT'
9
- s.version = '4.5.02'
9
+ s.version = '4.5.07'
10
10
  s.authors = ["Tute Costa", "Ahmed Abdelhamid"]
11
11
  s.email = ['tutecosta@gmail.com', 'a.hamid@nezam.io']
12
12
 
@@ -1,6 +1,6 @@
1
1
  require 'test_helper'
2
2
 
3
- describe Merit::Score do
3
+ describe Merit::QalamScore do
4
4
  it 'Point#sash_id delegates to Score' do
5
5
  score = Merit::QalamScore.new
6
6
  score.sash_id = 33
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: qalam_merit
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.5.02
4
+ version: 4.5.07
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tute Costa
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2021-02-24 00:00:00.000000000 Z
12
+ date: 2021-03-01 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: zeitwerk