You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@allura.apache.org by br...@apache.org on 2018/07/06 15:58:35 UTC

[3/3] allura git commit: [#8209] Personal Dashboard - Fix error in viewing dashboard, modifications in 'paged_search'

[#8209] Personal Dashboard - Fix error in viewing dashboard, modifications in 'paged_search'


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

Branch: refs/heads/master
Commit: 1d155ce858e01dad01a0ac23f1e13ce49e92d5dd
Parents: 1fe9f02
Author: deshanigtk <de...@cse.mrt.ac.lk>
Authored: Fri Jul 6 17:45:42 2018 +0530
Committer: deshanigtk <de...@cse.mrt.ac.lk>
Committed: Fri Jul 6 17:45:42 2018 +0530

----------------------------------------------------------------------
 ForgeTracker/forgetracker/model/ticket.py       | 38 ++++++++------------
 .../tests/unit/test_root_controller.py          |  2 +-
 2 files changed, 15 insertions(+), 25 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/allura/blob/1d155ce8/ForgeTracker/forgetracker/model/ticket.py
----------------------------------------------------------------------
diff --git a/ForgeTracker/forgetracker/model/ticket.py b/ForgeTracker/forgetracker/model/ticket.py
index d242e9a..db50536 100644
--- a/ForgeTracker/forgetracker/model/ticket.py
+++ b/ForgeTracker/forgetracker/model/ticket.py
@@ -1229,13 +1229,10 @@ class Ticket(VersionedArtifact, ActivityObject, VotableArtifact):
                 params.update(tsearch.FACET_PARAMS)
                 if not show_deleted:
                     params['fq'] = ['deleted_b:False']
-                if app_config is None:
-                    fl = 'id'
-                else:
-                    fl = 'ticket_num_i'
+
                 matches = search_artifact(
                     cls, q, short_timeout=True,
-                    rows=limit, sort=refined_sort, start=start, fl=fl,
+                    rows=limit, sort=refined_sort, start=start, fl='id',
                     filter=filter, **params)
             else:
                 matches = None
@@ -1245,31 +1242,24 @@ class Ticket(VersionedArtifact, ActivityObject, VotableArtifact):
             matches = None
         if matches:
             count = matches.hits
-            if app_config is not None:
-                # ticket_matches is in sorted order
-                ticket_matches = [match['ticket_num_i'] for match in matches.docs]
-
-                # but query, unfortunately, returns results in arbitrary order
-                query = cls.query.find(
-                    dict(app_config_id=app_config._id, ticket_num={'$in': ticket_matches}))
-            else:
-                ticket_matches = [ObjectId(match['id']).split('#')[1] for match in matches.docs]
-                query = cls.query.find(
-                    dict(_id={'$in': ticket_matches}))
+            # ticket_matches is in sorted order
+            ticket_matches = [ObjectId(match['id'].split('#')[1]) for match in matches.docs]
+            query = cls.query.find(
+                dict(_id={'$in': ticket_matches}))
             # so stick all the results in a dictionary...
-            ticket_for_num = {}
+            ticket_by_id = {}
             for t in query:
-                ticket_for_num[t.ticket_num] = t
+                ticket_by_id[t._id] = t
             # and pull them out in the order given by ticket_numbers
             tickets = []
-            for tn in ticket_matches:
-                if tn in ticket_for_num:
+            for t_id in ticket_matches:
+                if t_id in ticket_by_id:
                     show_deleted = show_deleted and security.has_access(
-                        ticket_for_num[tn], 'delete', user, app_config.project.root_project)
-                    if (security.has_access(ticket_for_num[tn], 'read', user,
+                        ticket_by_id[t_id], 'delete', user, app_config.project.root_project)
+                    if (security.has_access(ticket_by_id[t_id], 'read', user,
                                             app_config.project.root_project if app_config else None) and
-                            (show_deleted or ticket_for_num[tn].deleted == False)):
-                        tickets.append(ticket_for_num[tn])
+                            (show_deleted or ticket_by_id[t_id].deleted == False)):
+                        tickets.append(ticket_by_id[t_id])
                     else:
                         count = count - 1
         return dict(tickets=tickets,

http://git-wip-us.apache.org/repos/asf/allura/blob/1d155ce8/ForgeTracker/forgetracker/tests/unit/test_root_controller.py
----------------------------------------------------------------------
diff --git a/ForgeTracker/forgetracker/tests/unit/test_root_controller.py b/ForgeTracker/forgetracker/tests/unit/test_root_controller.py
index ae2f7a1..7a88f72 100644
--- a/ForgeTracker/forgetracker/tests/unit/test_root_controller.py
+++ b/ForgeTracker/forgetracker/tests/unit/test_root_controller.py
@@ -71,7 +71,7 @@ def solr_search_returning_colors_are_wrong_ticket():
     ticket = create_colors_are_wrong_ticket()
     search_artifact = Mock()
     matches = Mock()
-    matches.docs = [dict(ticket_num_i=ticket.ticket_num)]
+    matches.docs = [dict(id=ticket.index_id())]
     matches.facets = {'facet_fields': {}}
     search_artifact.return_value = matches
     return patch('forgetracker.model.ticket.search_artifact', search_artifact)