Return-Path: X-Original-To: apmail-incubator-allura-commits-archive@minotaur.apache.org Delivered-To: apmail-incubator-allura-commits-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 490D210157 for ; Wed, 21 Aug 2013 20:12:28 +0000 (UTC) Received: (qmail 70473 invoked by uid 500); 21 Aug 2013 20:12:23 -0000 Delivered-To: apmail-incubator-allura-commits-archive@incubator.apache.org Received: (qmail 70353 invoked by uid 500); 21 Aug 2013 20:12:23 -0000 Mailing-List: contact allura-commits-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: allura-dev@incubator.apache.org Delivered-To: mailing list allura-commits@incubator.apache.org Received: (qmail 69434 invoked by uid 99); 21 Aug 2013 20:12:18 -0000 Received: from tyr.zones.apache.org (HELO tyr.zones.apache.org) (140.211.11.114) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 21 Aug 2013 20:12:18 +0000 Received: by tyr.zones.apache.org (Postfix, from userid 65534) id 10C318C1EB7; Wed, 21 Aug 2013 20:12:18 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: brondsem@apache.org To: allura-commits@incubator.apache.org Date: Wed, 21 Aug 2013 20:12:29 -0000 Message-Id: <7a9c4e31c9d448ad9328cab3117aaeba@git.apache.org> In-Reply-To: <5e9ac297178240c4945d759d2ccda9db@git.apache.org> References: <5e9ac297178240c4945d759d2ccda9db@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [13/50] git commit: [#3153] ticket:389 added milestones to tracker bulk_export [#3153] ticket:389 added milestones to tracker bulk_export Project: http://git-wip-us.apache.org/repos/asf/incubator-allura/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-allura/commit/b0ea8a4c Tree: http://git-wip-us.apache.org/repos/asf/incubator-allura/tree/b0ea8a4c Diff: http://git-wip-us.apache.org/repos/asf/incubator-allura/diff/b0ea8a4c Branch: refs/heads/db/3154b Commit: b0ea8a4c5e825d8120c155490cdcb29c1c0bf198 Parents: 2d4dfb7 Author: Anton Kasyanov Authored: Tue Jul 23 20:09:29 2013 +0300 Committer: Dave Brondsema Committed: Wed Aug 21 18:12:24 2013 +0000 ---------------------------------------------------------------------- ForgeTracker/forgetracker/tests/test_app.py | 6 ++++- ForgeTracker/forgetracker/tracker_main.py | 31 +++++++++++++++--------- 2 files changed, 24 insertions(+), 13 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/b0ea8a4c/ForgeTracker/forgetracker/tests/test_app.py ---------------------------------------------------------------------- diff --git a/ForgeTracker/forgetracker/tests/test_app.py b/ForgeTracker/forgetracker/tests/test_app.py index 7437e4d..a718885 100644 --- a/ForgeTracker/forgetracker/tests/test_app.py +++ b/ForgeTracker/forgetracker/tests/test_app.py @@ -35,7 +35,7 @@ class TestBulkExport(TrackerTestController): self.project = M.Project.query.get(shortname='test') self.tracker = self.project.app_instance('bugs') self.new_ticket(summary='foo', _milestone='1.0') - self.new_ticket(summary='bar', _milestone='1.0') + self.new_ticket(summary='bar', _milestone='2.0') ticket = TM.Ticket.query.find(dict(summary='foo')).first() ticket.discussion_thread.add_post(text='silly comment') @@ -59,3 +59,7 @@ class TestBulkExport(TrackerTestController): assert_true('options' in tracker_config.keys()) assert_true('acl' in tracker_config.keys()) assert_equal(tracker_config['options']['mount_point'], 'bugs') + + milestones = sorted(tracker['milestones'], key=operator.itemgetter('name')) + assert_equal(milestones[0]['name'], '1.0') + assert_equal(milestones[1]['name'], '2.0') http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/b0ea8a4c/ForgeTracker/forgetracker/tracker_main.py ---------------------------------------------------------------------- diff --git a/ForgeTracker/forgetracker/tracker_main.py b/ForgeTracker/forgetracker/tracker_main.py index 5c574e3..1880cd8 100644 --- a/ForgeTracker/forgetracker/tracker_main.py +++ b/ForgeTracker/forgetracker/tracker_main.py @@ -420,12 +420,30 @@ class ForgeTrackerApp(Application): f.write(',') f.write('], "tracker_config":') json.dump(self.config, f, cls=jsonify.GenericJSON) + f.write(', "milestones":') + milestones = self.milestones + json.dump(milestones, f, cls=jsonify.GenericJSON) f.write('}') @property def bins(self): return TM.Bin.query.find(dict(app_config_id=self.config._id)).sort('summary').all() + @property + def milestones(self): + milestones = [] + for fld in self.globals.milestone_fields: + if fld.name == '_milestone': + for m in fld.milestones: + d = self.globals.milestone_count('%s:%s' % (fld.name, m.name)) + milestones.append(dict( + name=m.name, + due_date=m.get('due_date'), + description=m.get('description'), + complete=m.get('complete'), + total=d['hits'], + closed=d['closed'])) + return milestones ### Controllers ### @@ -614,19 +632,8 @@ class RootController(BaseController, FeedController): @expose('jinja:forgetracker:templates/tracker/milestones.html') def milestones(self, **kw): require_access(c.app, 'configure') - milestones = [] c.date_field = W.date_field - for fld in c.app.globals.milestone_fields: - if fld.name == '_milestone': - for m in fld.milestones: - d = c.app.globals.milestone_count('%s:%s' % (fld.name, m.name)) - milestones.append(dict( - name=m.name, - due_date=m.get('due_date'), - description=m.get('description'), - complete=m.get('complete'), - total=d['hits'], - closed=d['closed'])) + milestones = c.app.milestones return dict(milestones=milestones) @without_trailing_slash