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 +4 -4
- data/lib/merit/class_methods.rb +1 -1
- data/lib/merit/generators/merit_generator.rb +4 -2
- data/lib/merit/models/active_record/badges_sash.rb +1 -0
- data/lib/merit/models/active_record/qalam_score.rb +11 -5
- data/lib/merit/models/sash_concern.rb +21 -6
- data/qalam_merit.gemspec +1 -1
- data/test/unit/qalam_score_test.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 18ab3c2aa42a726a285563b7bb673735df7b5a6b1018b797e8f0a17278c038fd
|
4
|
+
data.tar.gz: c188b2ceb645906ab83c32aaef4722e0c3d73ac5e4771a7a0561b412acaff8e1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 75dae6966612454a115ff99146709ff7aab85f7b10467ea5e8a259e2a54426f78b12a1ebc034a28e6d7c9396894d54479c785a61bfd5f7ca111d51f22ec4c556
|
7
|
+
data.tar.gz: 5460dcaf5db6bf795547af04f8eb8fea07c51a4a05fcaea8141f2d41178c873d4999f993530d890116d15c96f81bdc5ca328b33698f03ece4a2504dec2a754a5
|
data/lib/merit/class_methods.rb
CHANGED
@@ -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, "
|
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
|
@@ -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
|
-
|
7
|
-
|
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
|
-
|
15
|
-
|
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
|
-
|
13
|
-
|
14
|
-
|
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
|
-
|
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.
|
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
|
|
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.
|
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-
|
12
|
+
date: 2021-03-01 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: zeitwerk
|