qalam_merit 4.0.35 → 4.5.00

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: cb1129dc2d896557cf6d10ff44b69774fba8c6f665463a11dff9e03700d01122
4
- data.tar.gz: 96b5f59cf1ad71cfe5f1aadee19b81442b9787a5972c01f0ae9d273e0eac8901
3
+ metadata.gz: 4ab565f1556eaadc0a27bae07268086f9fa1b12eb22a3d4c632e6012007273be
4
+ data.tar.gz: b552bf47e0e58f023d1ff914ab8510fd8096667b7642715da40c57c88830048e
5
5
  SHA512:
6
- metadata.gz: a4766494fb1d6fbb73b559648bde642f9216871148bcde5493413aefa9b664e992bd679ae0a943d05ce2e2b1488c0063074a91dc993a1cc0bc94bdb5a3f3abf6
7
- data.tar.gz: 1f6cd67f0fa33b5ea14c64ec2b5b98ffa153a3fb05324ba6cc11b954ed40981c1509667e9f8fe99c6d3e0ee69aae956f1b860cdc667fcb95315b4379b65ceb54
6
+ metadata.gz: 36ba58be649f037433f84febc55d172cecbc5ac9eb86a829105c5314f74891c4205f79d876710a62ffe0a9f8f9e0c49b296a1b9fb72371845ffcf778b4d1b850
7
+ data.tar.gz: 9a4367ae89c7680fbe09dfef4255e2a0abc50e19dae684980458fa715829d5e58a46bb2e2689df7300f6a01960fd6fbd9689aac0db80884cee685aceead4f8c7
@@ -7,10 +7,10 @@ class CreateMeritBadges < ActiveRecord::Migration<%= migration_version %>
7
7
  t.integer :points, default: 0
8
8
  t.text :description
9
9
  t.string :difficulty
10
+ t.boolean :active, default: true
10
11
  t.references :user, limit: 8, foreign_key: true, index: true, null: true
11
12
  t.references :root_account, foreign_key: { to_table: 'accounts'}, limit: 8, null: false, index: true
12
13
 
13
-
14
14
  t.timestamps
15
15
  end
16
16
  end
@@ -9,12 +9,12 @@ module Merit
9
9
  def copy_migrations_and_model
10
10
  template 'merit.erb', 'config/initializers/merit.rb'
11
11
  sleep 1.1
12
- template 'sash.erb', 'app/models/merit/sash.rb'
13
- sleep 1.1
12
+ # template 'qalam_sash.erb', 'app/models/merit/qalam_sash.rb'
13
+ # sleep 1.1
14
14
  template 'badge.erb', 'app/models/merit/badge.rb'
15
15
  sleep 1.1
16
- template 'badge_sash.erb', 'app/models/merit/badge_sash.rb'
17
- sleep 1.1
16
+ # template 'qalam_badge_sash.erb', 'app/models/merit/qalam_badge_sash.rb'
17
+ # sleep 1.1
18
18
  template 'merit_badge_rules.erb', 'app/models/merit/badge_rules.rb'
19
19
  sleep 1.1
20
20
  template 'merit_point_rules.erb', 'app/models/merit/point_rules.rb'
@@ -9,7 +9,7 @@ module Merit
9
9
  if model_exists?
10
10
  inject_into_class(model_path, class_name, " ### END ###\n\n")
11
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")
12
+ inject_into_class(model_path, class_name, " belongs_to :sash, foreign_key: 'sash_id', class_name: 'Merit::QalamSash'\n")
13
13
  inject_into_class(model_path, class_name, " has_merit\n")
14
14
  inject_into_class(model_path, class_name, " ### QALAM_MERIT ###\n")
15
15
  end
@@ -1,27 +1,38 @@
1
1
  ### QALAM_MERIT ###
2
- class Merit::Badge < ApplicationRecord
2
+ class Merit::Badge < ActiveRecord::Base
3
3
  self.table_name = "merit_badges"
4
4
 
5
- validates :name, presence: true, length: { minimum: 3 }
6
- validates :points, numericality: true, :inclusion => 1..20
5
+ before_validation :strip_whitespace
6
+ def strip_whitespace
7
+ self.name = self.name.strip unless self.name.nil?
8
+ self.description = self.description.strip unless self.description.nil?
9
+ end
10
+
11
+ validates :root_account_id, presence: true
12
+ validates :name, presence: true, length: { minimum: 3, maximum: 10 }
13
+ validates :points, presence: true, numericality: true, :inclusion => 1..100
7
14
  validates :description, presence: false, length: { maximum: 50 }
8
15
 
9
16
  has_one :image, :class_name => 'Attachment', :as => :context, :inverse_of => :context, :dependent => :destroy
10
17
  belongs_to :root_account, foreign_key: "root_account_id", class_name: 'Account'
11
18
  belongs_to :created_by, foreign_key: "user_id", class_name: 'User'
12
- has_many :badges_sashes, class_name: 'Merit::BadgeSash'
19
+ has_many :badges_sashes, class_name: 'Merit::QalamBadgeSash'
13
20
  has_many :sashes, through: :badges_sashes, source: :sash
14
21
 
22
+ def image_url
23
+ # self.image.public_url if self.image
24
+ end
25
+
15
26
  class << self
16
27
  def find_by_id(ids)
17
28
  ids = Array.wrap(ids)
18
29
  find { |b| ids.include? b[:id] }
