Switch to side-by-side view

--- a/ForgeTracker/forgetracker/tracker_main.py
+++ b/ForgeTracker/forgetracker/tracker_main.py
@@ -379,10 +379,26 @@
                     count=count, q=q, limit=limit, page=page, sort=sort,
                     solr_error=solr_error, **kw)
 
+    def _mongo_col_to_solr_col(self, name):
+        if name == 'ticket_num':
+            return 'ticket_num_i'
+        elif name == 'summary':
+            return 'snippet_s'
+        elif name == '_milestone':
+            return 'milestone_s'
+        elif name == 'status':
+            return 'status_s'
+        elif name == 'assigned_to':
+            return 'assigned_to_s'
+        else:
+            for field in c.app.globals.sortable_custom_fields_shown_in_search():
+                if name == field['name']:
+                    return field['sortable_name']
+
     @with_trailing_slash
     @h.vardec
     @expose('jinja:forgetracker:templates/tracker/index.html')
-    def index(self, limit=25, columns=None, page=0, sort='ticket_num_i asc', **kw):
+    def index(self, limit=25, columns=None, page=0, sort='ticket_num desc', **kw):
         kw.pop('q', None) # it's just our original query mangled and sent back to us
         result = TM.Ticket.paged_query(c.app.globals.not_closed_mongo_query,
                                         sort=sort, limit=int(limit),
@@ -392,6 +408,11 @@
         result['allow_edit'] = has_access(c.app, 'write')()
         result['help_msg'] = c.app.config.options.get('TicketHelpSearch')
         result['url_q'] = c.app.globals.not_closed_query
+        result['url_sort'] = ''
+        if sort:
+            sort_split = sort.split(' ')
+            solr_col = self._mongo_col_to_solr_col(sort_split[0])
+            result['url_sort'] = '%s %s' % (solr_col, sort_split[1])
         c.ticket_search_results = W.ticket_search_results
         return result