From 2bc5b60f9de7c533b33348213f6ddac37dc9cdb3 Mon Sep 17 00:00:00 2001 From: Jean-Philippe Lang Date: Sun, 26 Jul 2015 08:30:19 +0000 Subject: Makes new issue initial status settable in workflow (#5816). git-svn-id: http://svn.redmine.org/redmine/trunk@14458 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- ...12753_insert_allowed_statuses_for_new_issues.rb | 23 ++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 db/migrate/20150725112753_insert_allowed_statuses_for_new_issues.rb (limited to 'db') diff --git a/db/migrate/20150725112753_insert_allowed_statuses_for_new_issues.rb b/db/migrate/20150725112753_insert_allowed_statuses_for_new_issues.rb new file mode 100644 index 000000000..dec3bdda1 --- /dev/null +++ b/db/migrate/20150725112753_insert_allowed_statuses_for_new_issues.rb @@ -0,0 +1,23 @@ +class InsertAllowedStatusesForNewIssues < ActiveRecord::Migration + def self.up + # Adds the default status for all trackers and roles + sql = "INSERT INTO #{WorkflowTransition.table_name} (tracker_id, old_status_id, new_status_id, role_id, type)" + + " SELECT t.id, 0, t.default_status_id, r.id, 'WorkflowTransition'" + + " FROM #{Tracker.table_name} t, #{Role.table_name} r" + WorkflowTransition.connection.execute(sql) + + # Adds other statuses that are reachable with one transition + # to preserve previous behaviour as default + sql = "INSERT INTO #{WorkflowTransition.table_name} (tracker_id, old_status_id, new_status_id, role_id, type)" + + " SELECT t.id, 0, w.new_status_id, w.role_id, 'WorkflowTransition'" + + " FROM #{Tracker.table_name} t" + + " JOIN #{IssueStatus.table_name} s on s.id = t.default_status_id" + + " JOIN #{WorkflowTransition.table_name} w on w.tracker_id = t.id and w.old_status_id = s.id and w.type = 'WorkflowTransition'" + + " WHERE w.new_status_id <> t.default_status_id" + WorkflowTransition.connection.execute(sql) + end + + def self.down + WorkflowTransition.where(:old_status_id => 0).delete_all + end +end -- cgit v1.2.3