Commit 2b0420faf2e20fa59d0a5e16b6d6340dab53ed27

Authored by Michel Felipe
Committed by Victor Costa
1 parent 23a10a5f

Added new method that keep all params filters after perform a task

app/controllers/my_profile/tasks_controller.rb
... ... @@ -65,7 +65,7 @@ class TasksController < MyProfileController
65 65 session[:notice] = _("Some decisions couldn't be applied.")
66 66 url[:failed] = failed
67 67 end
68   - redirect_to url
  68 + redirect_with_filters url
69 69 end
70 70  
71 71 def new
... ... @@ -76,7 +76,8 @@ class TasksController < MyProfileController
76 76 @ticket.requestor = profile
77 77 if request.post?
78 78 if @ticket.save
79   - redirect_to :action => 'index'
  79 + url = {:action => 'index'}
  80 + redirect_to url
80 81 end
81 82 end
82 83 end
... ... @@ -89,4 +90,11 @@ class TasksController < MyProfileController
89 90 @ticket = Ticket.find(:first, :conditions => ['(requestor_id = ? or target_id = ?) and id = ?', profile.id, profile.id, params[:id]])
90 91 end
91 92  
  93 + protected
  94 +
  95 + def redirect_with_filters(url_data)
  96 +
  97 + filter_params = params.select {|p| p =~ /filter_/}
  98 + redirect_to url_data.merge(filter_params)
  99 + end
92 100 end
... ...
test/functional/tasks_controller_test.rb
... ... @@ -76,6 +76,17 @@ class TasksControllerTest < ActionController::TestCase
76 76 ok('task should be finished') { t.status == Task::Status::FINISHED }
77 77 end
78 78  
  79 + should 'keep filters after close a task' do
  80 + t = profile.tasks.build; t.save!
  81 +
  82 + post :close, :tasks => {t.id => {:decision => 'finish', :task => {}}}, :filter_type => t.type
  83 + assert_redirected_to :action => 'index', :filter_type => t.type
  84 + assert_equal @controller.params[:filter_type], t.type
  85 +
  86 + t.reload
  87 + ok('task should be finished') { t.status == Task::Status::FINISHED }
  88 + end
  89 +
79 90 should 'be able to cancel a task' do
80 91 t = profile.tasks.build; t.save!
81 92  
... ... @@ -149,7 +160,7 @@ class TasksControllerTest < ActionController::TestCase
149 160  
150 161 should 'create a ticket with profile requestor' do
151 162 post :new, :profile => profile.identifier, :ticket => {:name => 'new task'}
152   -
  163 +
153 164 assert_equal profile, assigns(:ticket).requestor
154 165 end
155 166  
... ... @@ -628,7 +639,7 @@ class TasksControllerTest < ActionController::TestCase
628 639  
629 640 assert_select ".task_responsible select", 0
630 641 assert_select ".task_responsible .value"
631   - end
  642 + end
632 643  
633 644 should 'store the person who closes a task' do
634 645 t = profile.tasks.build; t.save!
... ...