Commit fe715b1332ed72537d39d60664781db2834224e6
Exists in
staging
and in
3 other branches
Merge branch 'target_detail' into 'master'
explicit target detail in task information Now the tasks management are getting tasks of different profiles. In some cases we need to display the target detail to decide about task approval See merge request !1012
Showing
7 changed files
with
43 additions
and
13 deletions
Show diff stats
app/helpers/application_helper.rb
... | ... | @@ -964,11 +964,16 @@ module ApplicationHelper |
964 | 964 | content_tag(:div, _('Source: %s') % source_url, :id => 'article-source') unless source_url.nil? |
965 | 965 | end |
966 | 966 | |
967 | - def task_information(task) | |
967 | + def task_information(task, params = {}) | |
968 | 968 | values = {} |
969 | 969 | values.merge!(task.information[:variables]) if task.information[:variables] |
970 | 970 | values.merge!({:requestor => link_to(task.requestor.name, task.requestor.url)}) if task.requestor |
971 | - values.merge!({:target => link_to(task.target.name, task.target.url)}) if (task.target && task.target.respond_to?(:url)) | |
971 | + if (task.target && task.target.respond_to?(:url)) | |
972 | + values.merge!({:target => link_to(task.target.name, task.target.url)}) | |
973 | + target_detail = _("in %s").html_safe % values[:target] | |
974 | + target_detail = '' if task.target.identifier == params[:profile] | |
975 | + values.merge!({:target_detail => target_detail}) | |
976 | + end | |
972 | 977 | values.merge!({:subject => content_tag('span', task.subject, :class=>'task_target')}) if task.subject |
973 | 978 | values.merge!({:linked_subject => link_to(content_tag('span', task.linked_subject[:text], :class => 'task_target'), task.linked_subject[:url])}) if task.linked_subject |
974 | 979 | (task.information[:message] % values).html_safe | ... | ... |
app/models/suggest_article.rb
... | ... | @@ -65,7 +65,7 @@ class SuggestArticle < Task |
65 | 65 | |
66 | 66 | def information |
67 | 67 | variables = requestor.blank? ? {:requestor => sender} : {} |
68 | - { :message => _('%{requestor} suggested the publication of the article: %{subject}.').html_safe, | |
68 | + { :message => _('%{requestor} suggested the publication %{target_detail} of the article: %{subject}.').html_safe, | |
69 | 69 | :variables => variables } |
70 | 70 | end |
71 | 71 | ... | ... |
app/views/profile_editor/_pending_tasks.html.erb
... | ... | @@ -4,7 +4,7 @@ |
4 | 4 | <div class='pending-tasks'> |
5 | 5 | <h2><%= _('You have %s pending requests' % @pending_tasks.count) %></h2> |
6 | 6 | <ul> |
7 | - <%= safe_join(@pending_tasks.limit(5).map {|task| content_tag('li', task_information(task).html_safe)}) %> | |
7 | + <%= safe_join(@pending_tasks.limit(5).map {|task| content_tag('li', task_information(task, params).html_safe)}) %> | |
8 | 8 | </ul> |
9 | 9 | <%= button(:todo, _('Process requests'), :controller => 'tasks', :action => 'index') %> |
10 | 10 | </div> | ... | ... |
app/views/spam/_task.html.erb
... | ... | @@ -2,7 +2,7 @@ |
2 | 2 | <%= render :partial => 'tasks/task_icon', :locals => {:task => task} %> |
3 | 3 | <%= render :partial => 'tasks/task_title', :locals => {:task => task} %> |
4 | 4 | <div class="task-information"> |
5 | - <%= task_information(task) %> | |
5 | + <%= task_information(task, params) %> | |
6 | 6 | </div> |
7 | 7 | |
8 | 8 | <%= yield %> <%# ??? %> | ... | ... |
app/views/tasks/_task.html.erb
app/views/tasks/_task_processed.html.erb
test/unit/application_helper_test.rb
... | ... | @@ -545,12 +545,6 @@ class ApplicationHelperTest < ActionView::TestCase |
545 | 545 | assert_equal ["1 for b", "2 for c", "3 for a"], unique_with_count(%w(a b c a c a)) |
546 | 546 | end |
547 | 547 | |
548 | - should 'show task information with the requestor' do | |
549 | - person = create_user('usertest').person | |
550 | - task = create(Task, :requestor => person) | |
551 | - assert_match person.name, task_information(task) | |
552 | - end | |
553 | - | |
554 | 548 | should 'return nil when :show_zoom_button_on_article_images is not enabled in environment' do |
555 | 549 | env = Environment.default |
556 | 550 | env.stubs(:enabled?).with(:show_zoom_button_on_article_images).returns(false) |
... | ... | @@ -960,6 +954,37 @@ class ApplicationHelperTest < ActionView::TestCase |
960 | 954 | refute current_editor_is?(nil) |
961 | 955 | end |
962 | 956 | |
957 | + should 'show task information with the requestor' do | |
958 | + person = create_user('usertest').person | |
959 | + task = create(Task, :requestor => person) | |
960 | + assert_match person.name, task_information(task) | |
961 | + end | |
962 | + | |
963 | + should 'show task information with variables information on suggest article tasks' do | |
964 | + person = create_user('usertest').person | |
965 | + task = create(SuggestArticle, :name => person.name, :target => person) | |
966 | + assert_match person.name, task_information(task) | |
967 | + end | |
968 | + | |
969 | + should 'show task information with target detail information on suggest article tasks' do | |
970 | + person = create_user('usertest').person | |
971 | + task = create(SuggestArticle, :target => person) | |
972 | + assert_match /in.*#{person.name}/, task_information(task) | |
973 | + end | |
974 | + | |
975 | + should "show task information without target detail information on suggest article tasks if it's in the same profile" do | |
976 | + profile = fast_create(Community) | |
977 | + task = create(SuggestArticle, :target => profile) | |
978 | + assert_no_match /in.*#{profile.name}/, task_information(task, {:profile => profile.identifier}) | |
979 | + end | |
980 | + | |
981 | + should "show task information with target detail information on suggest article with profile parameter to another profile" do | |
982 | + profile = fast_create(Community) | |
983 | + another_profile = fast_create(Community) | |
984 | + task = create(SuggestArticle, :target => profile) | |
985 | + assert_match /in.*#{profile.name}/, task_information(task, {:profile => another_profile.identifier}) | |
986 | + end | |
987 | + | |
963 | 988 | protected |
964 | 989 | include NoosferoTestHelper |
965 | 990 | ... | ... |