Switch to side-by-side view

--- a
+++ b/scripts/fix-tracker-fields.py
@@ -0,0 +1,38 @@
+import sys
+import json
+import logging
+
+from pylons import c
+
+from ming.orm import session, MappedClass
+
+from allura import model as M
+from forgetracker import model as TM
+
+log = logging.getLogger(__name__)
+
+def main():
+    test = sys.argv[-1] == 'test'
+    projects = M.Project.query.find().all()
+    log.info('Fixing tracker fields')
+    for p in projects:
+        if p.parent_id: continue
+        c.project = p
+        q = TM.Globals.query.find()
+        if not q.count(): continue
+        for g in q:
+            old_names = g.status_names.split()
+            if g.open_status_names is None:
+                g.open_status_names = ' '.join(
+                    name for name in old_names if name != 'closed')
+            if g.closed_status_names is None:
+                g.closed_status_names = 'closed'
+        if test:
+            log.info('... would fix tracker(s) in %s', p.shortname)
+        else:
+            log.info('... fixing tracker(s) in %s', p.shortname)
+            session(g).flush()
+        session(g).clear()
+
+if __name__ == '__main__':
+    main()