diff options
author | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2007-12-07 11:19:30 +0000 |
---|---|---|
committer | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2007-12-07 11:19:30 +0000 |
commit | 5e38bd93634b9135e5f294ec1823e8a6b04c3b64 (patch) | |
tree | 0abe6ed37c9b5f8e6c2266b75178af7b4a2b9c73 | |
parent | a79cf8d574d1bdad8483586014019ed9ee2b3bdf (diff) | |
download | redmine-5e38bd93634b9135e5f294ec1823e8a6b04c3b64.tar.gz redmine-5e38bd93634b9135e5f294ec1823e8a6b04c3b64.zip |
Performance improvement on workflow setup screen.
git-svn-id: http://redmine.rubyforge.org/svn/trunk@957 e93f8b46-1217-0410-a6f0-8f06a7374b81
-rw-r--r-- | app/controllers/roles_controller.rb | 2 | ||||
-rw-r--r-- | app/views/roles/workflow.rhtml | 14 | ||||
-rw-r--r-- | db/migrate/085_add_role_tracker_old_status_index_to_workflows.rb | 9 |
3 files changed, 16 insertions, 9 deletions
diff --git a/app/controllers/roles_controller.rb b/app/controllers/roles_controller.rb index 3b5766aaf..a8a31cd4d 100644 --- a/app/controllers/roles_controller.rb +++ b/app/controllers/roles_controller.rb @@ -94,7 +94,7 @@ class RolesController < ApplicationController end @roles = Role.find(:all, :order => 'builtin, position') @trackers = Tracker.find(:all, :order => 'position') - @statuses = IssueStatus.find(:all, :include => :workflows, :order => 'position') + @statuses = IssueStatus.find(:all, :order => 'position') end def report diff --git a/app/views/roles/workflow.rhtml b/app/views/roles/workflow.rhtml index 2bc2abd51..0a435744f 100644 --- a/app/views/roles/workflow.rhtml +++ b/app/views/roles/workflow.rhtml @@ -35,18 +35,16 @@ <% for old_status in @statuses %> <tr> - <td><%= old_status.name %></td> - <% for new_status in @statuses %> + <td><%= old_status.name %></td> + <% new_status_ids_allowed = old_status.find_new_statuses_allowed_to(@role, @tracker).collect(&:id) -%> + <% for new_status in @statuses -%> <td align="center"> - - <input type="checkbox" + <input type="checkbox" name="issue_status[<%= old_status.id %>][]" value="<%= new_status.id %>" - <%if old_status.new_statuses_allowed_to(@role, @tracker).include? new_status%>checked="checked"<%end%> - > + <%= 'checked="checked"' if new_status_ids_allowed.include? new_status.id %>> </td> - <% end %> - + <% end -%> </tr> <% end %> </table> diff --git a/db/migrate/085_add_role_tracker_old_status_index_to_workflows.rb b/db/migrate/085_add_role_tracker_old_status_index_to_workflows.rb new file mode 100644 index 000000000..523cf091b --- /dev/null +++ b/db/migrate/085_add_role_tracker_old_status_index_to_workflows.rb @@ -0,0 +1,9 @@ +class AddRoleTrackerOldStatusIndexToWorkflows < ActiveRecord::Migration + def self.up + add_index :workflows, [:role_id, :tracker_id, :old_status_id], :name => :workflows_role_tracker_old_status + end + + def self.down + remove_index :workflows, :name => :workflows_role_tracker_old_status + end +end |