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 | ... | ... |