Switch to side-by-side view

--- a/ForgeTracker/forgetracker/tracker_main.py
+++ b/ForgeTracker/forgetracker/tracker_main.py
@@ -168,10 +168,7 @@
                         h.text.truncate(m.name, 72),
                         self.url + fld.name[1:] + '/' + h.urlquote(m.name) + '/',
                         className='nav_child',
-                        small=sum(1 for t in TM.Ticket.query.find({
-                                      "custom_fields.%s" % fld.name: m.name,
-                                      "app_config_id": c.app.config._id})
-                                  if has_access(t, 'read'))))
+                        small=c.app.globals.milestone_count('%s:%s' % (fld.name, m.name))['hits']))
         if ticket.isdigit():
             ticket = TM.Ticket.query.find(dict(app_config_id=self.config._id,ticket_num=int(ticket))).first()
         else:
@@ -1233,7 +1230,7 @@
         self.root = root
         self.field = fld
         self.milestone = m
-        self.query = '%s:"%s"' % (fld.name, m.name)
+        self.progress_key = '%s:%s' % (fld.name, m.name)
         self.mongo_query = {
             'custom_fields.%s' % fld.name: m.name }
 
@@ -1250,18 +1247,13 @@
             self.mongo_query, page=page, sort=sort, columns=columns, **kw)
         result['allow_edit'] = has_access(c.app, 'write')()
         result['help_msg'] = c.app.config.options.get('TicketHelpSearch')
-        # get milestone progress from mongo
-        d = TM.Ticket.query.find(dict(self.mongo_query, app_config_id=c.app.config._id))
-        tickets = [t for t in d if has_access(t, 'read')]
-        total = len(tickets)
-        closed = sum(1 for t in tickets
-                     if t.status in c.app.globals.set_of_closed_status_names)
+        progress = c.app.globals.milestone_count(self.progress_key)
         result.pop('q')
         result.update(
             field=self.field,
             milestone=self.milestone,
-            total=total,
-            closed=closed)
+            total=progress['hits'],
+            closed=progress['closed'])
         c.ticket_search_results = W.ticket_search_results
         c.auto_resize_textarea = W.auto_resize_textarea
         return result