You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@allura.apache.org by jo...@apache.org on 2013/05/28 21:27:46 UTC

[12/22] git commit: [#5656] ticket:301 Refactor trackers collecting in helper function and use it in both 'moves'

[#5656] ticket:301 Refactor trackers collecting in helper function and use it in both 'moves'


Project: http://git-wip-us.apache.org/repos/asf/incubator-allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-allura/commit/d1fc56e5
Tree: http://git-wip-us.apache.org/repos/asf/incubator-allura/tree/d1fc56e5
Diff: http://git-wip-us.apache.org/repos/asf/incubator-allura/diff/d1fc56e5

Branch: refs/heads/cj/6218
Commit: d1fc56e5dc000065d7f8926d709e4f69d45bcd4d
Parents: c0797ac
Author: Igor Bondarenko <je...@gmail.com>
Authored: Tue Apr 30 15:04:22 2013 +0000
Committer: Dave Brondsema <db...@slashdotmedia.com>
Committed: Fri May 24 18:35:51 2013 +0000

----------------------------------------------------------------------
 ForgeTracker/forgetracker/tracker_main.py |   34 +++++++++++++++--------
 1 files changed, 22 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/d1fc56e5/ForgeTracker/forgetracker/tracker_main.py
----------------------------------------------------------------------
diff --git a/ForgeTracker/forgetracker/tracker_main.py b/ForgeTracker/forgetracker/tracker_main.py
index b1bd941..b2cc363 100644
--- a/ForgeTracker/forgetracker/tracker_main.py
+++ b/ForgeTracker/forgetracker/tracker_main.py
@@ -139,6 +139,25 @@ def get_change_text(name, new_value, old_value):
         changelist=changes.get_changed())
 
 
+def _my_trackers(user, current_tracker_app_config):
+    '''Collect all 'Tickets' instances in all user's projects
+    for which user has admin permissions.
+
+    Returns list of 3-tuples (<tracker_id>, '<project>/<mount_point>', <is current tracker?>)
+    '''
+    trackers = []
+    projects = user.my_projects()
+    projects = ifilter(lambda p: has_access(p, 'admin')(), projects)
+    for p in projects:
+        for ac in p.app_configs:
+            if ac.tool_name.lower() == 'tickets':
+                trac = (str(ac._id),
+                        '%s/%s' % (p.shortname, ac.options['mount_point']),
+                        bool(current_tracker_app_config == ac))
+                trackers.append(trac)
+    return trackers
+
+
 class W:
     thread=w.Thread(
         page=None, limit=None, page_size=None, count=None,
@@ -775,7 +794,8 @@ class RootController(BaseController, FeedController):
         result['globals'] = c.app.globals
         result['cancel_href'] = url(c.app.url + 'search/', dict(q=q, limit=limit, sort=sort))
         c.mass_move = W.mass_edit
-        c.mass_move_form = W.mass_move_form(tracker=[])
+        trackers = _my_trackers(c.user, c.app.config)
+        c.mass_move_form = W.mass_move_form(trackers=trackers)
         return result
 
     @expose()
@@ -1475,17 +1495,7 @@ class TicketController(BaseController, FeedController):
             flash('Ticket successfully moved')
             redirect(new_ticket.url())
 
-        # collect all 'Tickets' instances in all user project for which his has admin perms
-        trackers = []
-        projects = c.user.my_projects()
-        projects = ifilter(lambda p: has_access(p, 'admin')(), projects)
-        for p in projects:
-            for ac in p.app_configs:
-                if ac.tool_name.lower() == 'tickets':
-                    trac = (str(ac._id),
-                            '%s/%s' % (p.shortname, ac.options['mount_point']),
-                            bool(self.ticket.app.config == ac))
-                    trackers.append(trac)
+        trackers = _my_trackers(c.user, self.ticket.app.config)
         return {
             'ticket': self.ticket,
             'form': W.move_ticket_form(trackers=trackers),