diff roundup/cgi/actions.py @ 6638:e1588ae185dc issue2550923_computed_property

merge from default branch. Fix travis.ci so CI builds don't error out
author John Rouillard <rouilj@ieee.org>
date Thu, 21 Apr 2022 16:54:17 -0400
parents e70e2789bc2c
children b336cc98d9d2
line wrap: on
line diff
--- a/roundup/cgi/actions.py	Fri Oct 08 00:37:16 2021 -0400
+++ b/roundup/cgi/actions.py	Thu Apr 21 16:54:17 2022 -0400
@@ -464,7 +464,7 @@
         different from 'index'
         """
         template = self.getFromForm('template')
-        if template and template != 'index':
+        if template and template not in ['index', 'index|search']:
             return req.indexargs_url('', {'@template': template})[1:]
         return req.indexargs_url('', {})[1:]
 
@@ -1433,8 +1433,22 @@
 
         # full-text search
         if request.search_text:
-            matches = self.db.indexer.search(
-                re.findall(r'\b\w{2,25}\b', request.search_text), klass)
+            indexer = self.db.indexer
+            if self.db.indexer.query_language:
+                try:
+                    matches = indexer.search(
+                        [request.search_text], klass)
+                except Exception as e:
+                    error = " ".join(e.args)
+                    self.client.add_error_message(error)
+                    self.client.response_code = 400
+                    # trigger error reporting. NotFound isn't right but...
+                    raise exceptions.NotFound(error)
+            else:
+                matches = indexer.search(
+                    re.findall(r'\b\w{%s,%s}\b' % (indexer.minlength,
+                                                   indexer.maxlength),
+                               request.search_text), klass)
         else:
             matches = None
 
@@ -1598,8 +1612,23 @@
 
         # full-text search
         if request.search_text:
-            matches = self.db.indexer.search(
-                re.findall(r'\b\w{2,25}\b', request.search_text), klass)
+            indexer = self.db.indexer
+            if indexer.query_language:
+                try:
+                    matches = indexer.search(
+                        [request.search_text], klass)
+                except Exception as e:
+                    error = " ".join(e.args)
+                    self.client.add_error_message(error)
+                    self.client.response_code = 400
+                    # trigger error reporting. NotFound isn't right but...
+                    raise exceptions.NotFound(error)
+            else:
+                matches = indexer.search(
+                    re.findall(r'\b\w{%s,%s}\b' % (indexer.minlength,
+                                                   indexer.maxlength),
+                               request.search_text),
+                    klass)
         else:
             matches = None
 

Roundup Issue Tracker: http://roundup-tracker.org/