From 564beb33f68e00f9a8fc36021b77f6c4bc6eccbe Mon Sep 17 00:00:00 2001 From: Victor Costa Date: Wed, 28 Oct 2015 14:21:47 -0300 Subject: [PATCH] Improve point rules types and categorization setup --- lib/gamification_plugin.rb | 7 +------ lib/merit/point_rules.rb | 8 ++++++++ 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/lib/gamification_plugin.rb b/lib/gamification_plugin.rb index 088a3c2..6ce3237 100644 --- a/lib/gamification_plugin.rb +++ b/lib/gamification_plugin.rb @@ -24,12 +24,6 @@ class GamificationPlugin < Noosfero::Plugin Merit::AppBadgeRules.clear Merit::AppPointRules.merge!(Merit::PointRules.new(environment).defined_rules) Merit::AppBadgeRules.merge!(Merit::BadgeRules.new(environment).defined_rules) - #FIXME We have to make a refactor of this code to avoid database data dependendy - Merit::PointRules::AVAILABLE_RULES.map do |rule_name, rule| - point_type = GamificationPlugin::PointsType.find_by_name rule_name - point_type = GamificationPlugin::PointsType.create name: rule_name, description: rule['description'] if point_type.nil? - GamificationPlugin::PointsCategorization.create point_type_id: point_type.id, weight: rule[:default_weight] - end end def application_controller_filters @@ -75,6 +69,7 @@ class GamificationPlugin < Noosfero::Plugin config.current_user_method = 'current_person' config.add_observer 'Merit::PointTrackObserver' config.add_observer 'Merit::RankObserver' + Merit::PointRules.setup end require_dependency 'merit_ext' diff --git a/lib/merit/point_rules.rb b/lib/merit/point_rules.rb index d393bc3..f490f3b 100644 --- a/lib/merit/point_rules.rb +++ b/lib/merit/point_rules.rb @@ -147,6 +147,14 @@ module Merit end end + def self.setup + AVAILABLE_RULES.map do |rule_name, rule| + point_type = GamificationPlugin::PointsType.find_by_name rule_name + point_type = GamificationPlugin::PointsType.create name: rule_name, description: rule['description'] if point_type.nil? + GamificationPlugin::PointsCategorization.create point_type_id: point_type.id, weight: rule[:default_weight] + end + end + def initialize(environment=nil) return if environment.nil? @environment = environment -- libgit2 0.21.2