Commit d9a171ceb019f053c13bd40650d8f526909ddc03

Authored by Victor Costa
2 parents daa36297 2f6dced2

Merge commit '2f6dced'

lib/ext/article.rb
... ... @@ -1,8 +0,0 @@
1   -require_dependency 'article'
2   -
3   -class Article
4   -
5   - has_merit
6   - has_merit_actions
7   -
8   -end
lib/ext/text_article.rb 0 → 100644
... ... @@ -0,0 +1,8 @@
  1 +require_dependency 'text_article'
  2 +
  3 +class TextArticle
  4 +
  5 + has_merit
  6 + has_merit_actions
  7 +
  8 +end
... ...
lib/gamification_plugin.rb
... ... @@ -35,7 +35,7 @@ class GamificationPlugin < Noosfero::Plugin
35 35  
36 36 def body_ending
37 37 proc do
38   - if current_person.present?
  38 + if current_person.present? && response.status == 200
39 39 badges = current_person.badges.notification_pending.all
40 40 current_person.sash.notify_all_badges_from_user
41 41 render :file => 'gamification/display_notifications', :locals => {:badges => badges}
... ...
script/process_merit_rules.rb
... ... @@ -10,14 +10,14 @@ def create_action(obj, index, count)
10 10 end
11 11 end
12 12  
13   -puts "Destroy all merit actions"
14   -Merit::Action.destroy_all
  13 +#puts "Destroy all merit actions"
  14 +#Merit::Action.destroy_all
15 15  
16   -count = Person.count
17   -Person.all.each.with_index(1) do |person, i|
18   - puts "#{i}/#{count} Remove sash from #{person.identifier}"
19   - person.sash.destroy unless person.sash.nil?
20   -end
  16 +#count = Person.count
  17 +#Person.all.each.with_index(1) do |person, i|
  18 +# puts "#{i}/#{count} Remove sash from #{person.identifier}"
  19 +# person.sash.destroy unless person.sash.nil?
  20 +#end
21 21  
22 22 Environment.all.each do |environment|
23 23  
... ... @@ -26,9 +26,9 @@ Environment.all.each do |environment|
26 26 Merit::AppPointRules.merge!(Merit::PointRules.new(environment).defined_rules)
27 27 Merit::AppBadgeRules.merge!(Merit::BadgeRules.new(environment).defined_rules)
28 28  
29   - article_count = environment.articles.count
  29 + article_count = environment.articles.text_articles.count
30 30 article_index = 0
31   - environment.articles.find_each do |article|
  31 + environment.articles.text_articles.find_each do |article|
32 32 article_index += 1
33 33 create_action(article, article_index, article_count)
34 34  
... ... @@ -45,4 +45,9 @@ Environment.all.each do |environment|
45 45 end
46 46 end
47 47  
  48 + environment.people.each.with_index(1) do |person, person_index|
  49 + puts "Updating #{person.identifier} level"
  50 + person.update_attribute(:level, person.gamification_plugin_calculate_level)
  51 + end
  52 +
48 53 end
... ...
test/unit/article_test.rb
... ... @@ -11,12 +11,12 @@ class ArticleTest < ActiveSupport::TestCase
11 11 attr_accessor :person, :environment
12 12  
13 13 should 'add merit points to author when create a new article' do
14   - create(Article, :profile_id => person.id, :author => person)
  14 + create(TextArticle, :profile_id => person.id, :author => person)
15 15 assert_equal 1, person.score_points.count
16 16 end
17 17  
18 18 should 'subtract merit points to author when destroy an article' do
19   - article = create(Article, :profile_id => person.id, :author => person)
  19 + article = create(TextArticle, :profile_id => person.id, :author => person)
20 20 assert_equal 1, person.score_points.count
21 21 article.destroy
22 22 assert_equal 2, person.score_points.count
... ... @@ -27,7 +27,7 @@ class ArticleTest < ActiveSupport::TestCase
27 27 GamificationPlugin::Badge.create!(:owner => environment, :name => 'article_author', :level => 1)
28 28 GamificationPlugin.gamification_set_rules(environment)
29 29  
30   - 5.times { create(Article, :profile_id => person.id, :author => person) }
  30 + 5.times { create(TextArticle, :profile_id => person.id, :author => person) }
31 31 assert_equal 'article_author', person.badges.first.name
32 32 assert_equal 1, person.badges.first.level
33 33 end
... ... @@ -37,13 +37,13 @@ class ArticleTest < ActiveSupport::TestCase
37 37 GamificationPlugin::Badge.create!(:owner => environment, :name => 'article_author', :level => 2, :custom_fields => {:threshold => 10})
38 38 GamificationPlugin.gamification_set_rules(environment)
39 39  
40   - 10.times { create(Article, :profile_id => person.id, :author => person) }
  40 + 10.times { create(TextArticle, :profile_id => person.id, :author => person) }
