Commit a766ba55880a7f9765c770936b4c1cc2a746b4f4
1 parent
54bc457e
Exists in
profile_api_improvements
and in
1 other branch
Ticket #85: Adding plugin that allows people to have tags (aka interests) - API pending
Showing
6 changed files
with
69 additions
and
0 deletions
Show diff stats
... | ... | @@ -0,0 +1,18 @@ |
1 | +Feature: person tags | |
2 | + | |
3 | +Background: | |
4 | + Given the following users | |
5 | + | login | | |
6 | + | joao | | |
7 | + And I am logged in as "joao" | |
8 | + And "PersonTags" plugin is enabled | |
9 | + | |
10 | +Scenario: add tags to person | |
11 | + Given I am on joao's control panel | |
12 | + And I follow "Edit Profile" | |
13 | + When I fill in "profile_data_interest_list" with "linux,debian" | |
14 | + And I press "Save" | |
15 | + And I go to joao's control panel | |
16 | + And I follow "Edit Profile" | |
17 | + Then the "profile_data_interest_list" field should contain "linux" | |
18 | + And the "profile_data_interest_list" field should contain "debian" | ... | ... |
... | ... | @@ -0,0 +1,18 @@ |
1 | +class PersonTagsPlugin < Noosfero::Plugin | |
2 | + | |
3 | + include ActionView::Helpers::TagHelper | |
4 | + include ActionView::Helpers::FormTagHelper | |
5 | + include FormsHelper | |
6 | + | |
7 | + def self.plugin_name | |
8 | + "PersonTagsPlugin" | |
9 | + end | |
10 | + | |
11 | + def self.plugin_description | |
12 | + _("People can define tags that describe their interests.") | |
13 | + end | |
14 | + | |
15 | + def profile_editor_extras | |
16 | + expanded_template('profile-editor-extras.html.erb').html_safe | |
17 | + end | |
18 | +end | ... | ... |
... | ... | @@ -0,0 +1 @@ |
1 | +require_relative '../../../test/test_helper' | ... | ... |
... | ... | @@ -0,0 +1,16 @@ |
1 | +require 'test_helper' | |
2 | + | |
3 | +class PersonTagsPluginTest < ActiveSupport::TestCase | |
4 | + | |
5 | + def setup | |
6 | + @environment = Environment.default | |
7 | + @environment.enable_plugin(PersonTagsPlugin) | |
8 | + end | |
9 | + | |
10 | + should 'have interests' do | |
11 | + person = create_user('person').person | |
12 | + assert_equal [], person.interests | |
13 | + person.interest_list.add('linux') | |
14 | + assert_equal ['linux'], person.interest_list | |
15 | + end | |
16 | +end | ... | ... |
plugins/person_tags/views/profile-editor-extras.html.erb
0 → 100644
... | ... | @@ -0,0 +1,8 @@ |
1 | +<h2><%= _('Select your fields of interest') %></h2> | |
2 | +<%= text_field_tag('profile_data[interest_list]', context.profile.interest_list.join(','), size: 64) %> | |
3 | +<br /> | |
4 | +<%= content_tag( 'small', _('Separate tags with commas') ) %> | |
5 | + | |
6 | +<script> | |
7 | + jQuery('#profile_data_interest_list').inputosaurus(); | |
8 | +</script> | ... | ... |