qalam_merit 4.5.07 → 4.5.08

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: 18ab3c2aa42a726a285563b7bb673735df7b5a6b1018b797e8f0a17278c038fd
4
- data.tar.gz: c188b2ceb645906ab83c32aaef4722e0c3d73ac5e4771a7a0561b412acaff8e1
3
+ metadata.gz: 3d1f73f153930fdd73e1ba773d40feb481ab847a7d6857623779de05eacb8817
4
+ data.tar.gz: 62ddf64eecbb98665f47c841476fc1d5045813ff97db1bcf9c8fe8347c026f57
5
5
  SHA512:
6
- metadata.gz: 75dae6966612454a115ff99146709ff7aab85f7b10467ea5e8a259e2a54426f78b12a1ebc034a28e6d7c9396894d54479c785a61bfd5f7ca111d51f22ec4c556
7
- data.tar.gz: 5460dcaf5db6bf795547af04f8eb8fea07c51a4a05fcaea8141f2d41178c873d4999f993530d890116d15c96f81bdc5ca328b33698f03ece4a2504dec2a754a5
6
+ metadata.gz: 8e1b99abd43904c894b2e75d590c0d901ab090a24a5f5d83fdd16af6c0307301a74ee93752e5c30f52a3281e763bb8132bb0a4ae14195ec546b29613c3cb6cb5
7
+ data.tar.gz: e976e63ad65c74580397199ea05e8f413a17a51834226066774b83c24517f8feb62cff128be39bb1e6c7e3ceccb338f15d21bfcd1e6121bc38ca94e183abb292
@@ -9,7 +9,6 @@ class CreateMeritBadges < ActiveRecord::Migration<%= migration_version %>
9
9
  t.string :difficulty
10
10
  t.boolean :active, default: true
11
11
  t.references :user, limit: 8, foreign_key: true, index: true, null: true
12
- t.references :root_account, foreign_key: { to_table: 'accounts'}, limit: 8, null: false, index: true
13
12
 
14
13
  t.timestamps
15
14
  end
@@ -1,6 +1,9 @@
1
1
  ### QALAM_MERIT ###
2
2
  class Merit::Badge < ActiveRecord::Base
3
+ # include Workflow
4
+ # include Context
3
5
  self.table_name = "merit_badges"
6
+ @valid_images = ["image/jpeg", "image/png", "image/bmp", "image/jpg"]
4
7
 
5
8
  before_validation :strip_whitespace
6
9
  def strip_whitespace
@@ -8,19 +11,27 @@ class Merit::Badge < ActiveRecord::Base
8
11
  self.description = self.description.strip unless self.description.nil?
9
12
  end
10
13
 
11
- validates :root_account_id, presence: true
12
- validates :name, presence: true, length: { minimum: 3, maximum: 10 }
14
+ validates :name, presence: true, length: { minimum: 3, maximum: 20 }
13
15
  validates :points, presence: true, numericality: true, :inclusion => 1..100
14
- validates :description, presence: false, length: { maximum: 50 }
16
+ validates :description, presence: true, length: { minimum: 3, maximum: 50 }
15
17
 
16
18
  has_one :image, :class_name => 'Attachment', :as => :context, :inverse_of => :context, :dependent => :destroy
17
- belongs_to :root_account, foreign_key: "root_account_id", class_name: 'Account'
18
19
  belongs_to :created_by, foreign_key: "user_id", class_name: 'User'
19
- has_many :badges_sashes, class_name: 'Merit::QalamBadgeSash'
20
- has_many :sashes, through: :badges_sashes, source: :sash
21
20
 
22
21
  def image_url
23
- # self.image.public_url if self.image
22
+ if self.image
23
+ return self.image.public_url
24
+ else
25
+ return '/images/apple-touch-icon.png'
26
+ end
27
+ end
28
+
29
+ def self.valid_images
30
+ @valid_images
31
+ end
32
+
33
+ def badges_sashes
34
+ Merit::BadgesSash.where(badge_id: self.id)
24
35
  end
25
36
 
26
37
  class << self
@@ -47,9 +58,6 @@ class Merit::Badge < ActiveRecord::Base
47
58
  badge
48
59
  end
49
60
 
50
- # Defines Badge#meritable_models method, to get related
51
- # entries with certain badge. For instance, Badge.find(3).users
52
- # orm-specified
53
61
  def _define_related_entries_method(meritable_class_name)
54
62
  define_method(:"#{meritable_class_name.underscore.pluralize}") do
55
63
  sashes = Merit::QalamBadgeSash.where(badge_id: id).pluck(:sash_id)
@@ -58,11 +66,19 @@ class Merit::Badge < ActiveRecord::Base
58
66
  end
59
67
 
60
68
  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
69
+ return true if ((attachment.nil? || attachment.to_s == "null") || account.nil? || badge.nil?)
70
+ if attachment.content_type && @valid_images.include?(attachment.content_type)
71
+ account.shard.activate do
72
+ att = Attachment.create_data_attachment(badge, attachment)
73
+ badge.image = att
74
+ badge.save!
75
+ badge
76
+ end
77
+ return true
78
+ else
79
+ badge.errors.add(:image, :invalid_format, message: 'invalid image format')
80
+ badge.destroy if badge.id
81
+ return false
66
82
  end
67
83
  end
68
84
  end
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.07'
9
+ s.version = '4.5.08'
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.07
4
+ version: 4.5.08
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-03-01 00:00:00.000000000 Z
12
+ date: 2021-03-07 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: zeitwerk