41 41 assert_equal ['article_author'], person.badges.map(&:name).uniq
42 42 assert_equal [1, 2], person.badges.map(&:level)
43 43 end
44 44  
45 45 should 'add merit points to article owner when an user like it' do
46   - article = create(Article, :name => 'Test', :profile => person, :author => person)
  46 + article = create(TextArticle, :name => 'Test', :profile => person, :author => person)
47 47  
48 48 assert_difference 'article.author.points(:category => :vote_voteable_author)', 50 do
49 49 Vote.create!(:voter => person, :voteable => article, :vote => 1)
... ... @@ -51,7 +51,7 @@ class ArticleTest < ActiveSupport::TestCase
51 51 end
52 52  
53 53 should 'add merit points to article when an user like it' do
54   - article = create(Article, :name => 'Test', :profile => person, :author => person)
  54 + article = create(TextArticle, :name => 'Test', :profile => person, :author => person)
55 55 article = article.reload
56 56  
57 57 assert_difference 'article.points(:category => :vote_voteable)', 50 do
... ... @@ -62,12 +62,12 @@ class ArticleTest < ActiveSupport::TestCase
62 62 should 'add merit points to community when create a new article' do
63 63 community = fast_create(Community)
64 64 assert_difference 'community.score_points.count' do
65   - create(Article, :profile_id => community.id, :author => person)
  65 + create(TextArticle, :profile_id => community.id, :author => person)
66 66 end
67 67 end
68 68  
69 69 should 'add merit points to voter when he likes an article' do
70   - article = create(Article, :name => 'Test', :profile => person, :author => person)
  70 + article = create(TextArticle, :name => 'Test', :profile => person, :author => person)
71 71  
72 72 assert_difference 'article.author.points(:category => :vote_voter)', 10 do
73 73 Vote.create!(:voter => person, :voteable => article, :vote => 1)
... ... @@ -75,7 +75,7 @@ class ArticleTest < ActiveSupport::TestCase
75 75 end
76 76  
77 77 should 'add merit points to voter when he dislikes an article' do
78   - article = create(Article, :name => 'Test', :profile => person, :author => person)
  78 + article = create(TextArticle, :name => 'Test', :profile => person, :author => person)
79 79  
80 80 assert_difference 'article.author.points(:category => :vote_voter)', 10 do
81 81 Vote.create!(:voter => person, :voteable => article, :vote => -1)
... ... @@ -86,7 +86,7 @@ class ArticleTest < ActiveSupport::TestCase
86 86 GamificationPlugin::Badge.create!(:owner => environment, :name => 'positive_votes_received')
87 87 GamificationPlugin.gamification_set_rules(environment)
88 88  
89   - article = create(Article, :name => 'Test', :profile => person, :author => person)
  89 + article = create(TextArticle, :name => 'Test', :profile => person, :author => person)
90 90 4.times { Vote.create!(:voter => fast_create(Person), :voteable => article, :vote => 1) }
91 91 Vote.create!(:voter => fast_create(Person), :voteable => article, :vote => -1)
92 92 assert_equal [], person.badges
... ... @@ -98,7 +98,7 @@ class ArticleTest < ActiveSupport::TestCase
98 98 GamificationPlugin::Badge.create!(:owner => environment, :name => 'negative_votes_received')
99 99 GamificationPlugin.gamification_set_rules(environment)
100 100  
101   - article = create(Article, :name => 'Test', :profile => person, :author => person)
  101 + article = create(TextArticle, :name => 'Test', :profile => person, :author => person)
102 102 4.times { Vote.create!(:voter => fast_create(Person), :voteable => article, :vote => -1) }
103 103 Vote.create!(:voter => fast_create(Person), :voteable => article, :vote => 1)
104 104 assert_equal [], person.badges
... ...
test/unit/profile_test.rb
... ... @@ -35,7 +35,7 @@ class ProfileTest < ActiveSupport::TestCase
35 35 GamificationPlugin.gamification_set_rules(environment)
36 36 person = create_user('testuser').person
37 37 assert_equal 0, person.level
38   - create(Article, :profile_id => profile.id, :author => person)
  38 + create(TextArticle, :profile_id => profile.id, :author => person)
39 39 assert_equal 3, person.reload.level
40 40 end
41 41  
... ...