Commit 2a9421e8bbce852d98c7d20590429bdaacf45d40

Authored by Victor Costa
1 parent a49ad7f9

Delegate Merit::Badge to GamificationPlugin::Badge

lib/ext/environment.rb
@@ -2,6 +2,6 @@ require_dependency 'environment' @@ -2,6 +2,6 @@ require_dependency 'environment'
2 2
3 class Environment 3 class Environment
4 4
5 - has_many :gamification_plugin_badges, :class_name => 'GamificationPlugin::Badge', :foreign_key => 'owner_id' 5 + has_many :gamification_plugin_badges, :class_name => 'GamificationPlugin::Badge', :foreign_key => 'owner_id', :source => :owner
6 6
7 end 7 end
lib/merit/badge_rules.rb
@@ -41,13 +41,8 @@ module Merit @@ -41,13 +41,8 @@ module Merit
41 def initialize(environment=nil) 41 def initialize(environment=nil)
42 return if environment.nil? 42 return if environment.nil?
43 @environment = environment 43 @environment = environment
44 - # FIXME avoid this  
45 - Merit::Badge.all.each { |badge| badge.destroy }  
46 -  
47 - GamificationPlugin::Badge.all.each do |badge|  
48 - # FIXME avoid this  
49 - Merit::Badge.create!(:name => badge.name, :id => badge.id, :level => badge.level) # FIXME conflict with multitenancy?  
50 44
  45 + environment.gamification_plugin_badges.all.each do |badge|
51 setting = AVAILABLE_RULES[badge.name.to_sym] 46 setting = AVAILABLE_RULES[badge.name.to_sym]
52 grant_on setting[:action], :badge => badge.name, :level => badge.level do |source| 47 grant_on setting[:action], :badge => badge.name, :level => badge.level do |source|
53 setting[:value].call(source) >= (badge.custom_fields || {}).fetch(:threshold, setting[:default_threshold]) 48 setting[:value].call(source) >= (badge.custom_fields || {}).fetch(:threshold, setting[:default_threshold])
lib/merit_badge.rb 0 → 100644
@@ -0,0 +1,14 @@ @@ -0,0 +1,14 @@
  1 +require_dependency 'merit/badge'
  2 +
  3 +module Merit
  4 +
  5 + # Delegate find methods to GamificationPlugin::Badge
  6 + class Badge
  7 + class << self
  8 + [:find_by_name_and_level, :find].each do |method|
  9 + delegate method, :to => 'GamificationPlugin::Badge'
  10 + end
  11 + end
  12 + end
  13 +
  14 +end
lib/merit_ext.rb
  1 +require 'merit_badge'
  2 +
1 module Merit 3 module Merit
2 module ControllerExtensions 4 module ControllerExtensions
3 5