19
30
  end
20
-
31
+
21
32
  def by_name(name)
22
33
  find { |b| b.name.to_s == name.to_s }
23
34
  end
24
-
35
+
25
36
  def by_level(level)
26
37
  find { |b| b.level.to_s == level.to_s }
27
38
  end
@@ -41,9 +52,18 @@ class Merit::Badge < ApplicationRecord
41
52
  # orm-specified
42
53
  def _define_related_entries_method(meritable_class_name)
43
54
  define_method(:"#{meritable_class_name.underscore.pluralize}") do
44
- sashes = Merit::BadgeSash.where(badge_id: id).pluck(:sash_id)
55
+ sashes = Merit::QalamBadgeSash.where(badge_id: id).pluck(:sash_id)
45
56
  meritable_class_name.constantize.where(sash_id: sashes)
46
57
  end
47
58
  end
59
+
60
+ def create_with_attachment(account, badge, attachment)
61
+ account.shard.activate do
62
+ att = Attachment.create_data_attachment(badge, attachment)
63
+ badge.image = att
64
+ badge.save!
65
+ badge
66
+ end
67
+ end
48
68
  end
49
69
  end
@@ -1,15 +1,15 @@
1
1
  ### QALAM_MERIT ###
2
- class Merit::BadgeSash < ApplicationRecord
2
+ class Merit::QalamBadgeSash < ActiveRecord::Base
3
3
  self.table_name = "badges_sashes"
4
4
  belongs_to :badge, foreign_key: "badge_id", class_name: 'Merit::Badge'
5
- belongs_to :sash, foreign_key: "sash_id", class_name: 'Merit::Sash'
5
+ belongs_to :sash, foreign_key: "sash_id", class_name: 'Merit::QalamSash'
6
6
  # has_many :users, through: :sash, source: :users
7
7
 
8
8
  class << self
9
9
  def user(badge_sash_id = nil)
10
10
  return [] unless badge_sash_id
11
11
 
12
- return [] unless badge_sash = Merit::BadgeSash.find(badge_sash_id)
12
+ return [] unless badge_sash = Merit::QalamBBadgeSash.find(badge_sash_id)
13
13
  sash = badge_sash.sash
14
14
 
15
15
  return [] unless sash && sash.id && sash_id = sash.id
@@ -18,4 +18,3 @@ class Merit::BadgeSash < ApplicationRecord
18
18
  end
19
19
  end
20
20
  end
21
-
@@ -1,7 +1,7 @@
1
1
  ### QALAM_MERIT ###
2
- class Merit::Sash < ApplicationRecord
2
+ class Merit::QalamSash < ActiveRecord::Base
3
3
  self.table_name = "sashes"
4
- has_many :badges_sashes, class_name: 'Merit::BadgeSash'
4
+ has_many :badges_sashes, class_name: 'Merit::QalamBadgeSash'
5
5
  has_many :badges, through: :badges_sashes, source: :badge
6
6
 
7
7
  class << self
@@ -12,4 +12,3 @@ class Merit::Sash < ApplicationRecord
12
12
  end
13
13
  end
14
14
  end
15
-
@@ -1,7 +1,8 @@
1
1
  module Merit::Models::ActiveRecord
2
2
  class BadgesSash < ActiveRecord::Base
3
3
  include Merit::Models::BadgesSashConcern
4
-
4
+ belongs_to :badge, foreign_key: "badge_id", class_name: 'Merit::Badge'
5
+ belongs_to :sash, foreign_key: "sash_id", class_name: 'Merit::Sash'
5
6
  has_many :activity_logs,
6
7
  class_name: 'Merit::ActivityLog',
7
8
  as: :related_change
@@ -7,8 +7,10 @@ module Merit::Models::ActiveRecord
7
7
  # unnecessary. It should be transparent at the application.
8
8
  class Sash < ActiveRecord::Base
9
9
  include Merit::Models::SashConcern
10
+ self.table_name = "sashes"
10
11
 
11
12
  has_many :badges_sashes, dependent: :destroy
13
+ has_many :badges, through: :badges_sashes, source: :badge
12
14
  has_many :scores, dependent: :destroy, class_name: 'Merit::Score'
13
15
 
14
16
  after_create :create_scores
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.0.35'
9
+ s.version = '4.5.00'
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.0.35
4
+ version: 4.5.00
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-15 00:00:00.000000000 Z
12
+ date: 2021-02-24 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: zeitwerk
@@ -147,12 +147,12 @@ files:
147
147
  - lib/merit/generators/merit_generator.rb
148
148
  - lib/merit/generators/remove_generator.rb
149
149
  - lib/merit/generators/templates/badge.erb
150
- - lib/merit/generators/templates/badge_sash.erb
151
150
  - lib/merit/generators/templates/merit.erb
152
151
  - lib/merit/generators/templates/merit_badge_rules.erb
153
152
  - lib/merit/generators/templates/merit_point_rules.erb
154
153
  - lib/merit/generators/templates/merit_rank_rules.erb
155
- - lib/merit/generators/templates/sash.erb
154
+ - lib/merit/generators/templates/qalam_badge_sash.erb
155
+ - lib/merit/generators/templates/qalam_sash.erb
156
156
  - lib/merit/judge.rb
157
157
  - lib/merit/models/action_concern.rb
158
158
  - lib/merit/models/active_record/action.rb