Mercurial > p > roundup > code
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
