Commit 9ef8392231f6896f53605504b36a0843e600a436
1 parent
1d415104
Exists in
master
and in
1 other branch
load the point rules correctly
Showing
5 changed files
with
18 additions
and
35 deletions
Show diff stats
lib/gamification_plugin.rb
... | ... | @@ -24,6 +24,12 @@ class GamificationPlugin < Noosfero::Plugin |
24 | 24 | Merit::AppBadgeRules.clear |
25 | 25 | Merit::AppPointRules.merge!(Merit::PointRules.new(environment).defined_rules) |
26 | 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 | |
27 | 33 | end |
28 | 34 | |
29 | 35 | def application_controller_filters | ... | ... |
lib/merit/point_rules.rb
... | ... | @@ -127,37 +127,7 @@ module Merit |
127 | 127 | model: 'ArticleFollower', |
128 | 128 | condition: lambda {|follow, profile| profile.nil? or follow.article.profile == profile }, |
129 | 129 | profile_action: true |
130 | - }, | |
131 | - #mobilizer: { | |
132 | - #action: 'mobilize#create', | |
133 | - #undo_action: 'mobilize#destroy', | |
134 | - #to: lambda {|target| target.source.author }, | |
135 | - #value: 1, | |
136 | - #description: _('Mobilized Article Author'), | |
137 | - #default_weight: 60, | |
138 | - #condition: lambda {|target, profile| profile.nil? or target.source.profile == profile }, | |
139 | - #profile_action: true | |
140 | - #}, | |
141 | - #mobilized_article_author: { | |
142 | - #action: 'mobilize#create', | |
143 | - #undo_action: 'mobilize#destroy', | |
144 | - #to: lambda {|target| target.source.author }, | |
145 | - #value: 1, | |
146 | - #description: _('Mobilized Article Author'), | |
147 | - #default_weight: 70, | |
148 | - #condition: lambda {|follow, profile| profile.nil? or follow.source.profile == profile }, | |
149 | - #profile_action: true | |
150 | - #}, | |
151 | - #mobilized_article: { | |
152 | - #action: 'mobilize#create', | |
153 | - #undo_action: 'mobilize#destroy', | |
154 | - #to: lambda {|target| target.source }, | |
155 | - #value: 1, | |
156 | - #description: _('Mobilized Article Author'), | |
157 | - #default_weight: 70, | |
158 | - #condition: lambda {|follow, profile| profile.nil? or follow.source.profile == profile }, | |
159 | - #profile_action: true | |
160 | - #} | |
130 | + } | |
161 | 131 | } |
162 | 132 | |
163 | 133 | def calculate_score(target, weight, value) | ... | ... |
test/test_helper.rb
... | ... | @@ -4,7 +4,7 @@ def create_point_rule_definition(rule_name, profile = nil, config = {}) |
4 | 4 | rule = load_point_rule(rule_name, config) |
5 | 5 | point_type = GamificationPlugin::PointsType.find_by_name rule_name |
6 | 6 | point_type = GamificationPlugin::PointsType.create name: rule_name, description: rule['description'] if point_type.nil? |
7 | - GamificationPlugin::PointsCategorization.create! point_type_id: point_type.id, profile: profile, weight: rule[:default_weight] | |
7 | + GamificationPlugin::PointsCategorization.create point_type_id: point_type.id, profile: profile, weight: rule[:default_weight] | |
8 | 8 | GamificationPlugin.gamification_set_rules(@environment) |
9 | 9 | end |
10 | 10 | |
... | ... | @@ -32,3 +32,4 @@ def person_points_debug(person) |
32 | 32 | puts GamificationPlugin::PointsCategorization.find(sp.score.category).point_type.inspect |
33 | 33 | end |
34 | 34 | end |
35 | + | ... | ... |
test/unit/article_follower.rb
... | ... | @@ -37,15 +37,20 @@ class ArticleTest < ActiveSupport::TestCase |
37 | 37 | create_point_rule_definition('followed_article_author') |
38 | 38 | author = create_user('someuser').person |
39 | 39 | article = create(TextArticle, :profile_id => community.id, :author => author) |
40 | - amount = author.score_points.count | |
40 | + | |
41 | + author_amount = author.score_points.count | |
42 | + person_amount = person.score_points.count | |
41 | 43 | article.person_followers << person |
42 | - assert_equal amount + 1, author.score_points.count | |
44 | + | |
45 | + assert_equal author_amount + 1, author.score_points.count | |
43 | 46 | last_point = author.score_points.last |
44 | 47 | assert_equal article.article_followers.last.id, last_point.action.target_id |
45 | - assert_equal amount + 1, person.score_points.count | |
48 | + | |
49 | + assert_equal person_amount + 1, person.score_points.count | |
46 | 50 | last_point = person.score_points.last |
47 | 51 | assert_equal article.article_followers.last.id, last_point.action.target_id |
48 | 52 | end |
53 | + | |
49 | 54 | # should 'subtract merit points to author when destroy an article' do |
50 | 55 | # article = create(TextArticle, :profile_id => @community.id, :author => person) |
51 | 56 | # assert_equal 1, person.score_points.count | ... | ... |
test/unit/point_rules_test.rb