You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@allura.apache.org by gc...@apache.org on 2022/06/01 22:15:16 UTC
[allura] 01/01: #8434 check if variable is a dict before iterating
This is an automated email from the ASF dual-hosted git repository.
gcruz pushed a commit to branch gc/8434
in repository https://gitbox.apache.org/repos/asf/allura.git
commit 448e08769d1a9400d83fb20cbce4419bcb543afb
Author: Guillermo Cruz <gu...@slashdotmedia.com>
AuthorDate: Wed Jun 1 16:15:08 2022 -0600
#8434 check if variable is a dict before iterating
---
Allura/allura/lib/search.py | 23 ++++++++++++-----------
ForgeTracker/forgetracker/model/ticket.py | 3 ++-
2 files changed, 14 insertions(+), 12 deletions(-)
diff --git a/Allura/allura/lib/search.py b/Allura/allura/lib/search.py
index 9f1e94ff6..a8ed6e58e 100644
--- a/Allura/allura/lib/search.py
+++ b/Allura/allura/lib/search.py
@@ -188,17 +188,18 @@ def search_artifact(atype, q, history=False, rows=10, short_timeout=False, filte
fq += kw.pop('fq', [])
if isinstance(filter, str): # may be stringified after a ticket filter, then bulk edit
filter = ast.literal_eval(filter)
- for name, values in (filter or {}).items():
- field_name = name + '_s'
- parts = []
- for v in values:
- # Specific solr syntax for empty fields
- if v == '' or v is None:
- part = f'(-{field_name}:[* TO *] AND *:*)'
- else:
- part = f'{field_name}:{escape_solr_arg(v)}'
- parts.append(part)
- fq.append(' OR '.join(parts))
+ if isinstance(filter, dict):
+ for name, values in (filter or {}).items():
+ field_name = name + '_s'
+ parts = []
+ for v in values:
+ # Specific solr syntax for empty fields
+ if v == '' or v is None:
+ part = f'(-{field_name}:[* TO *] AND *:*)'
+ else:
+ part = f'{field_name}:{escape_solr_arg(v)}'
+ parts.append(part)
+ fq.append(' OR '.join(parts))
if not history:
fq.append('is_history_b:False')
return search(q, fq=fq, rows=rows, short_timeout=short_timeout, ignore_errors=False, **kw)
diff --git a/ForgeTracker/forgetracker/model/ticket.py b/ForgeTracker/forgetracker/model/ticket.py
index 34aa72e94..a67ed48e1 100644
--- a/ForgeTracker/forgetracker/model/ticket.py
+++ b/ForgeTracker/forgetracker/model/ticket.py
@@ -1306,7 +1306,6 @@ class Ticket(VersionedArtifact, ActivityObject, VotableArtifact):
solr_error = e
matches = None
if matches:
- count = matches.hits
# ticket_matches is in sorted order
ticket_matches = [ObjectId(match['id'].split('#')[1]) for match in matches.docs]
query = cls.query.find(
@@ -1317,6 +1316,7 @@ class Ticket(VersionedArtifact, ActivityObject, VotableArtifact):
ticket_by_id[t._id] = t
# and pull them out in the order given by ticket_numbers
tickets = []
+ count = 0
for t_id in ticket_matches:
if t_id in ticket_by_id:
show_deleted = show_deleted and security.has_access(
@@ -1325,6 +1325,7 @@ class Ticket(VersionedArtifact, ActivityObject, VotableArtifact):
app_config.project.root_project if app_config else None) and
(show_deleted or ticket_by_id[t_id].deleted is False)):
tickets.append(ticket_by_id[t_id])
+ count = count + 1
else:
count = count - 1
return dict(tickets=tickets,