Commit d9a171ceb019f053c13bd40650d8f526909ddc03
Exists in
master
and in
1 other branch
Merge commit '2f6dced'
Showing
6 changed files
with
35 additions
and
30 deletions
Show diff stats
lib/ext/article.rb
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 | ... | ... |