aboutsummaryrefslogtreecommitdiffstats
path: root/python
diff options
context:
space:
mode:
authorBryan Newbold <bnewbold@robocracy.org>2021-02-26 12:02:49 -0800
committerBryan Newbold <bnewbold@robocracy.org>2021-02-26 12:03:32 -0800
commit7850ce229de7c817c04509ddc8339a7934774c06 (patch)
treeef40121717c0145a97160909efc46c8ca6ed1f75 /python
parent0880e0ecca4e65fd00a4ffafec948873be45193e (diff)
downloadfatcat-7850ce229de7c817c04509ddc8339a7934774c06.tar.gz
fatcat-7850ce229de7c817c04509ddc8339a7934774c06.zip
web: try container search along with release for generic queries
Diffstat (limited to 'python')
-rw-r--r--python/fatcat_web/routes.py15
-rw-r--r--python/fatcat_web/templates/release_search.html10
2 files changed, 22 insertions, 3 deletions
diff --git a/python/fatcat_web/routes.py b/python/fatcat_web/routes.py
index eda947cd..7cf1f854 100644
--- a/python/fatcat_web/routes.py
+++ b/python/fatcat_web/routes.py
@@ -685,7 +685,7 @@ def generic_search():
if len(query.split()) != 1:
# multi-term? must be a real search
- return redirect(url_for('release_search', q=query))
+ return redirect(url_for('release_search', q=query, generic=1))
if clean_doi(query):
return redirect(url_for('release_lookup', doi=clean_doi(query)))
@@ -704,7 +704,7 @@ def generic_search():
if clean_orcid(query):
return redirect(url_for('creator_lookup', orcid=clean_orcid(query)))
- return redirect(url_for('release_search', q=query))
+ return redirect(url_for('release_search', q=query, generic=1))
@app.route('/release/search', methods=['GET', 'POST'])
def release_search():
@@ -712,12 +712,21 @@ def release_search():
if 'q' not in request.args.keys():
return render_template('release_search.html', query=ReleaseQuery(), found=None)
+ container_found = None
+ if request.args.get('generic'):
+ container_query = GenericQuery.from_args(request.args)
+ container_query.limit = 1
+ try:
+ container_found = do_container_search(container_query)
+ except Exception:
+ pass
+
query = ReleaseQuery.from_args(request.args)
try:
found = do_release_search(query)
except FatcatSearchError as fse:
return render_template('release_search.html', query=query, es_error=fse), fse.status_code
- return render_template('release_search.html', query=query, found=found)
+ return render_template('release_search.html', query=query, found=found, container_found=container_found)
@app.route('/container/search', methods=['GET', 'POST'])
def container_search():
diff --git a/python/fatcat_web/templates/release_search.html b/python/fatcat_web/templates/release_search.html
index 4de56fa2..59a234c0 100644
--- a/python/fatcat_web/templates/release_search.html
+++ b/python/fatcat_web/templates/release_search.html
@@ -35,6 +35,16 @@
<div class="ui container text">
<br>
+{% if container_found and container_found.results %}
+ <div class="ui tiny info floating message" style="margin: 0em auto; max-width: 40em;">
+ <div class="header">Were you looking for this journal, instead of publications?</div>
+ <div style="padding-left: 0.5em;">
+ {{ entity_macros.container_search_result_row(container_found.results[0]) }}
+ </div>
+ </div>
+ <br clear="all">
+{% endif %}
+
{% if found %}
{% if found.results %}