Commit 93137fa5eba1c2b57c39280ffce52efac6c2d121
1 parent
9a9aee47
Exists in
master
Get activities as attributes
Signed-off-by: Fabio Teixeira <fabio1079@gmail.com> Signed-off-by: Luciano Prestes <lucianopcbr@gmail.com>
Showing
2 changed files
with
59 additions
and
2 deletions
Show diff stats
lib/ext/person.rb
| ... | ... | @@ -11,6 +11,8 @@ class Person |
| 11 | 11 | |
| 12 | 12 | attrs = softwares_attrs(attrs) |
| 13 | 13 | |
| 14 | + attrs = activities_attrs(attrs) | |
| 15 | + | |
| 14 | 16 | attrs |
| 15 | 17 | end |
| 16 | 18 | |
| ... | ... | @@ -25,7 +27,7 @@ class Person |
| 25 | 27 | |
| 26 | 28 | def commuinities_attrs(attrs) |
| 27 | 29 | attrs['communities-count'] = self.respond_to?("softwares") ? |
| 28 | - self.communities.count - self.softwares.count : | |
| 30 | + self.communities.count - self.softwares.count : | |
| 29 | 31 | self.communities.count |
| 30 | 32 | attrs['communities'] = [] |
| 31 | 33 | self.communities.each do |community| |
| ... | ... | @@ -47,7 +49,22 @@ class Person |
| 47 | 49 | attrs |
| 48 | 50 | end |
| 49 | 51 | |
| 50 | - private | |
| 52 | + def activities_attrs(attrs) | |
| 53 | + attrs['activities'] = [] | |
| 54 | + | |
| 55 | + ids = self.activities.collect { |a| a.id } | |
| 56 | + | |
| 57 | + ActionTracker::Record.find(ids).collect { |a| | |
| 58 | + attrs['activities'] << { | |
| 59 | + "verb" => a.verb, | |
| 60 | + "params" => a.params | |
| 61 | + } | |
| 62 | + } | |
| 63 | + | |
| 64 | + attrs | |
| 65 | + end | |
| 66 | + | |
| 67 | + private | |
| 51 | 68 | |
| 52 | 69 | def profile_attrs(profile) |
| 53 | 70 | profile = { | ... | ... |
test/functional/colab_integration_plugin_controller_test.rb
| ... | ... | @@ -6,6 +6,7 @@ class ColabIntegrationPluginController; def rescue_action(e) raise e end; end |
| 6 | 6 | class ColabIntegrationPluginControllerTest < ActionController::TestCase |
| 7 | 7 | |
| 8 | 8 | def setup |
| 9 | + @controller = ColabIntegrationPluginController.new | |
| 9 | 10 | @john = fast_create(Person, :name => "John Snow") |
| 10 | 11 | @arya = fast_create(Person, :name => "Arya Stark") |
| 11 | 12 | @joffrey = fast_create(Person, :name => "Joffrey Lannister") |
| ... | ... | @@ -43,4 +44,43 @@ class ColabIntegrationPluginControllerTest < ActionController::TestCase |
| 43 | 44 | } |
| 44 | 45 | assert_equal persons_with_article.count, 1 |
| 45 | 46 | end |
| 47 | + | |
| 48 | + #TODO - FIXME | |
| 49 | + should "return a json with activities of the user" do | |
| 50 | + create_article_by_post @john, "The winter is coming", "help" | |
| 51 | + create_article_by_post @john, "The coming is winter", "help" | |
| 52 | + create_article_by_post @john, "winter is", "help" | |
| 53 | + | |
| 54 | + puts "="*80, @john.activities_attrs({}), "="*80 | |
| 55 | + | |
| 56 | + assert_equal 1, 1 | |
| 57 | + end | |
| 58 | + | |
| 59 | + private | |
| 60 | + | |
| 61 | + def create_article_by_post profile, article_name, article_body | |
| 62 | + @controller = CmsController.new | |
| 63 | + | |
| 64 | + post( | |
| 65 | + "new", | |
| 66 | + :article => { | |
| 67 | + :name => article_name, | |
| 68 | + :parent_id => "", | |
| 69 | + :license_id => "", | |
| 70 | + :abstract => "", | |
| 71 | + :body =>"<p>#{article_body}</p> ", | |
| 72 | + :category_ids =>[""], | |
| 73 | + :tag_list => "", | |
| 74 | + :published => "true", | |
| 75 | + :show_to_followers =>"0", | |
| 76 | + :accept_comments => "1", | |
| 77 | + :notify_comments => "1", | |
| 78 | + :moderate_comments =>"0", | |
| 79 | + :display_hits => "1", | |
| 80 | + :display_versions => "0" | |
| 81 | + }, | |
| 82 | + :commit => "Save", | |
| 83 | + :profile => profile | |
| 84 | + ) | |
| 85 | + end | |
| 46 | 86 | end | ... | ... |