From 5be0de0d348fd8ce2457124e91352f805c767b91 Mon Sep 17 00:00:00 2001
From: Jared Hancock <jared@osticket.com>
Date: Sat, 21 May 2016 21:29:55 -0500
Subject: [PATCH] queue: Fix upgrade crash

- %queue_sorts needs to exist before queues are inserted
- old queue id numbers need to be moved up to make room for initial queues
---
 include/i18n/en_US/queue_column.yaml          |  6 ++---
 .../streams/core/934b8db8-ad9d0a5f.task.php   | 18 ++++++++++++++-
 .../streams/core/98ad7d55-934b8db8.task.php   | 22 -------------------
 3 files changed, 20 insertions(+), 26 deletions(-)
 delete mode 100644 include/upgrader/streams/core/98ad7d55-934b8db8.task.php

diff --git a/include/i18n/en_US/queue_column.yaml b/include/i18n/en_US/queue_column.yaml
index bdc10fd76..1c1d011f5 100644
--- a/include/i18n/en_US/queue_column.yaml
+++ b/include/i18n/en_US/queue_column.yaml
@@ -1,7 +1,7 @@
 # Columns are not necessary and a default list is used if no columns are
 # specified.
 #
-# Fields: 
+# Fields:
 #   id:
 #   flags:      (unused)
 #   name:       Display name of the column
@@ -108,7 +108,7 @@
 
 - id: 11
   name: "Department"
-  primary: "dept"
+  primary: "dept_id"
   truncate: "wrap"
   annotations: "[]"
   conditions: "[]"
@@ -121,7 +121,7 @@
   annotations: "[]"
   conditions: "[]"
 
-- id: 12
+- id: 13
   name: "Last Response"
   primary: "thread__lastresponse"
   filter: "date:human"
diff --git a/include/upgrader/streams/core/934b8db8-ad9d0a5f.task.php b/include/upgrader/streams/core/934b8db8-ad9d0a5f.task.php
index aef435f94..7d48e4ea6 100644
--- a/include/upgrader/streams/core/934b8db8-ad9d0a5f.task.php
+++ b/include/upgrader/streams/core/934b8db8-ad9d0a5f.task.php
@@ -1,10 +1,22 @@
 <?php
 
 class QueueSortCreator extends MigrationTask {
-    var $description = "Load customziable sorting for ticket queues";
+    var $description = "Load customziable ticket queues";
 
     function run($time) {
         $i18n = new Internationalization('en_US');
+        $columns = $i18n->getTemplate('queue_column.yaml')->getData();
+        foreach ($columns as $C) {
+            QueueColumn::__create($C);
+        }
+        // Make room for the new queues starting at ID 1
+        $id = new SqlField('id');
+        CustomQueue::objects()->update(['id' => $id->plus(30)]);
+        $queues = $i18n->getTemplate('queue.yaml')->getData();
+        foreach ($queues as $C) {
+            CustomQueue::__create($C);
+        }
+
         $columns = $i18n->getTemplate('queue_sort.yaml')->getData();
         foreach ($columns as $C) {
             QueueSort::__create($C);
@@ -20,6 +32,10 @@ class QueueSortCreator extends MigrationTask {
             $q->flags |= CustomQueue::FLAG_INHERIT_SORTING;
             $q->save();
         }
+
+        // Set default queue to 'open'
+        global $cfg;
+        $cfg->set('default_ticket_queue', 1);
     }
 }
 return 'QueueSortCreator';
diff --git a/include/upgrader/streams/core/98ad7d55-934b8db8.task.php b/include/upgrader/streams/core/98ad7d55-934b8db8.task.php
deleted file mode 100644
index 66720d3c6..000000000
--- a/include/upgrader/streams/core/98ad7d55-934b8db8.task.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-
-class QueueCreator extends MigrationTask {
-    var $description = "Load customziable ticket queues";
-
-    function run($time) {
-        $i18n = new Internationalization('en_US');
-        $columns = $i18n->getTemplate('queue_column.yaml')->getData();
-        foreach ($columns as $C) {
-            QueueColumn::__create($C);
-        }
-        $queues = $i18n->getTemplate('queue.yaml')->getData();
-        foreach ($queues as $C) {
-            CustomQueue::__create($C);
-        }
-
-        // Set default queue to 'open'
-        global $cfg;
-        $cfg->set('default_ticket_queue', 1);
-    }
-}
-return 'QueueCreator';
-- 
GitLab