Commit 564beb33f68e00f9a8fc36021b77f6c4bc6eccbe

Authored by Victor Costa
1 parent 0ee65a55

Improve point rules types and categorization setup

lib/gamification_plugin.rb
@@ -24,12 +24,6 @@ class GamificationPlugin < Noosfero::Plugin @@ -24,12 +24,6 @@ class GamificationPlugin < Noosfero::Plugin
24 Merit::AppBadgeRules.clear 24 Merit::AppBadgeRules.clear
25 Merit::AppPointRules.merge!(Merit::PointRules.new(environment).defined_rules) 25 Merit::AppPointRules.merge!(Merit::PointRules.new(environment).defined_rules)
26 Merit::AppBadgeRules.merge!(Merit::BadgeRules.new(environment).defined_rules) 26 Merit::AppBadgeRules.merge!(Merit::BadgeRules.new(environment).defined_rules)
27 - #FIXME We have to make a refactor of this code to avoid database data dependendy  
28 - Merit::PointRules::AVAILABLE_RULES.map do |rule_name, rule|  
29 - point_type = GamificationPlugin::PointsType.find_by_name rule_name  
30 - point_type = GamificationPlugin::PointsType.create name: rule_name, description: rule['description'] if point_type.nil?  
31 - GamificationPlugin::PointsCategorization.create point_type_id: point_type.id, weight: rule[:default_weight]  
32 - end  
33 end 27 end
34 28
35 def application_controller_filters 29 def application_controller_filters
@@ -75,6 +69,7 @@ class GamificationPlugin < Noosfero::Plugin @@ -75,6 +69,7 @@ class GamificationPlugin < Noosfero::Plugin
75 config.current_user_method = 'current_person' 69 config.current_user_method = 'current_person'
76 config.add_observer 'Merit::PointTrackObserver' 70 config.add_observer 'Merit::PointTrackObserver'
77 config.add_observer 'Merit::RankObserver' 71 config.add_observer 'Merit::RankObserver'
  72 + Merit::PointRules.setup
78 end 73 end
79 74
80 require_dependency 'merit_ext' 75 require_dependency 'merit_ext'
lib/merit/point_rules.rb
@@ -147,6 +147,14 @@ module Merit @@ -147,6 +147,14 @@ module Merit
147 end 147 end
148 end 148 end
149 149
  150 + def self.setup
  151 + AVAILABLE_RULES.map do |rule_name, rule|
  152 + point_type = GamificationPlugin::PointsType.find_by_name rule_name
  153 + point_type = GamificationPlugin::PointsType.create name: rule_name, description: rule['description'] if point_type.nil?
  154 + GamificationPlugin::PointsCategorization.create point_type_id: point_type.id, weight: rule[:default_weight]
  155 + end
  156 + end
  157 +
150 def initialize(environment=nil) 158 def initialize(environment=nil)
151 return if environment.nil? 159 return if environment.nil?
152 @environment = environment 160 @environment = environment