[#4014] Fixed bug in default milestone creation.

Signed-off-by: Tim Van Steenburgh <tvansteenburgh@geek.net>
diff --git a/ForgeTracker/forgetracker/tests/functional/test_root.py b/ForgeTracker/forgetracker/tests/functional/test_root.py
index b1a5c6c..d2741f9 100644
--- a/ForgeTracker/forgetracker/tests/functional/test_root.py
+++ b/ForgeTracker/forgetracker/tests/functional/test_root.py
@@ -50,16 +50,22 @@
         app = p.app_instance('bugs')
         app.globals.custom_fields = []
         ThreadLocalORMSession.flush_all()
-        r = self.app.post('/bugs/update_milestones',{
+        d = {
             'field_name':'_milestone',
             'milestones-0.old_name':'',
             'milestones-0.new_name':'1.0',
             'milestones-0.description':'Version 1',
             'milestones-0.complete':'Open',
             'milestones-0.due_date':''
-        })
+        }
+        r = self.app.post('/bugs/update_milestones', d)
         r = self.app.get('/bugs/milestones')
         assert 'Version 1' in r
+        # make sure _milestone doesn't get created again if it already exists
+        r = self.app.post('/bugs/update_milestones', d)
+        p = M.Project.query.get(shortname='test')
+        app = p.app_instance('bugs')
+        assert len(app.globals.custom_fields) == 1, len(app.globals.custom_fields)
 
 class TestFunctionalController(TrackerTestController):
     def test_bad_ticket_number(self):
diff --git a/ForgeTracker/forgetracker/tracker_main.py b/ForgeTracker/forgetracker/tracker_main.py
index 0f76a6b..c3635e9 100644
--- a/ForgeTracker/forgetracker/tracker_main.py
+++ b/ForgeTracker/forgetracker/tracker_main.py
@@ -446,7 +446,7 @@
         # the Edit Milestones page capable of editing any/all milestone fields
         # instead of just the default "_milestone" field.
         if field_name == '_milestone' and \
-            field_name not in c.app.globals.milestone_fields:
+            field_name not in [m.name for m in c.app.globals.milestone_fields]:
             c.app.globals.custom_fields.append(dict(name='_milestone',
                 label='Milestone', type='milestone', milestones=[]))
         for fld in c.app.globals.milestone_fields: