Switch to side-by-side view

--- a/ForgeTracker/forgetracker/tracker_main.py
+++ b/ForgeTracker/forgetracker/tracker_main.py
@@ -1,7 +1,7 @@
 #-*- python -*-
 import logging
 from mimetypes import guess_type
-import re
+import json, urllib
 
 # Non-stdlib imports
 import pkg_resources
@@ -443,8 +443,6 @@
                 self.ticket, next), remainder
 
 
-_SEP_RE = re.compile(r'[ ,]+')
-
 class TrackerAdminController(DefaultAdminController):
 
     def __init__(self, app):
@@ -454,8 +452,7 @@
     @with_trailing_slash
     @expose('forgetracker.templates.admin')
     def index(self):
-        custom_fields = ', '.join([field.name for field in self.globals.custom_fields])
-        return dict(app=self.app, globals=self.globals, custom_fields=custom_fields)
+        return dict(app=self.app, globals=self.globals)
 
     @expose()
     def update_tickets(self, **post_data):
@@ -468,6 +465,5 @@
 
     @expose()
     def set_custom_fields(self, **post_data):
-        self.globals.custom_fields = [{'name':name, 'type':'str'}
-                                        for name in re.split(_SEP_RE, post_data['custom_fields'])]
-        redirect('.')
+        data = urllib.unquote_plus(post_data['custom_fields'])
+        self.globals.custom_fields = json.loads(data)